44 GeoLogVol* pLogElement=
nullptr;
45 GeoFullPhysVol* pPhysElement;
56 szLabel = std::format(
"{}_LogSIDVacuumSensor[{}]",pszStationName,nSpecVacSensorID);
57 GeoLogVol* pLogSIDVacuumSensor=
new GeoLogVol(szLabel,pSolidSIDVacuumSensor,
m_MapMaterials[std::string(
"std::Vacuum")]);
58 GeoFullPhysVol* pPhysSIDVacuumSensor=
new GeoFullPhysVol(pLogSIDVacuumSensor);
59 szLabel = std::format(
"{}_SIDVacuumSensor[{}]",pszStationName,nSpecVacSensorID);
60 pPhysMotherVol->add(
new GeoNameTag(szLabel));
62 pPhysMotherVol->add(pPhysSIDVacuumSensor);
65 for(
int i=0;i<
m_pGeometry->getSIDPlatesCnt(eStation);i++)
68 szLabel = std::format(
"{}_LogSIDPlate[{}]",pszStationName,i);
69 pLogElement=
new GeoLogVol(szLabel,pSolidSIDPlate,
m_MapMaterials[std::string(
"CE7")]);
70 pPhysElement=
new GeoFullPhysVol(pLogElement);
71 szLabel = std::format(
"{}_SIDPlate[{}]",pszStationName,i);
72 pPhysMotherVol->add(
new GeoNameTag(szLabel));
74 pPhysMotherVol->add(pPhysElement);
78 szLabel = std::format(
"{}_LogSIDChip[{}]",pszStationName,i);
79 pLogElement=
new GeoLogVol(szLabel,pSolidFEI4Chip,
m_MapMaterials[std::string(
"CE7")]);
80 pPhysElement=
new GeoFullPhysVol(pLogElement);
81 szLabel = std::format(
"{}_SIDChip[{}]",pszStationName,i);
82 pPhysMotherVol->add(
new GeoNameTag(szLabel));
84 pPhysMotherVol->add(pPhysElement);
87 szLabel = std::format(
"{}_LogSIDSensor[{}]",pszStationName,i);
88 pLogElement=
new GeoLogVol(szLabel,pSolidSIDSensor,
m_MapMaterials[std::string(
"Silicon")]);
89 pPhysElement=
new GeoFullPhysVol(pLogElement);
90 szLabel = std::format(
"{}_SIDSensor[{}]",pszStationName,i);
91 pPhysMotherVol->add(
new GeoNameTag(szLabel));
93 pPhysMotherVol->add(pPhysElement);
98 szLabel = std::format(
"{}_LogSIDVacuumSensor[{}]",pszStationName,i);
99 GeoLogVol* pLogSIDVacuumSensor=
new GeoLogVol(szLabel,pSolidSIDVacuumSensor,
m_MapMaterials[std::string(
"std::Vacuum")]);
100 GeoFullPhysVol* pPhysSIDVacuumSensor=
new GeoFullPhysVol(pLogSIDVacuumSensor);
102 szLabel = std::format(
"{}_SIDVacuumSensor[{}]",pszStationName,i);
103 pPhysMotherVol->add(
new GeoNameTag(szLabel));
105 pPhysMotherVol->add(pPhysSIDVacuumSensor);
115 double fdelta=0.01*CLHEP::mm;
122 double fgamma=45.0*CLHEP::deg-falpha;
double fbeta=90.0*CLHEP::deg-falpha;
125 HepGeom::Vector3D<double> vecL=(fd/std::sqrt(2.0))*(HepGeom::RotateZ3D(-fgamma)*HepGeom::Vector3D<double>(1.0,0.0,0.0));
127 HepGeom::Vector3D<double> vecX=vecL-vecB;
131 GeoShapeSubtraction* pShape1=
new GeoShapeSubtraction(pMainPlate, pShiftCut);
134 vecL=(fd/std::sqrt(2.0))*(HepGeom::RotateZ3D(+fgamma)*HepGeom::Vector3D<double>(1.0,0.0,0.0));
139 GeoShapeSubtraction* pShape2=
new GeoShapeSubtraction(pShape1, pShiftCut);
145 GeoShapeSubtraction* pShape3=
new GeoShapeSubtraction(pShape2, pShiftCut);