4 #include "TClonesArray.h"
5 #include "TLorentzVector.h"
10 #include "TGeoCompositeShape.h"
11 #include "TGeoMatrix.h"
12 #include "TGeoManager.h"
13 #include "TVirtualMC.h"
15 #include "FairVolume.h"
16 #include "FairGeoMedia.h"
17 #include "FairGeoInterface.h"
18 #include "FairGeoLoader.h"
19 #include "FairGeoBuilder.h"
20 #include "FairRuntimeDb.h"
22 #include "FairModule.h"
35 vname = vname.Strip();
36 TGeoVolume* vcave =
gGeoManager->FindVolumeFast(vname.Data());
39 TGeoVolume* mdtmf =
new TGeoVolumeAssembly(
"MdtMuonFilter");
40 TGeoVolume* mdtmfl00 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer00");
41 TGeoVolume* mdtmfl01 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer01");
42 TGeoVolume* mdtmfl02 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer02");
43 TGeoVolume* mdtmfl03 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer03");
44 TGeoVolume* mdtmfl04 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer04");
45 TGeoVolume* mdtmfl05 =
new TGeoVolumeAssembly(
"MdtMuonFilterLayer05");
49 Text_t longbuffer[250];
56 TGeoRotation tRot, tRotSlice;
59 FairGeoLoader*
geoLoad = FairGeoLoader::Instance();
60 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
61 FairGeoMedia *
Media = geoFace->getMedia();
62 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
63 FairGeoMedium *medmdtArCO2 = Media->getMedium(
"MDTMixture");
64 geobuild->createMedium(medmdtArCO2);
74 new TGeoBBox(
"mfhboxpmp3",((
Double_t)PndMdt_PUMP_H)/10.0,10.0+((
Double_t)PndMdt_SVThickness)/10.0,((
Double_t)PndMdt_PUMP_V)/10.0,0);
75 new TGeoBBox(
"mfhboxpmp4",((
Double_t)PndMdt_PUMP_H)/10.0,10.0+((
Double_t)PndMdt_SVThickness)/10.0,((
Double_t)PndMdt_PUMP_V)/10.0,0);
76 new TGeoBBox(
"mfhboxpmp5",((
Double_t)PndMdt_PUMP_H)/10.0,10.0+((
Double_t)PndMdt_SVThickness)/10.0,((
Double_t)PndMdt_PUMP_V)/10.0,0);
77 new TGeoBBox(
"mfhboxpmp6",((
Double_t)PndMdt_PUMP_H)/10.0,10.0+((
Double_t)PndMdt_SVThickness)/10.0,((
Double_t)PndMdt_PUMP_V)/10.0,0);
78 new TGeoBBox(
"mfhboxpmp7",((
Double_t)PndMdt_PUMP_H)/10.0,10.0+((
Double_t)PndMdt_SVThickness)/10.0,((
Double_t)PndMdt_PUMP_V)/10.0,0);
85 TGeoRotation* mftgr0 =
new TGeoRotation(mftgrl);
86 mftgr0->SetName(
"mftgr0");
87 mftgr0->RegisterYourself();
89 TGeoRotation* mftgr1 =
new TGeoRotation(mftgrl);
90 mftgr1->SetName(
"mftgr1");
91 mftgr1->RegisterYourself();
93 TGeoRotation* mftgr2 =
new TGeoRotation(mftgrl);
94 mftgr2->SetName(
"mftgr2");
95 mftgr2->RegisterYourself();
97 TGeoRotation* mftgr3 =
new TGeoRotation(mftgrl);
98 mftgr3->SetName(
"mftgr3");
99 mftgr3->RegisterYourself();
100 mftgrl.RotateY(45.0);
101 TGeoRotation* mftgr4 =
new TGeoRotation(mftgrl);
102 mftgr4->SetName(
"mftgr4");
103 mftgr4->RegisterYourself();
104 mftgrl.RotateY(45.0);
105 TGeoRotation* mftgr5 =
new TGeoRotation(mftgrl);
106 mftgr5->SetName(
"mftgr5");
107 mftgr5->RegisterYourself();
108 mftgrl.RotateY(45.0);
109 TGeoRotation* mftgr6 =
new TGeoRotation(mftgrl);
110 mftgr6->SetName(
"mftgr6");
111 mftgr6->RegisterYourself();
112 mftgrl.RotateY(45.0);
113 TGeoRotation* mftgr7 =
new TGeoRotation(mftgrl);
114 mftgr7->SetName(
"mftgr7");
115 mftgr7->RegisterYourself();
123 TGeoTranslation* mftgt =
new TGeoTranslation(0.0,0.0,my/(-10.0));
124 mftgt->SetName(
"mftgt");
125 mftgt->RegisterYourself();
126 new TGeoTrd2(
"mftrd",dx1/10.0,dx2/10.0,dy1/10.0,dy2/10.0,dz/10.0);
128 for(
int i=0;
i<6;
i++)
151 for(
int j=0; j<8; j++)
153 sprintf(buffer,
"mftgcs%i",(8*
i)+j);
154 sprintf(longbuffer,
"mftrd:mftgt-mfhbox%i:mftgr%i-mfhboxpmp%i:mftgr%i",
i+2,j,
i+2,j);
155 TGeoCompositeShape* mftgcs =
new TGeoCompositeShape(buffer,longbuffer);
157 sprintf(buffer,
"MDT%is%il%ib%iw%i", 3, j,
i, 0, 0);
158 TGeoVolume* volume =
new TGeoVolume(buffer,mftgcs,
gGeoManager->GetMedium(
"MDTMixture"));
159 AddSensitiveVolume(volume);
160 volume->SetLineColor(1);
165 mdtmfl00->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
168 mdtmfl01->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
171 mdtmfl02->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
174 mdtmfl03->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
177 mdtmfl04->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
180 mdtmfl05->AddNode(volume,300+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
187 mdtmf->AddNode(mdtmfl00,1);
188 mdtmf->AddNode(mdtmfl01,1);
189 mdtmf->AddNode(mdtmfl02,1);
190 mdtmf->AddNode(mdtmfl03,1);
191 mdtmf->AddNode(mdtmfl04,1);
192 mdtmf->AddNode(mdtmfl05,1);
193 vcave->AddNode(mdtmf,1);
#define PndMdt_SVThickness
TGeoManager * gGeoManager
FairGeoBuilder * geobuild
FairGeoInterface * geoFace