|
ATLAS Offline Software
|
Go to the documentation of this file.
24 double Ssize,
double Rsize,
double Zsize,
25 double LongSsize,
double LongRsize,
double LongZsize,
26 int zi,
int fi,
bool descratzneg) :
32 m_LongSsize = LongSsize;
33 m_LongRsize = LongRsize;
34 m_LongZsize = LongZsize;
35 m_descratzneg = descratzneg;
65 <<
" setting fixed point for B-lines at s0,z0,t0 = " << s0 <<
" " <<
z0 <<
" " << t0 );
73 <<
getEtaIndex() <<
" nominal(i.e. from-station-envelop-only) B-line fixed point "
100 double shiftInZ = -0.5 * mdtRE->
tubePitch();
102 double multilayerRealSize{0};
103 for (
int ilayer = 1; ilayer <= 2; ++ilayer) {
109 <<
" cannot get wire coordinates for second tube layer");
112 if ((ilayer == 1) || (
val > multilayerRealSize)) multilayerRealSize =
val;
116 shiftInZ += mdtRE->
getZsize() - multilayerRealSize;
131 <<
" adding Aline " << std::endl
144 if (std::abs(tras) + std::abs(traz) + std::abs(trat) + (std::abs(rots) + std::abs(rotz) + std::abs(rott)) * 1000. > 0.01) {
155 <<
" adding Aline " << setiosflags(std::ios::fixed) << std::setprecision(6) << std::setw(12)
156 << tras <<
" " << traz <<
" " << trat <<
" " << rots <<
" " << rotz <<
" " << rott << std::endl
157 <<
" delta_amdb computed from A-line " <<
Amg::toString(delta_amdb));
177 <<
"/" <<
getPhiIndex() <<
" adding new component with Alignable transf... " <<
a->getStationName()
178 <<
" job ondex = " << jobIndex );
188 if (!parentToChild) {
189 ATH_MSG_WARNING(
"setDelta_fromAline_forComp: WARNING: component for index " << jobindex
193 if (std::abs(tras) + std::abs(traz) + std::abs(trat) + (std::abs(rots) + std::abs(rotz) + std::abs(rott)) * 1000. < 0.01) {
194 ATH_MSG_DEBUG(
"setDelta_fromAline_forComp: A-line ignored --- too small (translations < 10microns & rotations <10microrad)");
207 double DZcomp = std::abs(thisREnominalCenter.z()) - std::abs((
m_amdbl_to_global.translation()).z()) -
216 Amg::Transform3D childToLocAmdbComponent = locAmdbStatToLocAmdbComp * childToLocAmdbStation;
219 <<
getEtaIndex() <<
" Job " << jobindex <<
" Origin of component/station AmdbLocalFrame= "
223 parentToChild->setDelta(childToLocAmdbComponent.inverse() * delta_amdb * childToLocAmdbComponent);
225 <<
getEtaIndex() <<
" Job " << jobindex <<
" Origin of component/station AmdbLocalFrame= "
230 <<
" adding Aline " << tras <<
" " << traz <<
" " << trat <<
" " << rots <<
" " << rotz <<
" " << rott
231 <<
" for component with index =" << jobindex << std::endl
232 <<
" delta_amdb computed from A-line " <<
Amg::toString(delta_amdb));
242 <<
getPhiIndex() <<
" trying to get a not existing RE (iteration n. ) " <<
jobId <<
" RE is null, skipping" );
256 <<
getPhiIndex() <<
" trying to get a not existing RE (iteration n. ) " <<
jobId <<
" RE is null, skipping" );
302 for (
int j = 1; j < 30; ++j) {
304 if (!activeComponent)
continue;
309 Rsize += activeComponent->getRsize() / 2.;
310 Rpos = activeComponent->toParentStation().translation();
316 Rsize += std::abs(Rpos.x() - RposFirst.x());
318 Rsize += std::abs(Rpos.y() - RposFirst.y());
336 for (
int j = 1; j < 30; ++j) {
338 if (!activeComponent)
continue;
344 Zsize += activeComponent->getZsize() / 2.;
345 Zpos = activeComponent->toParentStation() *
Amg::Vector3D(0., 0., 0.);
351 Zsize += std::abs(Zpos.z() - ZposFirst.z());
353 Zsize += std::abs(Zpos.x() - ZposFirst.x());
void setEtaPhiIndices(int eta, int phi)
a la AMDB
const MdtAsBuiltPar * m_XTomoData
std::string getStationType() const
like BMS, T1F, CSL
Ensure that the Athena extensions are properly loaded.
void setDelta_fromAline_forComp(int, double, double, double, double, double, double)
Amg::Transform3D m_native_to_amdbl
std::map< int, pairRE_AlignTransf > m_REwithAlTransfInStation
keep track of the REs in this station
PVConstLink getPhysVol() const
double tubePitch() const
Returns the distance between 2 tubes in a tube layer.
const Amg::Transform3D & defTransform() const
bool getWireFirstLocalCoordAlongZ(int tubeLayer, double &coord) const
void setBlineFixedPointInAmdbLRS(double s0, double z0, double t0)
void setMdtAsBuiltParams(const MdtAsBuiltPar *xtomo)
PVLink m_physVol
Link the full physical volume associated with the station.
void updateBlineFixedPointInAmdbLRS()
Amg::Transform3D m_delta_amdb_frame
#define ATH_MSG_VERBOSE(x)
const std::string & getStationName() const
like BMS5, T1F1, CSL1
Amg::Vector3D m_BlineFixedPointInAmdbLRS
GeoAlignableTransform * getComponentAlTransf(int jobIndex) const
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
const MuonReadoutElement * getMuonReadoutElement(int jobIndex) const
Amg::Transform3D m_amdbl_to_global
int getPhiIndex() const
a la AMDB
Amg::Transform3D getRotateX3D(double angle)
get a rotation transformation around X-axis
void setNativeToAmdbLRS(Amg::Transform3D xf)
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
void setTransform(GeoAlignableTransform *xf)
Eigen::Affine3d Transform3D
double outerTubeRadius() const
Returns the tube radius taking the thickness of the tubes into account.
Class to provide easy MsgStream access and capabilities.
Trk::DetectorElemType detectorType() const override final
Return the Detector element type.
bool m_firstRequestBlineFixedP
void setBline(const BLinePar *bline)
GeoAlignableTransform * m_transform
int nMuonReadoutElements() const
void setDelta_fromAline(double, double, double, double, double, double)
set the delta transform in the amdb frame and update the geoModel Delta
void setBLinePar(const BLinePar *bLine)
Amg::Transform3D getRotateY3D(double angle)
get a rotation transformation around Y-axis
void setPhysVol(const PVLink &vol)
Eigen::Matrix< double, 3, 1 > Vector3D
void addMuonReadoutElementWithAlTransf(MuonReadoutElement *a, GeoAlignableTransform *ptrsf, int jobIndex)
MuonStation(std::string_view stName, double Ssize, double Rsize, double Zsize, double LongSsize, double LongRsize, double LongZsize, int zi, int fi, bool m_descratzneg)
Container classifier the MDT as-built parameters See parameter description in http://atlas-muon-align...
double RsizeMdtStation() const
#define ATH_MSG_WARNING(x)
int getEtaIndex() const
a la AMDB
const boost::regex re(r_e)
Eigen::Translation< double, 3 > Translation3D
const MdtAsBuiltPar * getMdtAsBuiltParams() const
const Amg::Vector3D & getBlineFixedPointInAmdbLRS() const
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
void setDeltaAmdbLRS(Amg::Transform3D xf)
set the delta transform in the amdb frame and update the geoModel Delta
double ZsizeMdtStation() const
void setxAmdbCRO(double xpos)
void setNominalAmdbLRSToGlobal(Amg::Transform3D xf)