/[PAMELA software]/PamVMC/nd/src/PamVMCDetND.cxx
ViewVC logotype

Contents of /PamVMC/nd/src/PamVMCDetND.cxx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations) (download)
Fri Jun 12 18:39:25 2009 UTC (15 years, 5 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 "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

  ViewVC Help
Powered by ViewVC 1.1.23