/[PAMELA software]/PamVMC/ac/src/PamVMCDetCard.cxx
ViewVC logotype

Contents of /PamVMC/ac/src/PamVMCDetCard.cxx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations) (download)
Fri Jun 12 18:39:02 2009 UTC (15 years, 6 months ago) by pam-rm2
Branch: MAIN
CVS Tags: v1r0, HEAD
Changes since 1.1: +0 -0 lines
- Introduced user-defined names of output files and random seeds number.
Users can do it use options of PamVMCApplication constructor:
PamVMCApplication(const char* name,  const char *title, const char*
filename="pamtest", Int_t seed=0).
The Random object that I use is TRandom3 object which has astronomical
large period (in case of default initialization 0). All random generators
in the code use this object by calling of gRandom singleton which keeps
it.

- Corrected TOF digitization routine. No problems with TDC hits due to
hadronic interactions anymore.

- Some small changes was done to compile code under Root 5.23. +
geant4_vmc v. 2.6 without any warnings

- Some classes of PamG4RunConfiguartion was changed for geant4_vmc v.
2.6.Some obsolete classes was deleted as soon as developers implemented
regions.

- Navigation was changed from "geomRootToGeant4" to "geomRoot", because on
VMC web page written that as soon as Geant4 has no option ONLY/MANY
translation of overlapped geometry to Geant4 through VGM could be wrong.
I'd like to stay with Root navigation:
http://root.cern.ch/root/vmc/Geant4VMC.html. This should be default
option.

- New Tracker digitization routine written by Sergio was implemented

- PamVMC again became compatible with geant4_vmc v.2.5 and ROOT 5.20.
 The problem was that ROOT developers introduced in TVirtualMC class a new
method SetMagField and new base class:TVirtualMagField from which
user-defined classes shoukd be derived

