48 gROOT->LoadMacro(
"$VMCWORKDIR/macro/run/bmnloadlibs.C");
52 FairGeoLoader* geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
53 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
55 TString medFile = geoPath +
"/geometry/media.geo";
56 geoFace->setMediaFile(medFile);
62 const TString geoDetectorName =
"GEMS";
63 const TString geoDetectorVersion =
"run1";
64 const TString geoFileName = geoPath +
"/geometry/" + geoDetectorName +
"_" + geoDetectorVersion +
".root";
68 FairGeoMedia* geoMedia = geoFace->getMedia();
69 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
71 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
73 Fatal(
"Main",
"FairMedium air not found");
74 geoBuild->createMedium(mAir);
77 Fatal(
"Main",
"Medium air not found");
79 FairGeoMedium* mCarbon = geoMedia->getMedium(
"carbon");
81 Fatal(
"Main",
"FairMedium carbon not found");
82 geoBuild->createMedium(mCarbon);
85 Fatal(
"Main",
"Medium carbon not found");
87 FairGeoMedium* mFiberGlass = geoMedia->getMedium(
"fiberglass");
89 Fatal(
"Main",
"FairMedium fiberglass not found");
90 geoBuild->createMedium(mFiberGlass);
93 Fatal(
"Main",
"Medium fiberglass not found");
95 FairGeoMedium* mArCO27030 = geoMedia->getMedium(
"arco27030");
97 Fatal(
"Main",
"FairMedium arco27030 not found");
98 geoBuild->createMedium(mArCO27030);
101 Fatal(
"Main",
"Medium arco27030 not found");
106 gGeoMan->SetName(geoDetectorName +
"_geom");
157 YSizeSmallPart -= (
Int_t)YSizeSmallPart;
162 HorizontalSpacerV =
new TGeoVolume(
"HorizontalSpacerV", HorizontalSpacerS);
163 HorizontalSpacerV->
SetMedium(pMedCarbon);
168 VerticalSpacerPartV =
new TGeoVolume(
"VerticalSpacerPartV", VerticalSpacerPartS);
169 VerticalSpacerPartV->
SetMedium(pMedCarbon);
173 VerticalSpacerSmallPartS =
175 VerticalSpacerSmallPartV =
new TGeoVolume(
"VerticalSpacerSmallPartV", VerticalSpacerSmallPartS);
176 VerticalSpacerSmallPartV->
SetMedium(pMedCarbon);
185 for (
Int_t ihspacer = 0; ihspacer < NHorizontalSpacers; ihspacer++) {
191 for (
Int_t ivspacer = 0; ivspacer < NVerticalSpacers; ivspacer++) {
199 if (ihspacer == NHorizontalSpacers - 1) {
211 SensitiveVolumeV =
new TGeoVolume(
"SensitiveVolume_SensorV", SensitiveVolumeS);
212 SensitiveVolumeV->
SetMedium(pMedArCO27030);
221 SensitiveVolumeV->
AddNode(SpacerBoxV, 0, SpacerBoxVRot);
225 VerticalOuterFrameV =
new TGeoVolume(
"VerticalOuterFrameV", VerticalOuterFrameS);
226 VerticalOuterFrameV->
SetMedium(pMedFiberGlass);
232 HorizontalOuterFrameV =
new TGeoVolume(
"HorizontalOuterFrameV", HorizontalOuterFrameS);
233 HorizontalOuterFrameV->
SetMedium(pMedFiberGlass);
239 HorizontalInnerFrameV =
new TGeoVolume(
"HorizontalInnerFrameV", HorizontalInnerFrameS);
240 HorizontalInnerFrameV->
SetMedium(pMedFiberGlass);
244 VerticalInnerFrameS =
247 VerticalInnerFrameV =
new TGeoVolume(
"VerticalInnerFrameV", VerticalInnerFrameS);
248 VerticalInnerFrameV->
SetMedium(pMedFiberGlass);
270 FrameBoxV->
AddNode(VerticalOuterFrameV, 0, VerticalOuterFrameVPosition);
271 FrameBoxV->
AddNode(HorizontalOuterFrameV, 0, HorizontalOuterFrameVPosition);
272 FrameBoxV->
AddNode(HorizontalInnerFrameV, 0, HorizontalInnerFrameVPosition);
273 FrameBoxV->
AddNode(VerticalInnerFrameV, 0, VerticalInnerFrameVPosition);
289 ModuleV->
AddNode(FrameBoxV, 0);
290 ModuleV->
AddNode(SensitiveVolumeV, 0, SensitiveVolumePosition);
304 gGeoMan->CheckOverlaps(0.0001);
308 TFile* geoFile =
new TFile(geoFileName,
"RECREATE");