21 const Double_t Zshift = -574.144 - 71.047;
25 const Double_t MWPC0_Zpos = -206.042 + Zshift;
29 const Double_t MWPC1_Zpos = -107.363 + Zshift;
33 const Double_t MWPC2_Zpos = 287.858 + Zshift;
37 const Double_t MWPC3_Zpos = 437.568 + Zshift;
78 const Double_t XSizeOfActiveVolume = ABsize;
79 const Double_t YSizeOfActiveVolume = BCsize;
80 const Double_t ZSizeOfActiveVolume = GapZsize * NofPlanes;
84 const Double_t ZLengthChamber = 9.2741;
95 FairGeoLoader* geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
96 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
98 TString medFile = geoPath +
"media.geo";
99 geoFace->setMediaFile(medFile);
100 geoFace->readMedia();
105 const TString geoDetectorName =
"MWPC";
106 const TString geoDetectorVersion =
"RunSRCSpring2018";
107 TString geoFileName = geoPath + geoDetectorName +
"_" + geoDetectorVersion +
".root";
111 FairGeoMedia* geoMedia = geoFace->getMedia();
112 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
114 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
116 Fatal(
"Main",
"FairMedium air not found");
117 geoBuild->createMedium(mAir);
120 Fatal(
"Main",
"Medium air not found");
122 FairGeoMedium* mArCO27030 = geoMedia->getMedium(
"arco27030");
124 Fatal(
"Main",
"FairMedium arco27030 not found");
125 geoBuild->createMedium(mArCO27030);
128 Fatal(
"Main",
"Medium arco27030 not found");
130 FairGeoMedium* mAluminium = geoMedia->getMedium(
"aluminium");
132 Fatal(
"Main",
"FairMedium aluminium not found");
133 geoBuild->createMedium(mAluminium);
136 Fatal(
"Main",
"Medium aluminium not found");
138 FairGeoMedium* mG10 = geoMedia->getMedium(
"G10");
140 Fatal(
"Main",
"FairMedium G10 not found");
141 geoBuild->createMedium(mG10);
144 Fatal(
"Main",
"Medium G10 not found");
146 FairGeoMedium* mCopper = geoMedia->getMedium(
"copper");
148 Fatal(
"Main",
"FairMedium copper not found");
149 geoBuild->createMedium(mCopper);
152 Fatal(
"Main",
"Medium copper not found");
158 gGeoMan->SetName(geoDetectorName +
"_geom");
177 TGeoPgon* MWPCContainerS =
new TGeoPgon(
"MWPCContainerS", 0, 360, NofPlanes, 2);
178 MWPCContainerS->
DefineSection(0, -ZLengthChamber / 2.0 - AluminiumLayer / 2. - CopperLayer - G10Layer, 0.0,
179 YSizeOfActiveVolume / 2.0 + DGsize + 0.5);
180 MWPCContainerS->
DefineSection(1, ZLengthChamber / 2.0 + AluminiumLayer / 2. + CopperLayer + G10Layer, 0.0,
181 YSizeOfActiveVolume / 2.0 + DGsize + 0.5);
185 new TGeoBBox(
"MWPCActivePlaneS", XSizeOfActiveVolume / 2.0, YSizeOfActiveVolume / 2.0, 0.1);
188 TGeoTrap* MWPCAlumPlateS =
new TGeoTrap(
"MWPCAluminiumPlateS", AluminiumLayer / 2.0, 0, 0, DGsize / 2.0,
189 GHsize / 2.0, EFsize / 2.0, 0, DGsize / 2.0, GHsize / 2.0, EFsize / 2.0, 0);
191 new TGeoTrap(
"MWPCAluminiumCoverS", ZLengthChamber / 2.0, 0, 0, AluminiumLayer / 2.0, EFsize / 2.0,
192 EFsize / 2.0, 0, AluminiumLayer / 2.0, EFsize / 2.0, EFsize / 2.0, 0);
195 TGeoPgon* MWPCG10PlateS =
new TGeoPgon(
"MWPCG10PlateS", 0, 360, NofPlanes, 2);
196 MWPCG10PlateS->
DefineSection(0, -G10Layer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
197 MWPCG10PlateS->
DefineSection(1, G10Layer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
200 TGeoPgon* MWPCCopperPlateS =
new TGeoPgon(
"MWPCCopperPlateS", 0, 360, NofPlanes, 2);
201 MWPCCopperPlateS->
DefineSection(0, -CopperLayer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
202 MWPCCopperPlateS->
DefineSection(1, CopperLayer / 2., 0.0, YSizeOfActiveVolume / 2.0 + 1.0);
211 MWPCActivePlaneV->
SetMedium(pMedArCO27030);
216 MWPCAlumPlateV->
SetMedium(pMedAluminium);
221 MWPCAlumCoverV->
SetMedium(pMedAluminium);
237 for (
Int_t iPlane = 1; iPlane <= NofPlanes; ++iPlane) {
238 TGeoTranslation t0(0.0, 0.0, GapZsize * (iPlane - (NofPlanes + 1) / 2.0));
243 Double_t Y = YSizeOfActiveVolume / 2.0 + DGsize / 2.0 + 0.1;
244 Double_t Y1 = Y + AluminiumLayer / 2. + DGsize / 2. + 0.2;
246 for (
Int_t iAlPlate = 1; iAlPlate <= 6; ++iAlPlate) {
249 ZLengthChamber / 2.0);
254 -ZLengthChamber / 2.0);
263 for (
Int_t iSide = 0; iSide <= 1; ++iSide) {
265 TGeoTranslation t0(0.0, 0.0, (1 - 2 * iSide) * (ZLengthChamber / 2.0 + AluminiumLayer / 2. + G10Layer / 2.));
270 0.0, 0.0, (1 - 2 * iSide) * (ZLengthChamber / 2.0 + AluminiumLayer / 2. + G10Layer + CopperLayer / 2.));
275 MWPC->
AddNode(MWPCContainerV, 0, DetPos0_trans);
276 MWPC->
AddNode(MWPCContainerV, 0, DetPos1_trans);
277 MWPC->
AddNode(MWPCContainerV, 0, DetPos2_trans);
278 MWPC->
AddNode(MWPCContainerV, 0, DetPos3_trans);
291 TFile* geoFile =
new TFile(geoFileName,
"RECREATE");