23 const Double_t ZLengthChamber = 9.2741;
27 const Double_t MWPC0_Zpos = -207.624 - ZLengthChamber / 2.0;
31 const Double_t MWPC1_Zpos = -357.333 - ZLengthChamber / 2.0;
72 const Double_t XSizeOfActiveVolume = ABsize;
73 const Double_t YSizeOfActiveVolume = BCsize;
74 const Double_t ZSizeOfActiveVolume = GapZsize * NofPlanes;
89 FairGeoLoader* geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
90 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
92 TString medFile = geoPath +
"media.geo";
93 geoFace->setMediaFile(medFile);
99 const TString geoDetectorName =
"MWPC";
100 const TString geoDetectorVersion =
"RunSpring2018";
101 TString geoFileName = geoPath + geoDetectorName +
"_" + geoDetectorVersion +
".root";
105 FairGeoMedia* geoMedia = geoFace->getMedia();
106 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
108 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
110 Fatal(
"Main",
"FairMedium air not found");
111 geoBuild->createMedium(mAir);
114 Fatal(
"Main",
"Medium air not found");
116 FairGeoMedium* mArCO27030 = geoMedia->getMedium(
"arco27030");
118 Fatal(
"Main",
"FairMedium arco27030 not found");
119 geoBuild->createMedium(mArCO27030);
122 Fatal(
"Main",
"Medium arco27030 not found");
124 FairGeoMedium* mAluminium = geoMedia->getMedium(
"aluminium");
126 Fatal(
"Main",
"FairMedium aluminium not found");
127 geoBuild->createMedium(mAluminium);
130 Fatal(
"Main",
"Medium aluminium not found");
132 FairGeoMedium* mG10 = geoMedia->getMedium(
"G10");
134 Fatal(
"Main",
"FairMedium G10 not found");
135 geoBuild->createMedium(mG10);
138 Fatal(
"Main",
"Medium G10 not found");
140 FairGeoMedium* mCopper = geoMedia->getMedium(
"copper");
142 Fatal(
"Main",
"FairMedium copper not found");
143 geoBuild->createMedium(mCopper);
146 Fatal(
"Main",
"Medium copper not found");
152 gGeoMan->SetName(geoDetectorName +
"_geom");
170 TGeoPgon* MWPCContainerS =
new TGeoPgon(
"MWPCContainerS", 0, 360, NofPlanes, 2);
171 MWPCContainerS->
DefineSection(0, -ZLengthChamber / 2.0 - AluminiumLayer / 2. - CopperLayer - G10Layer, 0.0,
172 YSizeOfActiveVolume / 2.0 + DGsize + 0.5);
173 MWPCContainerS->
DefineSection(1, ZLengthChamber / 2.0 + AluminiumLayer / 2. + CopperLayer + G10Layer, 0.0,
174 YSizeOfActiveVolume / 2.0 + DGsize + 0.5);
178 new TGeoBBox(
"MWPCActivePlaneS", XSizeOfActiveVolume / 2.0, YSizeOfActiveVolume / 2.0, 0.1);
181 TGeoTrap* MWPCAlumPlateS =
new TGeoTrap(
"MWPCAluminiumPlateS", AluminiumLayer / 2.0, 0, 0, DGsize / 2.0,
182 GHsize / 2.0, EFsize / 2.0, 0, DGsize / 2.0, GHsize / 2.0, EFsize / 2.0, 0);
184 new TGeoTrap(
"MWPCAluminiumCoverS", ZLengthChamber / 2.0, 0, 0, AluminiumLayer / 2.0, EFsize / 2.0,
185 EFsize / 2.0, 0, AluminiumLayer / 2.0, EFsize / 2.0, EFsize / 2.0, 0);
188 TGeoPgon* MWPCG10PlateS =
new TGeoPgon(
"MWPCG10PlateS", 0, 360, NofPlanes, 2);
189 MWPCG10PlateS->
DefineSection(0, -G10Layer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
190 MWPCG10PlateS->
DefineSection(1, G10Layer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
193 TGeoPgon* MWPCCopperPlateS =
new TGeoPgon(
"MWPCCopperPlateS", 0, 360, NofPlanes, 2);
194 MWPCCopperPlateS->
DefineSection(0, -CopperLayer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
195 MWPCCopperPlateS->
DefineSection(1, CopperLayer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
204 MWPCActivePlaneV->
SetMedium(pMedArCO27030);
209 MWPCAlumPlateV->
SetMedium(pMedAluminium);
214 MWPCAlumPlateV->
SetMedium(pMedAluminium);
230 for (
Int_t iPlane = 1; iPlane <= NofPlanes; ++iPlane) {
231 TGeoTranslation t0(0.0, 0.0, GapZsize * (iPlane - (NofPlanes + 1) / 2.0));
236 Double_t Y = YSizeOfActiveVolume / 2.0 + DGsize / 2.0 + 0.1;
237 Double_t Y1 = Y + AluminiumLayer / 2. + DGsize / 2. + 0.2;
239 for (
Int_t iAlPlate = 1; iAlPlate <= 6; ++iAlPlate) {
242 ZLengthChamber / 2.0);
247 -ZLengthChamber / 2.0);
256 for (
Int_t iSide = 0; iSide <= 1; ++iSide) {
258 TGeoTranslation t0(0.0, 0.0, (1 - 2 * iSide) * (ZLengthChamber / 2.0 + AluminiumLayer / 2. + G10Layer / 2.));
263 0.0, 0.0, (1 - 2 * iSide) * (ZLengthChamber / 2.0 + AluminiumLayer / 2. + G10Layer + CopperLayer / 2.));
268 MWPC->
AddNode(MWPCContainerV, 0, DetPos0_trans);
269 MWPC->
AddNode(MWPCContainerV, 0, DetPos1_trans);
282 TFile* geoFile =
new TFile(geoFileName,
"RECREATE");