1 |
nikolas |
1.1 |
#include "PamVMCDetND.h" |
2 |
|
|
#include <TGeoMaterial.h> |
3 |
|
|
ClassImp(PamVMCDetND) |
4 |
|
|
|
5 |
|
|
void PamVMCDetND::DefineGeometry(){ |
6 |
|
|
|
7 |
|
|
|
8 |
|
|
TGeoMaterial *m=0; |
9 |
|
|
TGeoMixture *x=0; |
10 |
|
|
TString s = "ALUMINIUM"; |
11 |
|
|
m = GetMat(s); |
12 |
|
|
if(!m){ |
13 |
|
|
m = new TGeoMaterial(s,26.98,13,2.7); |
14 |
|
|
m->SetUniqueID( 9); |
15 |
|
|
} |
16 |
|
|
|
17 |
|
|
s = "IRON"; |
18 |
|
|
m = GetMat(s); |
19 |
|
|
if(!m){ |
20 |
|
|
m = new TGeoMaterial(s,55.85,26,7.87); |
21 |
|
|
m->SetUniqueID( 10); |
22 |
|
|
} |
23 |
|
|
|
24 |
|
|
s = "N2GAS"; |
25 |
|
|
m = GetMat(s); |
26 |
|
|
if (!m){ |
27 |
|
|
m = new TGeoMaterial(s,14.01,7,0.1250000E-02); |
28 |
|
|
m->SetUniqueID( 19); |
29 |
|
|
} |
30 |
|
|
|
31 |
|
|
|
32 |
|
|
s = "CADMIUM"; |
33 |
|
|
m = GetMat(s); |
34 |
|
|
if(!m){ |
35 |
|
|
m = new TGeoMaterial(s,112.411,48,8.65); |
36 |
|
|
m->SetUniqueID( 31); |
37 |
|
|
} |
38 |
|
|
|
39 |
|
|
s = "He3"; |
40 |
|
|
m = GetMat(s); |
41 |
|
|
if(!m){ |
42 |
|
|
// m = new TGeoMaterial(s,3,2,0.1246000E-02); |
43 |
|
|
m = new TGeoMaterial(s,3,2,0.1246e-2); |
44 |
|
|
// m->SetState(TGeoMaterial::EGeoMaterialState(3)); |
45 |
|
|
//m->SetPressure(7*STP_pressure); |
46 |
|
|
m->SetUniqueID( 33); |
47 |
|
|
} |
48 |
|
|
|
49 |
|
|
s = "POLYETHYLENE"; |
50 |
|
|
x = (TGeoMixture*)GetMat(s); |
51 |
|
|
if(!x){ |
52 |
|
|
x = new TGeoMixture(s,2, 0.930000 ); |
53 |
|
|
x->SetUniqueID( 34); |
54 |
|
|
x->DefineElement(0,12.011,6,0.8562844); |
55 |
|
|
x->DefineElement(1,1.00794,1,0.1437155); |
56 |
|
|
} |
57 |
|
|
|
58 |
|
|
TGeoMedium *n =0; |
59 |
|
|
|
60 |
|
|
s="ALUMINIUM"; |
61 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,1,9,-1,1,40,1,100,0.5000000E-01,0.136283,0.5000000E-03); |
62 |
|
|
|
63 |
|
|
s = "N2 GAS"; |
64 |
|
|
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); |
65 |
|
|
|
66 |
|
|
s = "IRON"; |
67 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,27,10,-1,1,40,1,100,0.5000000E-01,0.2491200E-02,0.5000000E-03); |
68 |
|
|
|
69 |
|
|
s = "CADMIUM"; |
70 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,21,31,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.5000000E-03,0.5000000E-03); |
71 |
|
|
|
72 |
|
|
s = "He3"; |
73 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,22,33,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.1840000E-01,0.5000000E-03); |
74 |
|
|
|
75 |
|
|
s = "POLYETHYLENE"; |
76 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,23,34,-1,1,40,1,100,0.5000000E-01,0.2000000E-01,0.5000000E-03); |
77 |
|
|
|
78 |
|
|
TGeoVolume *v = 0; |
79 |
|
|
|
80 |
|
|
s = "NDBO"; |
81 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),27.5,30.,7.5); |
82 |
|
|
s = "NDBX"; |
83 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),21.45,21.45,7.); |
84 |
|
|
s = "NDCD"; |
85 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("CADMIUM"),21.25,21.25,6.9); |
86 |
|
|
s = "NDBI"; |
87 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,21.2,6.875); |
88 |
|
|
s = "NDTU"; |
89 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("IRON"),0.,0.925,10.); // orig (s,GetMed("IRON"),0.92,0.925,10) |
90 |
|
|
s = "NDTI"; |
91 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("He3"),0.,0.92,9.99); // orig (s,GetMed("He3"),0,0.92,10) |
92 |
|
|
s = "NDPB"; |
93 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("POLYETHYLENE"),21.2,21.2,1.); |
94 |
|
|
s = "NDCO"; |
95 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),27.5,30.,0.5); |
96 |
|
|
s = "NDBS"; |
97 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),15,4.275,7.); |
98 |
|
|
s = "NDSS"; |
99 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),14.8,4.075,6.8); |
100 |
|
|
s = "NDCI"; |
101 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,11.3,0.325); |
102 |
|
|
s = "NDCM"; |
103 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,4.25,0.325); |
104 |
|
|
s = "NDCE"; |
105 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),14.6,2.875,0.325); |
106 |
|
|
s = "NDSI"; |
107 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.,7.26,0.325); |
108 |
|
|
s = "NDSM"; |
109 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.,5.8,0.325); |
110 |
|
|
s = "NDSE"; |
111 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),4.2,1.05,0.325); |
112 |
|
|
|
113 |
|
|
|
114 |
|
|
GetVol("NDBO")->AddNode(GetVol("NDBX"),1,new TGeoTranslation(0.,0.,-0.5)); |
115 |
|
|
GetVol("NDBX")->AddNode(GetVol("NDCD"),1,new TGeoTranslation(0.,0.,0.1)); |
116 |
|
|
GetVol("NDCD")->AddNode(GetVol("NDBI"),1,new TGeoTranslation(0.,0.,0.25E-01)); |
117 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),1,new TGeoCombiTrans(-19.975,0.,0.5E-01,GetRot("rot2")));//FLUKA off |
118 |
|
|
GetVol("NDTU")->AddNode(GetVol("NDTI"),1,gGeoIdentity);//FLUKA off |
119 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),2,new TGeoCombiTrans(-17.625,0.,0.5E-01,GetRot("rot2"))); |
120 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),3,new TGeoCombiTrans(-15.275,0.,0.5E-01,GetRot("rot2"))); |
121 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),4,new TGeoCombiTrans(-12.925,0.,0.5E-01,GetRot("rot2"))); |
122 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),5,new TGeoCombiTrans(-10.575,0.,0.5E-01,GetRot("rot2"))); |
123 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),6,new TGeoCombiTrans(-8.225,0.,0.5E-01,GetRot("rot2"))); |
124 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),7,new TGeoCombiTrans(-5.875,0.,0.5E-01,GetRot("rot2"))); |
125 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),8,new TGeoCombiTrans(-3.525,0.,0.5E-01,GetRot("rot2"))); |
126 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),9,new TGeoCombiTrans(-1.175,0.,0.5E-01,GetRot("rot2"))); |
127 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),10,new TGeoCombiTrans(1.175,0.,0.5E-01,GetRot("rot2"))); |
128 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),11,new TGeoCombiTrans(3.525,0.,0.5E-01,GetRot("rot2"))); |
129 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),12,new TGeoCombiTrans(5.875,0.,0.5E-01,GetRot("rot2"))); |
130 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),13,new TGeoCombiTrans(8.225,0.,0.5E-01,GetRot("rot2"))); |
131 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),14,new TGeoCombiTrans(10.575,0.,0.5E-01,GetRot("rot2"))); |
132 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),15,new TGeoCombiTrans(12.925,0.,0.5E-01,GetRot("rot2"))); |
133 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),16,new TGeoCombiTrans(15.275,0.,0.5E-01,GetRot("rot2"))); |
134 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),17,new TGeoCombiTrans(17.625,0.,0.5E-01,GetRot("rot2"))); |
135 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),18,new TGeoCombiTrans(19.975,0.,0.5E-01,GetRot("rot2"))); |
136 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),19,new TGeoCombiTrans(-19.975,0.,3.9,GetRot("rot2"))); |
137 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),20,new TGeoCombiTrans(-17.625,0.,3.9,GetRot("rot2"))); |
138 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),21,new TGeoCombiTrans(-15.275,0.,3.9,GetRot("rot2"))); |
139 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),22,new TGeoCombiTrans(-12.925,0.,3.9,GetRot("rot2"))); |
140 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),23,new TGeoCombiTrans(-10.575,0.,3.9,GetRot("rot2"))); |
141 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),24,new TGeoCombiTrans(-8.225,0.,3.9,GetRot("rot2"))); |
142 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),25,new TGeoCombiTrans(-5.875,0.,3.9,GetRot("rot2"))); |
143 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),26,new TGeoCombiTrans(-3.525,0.,3.9,GetRot("rot2"))); |
144 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),27,new TGeoCombiTrans(-1.175,0.,3.9,GetRot("rot2"))); |
145 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),28,new TGeoCombiTrans(1.175,0.,3.9,GetRot("rot2"))); |
146 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),29,new TGeoCombiTrans(3.525,0.,3.9,GetRot("rot2"))); |
147 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),30,new TGeoCombiTrans(5.875,0.,3.9,GetRot("rot2"))); |
148 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),31,new TGeoCombiTrans(8.225,0.,3.9,GetRot("rot2"))); |
149 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),32,new TGeoCombiTrans(10.575,0.,3.9,GetRot("rot2"))); |
150 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),33,new TGeoCombiTrans(12.925,0.,3.9,GetRot("rot2"))); |
151 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),34,new TGeoCombiTrans(15.275,0.,3.9,GetRot("rot2"))); |
152 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),35,new TGeoCombiTrans(17.625,0.,3.9,GetRot("rot2"))); |
153 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDTU"),36,new TGeoCombiTrans(19.975,0.,3.9,GetRot("rot2"))); |
154 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDPB"),1,new TGeoTranslation(0.,0.,-5.875)); |
155 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDPB"),2,new TGeoTranslation(0.,0.,-3.875)); |
156 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDPB"),3,new TGeoTranslation(0.,0.,-1.875)); |
157 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDPB"),4,new TGeoTranslation(0.,0.,1.975)); |
158 |
|
|
GetVol("NDBI")->AddNode(GetVol("NDPB"),5,new TGeoTranslation(0.,0.,5.825)); |
159 |
|
|
GetVol("NDBO")->AddNode(GetVol("NDCO"),1,new TGeoTranslation(0.,0.,7.)); |
160 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDCM"),1,new TGeoTranslation(0.,-16.95,0.175)); |
161 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDCM"),2,new TGeoTranslation(0.,16.95,0.175)); |
162 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDCI"),1,new TGeoTranslation(0.,0.,0.175)); |
163 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDCE"),1,new TGeoTranslation(0.,-25.475,0.175)); |
164 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDCE"),2,new TGeoTranslation(0.,25.475,0.175)); |
165 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSM"),1,new TGeoTranslation(-23.6,-14.6,0.175)); |
166 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSM"),2,new TGeoTranslation(23.6,-14.6,0.175)); |
167 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSM"),3,new TGeoTranslation(-23.6,14.6,0.175)); |
168 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSM"),4,new TGeoTranslation(23.6,14.6,0.175)); |
169 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSI"),1,new TGeoTranslation(-23.6,0.,0.175)); |
170 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSI"),2,new TGeoTranslation(23.6,0.,0.175)); |
171 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSE"),1,new TGeoTranslation(-20.4,-23.65,0.175)); |
172 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSE"),2,new TGeoTranslation(20.4,-23.65,0.175)); |
173 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSE"),3,new TGeoTranslation(-20.4,23.65,0.175)); |
174 |
|
|
GetVol("NDCO")->AddNode(GetVol("NDSE"),4,new TGeoTranslation(20.4,23.65,0.175)); |
175 |
|
|
GetVol("NDBO")->AddNode(GetVol("NDBS"),1,new TGeoTranslation(0.,-25.725,-0.5)); |
176 |
|
|
GetVol("NDBS")->AddNode(GetVol("NDSS"),1,gGeoIdentity); |
177 |
|
|
GetVol("NDBO")->AddNode(GetVol("NDBS"),2,new TGeoTranslation(0.,25.725,-0.5)); |
178 |
|
|
|
179 |
|
|
|
180 |
|
|
SetMotherProp(GetVol("NDBO"),1,new TGeoTranslation(0.,0.,-6.289)); |
181 |
|
|
|
182 |
|
|
}; |
183 |
|
|
|
184 |
|
|
void PamVMCDetND::DefineCuts(){ |
185 |
|
|
|
186 |
|
|
TString s ="ALUMINIUM"; // default GPAMELA parameters |
187 |
|
|
if (GetMed(s) && !GetCC(s)) |
188 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
189 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
190 |
|
|
s ="N2 GAS"; |
191 |
|
|
if (GetMed(s) && !GetCC(s)) |
192 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
193 |
|
|
0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.)); |
194 |
|
|
s = "IRON"; //default GPAMELA parameters |
195 |
|
|
if (GetMed(s) && !GetCC(s)) |
196 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
197 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
198 |
|
|
s = "CADMIUM"; //default GPAMELA parameters |
199 |
|
|
if (GetMed(s) && !GetCC(s)) |
200 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
201 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
202 |
|
|
s = "He3"; |
203 |
|
|
if (GetMed(s) && !GetCC(s)) //default GPAMELA parameters |
204 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
205 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
206 |
|
|
s = "POLYETHYLENE"; //default GPAMELA parameters |
207 |
|
|
if (GetMed(s) && !GetCC(s)) |
208 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
209 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
210 |
|
|
} |
211 |
|
|
|