1 #include "TGeoManager.h"
9 gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
12 gSystem->Load(
"libGeoBase");
13 gSystem->Load(
"libParBase");
14 gSystem->Load(
"libBase");
15 gSystem->Load(
"libPndData");
16 gSystem->Load(
"libPassive");
19 FairGeoLoader*
geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
20 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
21 geoFace->setMediaFile(
"../../../../geometry/media_pnd.geo");
25 FairGeoMedia *
Media = geoFace->getMedia();
26 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
28 FairGeoMedium *medGe = Media->getMedium(
"germanium");
29 Int_t nmedGe=geobuild->createMedium(medGe);
32 FairGeoMedium *medcap = Media->getMedium(
"HYPaluminium");
33 Int_t nmedcap=geobuild->createMedium(medcap);
35 TGeoMedium *Ge =
gGeoManager->GetMedium(
"germanium");
38 TGeoMedium *Al_sol =
gGeoManager->GetMedium(
"HYPaluminium");
41 TGeoManager *
geom = (TGeoManager*)gROOT->FindObject(
"FAIRGeom");
42 TGeoVolume *
top =
new TGeoVolumeAssembly(
"hpGe");
43 TGeoVolume *strange =
new TGeoVolumeAssembly(
"strange");
45 cout<<
" geom "<<geom<<endl;
46 geom->SetTopVolume(top);
54 Double_t CrystalFrontPgonInnerRadius;
58 TGeoTube *CrystalTube;
59 TGeoPgon *CrystalPgon;
61 TGeoTube *CrystalInnerTube;
62 TGeoTranslation *CrystalInnerTubeZTranslation;
63 TGeoTorus *CrystalInnerTubeTorus;
64 TGeoTranslation *CrystalInnerTubeTorusZTranslation;
65 TGeoTube *CrystalInnerTubeMiniExtraTube;
66 TGeoTranslation *CrystalInnerTubeMiniExtraTubeZTranslation;
68 TGeoTube *CrystalTopRoundingTube;
69 TGeoTranslation *CrystalTopRoundingTubeZTranslation;
70 TGeoTorus *CrystalTopRoundingTorus;
71 TGeoCompositeShape *CrystalTopRoundingTooling;
72 TGeoTranslation *CrystalTopRoundingToolingZTranslation;
75 TGeoTube *CrystalGuardRingTube;
76 TGeoTranslation *CrystalGuardRingTubeZTranslation;
77 TGeoTorus *CrystalGuardRingTorus;
78 TGeoTorus *CrystalGuardRingTorusInner;
79 TGeoTranslation *CrystalGuardRingTorusZTranslation;
80 TGeoTube *CrystalGuardRingMiniExtraTube;
81 TGeoTranslation *CrystalGuardRingMiniExtraTubeZTranslation;
91 CapsuleThickness = 0.08;
92 VacuumThickness = 0.08;
94 CrystalFrontPgonInnerRadius = 2.9485;
97 CrystalTube =
new TGeoTube(
"CrystalTube",0,3.5,CrystalLenght/2);
98 CrystalPgon =
new TGeoPgon(
"CrystalPgon",0.,360.,6,2);
99 CrystalPgon->DefineSection(0,-CrystalLenght/2,CrystalFrontPgonInnerRadius,3.8);
100 CrystalPgon->DefineSection(1,8-CrystalLenght/2,CrystalFrontPgonInnerRadius+8*
TMath::Tan(
Pi/180*4.12),3.8);
103 CrystalInnerTube =
new TGeoTube(
"CrystalInnerTube",0,0.6,3.05);
104 CrystalInnerTubeZTranslation =
new TGeoTranslation(
"CrystalInnerTubeZTranslation",0,0,CrystalLenght/2-3.05);
105 CrystalInnerTubeZTranslation->RegisterYourself();
106 CrystalInnerTubeTorus =
new TGeoTorus(
"CrystalInnerTubeTorus",0.2,0,0.4,0,360);
107 CrystalInnerTubeTorusZTranslation =
new TGeoTranslation(
"CrystalInnerTubeTorusZTranslation",0,0,CrystalLenght/2-3.05*2);
108 CrystalInnerTubeTorusZTranslation->RegisterYourself();
109 CrystalInnerTubeMiniExtraTube =
new TGeoTube(
"CrystalInnerTubeMiniExtraTube",0,0.2,0.2);
110 CrystalInnerTubeMiniExtraTubeZTranslation =
new TGeoTranslation(
"CrystalInnerTubeMiniExtraTubeZTranslation",0,0,CrystalLenght/2-3.05*2-0.2);
111 CrystalInnerTubeMiniExtraTubeZTranslation ->RegisterYourself();
114 CrystalTopRoundingTube =
new TGeoTube(
"CrystalTopRoundingTube",2.9,3.5,0.3);
115 CrystalTopRoundingTubeZTranslation =
new TGeoTranslation(
"CrystalTopRoundingTubeZTranslation",0,0,0.3);
116 CrystalTopRoundingTubeZTranslation->RegisterYourself();
117 CrystalTopRoundingTorus =
new TGeoTorus(
"CrystalTopRoundingTorus",2.9,0,0.6,0,360);
118 CrystalTopRoundingTooling =
new TGeoCompositeShape (
"CrystalTopRoundingTooling" ,
"CrystalTopRoundingTube:CrystalTopRoundingTubeZTranslation-CrystalTopRoundingTorus");
119 CrystalTopRoundingToolingZTranslation =
new TGeoTranslation(
"CrystalTopRoundingToolingZTranslation",0,0,CrystalLenght/2-0.6);
120 CrystalTopRoundingToolingZTranslation->RegisterYourself();
123 CrystalGuardRingTube =
new TGeoTube(
"CrystalGuardRingTube",0.9,1.4,0.15);
124 CrystalGuardRingTubeZTranslation =
new TGeoTranslation(
"CrystalGuardRingTubeZTranslation",0,0,CrystalLenght/2-0.15);
125 CrystalGuardRingTubeZTranslation->RegisterYourself();
126 CrystalGuardRingTorus =
new TGeoTorus(
"CrystalGuardRingTorus",1.2,0,0.2,0,360);
127 CrystalGuardRingTorusInner =
new TGeoTorus(
"CrystalGuardRingTorusInner",1.1,0,0.2,0,360);
128 CrystalGuardRingTorusZTranslation =
new TGeoTranslation(
"CrystalGuardRingTorusZTranslation",0,0,CrystalLenght/2-0.15*2);
129 CrystalGuardRingTorusZTranslation->RegisterYourself();
130 CrystalGuardRingMiniExtraTube =
new TGeoTube(
"CrystalGuardRingMiniExtraTube",1.1,1.2,0.2);
131 CrystalGuardRingMiniExtraTubeZTranslation =
new TGeoTranslation(
"CrystalGuardRingMiniExtraTubeZTranslation",0,0,CrystalLenght/2-0.15*2);
132 CrystalGuardRingMiniExtraTubeZTranslation ->RegisterYourself();
135 CrystalShape=
new TGeoCompositeShape(
"CrystalShape",
"(CrystalTube-CrystalPgon)-CrystalTopRoundingTooling:CrystalTopRoundingToolingZTranslation-(CrystalInnerTube:CrystalInnerTubeZTranslation+CrystalInnerTubeTorus:CrystalInnerTubeTorusZTranslation+CrystalInnerTubeMiniExtraTube:CrystalInnerTubeMiniExtraTubeZTranslation)-(CrystalGuardRingTube:CrystalGuardRingTubeZTranslation+CrystalGuardRingTorus:CrystalGuardRingTorusZTranslation+CrystalGuardRingTorusInner:CrystalGuardRingTorusZTranslation+CrystalGuardRingMiniExtraTube:CrystalGuardRingMiniExtraTubeZTranslation)");
136 Crystal =
new TGeoVolume(
"Crystal",CrystalShape,Ge);
137 Crystal->SetLineColor(kGreen);
138 Crystal->SetFillColor(kGreen);
143 strange->AddNode(Crystal,6);
147 top->AddNode(strange,0);
148 geom->CloseGeometry();
152 strange->Draw(
"ogl");
TGeoManager * gGeoManager
FairGeoBuilder * geobuild
FairGeoInterface * geoFace