1 #include <TMath.h>
2 #include "PamVMCDetCard.h"
3
4 ClassImp(PamVMCDetCard)
5
6 using TMath::Tan;
7 using TMath::ATan;
8 using TMath::Sin;
9 using TMath::Cos;
10 using TMath::Pi;
11
12 void PamVMCDetCard::DefineGeometry(){
13
14 TGeoMaterial *m=0;
15 TGeoMixture *x=0;
16 TString s = "ALUMINIUM";
17 m = GetMat(s);
18 if(!m){
19 m = new TGeoMaterial(s,26.98,13,2.7);
20 m->SetUniqueID( 9);
21 }
22
23 s = "IRON";
24 m = GetMat(s);
25 if(!m){
26 m = new TGeoMaterial(s,55.85,26,7.87);
27 m->SetUniqueID( 10);
28 }
29
30 s = "SCINT";
31 x = (TGeoMixture*)GetMat(s);
32 if(!x){
33 x = new TGeoMixture(s,2, 1.03200 );
34 x->SetUniqueID( 17);
35 x->DefineElement(0,12.01,6,0.922427);
36 x->DefineElement(1,1.01,1,0.7757296E-01);
37 }
38
39 s = "N2GAS";
40 m = GetMat(s);
41 if (!m){
42 m = new TGeoMaterial(s,14.01,7,0.1250000E-02);
43 m->SetUniqueID( 19);
44 }
45
46 s = "PLAST";
47 x = (TGeoMixture*)GetMat(s);
48 if(!x){
49 x = new TGeoMixture(s,2, 1.03200 );
50 x->SetUniqueID( 28);
51 x->DefineElement(0,12.01,6,0.9929774);
52 x->DefineElement(1,1.01,1,0.7022570E-02);
53 }
54
55 TGeoMedium *n =0;
56
57 s="ALUMINIUM";
58 n = (GetMed(s))?GetMed(s): new TGeoMedium(s,1,9,-1,1,40,1,100,0.5000000E-01,0.136283,0.5000000E-03);
59
60 s = "N2 GAS";
61 n = (GetMed(s))?GetMed(s): new TGeoMedium(s,3,19,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.1000000E-02,0.5000000E-03);
62
63 s = "SCINTILLATOR";
64 n = (GetMed(s))?GetMed(s): new TGeoMedium(s,10,17,1,1,40,1,0.5000000E-01,0.5000000E-01,0.1000000E-01,0.5000000E-03);
65
66 s = "PLASTIC";
67 n = (GetMed(s))?GetMed(s): new TGeoMedium(s,18,28,-1,1,40,1,100,0.5000000E-01,0.1000000E-01,0.5000000E-03);
68
69 s = "IRON";
70 n = (GetMed(s))?GetMed(s): new TGeoMedium(s,27,10,-1,1,40,1,100,0.5000000E-01,0.2491200E-02,0.5000000E-03);
71
72
73 TGeoVolume *v = 0;
74
75 Double_t H1=6.6;
76 Double_t H2=11.55;
77 Double_t B1=20.95+3.6+5.8+H1/Tan(76./180.*Pi());
78 Double_t C1=H2/Tan(76./180.*Pi());
79 Double_t A1=37.18273-C1;
80 Double_t D1=37.18273-20.95-3.6-5.8;
81 //Double_t F1=C1+H1/Tan(76./180.*Pi());
82 Double_t ANG=ATan((B1/2.+D1-A1/2.)/18.15)/Pi()*180.;
83
84 Double_t B2=17.45+3.6+5.8+H1/Tan(76./180.*Pi());
85 Double_t C2=H2/Tan(76./180.*Pi());
86 Double_t A2=31.98273-C2;
87 Double_t D2=31.98273-17.45-3.6-5.8;
88 //Double_t F2=C2+H1/Tan(76./180.*Pi());
89 Double_t ANG2=ATan((B2/2.+D2-A2/2.)/18.15)/Pi()*180.;
90
91
92 Double_t BB=B1/2.+1.1*(1./Cos(ATan(D1/18.15))-D1/18.15+1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
93 Double_t AA=A1/2.+1.1*(1./Cos(ATan(D1/18.15))+D1/18.15-1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
94 Double_t DD=10.175*2.*D1/18.15;
95 Double_t CAR1_2=-ATan((BB+DD-AA)/(2.*10.175))/Pi()*180.;
96 Double_t CAR1_9=BB;
97 Double_t C1D1_9=B1/2.;
98 Double_t C2D1_9=B2/2.;
99
100 s = "C1D1";
101 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("SCINTILLATOR"),9.075,-ANG,0.,0.4,A1/2.,A1/2.,0.,0.4,C1D1_9,C1D1_9,0.);
102
103
104
105 s = "C2D1";
106 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("SCINTILLATOR"),9.075,-ANG2,0.,0.4,A2/2.,A2/2.,0.,0.4,C2D1_9,C2D1_9,0.);
107
108
109 s = "CAR1";
110 v = (GetVol(s))?GetVol(s):gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),10.175,CAR1_2,0.,0.55,AA,AA,0.,0.55,CAR1_9,CAR1_9,0.);
111
112
113 BB=B1/2.+0.9*(1./Cos(ATan(D1/18.15))-D1/18.15+1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
114 AA=A1/2.+0.9*(1./Cos(ATan(D1/18.15))+D1/18.15-1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
115 DD=9.975*2.*D1/18.15;
116 Double_t CR1P_2=-ATan((BB+DD-AA)/(2.*9.975))/Pi()*180.;
117 Double_t CR1P_9=BB;
118
119 s = "CR1P";
120 v = (GetVol(s))?GetVol(s):gGeoManager->MakeTrap(s,GetMed("PLASTIC"),9.975,CR1P_2,0.,0.4,AA,AA,0.,0.4,CR1P_9,CR1P_9,0.);
121
122 //===========//
123
124 BB=B2/2.+1.1*(1./Cos(ATan(D2/18.15))-D2/18.15+1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
125 AA=A2/2.+1.1*(1./Cos(ATan(D2/18.15))+D2/18.15-1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
126 DD=10.175*2.*D2/18.15;
127 Double_t CAR2_2=-ATan((BB+DD-AA)/(2.*10.175))/Pi()*180.;
128 Double_t CAR2_9=BB;
129
130 s = "CAR2";
131 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),10.175,CAR2_2,0.,0.55,AA,AA,0.,0.55,CAR2_9,CAR2_9,0.);
132
133 //==========//
134
135 BB=B2/2.+0.9*(1./Cos(ATan(D2/18.15))-D2/18.15+1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
136 AA=A2/2.+0.9*(1./Cos(ATan(D2/18.15))+D2/18.15-1./Tan(76./180.*Pi())+1./Sin(76./180.*Pi()))/2.;
137 DD=9.975*2.*D2/18.15;
138 Double_t CR2P_2=-ATan((BB+DD-AA)/(2.*9.975))/Pi()*180.;
139 Double_t CR2P_9=BB;
140
141 s = "CR2P";
142 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("PLASTIC"),9.975,CR2P_2,0.,0.4,AA,AA,0.,0.4,CR2P_9,CR2P_9,0.);
143
144 //==========//
145
146 AA=4.8+1.8;
147 BB=AA/Tan(76./180.*Pi())+AA*3.6/4.8;
148 Double_t VSN1_2=ATan((BB/2.-AA/Tan(76./180.*Pi()))/AA)/Pi()*180.;
149 Double_t VSN1_9=BB/2.;
150
151 s = "VSN1";
152 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),3.3,VSN1_2,0.,0.4,0.,0.,0.,0.4,VSN1_9,VSN1_9,0.);
153
154 //==========//
155
156 AA=1.8;
157 BB=AA*(5.8/1.8-3.6/4.8);
158 Double_t VSN2_1=0.9;
159 Double_t VSN2_2=ATan((BB/2.+AA*3.6/4.8)/AA)/Pi()*180.;
160 Double_t VSN2_9=2.225;
161
162 s = "VSN2";
163 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("PLASTIC"),VSN2_1,VSN2_2,0.,0.4,0.,0.,0.,0.4,VSN2_9,VSN2_9,0.);
164
165 //=========//
166
167 AA=1.8+0.9-Cos(ATan(3.6/4.8))*0.9/Sin(ATan(5.8/1.8)-ATan(3.6/4.8));
168 BB=AA*(5.8/1.8-3.6/4.8);
169 Double_t VPN2_1=AA/2.;
170 Double_t VPN2_2=ATan((BB/2.+AA*3.6/4.8)/AA)/Pi()*180.;
171 Double_t VPN2_9=BB/2.;
172
173
174 s = "VPN2";
175 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),VPN2_1,VPN2_2,0.,/*0.55*/ 0.4,0.,0.,0.,/*0.55*/0.4,VPN2_9,VPN2_9,0.);
176
177 //=========//
178
179 AA=(0.9/Sin(76./180.*Pi()))/(1./Tan(76./180.*Pi())+3.6/4.8)+4.8+1.8+0.9;
180 BB=AA/Tan(76./180.*Pi())+AA*3.6/4.8;
181 Double_t VPN1_1=AA/2.;
182 Double_t VPN1_9=BB/2.;
183
184 s = "VPN1";
185 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),VPN1_1,VSN1_2,0.,0.4,0.,0.,0.,0.4,VPN1_9,VPN1_9,0.);
186
187 //=========//
188
189 AA=(1.1/Sin(76./180.*Pi()))/(1./Tan(76./180.*Pi())+3.6/4.8)+4.8+1.8+1.1;
190 Double_t VAN1_1=AA/2.;
191 BB=AA/Tan(76./180.*Pi())+AA*3.6/4.8;
192 Double_t VAN1_9=BB/2.;
193
194 s = "VAN1";
195 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),VAN1_1,VSN1_2,0.,0.55,0.,0.,0.,0.55,VAN1_9,VAN1_9,0.);
196
197 //=========//
198
199 AA=1.8+1.1-Cos(ATan(3.6/4.8))*1.1/Sin(ATan(5.8/1.8)-ATan(3.6/4.8));
200 BB=AA*(5.8/1.8-3.6/4.8);
201 Double_t VAN2_1=AA/2.;
202 Double_t VAN2_2=ATan((BB/2.+AA*3.6/4.8)/AA)/Pi()*180.;
203 Double_t VAN2_9=BB/2.;
204
205 s = "VAN2";
206 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),VAN2_1,VAN2_2,0.,0.55,0.,0.,0.,0.55,VAN2_9,VAN2_9,0.);
207
208 //=========//
209
210 s = "CARD";
211 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),27.,22.8,12.35);
212 s = "LEGB";
213 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),2.15,3.575,11.85);
214 s = "LEG1";
215 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),0.65,0.,0.,0.15,6.85,6.85,0.,0.15,10.85,10.85,0.);
216 s = "LEG2";
217 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.65,1.65,11.35);
218 s = "LEG3";
219 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.1,1.3,0.325);
220 s = "LEG4";
221 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.65,1.625,11.85);
222 s = "LEG5";
223 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.125,2.575,11.85);
224 s = "LEG6";
225 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.1,0.55,11.2);
226 s = "LEG7";
227 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,3.25);
228 s = "LEG8";
229 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,4.35);
230 s = "LEG9";
231 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,3.25);
232 s = "TPLT";
233 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),27.,22.8,0.5);
234 s = "TOPC";
235 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),20.4,16.,0.5);
236 s = "TH11";
237 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),2.8,3.2,0.5);
238 s = "TH12";
239 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),2.8,5.3,0.5);
240 s = "TH21";
241 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.7,3.,0.5);
242 s = "TH22";
243 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),4.9,3.,0.5);
244 s = "TOPT";
245 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),0.5,0.,0.,2.25,2.25,0.,-26.565,2.25,2.25,0.,-26.565);
246 s = "TOHO";
247 v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("N2 GAS"),0.,0.7,0.5);
248 s = "MGSC";
249 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("IRON"),16.,15.4,0.12456);
250 s = "MGSH";
251 v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),9.8,8.,0.12456);
252
253
254 Double_t X,Y,Z;
255 Double_t X1,Y1,Z1,X2,Y2,Z2;
256 Double_t ZH=49.229-(13.05+10.639+2.97+2.*22.615+1.6)-1.6;
257
258 Y=-16.014+19.45/2.*Sin(17./180.*Pi());
259 Z=47.661+ZH-12.35-19.45*Cos(17./180.*Pi())/2.;
260 X=((35.6/2.)-Tan(ANG/180.*Pi())*19.45/2.)-18.67;
261 X1=X; Y1=Y; Z1=Z;
262 GetVol("CARD")->AddNode(GetVol("CAR1"),1,new TGeoCombiTrans(X1,Y1,Z1,GetRot("rot11")));
263 Z=10.175-VAN1_1;
264 X=-(CAR1_9-10.175*Tan(CAR1_2/180.*Pi())-(VAN1_9-VAN1_1*Tan(VSN1_2/180.*Pi())));
265 GetVol("CAR1")->AddNode(GetVol("VAN1"),1,new TGeoTranslation(X,0.,Z));//many
266 Z=10.175-VAN2_1;
267 X=-(CAR1_9-10.175*Tan(CAR1_2/180.*Pi())-(2.*VAN1_9+VAN2_9-VAN2_1*Tan(VAN2_2/180.*Pi())));
268 GetVol("CAR1")->AddNode(GetVol("VAN2"),1,new TGeoTranslation(X,0.,Z));//many
269 X=(1.1-0.9)*(1./Cos(ATan(D1/18.15))-1./Sin(76./180.*Pi()))/2.;
270 GetVol("CAR1")->AddNodeOverlap(GetVol("CR1P"),1,new TGeoTranslation(X,0.,0.));//only
271 Z=9.975-VPN1_1;
272 X=-(CR1P_9-9.975*Tan(CR1P_2/180.*Pi())-(VPN1_9-VPN1_1*Tan(VSN1_2/180.*Pi())));
273 GetVol("CR1P")->AddNode(GetVol("VPN1"),1,new TGeoTranslation(X,0.,Z)); //many
274 Z=9.975-VPN2_1;
275 X=-(CR1P_9-9.975*Tan(CR1P_2/180.*Pi())-(2.*VPN1_9+VPN2_9-VPN2_1*Tan(VPN2_2/180.*Pi())));
276 GetVol("CR1P")->AddNode(GetVol("VPN2"),1,new TGeoTranslation(X,0.,Z));//many
277 X=0.9*(1./Cos(ATan(D1/18.15))-1./Sin(76./180.*Pi()))/2.;
278 GetVol("CR1P")->AddNodeOverlap(GetVol("C1D1"),1,new TGeoTranslation(X,0.,0.));//only
279 X=-(C1D1_9+9.075*Tan(ANG/180.*Pi())-(VSN1_9-3.3*Tan(VSN1_2/180.*Pi())));
280 GetVol("C1D1")->AddNode(GetVol("VSN1"),1,new TGeoTranslation(X,0.,5.775)); //only
281 X=-(C1D1_9+9.075*Tan(ANG/180.*Pi())-(2.*VSN1_9+2.225-0.9*Tan(VSN2_2/180.*Pi())));
282 GetVol("C1D1")->AddNode(GetVol("VSN2"),1,new TGeoTranslation(X,0.,8.175)); //only
283
284
285 GetVol("CARD")->AddNode(GetVol("CAR1"),2,new TGeoCombiTrans(-X1,-Y1,Z1,GetRot("rot12")));
286
287 X=19.123-19.45/2.*Sin(20./180.*Pi());
288 Z=47.358+ZH-12.35-19.45*Cos(20./180.*Pi())/2.;
289 Y=(30.4/2.-Tan(ANG2/180.*Pi())*19.45/2.)-16.8;
290 X2=X; Y2=Y; Z2=Z;
291
292 GetVol("CARD")->AddNode(GetVol("CAR2"),1,new TGeoCombiTrans(X2,Y2,Z2,GetRot("rot14")));
293
294 Z=10.175-VAN1_1;
295 X=-(CAR2_9-10.175*Tan(CAR2_2/180.*Pi())-(VAN1_9-VAN1_1*Tan(VSN1_2/180.*Pi())));
296 GetVol("CAR2")->AddNode(GetVol("VAN1"),2,new TGeoTranslation(X,0.,Z)); //many
297 Z=10.175-VAN2_1;
298 X=-(CAR2_9-10.175*Tan(CAR2_2/180.*Pi())-(2.*VAN1_9+VAN2_9-VAN2_1*Tan(VAN2_2/180.*Pi())));
299 GetVol("CAR2")->AddNode(GetVol("VAN2"),2,new TGeoTranslation(X,0.,Z)); //many
300 X=(1.1-0.9)*(1./Cos(ATan(D2/18.15))-1./Sin(76./180.*Pi()))/2.;
301 GetVol("CAR2")->AddNodeOverlap(GetVol("CR2P"),1,new TGeoTranslation(X,0.,0.)); // only
302 Z=9.975-VPN1_1;
303 X=-(CR2P_9+9.975*Tan(ANG2/180.*Pi())-(VPN1_9-VPN1_1*Tan(VSN1_2/180.*Pi())));
304 GetVol("CR2P")->AddNode(GetVol("VPN1"),2,new TGeoTranslation(X,0.,Z)); //many
305 Z=9.975-VPN2_1;
306 X=-(CR2P_9-9.975*Tan(CR2P_2/180.*Pi())-(2.*VPN1_9+VPN2_9-VPN2_1*Tan(VPN2_2/180.*Pi())));
307 GetVol("CR2P")->AddNode(GetVol("VPN2"),2,new TGeoTranslation(X,0.,Z));//many
308 X=0.9*(1./Cos(ATan(D2/18.15))-1./Sin(76./180.*Pi()))/2.;
309 GetVol("CR2P")->AddNodeOverlap(GetVol("C2D1"),1,new TGeoTranslation(X,0.,0.));//only
310 Z=9.075-3.3;
311 X=-(C2D1_9+9.075*Tan(ANG2/180.*Pi())-(VSN1_9-3.3*Tan(VSN1_2/180.*Pi())));
312 GetVol("C2D1")->AddNode(GetVol("VSN1"),2,new TGeoTranslation(X,0.,Z)); //only
313 Z=9.075-0.9;
314 X=-(C2D1_9+9.075*Tan(ANG2/180.*Pi())-(2.*VSN1_9+VSN2_9-VSN2_1*Tan(VSN2_2/180.*Pi())));
315 GetVol("C2D1")->AddNode(GetVol("VSN2"),2,new TGeoTranslation(X,0.,Z)); //only
316
317 GetVol("CARD")->AddNode(GetVol("CAR2"),2,new TGeoCombiTrans(-X2,-Y2,Z2,GetRot("rot13")));
318
319 //==Checked==//
320
321 GetVol("CARD")->AddNode(GetVol("LEGB"),1,new TGeoTranslation(-22.9,-18.575,-0.5));
322 GetVol("LEGB")->AddNode(GetVol("LEG1"),1,new TGeoCombiTrans(-1.5,-3.425,0.,GetRot("rot7")));
323 GetVol("LEGB")->AddNode(GetVol("LEG1"),2,new TGeoCombiTrans(-1.5,0.175,0.,GetRot("rot7")));
324 GetVol("LEGB")->AddNode(GetVol("LEG2"),1,new TGeoTranslation(-1.5,-1.625,0.));
325 GetVol("LEGB")->AddNode(GetVol("LEG3"),1,new TGeoTranslation(-0.55,2.275,11.525));
326 GetVol("LEGB")->AddNode(GetVol("LEG3"),2,new TGeoTranslation(-0.55,2.275,-11.525));
327 GetVol("LEGB")->AddNode(GetVol("LEG4"),1,new TGeoTranslation(-1.5,1.95,0.));
328 GetVol("LEGB")->AddNode(GetVol("LEG5"),1,new TGeoTranslation(1.025,1.,0.));
329 GetVol("LEGB")->AddNode(GetVol("LEG6"),1,new TGeoTranslation(-0.75,3.025,0.));
330 GetVol("LEGB")->AddNode(GetVol("LEG7"),1,new TGeoTranslation(0.65,-2.825,8.));
331 GetVol("LEGB")->AddNode(GetVol("LEG8"),1,new TGeoTranslation(0.65,-2.825,0.));
332 GetVol("LEGB")->AddNode(GetVol("LEG9"),1,new TGeoTranslation(0.65,-2.825,-8.));
333 GetVol("CARD")->AddNode(GetVol("LEGB"),2,new TGeoCombiTrans(-22.9,18.575,-0.5,GetRot("rot10")));
334 GetVol("CARD")->AddNode(GetVol("LEGB"),3,new TGeoCombiTrans(22.9,18.575,-0.5,GetRot("rot4")));
335 GetVol("CARD")->AddNode(GetVol("LEGB"),4,new TGeoCombiTrans(22.9,-18.575,-0.5,GetRot("rot9")));
336 GetVol("CARD")->AddNode(GetVol("TPLT"),1,new TGeoTranslation(0.,0.,11.85));
337 GetVol("TPLT")->AddNode(GetVol("TOPC"),1,gGeoIdentity);
338 GetVol("TPLT")->AddNode(GetVol("TH11"),1,new TGeoTranslation(-23.6,14.4,0.));
339 GetVol("TPLT")->AddNode(GetVol("TH11"),2,new TGeoTranslation(-23.6,-14.4,0.));
340 GetVol("TPLT")->AddNode(GetVol("TH11"),3,new TGeoTranslation(23.6,14.4,0.));
341 GetVol("TPLT")->AddNode(GetVol("TH11"),4,new TGeoTranslation(23.6,-14.4,0.));
342 GetVol("TPLT")->AddNode(GetVol("TH12"),1,new TGeoTranslation(-23.6,5.5,0.));
343 GetVol("TPLT")->AddNode(GetVol("TH12"),2,new TGeoTranslation(-23.6,-5.5,0.));
344 GetVol("TPLT")->AddNode(GetVol("TH12"),3,new TGeoTranslation(23.6,5.5,0.));
345 GetVol("TPLT")->AddNode(GetVol("TH12"),4,new TGeoTranslation(23.6,-5.5,0.));
346 GetVol("TPLT")->AddNode(GetVol("TH21"),1,new TGeoTranslation(-17.2,19.4,0.));
347 GetVol("TPLT")->AddNode(GetVol("TH21"),2,new TGeoTranslation(-17.2,-19.4,0.));
348 GetVol("TPLT")->AddNode(GetVol("TH21"),3,new TGeoTranslation(17.2,19.4,0.));
349 GetVol("TPLT")->AddNode(GetVol("TH21"),4,new TGeoTranslation(17.2,-19.4,0.));
350 GetVol("TPLT")->AddNode(GetVol("TH22"),1,new TGeoTranslation(-10.2,19.4,0.));
351 GetVol("TPLT")->AddNode(GetVol("TH22"),2,new TGeoTranslation(-10.2,-19.4,0.));
352 GetVol("TPLT")->AddNode(GetVol("TH22"),3,new TGeoTranslation(10.2,19.4,0.));
353 GetVol("TPLT")->AddNode(GetVol("TH22"),4,new TGeoTranslation(10.2,-19.4,0.));
354 GetVol("TPLT")->AddNode(GetVol("TH22"),5,new TGeoTranslation(0.,19.4,0.));
355 GetVol("TPLT")->AddNode(GetVol("TH22"),6,new TGeoTranslation(0.,-19.4,0.));
356 GetVol("TPLT")->AddNode(GetVol("TOPT"),1,new TGeoTranslation(-25.875,-20.55,0.));
357 GetVol("TPLT")->AddNode(GetVol("TOPT"),2,new TGeoCombiTrans(-25.875,20.55,0.,GetRot("rot10")));
358 GetVol("TPLT")->AddNode(GetVol("TOPT"),3,new TGeoCombiTrans(25.875,20.55,0.,GetRot("rot4")));
359 GetVol("TPLT")->AddNode(GetVol("TOPT"),4,new TGeoCombiTrans(25.875,-20.55,0.,GetRot("rot9")));
360 GetVol("TPLT")->AddNode(GetVol("TOHO"),1,new TGeoTranslation(20.1,18.,0.));
361 GetVol("TPLT")->AddNode(GetVol("TOHO"),2,new TGeoTranslation(-20.1,18.,0.));
362 GetVol("TPLT")->AddNode(GetVol("TOHO"),3,new TGeoTranslation(-20.1,-18.,0.));
363 GetVol("TPLT")->AddNode(GetVol("TOHO"),4,new TGeoTranslation(20.1,-18.,0.));
364 GetVol("CARD")->AddNode(GetVol("MGSC"),1,new TGeoTranslation(0.,0.,-12.22544));
365 GetVol("MGSC")->AddNode(GetVol("MGSH"),1,gGeoIdentity);
366
367
368 SetMotherProp(GetVol("CARD"),1,new TGeoTranslation(0.,0.,87.439));
369
370 };
371
372 void PamVMCDetCard::DefineCuts(){
373
374 TString s ="ALUMINIUM"; // default GPAMELA parameters
375 if (GetMed(s) && !GetCC(s))
376 SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
377 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.));
378 s ="N2 GAS";
379 if (GetMed(s) && !GetCC(s))
380 SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
381 0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.));
382 s ="SCINTILLATOR";// default GPAMELA parameters
383 if (GetMed(s) && !GetCC(s))
384 SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
385 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.));
386 s = "PLASTIC";// default GPAMELA parameters
387 if (GetMed(s) && !GetCC(s))
388 SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
389 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.));
390 s = "IRON"; //default GPAMELA parameters
391 if (GetMed(s) && !GetCC(s))
392 SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
393 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.));
394 }

  ViewVC Help
Powered by ViewVC 1.1.23