137{
138 HepGeom::Transform3D ReqTransform=HepGeom::Transform3D();
139
140 std::string Station=std::string(pszStationName);
142 AFP_SIDCONFIGURATION sidcfg=
m_CfgParams.sidcfg.at(eStation);
143 double falpha = sidcfg.
fSlope;
144
145 double fzm=0.0;
146
148 {
150 {
152 double fZCorrOffset=(
DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
154 HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
155
157 ReqTransform=TransInMotherVolume*NominalPosInPocket*HepGeom::Translate3D(fxm, 0.0*CLHEP::mm, nPlateID*sidcfg.
fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha)*ReqTransform;
158 }
159 else
160 {
162 {
167 }
168 }
169
170 return ReqTransform;
171 }
172
174 double fZCorrOffset=(
DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
176 HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
177
179
180
181 HepGeom::Transform3D TransStaggering=HepGeom::Translate3D(sidcfg.
vecXStaggering[nPlateID]*std::cos(falpha),sidcfg.
vecYStaggering[nPlateID], 0.0*CLHEP::mm);
182 HepGeom::Transform3D TotTransform=TransInMotherVolume*TransStaggering*NominalPosInPocket;
183
184 HepGeom::Transform3D PlateTotTrans=TotTransform*HepGeom::Translate3D(fxm,0.0*CLHEP::mm, nPlateID*sidcfg.
fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha);
187 HepGeom::Transform3D TotTransSIDInWorld=TransMotherInWorld*TransSID;
188
189 switch(eType)
190 {
192 ReqTransform=PlateTotTrans;
193 break;
195 ReqTransform=TransSID;
196 break;
198 ReqTransform=TransFEI4;
199 break;
201 ReqTransform=TotTransSIDInWorld.inverse();
202 break;
204 ReqTransform=TotTransSIDInWorld;
205 break;
206
207 default:
208 break;
209 }
210
211 return ReqTransform;
212}
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