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

Annotation of /PamVMC/ac/src/PamVMCDetCard.cxx_orig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations) (download)
Fri Jun 12 18:39:02 2009 UTC (15 years, 10 months ago) by pam-rm2
Branch: MAIN
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 nikolas 1.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     }

  ViewVC Help
Powered by ViewVC 1.1.23