65 double fLength,fRMin,fRMax;
66 GeoShapeShift* pMoveCut;
72 fLength=fMainTubusSteelPartLength;
76 GeoTube* pSolTubus=
new GeoTube(fRMin, fRMax, 0.5*fLength);
77 sprintf(szLabel,
"%s_LogRPMainTubus",pszStationName);
78 GeoLogVol* pLogTubus=
new GeoLogVol(szLabel,pSolTubus,
m_MapMaterials[std::string(
"Steel_AFP")]);
79 sprintf(szLabel,
"%s_RPMainTubus",pszStationName);
80 GeoFullPhysVol* pPhysTubus=
new GeoFullPhysVol(pLogTubus);
81 pPhysMotherVol->add(
new GeoNameTag(szLabel));
83 pPhysMotherVol->add(pPhysTubus);
90 sprintf(szLabel,
"%s_LogRPMainTubusFloorPart",pszStationName);
91 pSolTubus=
new GeoTube(fRMin, fRMax, 0.5*fLength);
92 sprintf(szLabel,
"%s_LogRPMainTubusFloorPart",pszStationName);
93 pLogTubus=
new GeoLogVol(szLabel,pSolTubus,
m_MapMaterials[std::string(
"Steel_AFP")]);
94 pPhysTubus=
new GeoFullPhysVol(pLogTubus);
95 sprintf(szLabel,
"%s_RPMainTubusFloorPart",pszStationName);
96 pPhysMotherVol->add(
new GeoNameTag(szLabel));
97 pPhysMotherVol->add(
new GeoTransform(
Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))));
98 pPhysMotherVol->add(pPhysTubus);
105 double fDPhi=CLHEP::pi-2*fPhi;
106 GeoTubs* pSolMass=
new GeoTubs(fRMin,fRMax,0.5*fLength,fPhi,fDPhi);
108 sprintf(szLabel,
"%s_LogRPMainTubusUMass",pszStationName);
109 pLogTubus=
new GeoLogVol(szLabel,pSolMass,
m_MapMaterials[std::string(
"Steel_AFP")]);
110 pPhysTubus=
new GeoFullPhysVol(pLogTubus);
111 sprintf(szLabel,
"%s_LogRPMainTubusUMass",pszStationName);
112 pPhysMotherVol->add(
new GeoNameTag(szLabel));
113 pPhysMotherVol->add(
new GeoTransform(
Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))));
114 pPhysMotherVol->add(pPhysTubus);
120 double fSPhi=CLHEP::pi+fPhi;
121 pSolMass=
new GeoTubs(fRMin,fRMax,0.5*fLength,fSPhi,fDPhi);
123 sprintf(szLabel,
"%s_LogRPMainTubusLMass",pszStationName);
124 pLogTubus=
new GeoLogVol(szLabel,pSolMass,
m_MapMaterials[std::string(
"Steel_AFP")]);
125 pPhysTubus=
new GeoFullPhysVol(pLogTubus);
126 sprintf(szLabel,
"%s_LogRPMainTubusLMass",pszStationName);
127 pPhysMotherVol->add(
new GeoNameTag(szLabel));
128 pPhysMotherVol->add(
new GeoTransform(
Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))));
129 pPhysMotherVol->add(pPhysTubus);
136 pSolTubus=
new GeoTube(fRMin, fRMax, 0.5*fLength);
144 pSolCut=
new GeoTrd(fTrdHXLength1,fTrdHXLength2,fTrdHYLength1,fTrdHYLength2,fTrdHZLength);
145 GeoTrf::Transform3D TransCut=GeoTrf::TranslateZ3D(0.5*fLength-fTrdHZLength);
146 pMoveCut=
new GeoShapeShift(pSolCut, TransCut);
147 GeoShapeSubtraction* pSolFloor=
new GeoShapeSubtraction(pSolTubus, pMoveCut);
149 sprintf(szLabel,
"%s_LogRPFloorTubus",pszStationName);
150 pLogTubus=
new GeoLogVol(szLabel,pSolFloor,
m_MapMaterials[std::string(
"Beryllium_AFP")]);
151 pPhysTubus=
new GeoFullPhysVol(pLogTubus);
152 sprintf(szLabel,
"%s_RPFloorTubus",pszStationName);
153 pPhysMotherVol->add(
new GeoNameTag(szLabel));
155 pPhysMotherVol->add(pPhysTubus);
162 pSolTubus=
new GeoTube(fRMin, fRMax, 0.5*fLength);
163 sprintf(szLabel,
"%s_LogRPFlangeTubus",pszStationName);
164 pLogTubus=
new GeoLogVol(szLabel,pSolTubus,
m_MapMaterials[std::string(
"Steel_AFP")]);
165 pPhysTubus=
new GeoFullPhysVol(pLogTubus);
166 sprintf(szLabel,
"%s_RPFlangeTubus",pszStationName);
167 pPhysMotherVol->add(
new GeoNameTag(szLabel));
169 pPhysMotherVol->add(pPhysTubus);