44 const std::string pszStationNameStr{pszStationName};
45 GeoLogVol* pLogElement=
nullptr;
46 GeoFullPhysVol* pPhysElement;
57 szLabel = std::format(
"{}_LogSIDVacuumSensor[{}]",pszStationName,nSpecVacSensorID);
58 GeoLogVol* pLogSIDVacuumSensor=
new GeoLogVol(szLabel,pSolidSIDVacuumSensor,
m_MapMaterials[std::string(
"std::Vacuum")]);
59 GeoFullPhysVol* pPhysSIDVacuumSensor=
new GeoFullPhysVol(pLogSIDVacuumSensor);
60 szLabel = std::format(
"{}_SIDVacuumSensor[{}]",pszStationName,nSpecVacSensorID);
61 pPhysMotherVol->add(
new GeoNameTag(szLabel));
63 pPhysMotherVol->add(pPhysSIDVacuumSensor);
66 for(
int i=0;i<
m_pGeometry->getSIDPlatesCnt(eStation);i++)
69 szLabel = std::format(
"{}_LogSIDPlate[{}]",pszStationName,i);
70 pLogElement=
new GeoLogVol(szLabel,pSolidSIDPlate,
m_MapMaterials[std::string(
"CE7")]);
71 pPhysElement=
new GeoFullPhysVol(pLogElement);
72 szLabel = std::format(
"{}_SIDPlate[{}]",pszStationName,i);
73 pPhysMotherVol->add(
new GeoNameTag(szLabel));
75 pPhysMotherVol->add(pPhysElement);
79 szLabel = std::format(
"{}_LogSIDChip[{}]",pszStationName,i);
80 pLogElement=
new GeoLogVol(szLabel,pSolidFEI4Chip,
m_MapMaterials[std::string(
"CE7")]);
81 pPhysElement=
new GeoFullPhysVol(pLogElement);
82 szLabel = std::format(
"{}_SIDChip[{}]",pszStationName,i);
83 pPhysMotherVol->add(
new GeoNameTag(szLabel));
85 pPhysMotherVol->add(pPhysElement);
88 szLabel = std::format(
"{}_LogSIDSensor[{}]",pszStationName,i);
89 pLogElement=
new GeoLogVol(szLabel,pSolidSIDSensor,
m_MapMaterials[std::string(
"Silicon")]);
90 pPhysElement=
new GeoFullPhysVol(pLogElement);
91 szLabel = std::format(
"{}_SIDSensor[{}]",pszStationName,i);
92 pPhysMotherVol->add(
new GeoNameTag(szLabel));
94 pPhysMotherVol->add(pPhysElement);
99 szLabel = std::format(
"{}_LogSIDVacuumSensor[{}]",pszStationName,i);
100 GeoLogVol* pLogSIDVacuumSensor=
new GeoLogVol(szLabel,pSolidSIDVacuumSensor,
m_MapMaterials[std::string(
"std::Vacuum")]);
101 GeoFullPhysVol* pPhysSIDVacuumSensor=
new GeoFullPhysVol(pLogSIDVacuumSensor);
103 szLabel = std::format(
"{}_SIDVacuumSensor[{}]",pszStationName,i);
104 pPhysMotherVol->add(
new GeoNameTag(szLabel));
106 pPhysMotherVol->add(pPhysSIDVacuumSensor);
116 double fdelta=0.01*CLHEP::mm;
123 double fgamma=45.0*CLHEP::deg-falpha;
double fbeta=90.0*CLHEP::deg-falpha;
126 HepGeom::Vector3D<double> vecL=(fd/std::sqrt(2.0))*(HepGeom::RotateZ3D(-fgamma)*HepGeom::Vector3D<double>(1.0,0.0,0.0));
128 HepGeom::Vector3D<double> vecX=vecL-vecB;
132 GeoShapeSubtraction* pShape1=
new GeoShapeSubtraction(pMainPlate, pShiftCut);
135 vecL=(fd/std::sqrt(2.0))*(HepGeom::RotateZ3D(+fgamma)*HepGeom::Vector3D<double>(1.0,0.0,0.0));
140 GeoShapeSubtraction* pShape2=
new GeoShapeSubtraction(pShape1, pShiftCut);
146 GeoShapeSubtraction* pShape3=
new GeoShapeSubtraction(pShape2, pShiftCut);