1 |
nikolas |
1.1 |
#include "PamVMCDetTrk.h" |
2 |
|
|
|
3 |
|
|
ClassImp(PamVMCDetTrk) |
4 |
|
|
|
5 |
|
|
void PamVMCDetTrk::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 = "SILICON TR"; |
40 |
|
|
m= GetMat(s); |
41 |
|
|
if(!m){ |
42 |
|
|
m = new TGeoMaterial(s,28.09,14,2.33); |
43 |
|
|
m->SetUniqueID( 20); |
44 |
|
|
} |
45 |
|
|
|
46 |
|
|
s = "G10C"; |
47 |
|
|
x = (TGeoMixture*)GetMat(s); |
48 |
|
|
if(!x){ |
49 |
|
|
x = new TGeoMixture(s,4, 1.70000 ); |
50 |
|
|
x->SetUniqueID( 27); |
51 |
|
|
x->DefineElement(0,28.09,14,0.53); |
52 |
|
|
x->DefineElement(1,16,8,0.3); |
53 |
|
|
x->DefineElement(2,12.01,6,0.15); |
54 |
|
|
x->DefineElement(3,1.01,1,0.2000000E-01); |
55 |
|
|
} |
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 = "IRONTR"; |
67 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,5,10,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.8000000E-01,0.5000000E-03); |
68 |
|
|
|
69 |
|
|
s = "CARBON FIBER"; |
70 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,9,17,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.5000000E-02,0.5000000E-03); //CARBON FIBER MADE FROM SCINTILLATOR??? |
71 |
|
|
|
72 |
|
|
s = "SITRACKER"; |
73 |
|
|
n = (GetMed(s))?GetMed(s): new TGeoMedium(s,12,20,1,1,40,1,0.1000000E-02,0.5000000E-01,0.5000000E-04,0.1569056E-01); |
74 |
|
|
|
75 |
|
|
s = "G10C"; |
76 |
|
|
n = (GetMed(s))?GetMed(s):new TGeoMedium(s,17,27,-1,1,40,1,100,0.5000000E-01,0.1200000E-02,0.5000000E-03); |
77 |
|
|
|
78 |
|
|
TGeoVolume *v = 0; |
79 |
|
|
|
80 |
|
|
s = "SPEB"; |
81 |
|
|
v = (GetVol(s))?GetVol(s):gGeoManager->MakeBox(s,GetMed("N2 GAS"),15.,14.4,22.615); |
82 |
|
|
s = "MGFR"; |
83 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),15.,14.4,4.45); |
84 |
|
|
s = "MGPL"; |
85 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("IRONTR"),12.,11.4,4.); |
86 |
|
|
s = "MGPI"; |
87 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),8.07,6.57,4.); |
88 |
|
|
s = "TRPB"; |
89 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),10.49,12.15,0.365); |
90 |
|
|
s = "TPAS"; |
91 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),8.2,9.9,0.365); |
92 |
|
|
s = "TPAI"; |
93 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),8.144,1.25,0.5E-01); |
94 |
|
|
s = "TRSL"; |
95 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("SITRACKER"),2.6665,3.5,0.15E-01); |
96 |
|
|
s = "THBP"; |
97 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("G10C"),2.6665,2.75,0.15E-01); |
98 |
|
|
s = "TSPA"; |
99 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("SITRACKER"),2.596,3.413,0.15E-01); |
100 |
|
|
s = "TRCP"; |
101 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("CARBON FIBER"),0.35E-01,9.9,0.25); |
102 |
|
|
s = "TBAL"; |
103 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),1.49,2.25,0.365); |
104 |
|
|
s = "MGPA"; |
105 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),8.1,6.6,4.); |
106 |
|
|
s = "TPGA"; |
107 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),10.29,10.65,0.4E-01); |
108 |
|
|
s = "TPGI"; |
109 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),8.07,6.57,0.15E-01); |
110 |
|
|
s = "TPGU"; |
111 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),10.49,12.15,0.1E-01); |
112 |
|
|
s = "TPGD"; |
113 |
|
|
v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),12.,11.4,0.5E-02); |
114 |
|
|
|
115 |
|
|
GetVol("SPEB")->AddNode(GetVol("MGFR"),1,new TGeoTranslation(0.,0.,18.165)); |
116 |
|
|
GetVol("MGFR")->AddNode(GetVol("TPGD"),1,new TGeoTranslation(0.,0.,-4.445)); |
117 |
|
|
GetVol("MGFR")->AddNode(GetVol("TPGI"),1,new TGeoTranslation(0.,0.,-4.425)); |
118 |
|
|
GetVol("MGFR")->AddNode(GetVol("MGPL"),1,new TGeoTranslation(0.,0.,-0.41)); |
119 |
|
|
GetVol("MGPL")->AddNode(GetVol("MGPA"),1,gGeoIdentity); |
120 |
|
|
GetVol("MGPA")->AddNode(GetVol("MGPI"),1,gGeoIdentity); |
121 |
|
|
GetVol("MGFR")->AddNode(GetVol("TPGI"),2,new TGeoTranslation(0.,0.,3.605)); |
122 |
|
|
GetVol("MGFR")->AddNode(GetVol("TPGA"),1,new TGeoTranslation(0.,-0.75,3.66)); |
123 |
|
|
GetVol("MGFR")->AddNode(GetVol("TRPB"),1,new TGeoTranslation(0.,-2.25,4.065)); |
124 |
|
|
GetVol("TRPB")->AddNode(GetVol("TPAS"),4,new TGeoTranslation(0.,-0.75,0.)); |
125 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRCP"),1,new TGeoTranslation(-8.1075,0.,0.15E-01)); |
126 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRCP"),2,new TGeoTranslation(-2.7025,0.,0.15E-01)); |
127 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRCP"),3,new TGeoTranslation(2.7025,0.,0.15E-01)); |
128 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRCP"),4,new TGeoTranslation(8.1075,0.,0.15E-01)); |
129 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),1,new TGeoTranslation(-5.405,6.252,0.15E-01)); |
130 |
|
|
GetVol("TRSL")->AddNode(GetVol("TSPA"),1,gGeoIdentity); |
131 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),2,new TGeoTranslation(0.,6.252,0.15E-01)); |
132 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),3,new TGeoTranslation(5.405,6.252,0.15E-01)); |
133 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),4,new TGeoTranslation(-5.405,-0.7495,0.15E-01)); |
134 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),5,new TGeoTranslation(0.,-0.7495,0.15E-01)); |
135 |
|
|
GetVol("TPAS")->AddNode(GetVol("TRSL"),6,new TGeoTranslation(5.405,-0.7495,0.15E-01)); |
136 |
|
|
GetVol("TPAS")->AddNode(GetVol("THBP"),1,new TGeoTranslation(-5.405,-7.0015,0.15E-01)); |
137 |
|
|
GetVol("TPAS")->AddNode(GetVol("THBP"),2,new TGeoTranslation(0.,-7.0015,0.15E-01)); |
138 |
|
|
GetVol("TPAS")->AddNode(GetVol("THBP"),3,new TGeoTranslation(5.405,-7.0015,0.15E-01)); |
139 |
|
|
GetVol("TPAS")->AddNode(GetVol("TPAI"),4,new TGeoTranslation(0.,-8.65,0.315)); |
140 |
|
|
GetVol("MGFR")->AddNode(GetVol("TPGU"),2,new TGeoTranslation(0.,-2.25,4.44)); |
141 |
|
|
|
142 |
|
|
GetVol("SPEB")->AddNode(GetVol("MGFR"),2,new TGeoTranslation(0.,0.,9.265)); |
143 |
|
|
GetVol("SPEB")->AddNode(GetVol("MGFR"),3,new TGeoTranslation(0.,0.,0.365)); |
144 |
|
|
GetVol("SPEB")->AddNode(GetVol("MGFR"),4,new TGeoTranslation(0.,0.,-8.535)); |
145 |
|
|
GetVol("SPEB")->AddNode(GetVol("MGFR"),5,new TGeoTranslation(0.,0.,-17.435)); |
146 |
|
|
|
147 |
|
|
GetVol("SPEB")->AddNode(GetVol("TRPB"),2,new TGeoCombiTrans(0.,2.25,-22.25,GetRot("rot10"))); |
148 |
|
|
GetVol("SPEB")->AddNode(GetVol("TBAL"),1,new TGeoTranslation(5.4,-12.15,-22.25)); |
149 |
|
|
GetVol("SPEB")->AddNode(GetVol("TBAL"),2,new TGeoTranslation(-5.4,-12.15,-22.25)); |
150 |
|
|
|
151 |
|
|
|
152 |
|
|
SetMotherProp(GetVol("SPEB"),1,new TGeoTranslation(0.,0.,49.274)); |
153 |
|
|
}; |
154 |
|
|
|
155 |
|
|
void PamVMCDetTrk::DefineCuts(){ |
156 |
|
|
|
157 |
|
|
TString s ="ALUMINIUM"; // default GPAMELA parameters |
158 |
|
|
if (GetMed(s) && !GetCC(s)) |
159 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
160 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
161 |
|
|
s ="N2 GAS"; |
162 |
|
|
if (GetMed(s) && !GetCC(s)) |
163 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
164 |
|
|
0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.)); |
165 |
|
|
s = "IRONTR"; // default GPAMELA parameters |
166 |
|
|
if (GetMed(s) && !GetCC(s)) |
167 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
168 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
169 |
|
|
s = "CARBON FIBER"; //default GPAMELA parameters |
170 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, |
171 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); |
172 |
|
|
s = "SITRACKER"; |
173 |
|
|
if (GetMed(s) && !GetCC(s)) |
174 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.00001, 0.00001, 0.0001, 0.0001, 0.00001, 0.00001, |
175 |
|
|
0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 2.)); |
176 |
|
|
|
177 |
|
|
s = "G10C"; |
178 |
|
|
if (GetMed(s) && !GetCC(s)) |
179 |
|
|
SetCC(s, new pCutControl(GetMedID(s), 0.00001, 0.00001, 0.00001, 0.00001, 0.001, 0.001, 0.01, 0.00001, |
180 |
|
|
0.00001, 0.01, 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 2.)); |
181 |
|
|
} |
182 |
|
|
|