54 FairGeoLoader* geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
55 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
57 TString medFile = geoPath +
"/geometry/media.geo";
58 geoFace->setMediaFile(medFile);
63 const TString geoDetectorName =
"ECALlalyoPOS5";
64 const TString geoDetectorVersion =
"v1";
65 const TString geoFileName = geoPath +
"/geometry/" + geoDetectorName +
"_" + geoDetectorVersion +
".root";
66 cout << geoFileName << endl;
69 FairGeoMedia* geoMedia = geoFace->getMedia();
70 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
72 FairGeoMedium* mvacuum = geoMedia->getMedium(
"vacuum");
74 Fatal(
"Main",
"FairMedium vacuum not found");
75 geoBuild->createMedium(mvacuum);
76 TGeoMedium* pvacuum = gGeoMan->GetMedium(
"vacuum");
78 Fatal(
"Main",
"Medium vacuum not found");
80 FairGeoMedium* mFscScint = geoMedia->getMedium(
"FscScint");
82 Fatal(
"Main",
"FairMedium FscScint not found");
83 geoBuild->createMedium(mFscScint);
84 TGeoMedium* pFscScint = gGeoMan->GetMedium(
"FscScint");
86 Fatal(
"Main",
"Medium FscScint not found");
88 FairGeoMedium* mPb = geoMedia->getMedium(
"lead");
90 Fatal(
"Main",
"FairMedium Pb not found");
91 geoBuild->createMedium(mPb);
94 Fatal(
"Main",
"Medium Pb not found");
96 FairGeoMedium* msteel = geoMedia->getMedium(
"air");
98 Fatal(
"Main",
"FairMedium steel not found");
99 geoBuild->createMedium(msteel);
100 TGeoMedium* psteel = gGeoMan->GetMedium(
"air");
102 Fatal(
"Main",
"Medium steel not found");
104 FairGeoMedium* mTiO2 = geoMedia->getMedium(
"TiO2");
106 Fatal(
"Main",
"FairMedium TiO2 not found");
107 geoBuild->createMedium(mTiO2);
108 TGeoMedium* pTiO2 = gGeoMan->GetMedium(
"TiO2");
110 Fatal(
"Main",
"Medium TiO2 not found");
121 gGeoMan->SetName(
"ECALgeom");
122 gGeoMan->SetTopVolume(top);
123 gGeoMan->SetTopVisible(0);
133 module->SetVisibility(kTRUE);
134 module->SetTransparency(100);
135 module->SetLineColor(kRed);
136 module->SetLineWidth(0);
158 module->AddNode(covSteel, 0, new TGeoTranslation(0, 0, thickSteel / 2 - modlength / 2));
162 for (
int zlayer = 0; zlayer <
Zlayers; zlayer++) {
166 module->AddNode(layerPaint, nlay, new TGeoTranslation(0, 0, z + thickPaint / 2 - modlength / 2));
167 module->AddNode(layerPb, nlay, new TGeoTranslation(0, 0, z + thickPaint + thickPb / 2 - modlength / 2));
168 module->AddNode(layerPaint, nlay,
169 new TGeoTranslation(0, 0, z + thickPaint + thickPb + thickPaint / 2 - modlength / 2));
172 new TGeoTranslation(0, 0, z + thickPaint + thickPb + thickPaint + thickSci / 2 - modlength / 2));
180 for (
int xmod = 0; xmod <
Xmodules; xmod++) {
181 for (
int ymod = 0; ymod <
Ymodules; ymod++) {
184 module->SetName(moduleName);
185 cout << module->
GetName() << endl;
191 gGeoMan->CloseGeometry();
192 gGeoMan->CheckOverlaps(0.001);
193 gGeoMan->PrintOverlaps();
195 gGeoMan->SetVisLevel(3);
197 TFile* geoFile =
new TFile(geoFileName,
"RECREATE");