4 #include "TClonesArray.h"
5 #include "TLorentzVector.h"
12 #include "TGeoCompositeShape.h"
13 #include "TGeoMatrix.h"
14 #include "TGeoManager.h"
15 #include "TVirtualMC.h"
17 #include "FairVolume.h"
18 #include "FairGeoMedia.h"
19 #include "FairGeoInterface.h"
20 #include "FairGeoLoader.h"
21 #include "FairGeoBuilder.h"
22 #include "FairRuntimeDb.h"
24 #include "FairModule.h"
37 vname = vname.Strip();
38 TGeoVolume* vcave =
gGeoManager->FindVolumeFast(vname.Data());
41 TGeoVolume* mdtmfi =
new TGeoVolumeAssembly(
"MdtMFIron");
45 Text_t longbuffer[250];
52 TGeoRotation tRot, tRotSlice;
55 FairGeoLoader*
geoLoad = FairGeoLoader::Instance();
56 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
57 FairGeoMedia *
Media = geoFace->getMedia();
58 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
59 FairGeoMedium *medIron = Media->getMedium(
"iron");
60 geobuild->createMedium(medIron);
69 new TGeoBBox(
"mfihboxpmp3",((
Double_t)PndMdtMFIron_PUMP_H)/10.0,10.0+((
Double_t)PndMdtMFIron_Th2)/10.0,((
Double_t)PndMdtMFIron_PUMP_V)/10.0,0);
70 new TGeoBBox(
"mfihboxpmp4",((
Double_t)PndMdtMFIron_PUMP_H)/10.0,10.0+((
Double_t)PndMdtMFIron_Th2)/10.0,((
Double_t)PndMdtMFIron_PUMP_V)/10.0,0);
71 new TGeoBBox(
"mfihboxpmp5",((
Double_t)PndMdtMFIron_PUMP_H)/10.0,10.0+((
Double_t)PndMdtMFIron_Th2)/10.0,((
Double_t)PndMdtMFIron_PUMP_V)/10.0,0);
72 new TGeoBBox(
"mfihboxpmp6",((
Double_t)PndMdtMFIron_PUMP_H)/10.0,10.0+((
Double_t)PndMdtMFIron_Th2)/10.0,((
Double_t)PndMdtMFIron_PUMP_V)/10.0,0);
80 TGeoRotation* mfitgr0 =
new TGeoRotation(mfitgrl);
81 mfitgr0->SetName(
"mfitgr0");
82 mfitgr0->RegisterYourself();
83 mfitgrl.RotateY(45.0);
84 TGeoRotation* mfitgr1 =
new TGeoRotation(mfitgrl);
85 mfitgr1->SetName(
"mfitgr1");
86 mfitgr1->RegisterYourself();
87 mfitgrl.RotateY(45.0);
88 TGeoRotation* mfitgr2 =
new TGeoRotation(mfitgrl);
89 mfitgr2->SetName(
"mfitgr2");
90 mfitgr2->RegisterYourself();
91 mfitgrl.RotateY(45.0);
92 TGeoRotation* mfitgr3 =
new TGeoRotation(mfitgrl);
93 mfitgr3->SetName(
"mfitgr3");
94 mfitgr3->RegisterYourself();
95 mfitgrl.RotateY(45.0);
96 TGeoRotation* mfitgr4 =
new TGeoRotation(mfitgrl);
97 mfitgr4->SetName(
"mfitgr4");
98 mfitgr4->RegisterYourself();
99 mfitgrl.RotateY(45.0);
100 TGeoRotation* mfitgr5 =
new TGeoRotation(mfitgrl);
101 mfitgr5->SetName(
"mfitgr5");
102 mfitgr5->RegisterYourself();
103 mfitgrl.RotateY(45.0);
104 TGeoRotation* mfitgr6 =
new TGeoRotation(mfitgrl);
105 mfitgr6->SetName(
"mfitgr6");
106 mfitgr6->RegisterYourself();
107 mfitgrl.RotateY(45.0);
108 TGeoRotation* mfitgr7 =
new TGeoRotation(mfitgrl);
109 mfitgr7->SetName(
"mfitgr7");
110 mfitgr7->RegisterYourself();
118 TGeoTranslation* mfitgt =
new TGeoTranslation(0.0,0.0,my/(-10.0));
119 mfitgt->SetName(
"mfitgt");
120 mfitgt->RegisterYourself();
121 new TGeoTrd2(
"mfitrd",dx1/10.0,dx2/10.0,dy1/10.0,dy2/10.0,dz/10.0);
123 for(
int i=0;
i<5;
i++)
143 for(
int j=0; j<8; j++)
145 sprintf(buffer,
"mfitgcs%i",(8*
i)+j);
146 sprintf(longbuffer,
"mfitrd:mfitgt-mfihbox%i:mfitgr%i-mfihboxpmp%i:mfitgr%i",
i+2,j,
i+2,j);
147 TGeoCompositeShape* mfitgcs =
new TGeoCompositeShape(buffer,longbuffer);
148 sprintf(buffer,
"mag%i",600+8*
i+j);
149 TGeoVolume* volume =
new TGeoVolume(buffer,mfitgcs,
gGeoManager->GetMedium(
"iron"));
150 volume->SetLineColor(3);
151 mdtmfi->AddNode(volume,600+8*
i+j,
new TGeoCombiTrans(0.0,0.0,mz0/10.0,
new TGeoRotation(tRot)));
156 vcave->AddNode(mdtmfi,1);
#define PndMdtMFIron_H03_V
TGeoManager * gGeoManager
#define PndMdtMFIron_H05_H
#define PndMdtMFIron_PUMP_V
#define PndMdtMFIron_PUMP_H
#define PndMdtMFIron_H06_V
FairGeoBuilder * geobuild
#define PndMdtMFIron_L201
#define PndMdtMFIron_H02_V
#define PndMdtMFIron_H03_H
#define PndMdtMFIron_L202
#define PndMdtMFIron_Height
#define PndMdtMFIron_L204
#define PndMdtMFIron_H05_V
#define PndMdtMFIron_H04_V
#define PndMdtMFIron_L200
#define PndMdtMFIron_L203
FairGeoInterface * geoFace
#define PndMdtMFIron_H02_H
#define PndMdtMFIron_H06_H
#define PndMdtMFIron_H04_H