85 163.2 * 0.25, -163.2 * 0.25},
87 {163.2 * 0.25, -163.2 * 0.25,
91 163.2 * 0.25, -163.2 * 0.25},
93 {163.2 * 0.25, -163.2 * 0.25,
97 163.2 * 0.25, -163.2 * 0.25},
99 {163.2 * 0.25, -163.2 * 0.25,
103 163.2 * 0.25, -163.2 * 0.25},
165 true ,
false ,
true ,
false };
169 false ,
false ,
false ,
false };
221 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
223 Fatal(
"Main",
"FairMedium air not found");
224 geoBuild->createMedium(mAir);
227 Fatal(
"Main",
"Medium air not found");
230 FairGeoMedium* mArCO27030 = geoMedia->getMedium(
"arco27030");
232 Fatal(
"Main",
"FairMedium arco27030 not found");
233 geoBuild->createMedium(mArCO27030);
236 Fatal(
"Main",
"Medium arco27030 not found");
239 FairGeoMedium* mArC4H10_80_20 = geoMedia->getMedium(
"ArC4H10_80_20");
241 Fatal(
"Main",
"FairMedium ArC4H10_80_20 not found");
242 geoBuild->createMedium(mArC4H10_80_20);
245 Fatal(
"Main",
"Medium ArC4H10_80_20 not found");
254 const TString geoDetectorName =
"GEMS";
255 const TString geoDetectorVersion =
"Run9";
256 const TString geoFileName = gPath +
"/geometry/" + geoDetectorName +
"_" + geoDetectorVersion +
".root";
259 FairGeoLoader* geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
260 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
263 TString medFile = gPath +
"/geometry/media.geo";
264 geoFace->setMediaFile(medFile);
265 geoFace->readMedia();
266 FairGeoMedia* geoMedia = geoFace->getMedia();
267 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
274 gGeoMan->SetName(geoDetectorName +
"_geom");
288 Int_t stationNum = istation;
314 module1_transform->
RotateY(180.0);
319 module2_transform->
RotateX(180.0);
324 module3_transform->
RotateX(180.0);
325 module3_transform->
RotateY(180.0);
351 GEMS->AddNode(station, 0, station_transform);
359 gGeoMan->CheckOverlaps(0.0001);
364 TFile* geoFile =
new TFile(geoFileName,
"RECREATE");
410 Fatal(
"Main",
"Invalid medium for sensitive modules!");
433 TGeoShape* moduleS =
new TGeoBBox(
"moduleS", xsize * 0.5, ysize * 0.5, zsize * 0.5);
442 Fatal(
"Main",
"Invalid medium for sensitive modules!");
void Fatal(const char *location, const char *msgfmt,...)
R__EXTERN TGeoManager * gGeoManager
R__EXTERN TRandom * gRandom
R__EXTERN TSystem * gSystem
static Int_t GetColor(const char *hexcolor)
void Close(Option_t *option="") override
void RotateY(Double_t angle) override
void RotateX(Double_t angle) override
void SetTranslation(const TGeoTranslation &tr)
virtual void RegisterYourself()
const char * GetName() const override
void SetVisContainers(Bool_t flag=kTRUE) override
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
void Draw(Option_t *option="") override
void SetTransparency(Char_t transparency=0)
virtual void SetMedium(TGeoMedium *medium)
void SetLineColor(Color_t lcolor) override
const char * GetName() const override
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
static TString Itoa(Int_t value, Int_t base)
const Double_t YStationPositions[NStations]
const Double_t ZModuleSize_Station163x45
const Double_t YModuleSize_Station163x45
const Double_t ZStationPositions[NStations]
TGeoMedium * pMedArCO27030
const Double_t XModuleSize_Station163x45
const Double_t XStationPositions[NStations]
const Double_t yShift[NStations]
const Double_t xShift[NStations]
const Bool_t XStationRotations[NStations]
const Double_t zShift[NStations]
const Bool_t YStationRotations[NStations]
const Double_t ZModuleSize_Station10x10
const Double_t XModuleSize_Station10x10
const Double_t YModuleSize_Station10x10
const Double_t XModuleSize_Station163x39
const Double_t YModuleSize_Station163x39
const Double_t ZGEMSize_Station163x39
const Double_t ZModuleSize_Station163x39
const Double_t ZGEMSize_Station163x45
TGeoVolume * CreateModule_Station10x10(TString module_name, Double_t xsize, Double_t ysize, Double_t zsize)
void create_rootgeom_GEMS_Run9()
TGeoVolume * CreateStation(TString station_name)
TGeoVolume * CreateModule_Station163x45(TString module_name, Double_t xsize, Double_t ysize, Double_t zsize, Double_t hole_radius)
void DefineRequiredMedia(FairGeoMedia *geoMedia, FairGeoBuilder *geoBuild)
TGeoVolume * CreateModule_Station163x39(TString module_name, Double_t xsize, Double_t ysize, Double_t zsize, Double_t hole_radius)
TGeoMedium * pMedArC4H10_80_20