1 |
#include "PamVMCDetCard.h" |
2 |
|
3 |
ClassImp(PamVMCDetCard) |
4 |
|
5 |
void PamVMCDetCard::DefineGeometry(){ |
6 |
|
7 |
TGeoMaterial *m=0; |
8 |
TGeoMixture *x=0; |
9 |
TString s = "ALUMINIUM"; |
10 |
m = GetMat(s); |
11 |
if(!m){ |
12 |
m = new TGeoMaterial(s,26.98,13,2.7); |
13 |
m->SetUniqueID( 9); |
14 |
} |
15 |
|
16 |
s = "IRON"; |
17 |
m = GetMat(s); |
18 |
if(!m){ |
19 |
m = new TGeoMaterial(s,55.85,26,7.87); |
20 |
m->SetUniqueID( 10); |
21 |
} |
22 |
|
23 |
s = "SCINT"; |
24 |
x = (TGeoMixture*)GetMat(s); |
25 |
if(!x){ |
26 |
x = new TGeoMixture(s,2, 1.03200 ); |
27 |
x->SetUniqueID( 17); |
28 |
x->DefineElement(0,12.01,6,0.922427); |
29 |
x->DefineElement(1,1.01,1,0.7757296E-01); |
30 |
} |
31 |
|
32 |
s = "N2GAS"; |
33 |
m = GetMat(s); |
34 |
if (!m){ |
35 |
m = new TGeoMaterial(s,14.01,7,0.1250000E-02); |
36 |
m->SetUniqueID( 19); |
37 |
} |
38 |
|
39 |
s = "PLAST"; |
40 |
x = (TGeoMixture*)GetMat(s); |
41 |
if(!x){ |
42 |
x = new TGeoMixture(s,2, 1.03200 ); |
43 |
x->SetUniqueID( 28); |
44 |
x->DefineElement(0,12.01,6,0.9929774); |
45 |
x->DefineElement(1,1.01,1,0.7022570E-02); |
46 |
} |
47 |
|
48 |
TGeoMedium *n =0; |
49 |
|
50 |
s="ALUMINIUM"; |
51 |
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,1,9,-1,1,40,1,100,0.5000000E-01,0.136283,0.5000000E-03); |
52 |
|
53 |
s = "N2 GAS"; |
54 |
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); |
55 |
|
56 |
s = "SCINTILLATOR"; |
57 |
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); |
58 |
|
59 |
s = "PLASTIC"; |
60 |
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,18,28,-1,1,40,1,100,0.5000000E-01,0.1000000E-01,0.5000000E-03); |
61 |
|
62 |
s = "IRON"; |
63 |
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,27,10,-1,1,40,1,100,0.5000000E-01,0.2491200E-02,0.5000000E-03); |
64 |
|
65 |
|
66 |
TGeoVolume *v = 0; |
67 |
|
68 |
s = "C1D1"; |
69 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("SCINTILLATOR"),9.075,17.37456,180.,0.4,17.1515,17.1515,0.,0.4,15.99778,15.99778,0.); |
70 |
s = "C2D1"; |
71 |
v = (GetVol(s))?GetVol(s):gGeoManager->MakeTrap(s,GetMed("SCINTILLATOR"),9.075,14.89904,180.,0.4,14.5515,14.5515,0.,0.4,14.24778,14.24778,0.); |
72 |
s = "CAR1"; |
73 |
v = (GetVol(s))?GetVol(s):gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),10.175,17.37456,180.,0.55,18.37594,18.37594,0.,0.55,17.08238,17.08238,0.); |
74 |
s = "CR1P"; |
75 |
v = (GetVol(s))?GetVol(s):gGeoManager->MakeTrap(s,GetMed("PLASTIC"),9.975,17.37456,180.,0.4,18.15331,18.15331,0.,0.4,16.88518,16.88518,0.); |
76 |
s = "CAR2"; |
77 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),10.175,14.89904,180.,0.55,15.70831,15.70831,0.,0.55,15.36778,15.36778,0.); |
78 |
s = "CR2P"; |
79 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("PLASTIC"),9.974999,14.89904,180.,0.4,15.49798,15.49798,0.,0.4,15.16415,15.16415,0.); |
80 |
s = "VSN1"; |
81 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),3.3,14.05436,0.,0.4,0.,0.,0.,0.4,3.297782,3.297782,0.); |
82 |
s = "VSN2"; |
83 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("PLASTIC"),0.9,63.27491,0.,0.4,0.,0.,0.,0.4,2.225,2.225,0.); |
84 |
s = "VPN2"; |
85 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("ALUMINIUM"),0.7358874,63.27491,0.,0.55,0.,0.,0.,0.55,1.819277,1.819277,0.); |
86 |
s = "VPN1"; |
87 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),4.214088,14.05436,0.,0.4,0.,0.,0.,0.4,4.211256,4.211256,0.); |
88 |
s = "VAN1"; |
89 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),4.417219,14.05436,0.,0.55,0.,0.,0.,0.55,4.41425,4.41425,0.); |
90 |
s = "VAN2"; |
91 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTrap(s,GetMed("N2 GAS"),0.6994181,63.27491,0.,0.55,0.,0.,0.,0.55,1.729117,1.729117,0.); |
92 |
s = "CARD"; |
93 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),27.,22.8,12.35); |
94 |
s = "LEGB"; |
95 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),2.15,3.575,11.85); |
96 |
s = "LEG1"; |
97 |
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.); |
98 |
s = "LEG2"; |
99 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.65,1.65,11.35); |
100 |
s = "LEG3"; |
101 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.1,1.3,0.325); |
102 |
s = "LEG4"; |
103 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.65,1.625,11.85); |
104 |
s = "LEG5"; |
105 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.125,2.575,11.85); |
106 |
s = "LEG6"; |
107 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),0.1,0.55,11.2); |
108 |
s = "LEG7"; |
109 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,3.25); |
110 |
s = "LEG8"; |
111 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,4.35); |
112 |
s = "LEG9"; |
113 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.1,0.75,3.25); |
114 |
s = "TPLT"; |
115 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),27.,22.8,0.5); |
116 |
s = "TOPC"; |
117 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),20.4,16.,0.5); |
118 |
s = "TH11"; |
119 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),2.8,3.2,0.5); |
120 |
s = "TH12"; |
121 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),2.8,5.3,0.5); |
122 |
s = "TH21"; |
123 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.7,3.,0.5); |
124 |
s = "TH22"; |
125 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),4.9,3.,0.5); |
126 |
s = "TOPT"; |
127 |
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); |
128 |
s = "TOHO"; |
129 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("N2 GAS"),0.,0.7,0.5); |
130 |
s = "MGSC"; |
131 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("IRON"),16.,15.4,0.12456); |
132 |
s = "MGSH"; |
133 |
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),9.8,8.,0.12456); |
134 |
|
135 |
|
136 |
|
137 |
|
138 |
GetVol("CARD")->AddNode(GetVol("CAR1"),1,new TGeoCombiTrans(-3.91289,-13.17068,0.1509358,GetRot("rot11"))); |
139 |
GetVol("CAR1")->AddNode(GetVol("VAN1"),1,new TGeoTranslation(-16.95761,0.,5.757782)); |
140 |
GetVol("CAR1")->AddNode(GetVol("VAN2"),1,new TGeoTranslation(-11.09758,0.,9.475582)); |
141 |
GetVol("CAR1")->AddNodeOverlap(GetVol("CR1P"),1,new TGeoTranslation(0.379E-02,0.,0.)); |
142 |
GetVol("CR1P")->AddNode(GetVol("VPN1"),1,new TGeoTranslation(-16.84998,0.,5.760911)); |
143 |
GetVol("CR1P")->AddNode(GetVol("VPN2"),1,new TGeoTranslation(-11.22606,0.,9.239112)); |
144 |
GetVol("CR1P")->AddNodeOverlap(GetVol("C1D1"),1,new TGeoTranslation(0.17055E-01,0.,0.)); |
145 |
GetVol("C1D1")->AddNode(GetVol("VSN1"),1,new TGeoTranslation(-16.36562,0.,5.775)); |
146 |
GetVol("C1D1")->AddNode(GetVol("VSN2"),1,new TGeoTranslation(-11.80423,0.,8.175)); |
147 |
GetVol("CARD")->AddNode(GetVol("CAR1"),2,new TGeoCombiTrans(3.91289,13.17068,0.1509358,GetRot("rot12"))); |
148 |
GetVol("CARD")->AddNode(GetVol("CAR2"),1,new TGeoCombiTrans(15.79685,-4.187448,0.9491571E-02,GetRot("rot14"))); |
149 |
GetVol("CAR2")->AddNode(GetVol("VAN1"),2,new TGeoTranslation(-14.7665,0.,5.757782)); |
150 |
GetVol("CAR2")->AddNode(GetVol("VAN2"),2,new TGeoTranslation(-8.906463,0.,9.475582)); |
151 |
GetVol("CAR2")->AddNodeOverlap(GetVol("CR2P"),1,new TGeoTranslation(0.8603846E-03,0.,0.)); |
152 |
GetVol("CR2P")->AddNode(GetVol("VPN1"),2,new TGeoTranslation(-14.66179,0.,5.760911)); |
153 |
GetVol("CR2P")->AddNode(GetVol("VPN2"),2,new TGeoTranslation(-9.037874,0.,9.239112)); |
154 |
GetVol("CR2P")->AddNodeOverlap(GetVol("C2D1"),1,new TGeoTranslation(0.3871730E-02,0.,0.)); |
155 |
GetVol("C2D1")->AddNode(GetVol("VSN1"),2,new TGeoTranslation(-14.19062,0.,5.775)); |
156 |
GetVol("C2D1")->AddNode(GetVol("VSN2"),2,new TGeoTranslation(-9.629226,0.,8.175)); |
157 |
GetVol("CARD")->AddNode(GetVol("CAR2"),2,new TGeoCombiTrans(-15.79685,4.187448,0.9491571E-02,GetRot("rot13"))); |
158 |
GetVol("CARD")->AddNodeOverlap(GetVol("LEGB"),1,new TGeoTranslation(-21.05,-18.525,-0.5)); //many |
159 |
GetVol("LEGB")->AddNode(GetVol("LEG1"),1,new TGeoCombiTrans(-1.5,-3.425,0.,GetRot("rot7"))); |
160 |
GetVol("LEGB")->AddNode(GetVol("LEG1"),2,new TGeoCombiTrans(-1.5,0.175,0.,GetRot("rot7"))); |
161 |
GetVol("LEGB")->AddNode(GetVol("LEG2"),1,new TGeoTranslation(-1.5,-1.625,0.)); |
162 |
GetVol("LEGB")->AddNode(GetVol("LEG3"),1,new TGeoTranslation(-0.55,2.275,11.525)); |
163 |
GetVol("LEGB")->AddNode(GetVol("LEG3"),2,new TGeoTranslation(-0.55,2.275,-11.525)); |
164 |
GetVol("LEGB")->AddNode(GetVol("LEG4"),1,new TGeoTranslation(-1.5,1.95,0.)); |
165 |
GetVol("LEGB")->AddNode(GetVol("LEG5"),1,new TGeoTranslation(1.025,1.,0.)); |
166 |
GetVol("LEGB")->AddNode(GetVol("LEG6"),1,new TGeoTranslation(-0.75,3.025,0.)); |
167 |
GetVol("LEGB")->AddNode(GetVol("LEG7"),1,new TGeoTranslation(0.65,-2.825,8.)); |
168 |
GetVol("LEGB")->AddNode(GetVol("LEG8"),1,new TGeoTranslation(0.65,-2.825,0.)); |
169 |
GetVol("LEGB")->AddNode(GetVol("LEG9"),1,new TGeoTranslation(0.65,-2.825,-8.)); |
170 |
GetVol("CARD")->AddNodeOverlap(GetVol("LEGB"),2,new TGeoCombiTrans(-21.05,18.525,-0.5,GetRot("rot10"))); //many |
171 |
GetVol("CARD")->AddNodeOverlap(GetVol("LEGB"),3,new TGeoCombiTrans(21.05,18.525,-0.5,GetRot("rot4"))); //many |
172 |
GetVol("CARD")->AddNodeOverlap(GetVol("LEGB"),4,new TGeoCombiTrans(21.05,-18.525,-0.5,GetRot("rot9")));//many |
173 |
GetVol("CARD")->AddNode(GetVol("TPLT"),1,new TGeoTranslation(0.,0.,11.85)); |
174 |
GetVol("TPLT")->AddNode(GetVol("TOPC"),1,gGeoIdentity); |
175 |
GetVol("TPLT")->AddNode(GetVol("TH11"),1,new TGeoTranslation(-23.6,14.4,0.)); |
176 |
GetVol("TPLT")->AddNode(GetVol("TH11"),2,new TGeoTranslation(-23.6,-14.4,0.)); |
177 |
GetVol("TPLT")->AddNode(GetVol("TH11"),3,new TGeoTranslation(23.6,14.4,0.)); |
178 |
GetVol("TPLT")->AddNode(GetVol("TH11"),4,new TGeoTranslation(23.6,-14.4,0.)); |
179 |
GetVol("TPLT")->AddNode(GetVol("TH12"),1,new TGeoTranslation(-23.6,5.5,0.)); |
180 |
GetVol("TPLT")->AddNode(GetVol("TH12"),2,new TGeoTranslation(-23.6,-5.5,0.)); |
181 |
GetVol("TPLT")->AddNode(GetVol("TH12"),3,new TGeoTranslation(23.6,5.5,0.)); |
182 |
GetVol("TPLT")->AddNode(GetVol("TH12"),4,new TGeoTranslation(23.6,-5.5,0.)); |
183 |
GetVol("TPLT")->AddNode(GetVol("TH21"),1,new TGeoTranslation(-17.2,19.4,0.)); |
184 |
GetVol("TPLT")->AddNode(GetVol("TH21"),2,new TGeoTranslation(-17.2,-19.4,0.)); |
185 |
GetVol("TPLT")->AddNode(GetVol("TH21"),3,new TGeoTranslation(17.2,19.4,0.)); |
186 |
GetVol("TPLT")->AddNode(GetVol("TH21"),4,new TGeoTranslation(17.2,-19.4,0.)); |
187 |
GetVol("TPLT")->AddNode(GetVol("TH22"),1,new TGeoTranslation(-10.2,19.4,0.)); |
188 |
GetVol("TPLT")->AddNode(GetVol("TH22"),2,new TGeoTranslation(-10.2,-19.4,0.)); |
189 |
GetVol("TPLT")->AddNode(GetVol("TH22"),3,new TGeoTranslation(10.2,19.4,0.)); |
190 |
GetVol("TPLT")->AddNode(GetVol("TH22"),4,new TGeoTranslation(10.2,-19.4,0.)); |
191 |
GetVol("TPLT")->AddNode(GetVol("TH22"),5,new TGeoTranslation(0.,19.4,0.)); |
192 |
GetVol("TPLT")->AddNode(GetVol("TH22"),6,new TGeoTranslation(0.,-19.4,0.)); |
193 |
GetVol("TPLT")->AddNode(GetVol("TOPT"),1,new TGeoTranslation(-25.875,-20.55,0.)); |
194 |
GetVol("TPLT")->AddNode(GetVol("TOPT"),2,new TGeoCombiTrans(-25.875,20.55,0.,GetRot("rot10"))); |
195 |
GetVol("TPLT")->AddNode(GetVol("TOPT"),3,new TGeoCombiTrans(25.875,20.55,0.,GetRot("rot4"))); |
196 |
GetVol("TPLT")->AddNode(GetVol("TOPT"),4,new TGeoCombiTrans(25.875,-20.55,0.,GetRot("rot9"))); |
197 |
GetVol("TPLT")->AddNode(GetVol("TOHO"),1,new TGeoTranslation(20.1,18.,0.)); |
198 |
GetVol("TPLT")->AddNode(GetVol("TOHO"),2,new TGeoTranslation(-20.1,18.,0.)); |
199 |
GetVol("TPLT")->AddNode(GetVol("TOHO"),3,new TGeoTranslation(-20.1,-18.,0.)); |
200 |
GetVol("TPLT")->AddNode(GetVol("TOHO"),4,new TGeoTranslation(20.1,-18.,0.)); |
201 |
GetVol("CARD")->AddNode(GetVol("MGSC"),1,new TGeoTranslation(0.,0.,-12.22544)); |
202 |
GetVol("MGSC")->AddNode(GetVol("MGSH"),1,gGeoIdentity); |
203 |
|
204 |
|
205 |
SetMotherProp(GetVol("CARD"),1,new TGeoTranslation(0.,0.,87.439)); |
206 |
|
207 |
}; |
208 |
|
209 |
void PamVMCDetCard::DefineCuts(){ |
210 |
|
211 |
TString s ="ALUMINIUM"; // default GPAMELA parameters |
212 |
if (GetMed(s) && !GetCC(s)) |
213 |
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
214 |
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
215 |
s ="N2 GAS"; |
216 |
if (GetMed(s) && !GetCC(s)) |
217 |
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
218 |
0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.)); |
219 |
s ="SCINTILLATOR";// default GPAMELA parameters |
220 |
if (GetMed(s) && !GetCC(s)) |
221 |
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
222 |
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
223 |
s = "PLASTIC";// default GPAMELA parameters |
224 |
if (GetMed(s) && !GetCC(s)) |
225 |
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
226 |
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
227 |
s = "IRON"; //default GPAMELA parameters |
228 |
if (GetMed(s) && !GetCC(s)) |
229 |
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
230 |
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
231 |
} |