140{
141 HepGeom::Transform3D ReqTransform=HepGeom::Transform3D();
142
143 std::string Station=std::string(pszStationName);
145 AFP_SIDCONFIGURATION sidcfg=
m_CfgParams.sidcfg.at(eStation);
146 double falpha = sidcfg.
fSlope;
147
148 double fzm=0.0;
149
151 {
153 {
155 double fZCorrOffset=(
DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
157 HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
158
160 ReqTransform=TransInMotherVolume*NominalPosInPocket*HepGeom::Translate3D(fxm, 0.0*CLHEP::mm, nPlateID*sidcfg.
fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha)*ReqTransform;
161 }
162 else
163 {
165 {
170 }
171 }
172
173 return ReqTransform;
174 }
175
177 double fZCorrOffset=(
DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
179 HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
180
182
183
184 HepGeom::Transform3D TransStaggering=HepGeom::Translate3D(sidcfg.
vecXStaggering[nPlateID]*std::cos(falpha),sidcfg.
vecYStaggering[nPlateID], 0.0*CLHEP::mm);
185 HepGeom::Transform3D TotTransform=TransInMotherVolume*TransStaggering*NominalPosInPocket;
186
187 HepGeom::Transform3D PlateTotTrans=TotTransform*HepGeom::Translate3D(fxm,0.0*CLHEP::mm, nPlateID*sidcfg.
fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha);
190 HepGeom::Transform3D TotTransSIDInWorld=TransMotherInWorld*TransSID;
191
192 switch(eType)
193 {
195 ReqTransform=PlateTotTrans;
196 break;
198 ReqTransform=TransSID;
199 break;
201 ReqTransform=TransFEI4;
202 break;
204 ReqTransform=TotTransSIDInWorld.inverse();
205 break;
207 ReqTransform=TotTransSIDInWorld;
208 break;
209
210 default:
211 break;
212 }
213
214 return ReqTransform;
215}
HepGeom::Transform3D getStationElementTransform(const char *pszStationName, eStationElement eElement, const int nPlateID=-1) const
eAFPStation parseStationName(const char *pszStationName) const
HepGeom::Transform3D getStationTransform(const char *pszStationName) const
static constexpr double SiT_Plate_Main_thickness
static constexpr double Stat_GlobalVacuumSensorThickness
static constexpr int Stat_GlobalVacuumSensorID
static constexpr double SiT_Chip_thickness
static constexpr double Stat_GlobalVacuumSensorZOffset
static constexpr double SiT_Chip_length_x
static constexpr double SiT_Plate_Main_length_x
std::vector< double > vecChipXLength
std::vector< double > vecChipYPos
std::vector< double > vecSensorXPos
std::vector< double > vecYStaggering
std::vector< double > vecChipRotAngle
std::vector< double > vecChipXPos
std::vector< double > vecSensorYPos
std::vector< double > vecXStaggering