|
ATLAS Offline Software
|
#include <MdtReadoutElement.h>
|
| MdtReadoutElement (GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr) |
|
| ~MdtReadoutElement ()=default |
|
unsigned int | nMDTinStation () const |
| How many MDT chambers are in the station. More...
|
|
void | setNMdtInStation (unsigned int numMdt) |
|
bool | barrel () const |
| Returns whether the chamber is in the barrel (Assement on first later in stationName) More...
|
|
bool | endcap () const |
| Returns whether the chamber is in the endcap. More...
|
|
int | getMultilayer () const |
| Returns the multilayer represented by the readout element. More...
|
|
int | getNLayers () const |
| Returns the number of tube layers inside the multilayer. More...
|
|
int | getNtubesperlayer () const |
| Returns the number of tubes in each tube layer. More...
|
|
int | getNtubesinastep () const |
| Returns the number of tubes in the endcap trapezoid sharing the same length. More...
|
|
void | setMultilayer (const int ml) |
| Sets the multilayer number. More...
|
|
void | setNLayers (const int nl) |
| Sets the number of layers. More...
|
|
bool | getWireFirstLocalCoordAlongZ (int tubeLayer, double &coord) const |
|
bool | getWireFirstLocalCoordAlongR (int tubeLayer, double &coord) const |
|
bool | containsId (const Identifier &id) const override |
|
double | tubeLength (const int tubeLayer, const int tube) const |
|
double | getActiveTubeLength (const int tubeLayer, const int tube) const |
|
double | getWireLength (const int tubeLayer, const int tube) const |
|
double | tubeLength (const Identifier &id) const |
|
double | innerTubeRadius () const |
| Returns the inner tube radius excluding the aluminium walls. More...
|
|
double | outerTubeRadius () const |
| Returns the tube radius taking the thickness of the tubes into account. More...
|
|
double | tubePitch () const |
| Returns the distance between 2 tubes in a tube layer. More...
|
|
const Amg::Transform3D & | localToGlobalTransf (const Identifier &id) const |
|
const Amg::Transform3D & | localToGlobalTransf (const int tubeLayer, const int tube) const |
|
Amg::Transform3D | nodeform_localToGlobalTransf (const Identifier &id) const |
|
Amg::Transform3D | nodeform_localToGlobalTransf (const int tubeLayer, const int tube) const |
|
Amg::Transform3D | globalToLocalTransf (const int tubeLayer, const int tube) const |
|
Amg::Transform3D | globalToLocalTransf (const Identifier &id) const |
|
Amg::Transform3D | nodeform_globalToLocalTransf (const Identifier &id) const |
|
Amg::Transform3D | nodeform_globalToLocalTransf (const int tubeLayer, const int tube) const |
|
Amg::Vector3D | localTubePos (const Identifier &id) const |
|
Amg::Vector3D | localTubePos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | nodeform_localTubePos (const Identifier &id) const |
|
Amg::Vector3D | nodeform_localTubePos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | tubePos (const Identifier &id) const |
| Returns the global position of the given tube. More...
|
|
Amg::Vector3D | tubePos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | nodeform_tubePos (const Identifier &id) const |
| Returns the global position of the tube excluding the B-line & As-built corrections. More...
|
|
Amg::Vector3D | nodeform_tubePos (const int tubelayer, const int tube) const |
|
double | signedRODistanceFromTubeCentre (const Identifier &id) const |
|
double | signedRODistanceFromTubeCentre (const int tubeLayer, const int tube) const |
|
double | RODistanceFromTubeCentre (const Identifier &id) const |
|
double | RODistanceFromTubeCentre (const int tubeLayer, const int tube) const |
|
double | distanceFromRO (const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const |
|
double | distanceFromRO (const Amg::Vector3D &GlobalHitPosition, const int tubelayer, const int tube) const |
|
int | isAtReadoutSide (const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const |
|
int | isAtReadoutSide (const Amg::Vector3D &GlobalHitPosition, const int tubelayer, const int tube) const |
|
Amg::Vector3D | localROPos (const Identifier &id) const |
|
Amg::Vector3D | localROPos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | ROPos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | ROPos (const Identifier &id) const |
|
Amg::Vector3D | tubeFrame_localROPos (const int tubelayer, const int tube) const |
|
Amg::Vector3D | tubeFrame_localROPos (const Identifier &id) const |
|
void | setBLinePar (const BLinePar *bLine) |
|
void | clearBLinePar () |
|
const BLinePar * | getBLinePar () const |
|
void | clearCache () override final |
|
void | fillCache () override final |
|
virtual const Trk::Surface & | surface () const override final |
| Return surface associated with this detector element. More...
|
|
virtual const Trk::SaggedLineSurface & | surface (const Identifier &id) const override final |
| Return surface associated with this identifier, which should come from the PrepRawData object (i.e. More...
|
|
virtual const Trk::SaggedLineSurface & | surface (const int tubeLayer, const int tube) const |
|
virtual const Trk::SurfaceBounds & | bounds () const override final |
| Return the boundaries of the element. More...
|
|
virtual const Trk::CylinderBounds & | bounds (const Identifier &id) const override final |
| Return the boundaries of the surface associated with this identifier. More...
|
|
virtual const Trk::CylinderBounds & | bounds (const int tubeLayer, const int tube) const |
|
virtual const Amg::Transform3D & | transform (const Identifier &id) const override final |
| Return local to global transform associated with this identifier. More...
|
|
virtual const Amg::Transform3D & | transform () const override final |
| Return local to global transform. More...
|
|
const Amg::Transform3D & | transform (const int tubeLayer, const int tube) const |
|
virtual const Amg::Vector3D & | center (const Identifier &) const override final |
| Return the center of the surface associated with this identifier In the case of silicon it returns the same as center() More...
|
|
virtual const Amg::Vector3D & | center () const override final |
| Return the center of the element. More...
|
|
const Amg::Vector3D & | center (const int tubeLayer, const int tube) const |
|
virtual const Amg::Vector3D & | normal (const Identifier &) const override final |
| Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal() More...
|
|
virtual const Amg::Vector3D & | normal () const override final |
| Return the normal of the element. More...
|
|
std::vector< const Trk::Surface * > | surfaces () const |
| returns all the surfaces contained in this detector element More...
|
|
Amg::Transform3D | tubeToMultilayerTransf (const Identifier &id) const |
|
Amg::Transform3D | tubeToMultilayerTransf (const int tubeLayer, const int tube) const |
|
Identifier | identify () const override final |
| Returns the ATLAS Identifier of the MuonReadOutElement. More...
|
|
IdentifierHash | identifyHash () const override final |
| Returns the IdentifierHash of the MuonStation, i.e. More...
|
|
IdentifierHash | detectorElementHash () const |
| Returns the IdentifierHash of the detector element. More...
|
|
void | setIdentifier (const Identifier &id) |
| Sets the Identifier, hashes & station names. More...
|
|
int | getStationIndex () const |
|
int | getStationEta () const |
|
int | getStationPhi () const |
|
const Amg::Vector3D | globalPosition () const |
|
const Amg::Transform3D & | absTransform () const |
|
const Amg::Transform3D & | defTransform () const |
|
virtual Amg::Vector3D | AmdbLRSToGlobalCoords (const Amg::Vector3D &x) const |
|
virtual Amg::Transform3D | AmdbLRSToGlobalTransform () const |
|
virtual Amg::Vector3D | GlobalToAmdbLRSCoords (const Amg::Vector3D &x) const |
|
virtual Amg::Transform3D | GlobalToAmdbLRSTransform () const |
|
std::string | getTechnologyType () const |
|
const std::string & | getTechnologyName () const |
|
void | setTechnologyName (const std::string &str) |
|
std::string | getStationType () const |
|
const std::string & | getStationName () const |
|
void | setStationName (const std::string &) |
|
double | getSsize () const |
|
double | getRsize () const |
|
double | getZsize () const |
|
double | getLongSsize () const |
|
double | getLongRsize () const |
|
double | getLongZsize () const |
|
double | getStationS () const |
| Seems to be exclusively used by the MDTs --> Move it to MdtReadoutElement. More...
|
|
void | setStationS (double) |
|
void | setLongSsize (double) |
|
void | setLongRsize (double) |
|
void | setLongZsize (double) |
|
void | setSsize (double) |
|
void | setRsize (double) |
|
void | setZsize (double) |
|
bool | largeSector () const |
|
bool | smallSector () const |
|
bool | sideA () const |
|
bool | sideC () const |
|
void | setParentStationPV (const PVConstLink &) |
|
void | setParentStationPV () |
|
PVConstLink | parentStationPV () const |
|
const MuonStation * | parentMuonStation () const |
|
void | setParentMuonStation (const MuonStation *) |
|
Amg::Transform3D | toParentStation () const |
|
Amg::Vector3D | parentMuonStationPos () const |
|
int | getIndexOfREinMuonStation () const |
|
bool | hasCutouts () const |
|
void | setHasCutouts (bool flag) |
|
void | refreshCache () |
|
const Muon::IMuonIdHelperSvc * | idHelperSvc () const |
|
Trk::DetectorElemType | detectorType () const override final |
| Return the Detector element type. More...
|
|
std::string | detectorTypeString () const |
| Returns a string of the Detector element type. More...
|
|
bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. More...
|
|
MsgStream & | msg () const |
| The standard message stream. More...
|
|
MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. More...
|
|
void | setLevel (MSG::Level lvl) |
| Change the current logging level. More...
|
|
|
void | geoInitDone () |
|
double | getTubeLengthForCaching (const int tubeLayer, const int tube) const |
|
double | getNominalTubeLengthWoCutouts (const int tubeLayer, const int tube) const |
|
Amg::Vector3D | localNominalTubePosWoCutouts (const int tubelayer, const int tube) const |
|
const Amg::Transform3D & | fromIdealToDeformed (const int tubelayer, const int tube) const |
|
Amg::Vector3D | posOnDefChamWire (const Amg::Vector3D &locAMDBPos, const double width_narrow, const double width_wide, const double height, const double thickness, const Amg::Vector3D &fixedPoint) const |
|
void | wireEndpointsAsBuilt (Amg::Vector3D &locAMDBWireEndP, Amg::Vector3D &locAMDBWireEndN, const int tubelayer, const int tube) const |
|
Amg::Transform3D | globalTransform (const Amg::Vector3D &tubePos, const Amg::Transform3D &toDeform) const |
|
std::unique_ptr< GeoInfo > | makeGeoInfo (const int tubelayer, const int tube) const |
|
const GeoInfo & | geoInfo (const int tubeLayer, const int tube) const |
|
Amg::Transform3D | deformedTransform (const int tubelayer, const int tube) const |
|
void | setIndexOfREinMuonStation () |
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
◆ MdtReadoutElement()
MuonGM::MdtReadoutElement::MdtReadoutElement |
( |
GeoVFullPhysVol * |
pv, |
|
|
const std::string & |
stName, |
|
|
MuonDetectorManager * |
mgr |
|
) |
| |
◆ ~MdtReadoutElement()
MuonGM::MdtReadoutElement::~MdtReadoutElement |
( |
| ) |
|
|
default |
◆ absTransform()
◆ AmdbLRSToGlobalCoords()
◆ AmdbLRSToGlobalTransform()
◆ barrel()
bool MuonGM::MdtReadoutElement::barrel |
( |
| ) |
const |
Returns whether the chamber is in the barrel (Assement on first later in stationName)
◆ bounds() [1/3]
◆ bounds() [2/3]
Return the boundaries of the surface associated with this identifier.
For TRT this will be a straw, while for silicon it returns the same as bounds()
Implements Trk::TrkDetElementBase.
◆ bounds() [3/3]
◆ center() [1/3]
◆ center() [2/3]
Return the center of the surface associated with this identifier In the case of silicon it returns the same as center()
Implements Trk::TrkDetElementBase.
◆ center() [3/3]
◆ clearBLinePar()
void MuonGM::MdtReadoutElement::clearBLinePar |
( |
| ) |
|
◆ clearCache()
void MuonGM::MdtReadoutElement::clearCache |
( |
| ) |
|
|
finaloverridevirtual |
◆ containsId()
◆ deformedTransform()
Definition at line 462 of file MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx.
465 if ( !
ms->hasBLines() && !
ms->hasMdtAsBuiltParams()) {
466 return Amg::Transform3D::Identity();
474 double height =
barrel() ?
ms->ZsizeMdtStation() :
ms->RsizeMdtStation();
475 double thickness =
barrel() ?
ms->RsizeMdtStation() :
ms->ZsizeMdtStation();
480 <<
", layer: "<<tubeLayer<<
", tube: "<<
tube
482 <<
Amg::toString(
ms->getGeoTransform()->getDefTransform() *
ms->getNativeToAmdbLRS().inverse()* fixedPoint)
483 <<
", height: "<<height<<
", thickness: "<<thickness
489 if (std::abs(height - heightML) > 10.) {
491 <<
"Different ML and MDTStation length in the precision coord.direction --- MultiLayerHeight, MDTstationHeigh "
492 << heightML <<
" " << height <<
" MultiLayerThickness, MDTstationThickness " << thicknessML <<
" " << thickness);
508 Amg::Vector3D pt_end1 = toAMDB * pt_center + halftubelen * Amg::Vector3D::UnitX();
509 Amg::Vector3D pt_end2 = toAMDB * pt_center - halftubelen * Amg::Vector3D::UnitX();
515 if (
ms->hasMdtAsBuiltParams()) {
520 if (
ms->hasBLines()) {
524 pt_end1_new =
posOnDefChamWire(pt_end1_new, width_narrow, width_wide, height, thickness, fixedPoint);
527 pt_end2_new =
posOnDefChamWire(pt_end2_new, width_narrow, width_wide, height, thickness, fixedPoint);
531 pt_end1 = fromAMDB * pt_end1;
532 pt_end2 = fromAMDB * pt_end2;
533 pt_end1_new = fromAMDB * pt_end1_new;
534 pt_end2_new = fromAMDB * pt_end2_new;
541 const Amg::Vector3D pt_center_new = 0.5 * (pt_end1_new + pt_end2_new);
546 const Amg::Vector3D rotation_vector = old_direction.cross(new_direction);
550 if (rotation_vector.mag() > 10. * std::numeric_limits<double>::epsilon()) {
551 const Amg::AngleAxis3D wire_rotation(std::asin(rotation_vector.mag()), rotation_vector.unit());
◆ defTransform()
◆ detectorElementHash()
IdentifierHash MuonGM::MuonReadoutElement::detectorElementHash |
( |
| ) |
const |
|
inlineinherited |
◆ detectorType()
|
inlinefinaloverridevirtualinherited |
◆ detectorTypeString()
std::string Trk::TrkDetElementBase::detectorTypeString |
( |
| ) |
const |
|
inherited |
◆ distanceFromRO() [1/2]
◆ distanceFromRO() [2/2]
◆ endcap()
bool MuonGM::MdtReadoutElement::endcap |
( |
| ) |
const |
Returns whether the chamber is in the endcap.
◆ fillCache()
void MuonGM::MdtReadoutElement::fillCache |
( |
| ) |
|
|
finaloverridevirtual |
◆ fromIdealToDeformed()
◆ geoInfo()
◆ geoInitDone()
void MuonGM::MdtReadoutElement::geoInitDone |
( |
| ) |
|
|
private |
◆ getActiveTubeLength()
double MuonGM::MdtReadoutElement::getActiveTubeLength |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
◆ getBLinePar()
◆ getIndexOfREinMuonStation()
int MuonGM::MuonReadoutElement::getIndexOfREinMuonStation |
( |
| ) |
const |
|
inherited |
◆ getLongRsize()
double MuonGM::MuonReadoutElement::getLongRsize |
( |
| ) |
const |
|
inlineinherited |
◆ getLongSsize()
double MuonGM::MuonReadoutElement::getLongSsize |
( |
| ) |
const |
|
inlineinherited |
◆ getLongZsize()
double MuonGM::MuonReadoutElement::getLongZsize |
( |
| ) |
const |
|
inlineinherited |
◆ getMultilayer()
int MuonGM::MdtReadoutElement::getMultilayer |
( |
| ) |
const |
Returns the multilayer represented by the readout element.
◆ getNLayers()
int MuonGM::MdtReadoutElement::getNLayers |
( |
| ) |
const |
Returns the number of tube layers inside the multilayer.
◆ getNominalTubeLengthWoCutouts()
double MuonGM::MdtReadoutElement::getNominalTubeLengthWoCutouts |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
|
private |
◆ getNtubesinastep()
int MuonGM::MdtReadoutElement::getNtubesinastep |
( |
| ) |
const |
Returns the number of tubes in the endcap trapezoid sharing the same length.
◆ getNtubesperlayer()
int MuonGM::MdtReadoutElement::getNtubesperlayer |
( |
| ) |
const |
Returns the number of tubes in each tube layer.
◆ getRsize()
double MuonGM::MuonReadoutElement::getRsize |
( |
| ) |
const |
|
inlineinherited |
◆ getSsize()
double MuonGM::MuonReadoutElement::getSsize |
( |
| ) |
const |
|
inlineinherited |
◆ getStationEta()
int MuonGM::MuonReadoutElement::getStationEta |
( |
| ) |
const |
|
inlineinherited |
◆ getStationIndex()
int MuonGM::MuonReadoutElement::getStationIndex |
( |
| ) |
const |
|
inlineinherited |
◆ getStationName()
const std::string & MuonGM::MuonReadoutElement::getStationName |
( |
| ) |
const |
|
inlineinherited |
◆ getStationPhi()
int MuonGM::MuonReadoutElement::getStationPhi |
( |
| ) |
const |
|
inlineinherited |
◆ getStationS()
double MuonGM::MuonReadoutElement::getStationS |
( |
| ) |
const |
|
inlineinherited |
◆ getStationType()
std::string MuonGM::MuonReadoutElement::getStationType |
( |
| ) |
const |
|
inlineinherited |
◆ getTechnologyName()
const std::string & MuonGM::MuonReadoutElement::getTechnologyName |
( |
| ) |
const |
|
inlineinherited |
◆ getTechnologyType()
std::string MuonGM::MuonReadoutElement::getTechnologyType |
( |
| ) |
const |
|
inlineinherited |
◆ getTubeLengthForCaching()
double MuonGM::MdtReadoutElement::getTubeLengthForCaching |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
|
private |
Definition at line 104 of file MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx.
105 double nominalTubeLength = 0.;
110 if (istep < 0 || istep >=
m_nsteps) {
112 <<
" DEid = " <<
idHelperSvc()->toStringDetEl(
identify()) <<
" called with: tubeL, tube " << tubeLayer <<
" " <<
tube
119 double tlength = nominalTubeLength;
122 if (
manager()->MinimalGeoFlag() == 0) {
124 <<
" has cutouts, check for real tube length for tubeLayer, tube " << tubeLayer <<
" " <<
tube );
125 PVConstLink cv = getMaterialGeom();
126 int nGrandchildren = cv->getNChildVols();
127 if (nGrandchildren <= 0)
return tlength;
136 int packed_id =
tube + maxNTubesPerLayer * tubeLayer;
141 if (!
found &&
id == packed_id) {
148 ATH_MSG_DEBUG(
" MdtReadoutElement tube match found for BMG - input : tube(" <<
tube <<
"), layer("
149 << tubeLayer <<
") - output match : tube(" << ii % maxNTubesPerLayer <<
"), layer(" << ii / maxNTubesPerLayer
153 if (ii >= nGrandchildren) {
155 <<
" --- getTubeLength is looking for child with index ii=" << ii <<
" for tubeL and tube = " << tubeLayer <<
" "
162 <<
" --- getTubeLength is looking for child with index ii=" << ii <<
" for tubeL and tube = " << tubeLayer <<
" "
167 PVConstLink physChild = cv->getChildVol(ii);
168 const GeoShape* shape = physChild->getLogVol()->getShape();
169 if (shape ==
nullptr)
return tlength;
170 const GeoTube* theTube =
dynamic_cast<const GeoTube*
>(shape);
171 if (theTube !=
nullptr)
172 tlength = 2. * theTube->getZHalfLength();
175 <<
" out of (tubeLayer-1)*m_ntubesperlayer+tube with tl=" << tubeLayer <<
" tubes/lay=" <<
m_ntubesperlayer
178 if (std::abs(tlength - nominalTubeLength) > 0.1) {
180 <<
" is affected by a cutout: eff. length = " << tlength <<
" while nominal = " << nominalTubeLength
184 <<
" is NOT affected by the cutout: eff. length = " << tlength <<
" while nominal = " << nominalTubeLength);
◆ getWireFirstLocalCoordAlongR()
bool MuonGM::MdtReadoutElement::getWireFirstLocalCoordAlongR |
( |
int |
tubeLayer, |
|
|
double & |
coord |
|
) |
| const |
◆ getWireFirstLocalCoordAlongZ()
bool MuonGM::MdtReadoutElement::getWireFirstLocalCoordAlongZ |
( |
int |
tubeLayer, |
|
|
double & |
coord |
|
) |
| const |
◆ getWireLength()
double MuonGM::MdtReadoutElement::getWireLength |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
◆ getZsize()
double MuonGM::MuonReadoutElement::getZsize |
( |
| ) |
const |
|
inlineinherited |
◆ globalPosition()
◆ GlobalToAmdbLRSCoords()
◆ GlobalToAmdbLRSTransform()
◆ globalToLocalTransf() [1/2]
◆ globalToLocalTransf() [2/2]
◆ globalTransform()
◆ hasCutouts()
bool MuonGM::MuonReadoutElement::hasCutouts |
( |
| ) |
const |
|
inlineinherited |
◆ identify()
Identifier MuonGM::MuonReadoutElement::identify |
( |
| ) |
const |
|
inlinefinaloverridevirtualinherited |
◆ identifyHash()
|
inlinefinaloverridevirtualinherited |
◆ idHelperSvc()
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ innerTubeRadius()
double MuonGM::MdtReadoutElement::innerTubeRadius |
( |
| ) |
const |
Returns the inner tube radius excluding the aluminium walls.
◆ isAtReadoutSide() [1/2]
◆ isAtReadoutSide() [2/2]
◆ largeSector()
bool MuonGM::MuonReadoutElement::largeSector |
( |
| ) |
const |
|
inherited |
◆ localNominalTubePosWoCutouts()
Amg::Vector3D MuonGM::MdtReadoutElement::localNominalTubePosWoCutouts |
( |
const int |
tubelayer, |
|
|
const int |
tube |
|
) |
| const |
|
private |
◆ localROPos() [1/2]
◆ localROPos() [2/2]
◆ localToGlobalTransf() [1/2]
◆ localToGlobalTransf() [2/2]
◆ localTubePos() [1/2]
◆ localTubePos() [2/2]
◆ makeGeoInfo()
◆ manager()
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ nMDTinStation()
unsigned int MuonGM::MdtReadoutElement::nMDTinStation |
( |
| ) |
const |
|
inline |
◆ nodeform_globalToLocalTransf() [1/2]
◆ nodeform_globalToLocalTransf() [2/2]
◆ nodeform_localToGlobalTransf() [1/2]
◆ nodeform_localToGlobalTransf() [2/2]
◆ nodeform_localTubePos() [1/2]
◆ nodeform_localTubePos() [2/2]
Definition at line 296 of file MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx.
298 <<
"/" << tubeLayer <<
"/" <<
tube );
299 double xtube{0.}, ytube{0.}, ztube{0.};
311 PVConstLink cv = getMaterialGeom();
312 int nGrandchildren = cv->getNChildVols();
322 int packed_id =
tube + maxNTubesPerLayer * tubeLayer;
327 if (!
found &&
id == packed_id) {
335 ATH_MSG_DEBUG(
" MdtReadoutElement tube match found for BMG - input : tube(" <<
tube <<
"), layer("
336 << tubeLayer <<
") - output match : tube(" << ii % maxNTubesPerLayer <<
"), layer(" << ii / maxNTubesPerLayer
341 PVConstLink tv = cv->getChildVol(ii);
342 constexpr
double maxtol = 0.0000001;
344 if (std::abs(xtube - tubeTrans(0, 3)) > maxtol || std::abs(ztube - tubeTrans(2, 3)) > maxtol) {
345 THROW_EXCEPTION(__func__<<
"("<<tubeLayer<<
","<<
tube<<
")"<<
" - mismatch between local from tube-id/pitch/cutout position"<<
347 idHelperSvc()->toStringDetEl(
identify()) <<
"There are "<<nGrandchildren<<
" child volumes and "<<
351 if (tubeTrans(1, 3) > maxtol) {
354 <<
"/" << tubeLayer <<
"/" <<
tube);
357 THROW_EXCEPTION(__func__<<
"("<<tubeLayer<<
","<<
tube<<
")"<<
" - mismatch between local from tube-id/pitch/cutout position"<<
359 idHelperSvc()->toStringDetEl(
identify()) <<
"There are "<<nGrandchildren<<
" child volumes and "<<
◆ nodeform_tubePos() [1/2]
Returns the global position of the tube excluding the B-line & As-built corrections.
◆ nodeform_tubePos() [2/2]
◆ normal() [1/2]
◆ normal() [2/2]
Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal()
Implements Trk::TrkDetElementBase.
◆ outerTubeRadius()
double MuonGM::MdtReadoutElement::outerTubeRadius |
( |
| ) |
const |
Returns the tube radius taking the thickness of the tubes into account.
◆ parentMuonStation()
◆ parentMuonStationPos()
Amg::Vector3D MuonGM::MuonReadoutElement::parentMuonStationPos |
( |
| ) |
const |
|
inherited |
◆ parentStationPV()
PVConstLink MuonGM::MuonReadoutElement::parentStationPV |
( |
| ) |
const |
|
inherited |
◆ posOnDefChamWire()
Definition at line 583 of file MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx.
627 double s0 = locAMDBPos.x();
628 double z0 = locAMDBPos.y();
629 double t0 = locAMDBPos.z();
630 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - width_narrow, width_wide, length, thickness, " << width_narrow <<
" " << width_wide
631 <<
" " << height <<
" " << thickness <<
" " );
632 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - going to correct for B-line the position of Point at " << s0 <<
" " <<
z0 <<
" "
633 << t0 <<
" in the amdb-szt frame" );
636 if (std::abs(fixedPoint.x()) > 0.01) s0mdt =
s0 - fixedPoint.x();
639 if (std::abs(fixedPoint.y()) > 0.01) z0mdt =
z0 - fixedPoint.y();
642 if (std::abs(fixedPoint.z()) > 0.01) t0mdt =
t0 - fixedPoint.z();
643 if (z0mdt < 0 || t0mdt < 0) {
644 ATH_MSG_WARNING(
""<<__func__<<
": correcting the local position of a point outside the mdt station (2 multilayers) volume -- RE "
648 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - correct for offset of B-line fixed point " << s0mdt <<
" " << z0mdt <<
" " << t0mdt);
650 double ds{0.},dz{0.},
dt{0.};
651 double width_actual = width_narrow + (width_wide - width_narrow) * (z0mdt / height);
652 double s_rel = s0mdt / (width_actual / 2.);
653 double z_rel = (z0mdt - height / 2.) / (height / 2.);
654 double t_rel = (t0mdt - thickness / 2.) / (thickness / 2.);
656 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - width_actual, s_rel, z_rel, t_rel " << width_actual <<
" " << s_rel <<
" "
657 << z_rel <<
" " << t_rel );
660 if ((sp != 0) || (sn != 0)) {
661 double ztmp = z_rel * z_rel - 1;
662 dt += 0.5 * (sp + sn) * ztmp + 0.5 * (sp - sn) * ztmp * s_rel;
667 dt -= tw * s_rel * z_rel;
668 dz += tw * s_rel * t_rel * thickness / height;
669 ATH_MSG_VERBOSE(
"** In "<<__func__<<
": tw=" << tw <<
" dt, dz " <<
dt <<
" " << dz );
674 double egppm =
eg / 1000.;
686 if ((ep != 0) || (
en != 0)) {
689 double phi = 0.5 * (ep +
en) * s_rel * s_rel + 0.5 * (ep -
en) * s_rel;
690 double localDt =
phi * (t0mdt - thickness / 2.);
691 double localDz =
phi * (z0mdt - height / 2.);
697 deformPos[0] =
s0 +
ds;
698 deformPos[1] =
z0 + dz;
699 deformPos[2] =
t0 +
dt;
◆ refreshCache()
void MuonGM::MuonReadoutElement::refreshCache |
( |
| ) |
|
|
inherited |
◆ RODistanceFromTubeCentre() [1/2]
double MuonGM::MdtReadoutElement::RODistanceFromTubeCentre |
( |
const Identifier & |
id | ) |
const |
◆ RODistanceFromTubeCentre() [2/2]
double MuonGM::MdtReadoutElement::RODistanceFromTubeCentre |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
◆ ROPos() [1/2]
◆ ROPos() [2/2]
◆ setBLinePar()
void MuonGM::MdtReadoutElement::setBLinePar |
( |
const BLinePar * |
bLine | ) |
|
◆ setHasCutouts()
void MuonGM::MuonReadoutElement::setHasCutouts |
( |
bool |
flag | ) |
|
|
inlineinherited |
◆ setIdentifier()
◆ setIndexOfREinMuonStation()
void MuonGM::MuonReadoutElement::setIndexOfREinMuonStation |
( |
| ) |
|
|
privateinherited |
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setLongRsize()
void MuonGM::MuonReadoutElement::setLongRsize |
( |
double |
v | ) |
|
|
inherited |
◆ setLongSsize()
void MuonGM::MuonReadoutElement::setLongSsize |
( |
double |
v | ) |
|
|
inherited |
◆ setLongZsize()
void MuonGM::MuonReadoutElement::setLongZsize |
( |
double |
v | ) |
|
|
inherited |
◆ setMultilayer()
void MuonGM::MdtReadoutElement::setMultilayer |
( |
const int |
ml | ) |
|
◆ setNLayers()
void MuonGM::MdtReadoutElement::setNLayers |
( |
const int |
nl | ) |
|
◆ setNMdtInStation()
void MuonGM::MdtReadoutElement::setNMdtInStation |
( |
unsigned int |
numMdt | ) |
|
|
inline |
◆ setParentMuonStation()
void MuonGM::MuonReadoutElement::setParentMuonStation |
( |
const MuonStation * |
mstat | ) |
|
|
inherited |
◆ setParentStationPV() [1/2]
void MuonGM::MuonReadoutElement::setParentStationPV |
( |
| ) |
|
|
inherited |
Definition at line 77 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.
80 std::string::size_type npos;
81 PVConstLink pStat = PVConstLink(
nullptr);
82 PVConstLink myphysvol(getMaterialGeom());
84 std::string
name = (myphysvol->getLogVol())->
getName();
85 if ((npos =
name.find(
"Station")) != std::string::npos) {
88 for (
unsigned int k = 0;
k < 10;
k++) {
89 pStat = myphysvol->getParent();
90 if (pStat == PVConstLink(
nullptr))
break;
92 if ((npos =
name.find(
"Station")) != std::string::npos) {
break; }
◆ setParentStationPV() [2/2]
void MuonGM::MuonReadoutElement::setParentStationPV |
( |
const PVConstLink & |
x | ) |
|
|
inherited |
◆ setRsize()
void MuonGM::MuonReadoutElement::setRsize |
( |
double |
v | ) |
|
|
inherited |
◆ setSsize()
void MuonGM::MuonReadoutElement::setSsize |
( |
double |
v | ) |
|
|
inherited |
◆ setStationName()
void MuonGM::MuonReadoutElement::setStationName |
( |
const std::string & |
str | ) |
|
|
inherited |
◆ setStationS()
void MuonGM::MuonReadoutElement::setStationS |
( |
double |
v | ) |
|
|
inherited |
◆ setTechnologyName()
void MuonGM::MuonReadoutElement::setTechnologyName |
( |
const std::string & |
str | ) |
|
|
inherited |
◆ setZsize()
void MuonGM::MuonReadoutElement::setZsize |
( |
double |
v | ) |
|
|
inherited |
◆ sideA()
bool MuonGM::MuonReadoutElement::sideA |
( |
| ) |
const |
|
inlineinherited |
◆ sideC()
bool MuonGM::MuonReadoutElement::sideC |
( |
| ) |
const |
|
inlineinherited |
◆ signedRODistanceFromTubeCentre() [1/2]
double MuonGM::MdtReadoutElement::signedRODistanceFromTubeCentre |
( |
const Identifier & |
id | ) |
const |
◆ signedRODistanceFromTubeCentre() [2/2]
double MuonGM::MdtReadoutElement::signedRODistanceFromTubeCentre |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
◆ smallSector()
bool MuonGM::MuonReadoutElement::smallSector |
( |
| ) |
const |
|
inherited |
◆ surface() [1/3]
◆ surface() [2/3]
Return surface associated with this identifier, which should come from the PrepRawData object (i.e.
Surface s = PRD.detElement().surface( PRD.identify() ). This is only really relevant for the TRT (where there are several surfaces per detector element). For other detector elements it will just return surface() ... the Identifier is ignored.
Implements Trk::TrkDetElementBase.
◆ surface() [3/3]
◆ surfaces()
◆ toParentStation()
◆ transform() [1/3]
◆ transform() [2/3]
◆ transform() [3/3]
◆ tubeFrame_localROPos() [1/2]
◆ tubeFrame_localROPos() [2/2]
◆ tubeLength() [1/2]
double MuonGM::MdtReadoutElement::tubeLength |
( |
const Identifier & |
id | ) |
const |
◆ tubeLength() [2/2]
double MuonGM::MdtReadoutElement::tubeLength |
( |
const int |
tubeLayer, |
|
|
const int |
tube |
|
) |
| const |
◆ tubePitch()
double MuonGM::MdtReadoutElement::tubePitch |
( |
| ) |
const |
Returns the distance between 2 tubes in a tube layer.
◆ tubePos() [1/2]
Returns the global position of the given tube.
◆ tubePos() [2/2]
◆ tubeToMultilayerTransf() [1/3]
◆ tubeToMultilayerTransf() [2/3]
◆ tubeToMultilayerTransf() [3/3]
◆ wireEndpointsAsBuilt()
Definition at line 716 of file MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx.
725 <<
" tubeLayer=" << tubeLayer <<
" tube=" <<
tube);
727 constexpr
int nsid = 2;
730 std::array<MdtAsBuiltPar::tubeSide_t, nsid> tubeSide{tubeSide_t::POS, tubeSide_t::NEG};
731 std::array<Amg::Vector3D, nsid> wireEnd{locAMDBWireEndP, locAMDBWireEndN};
732 multilayer_t ml = (
getMultilayer() == 1) ? multilayer_t::ML1 : multilayer_t::ML2;
735 const int ref_layer = (ml == multilayer_t::ML1) ?
m_nlayers : 1;
738 for (
int isid = 0; isid < nsid; ++isid) {
740 double xref{0.}, yref{0.}, zref{0.};
751 reference_point = toAMDB * reference_point;
761 int layer_delta = tubeLayer;
762 if (ml == multilayer_t::ML1) layer_delta =
m_nlayers + 1 - tubeLayer;
765 double zpitch =
params->zpitch(ml, tubeSide[isid]);
766 double ypitch =
params->ypitch(ml, tubeSide[isid]);
767 double stagg = (
double)
params->stagg(ml, tubeSide[isid]);
768 double alpha =
params->alpha(ml, tubeSide[isid]);
769 double y0 =
params->y0(ml, tubeSide[isid]);
770 double z0 =
params->z0(ml, tubeSide[isid]);
773 int do_stagg = (layer_delta - 1) % 2;
774 double offset_stagg = ((
double)do_stagg) * 0.5 * zpitch * stagg;
775 Amg::Vector3D end_plug(0., (
tube - 1.0) * zpitch + offset_stagg, (layer_delta - 1) * ypitch);
778 end_plug = amgTransf * end_plug;
787 Amg::Vector3D ret(reference_point.x() + xshift, reference_point.y() +
z0 + end_plug.y(),
788 reference_point.z() + y0 + end_plug.z());
794 << isid <<
", Delta " <<
Amg::toString(ret - wireEnd[isid]) );
796 ATH_MSG_VERBOSE(( tubeSide[isid] == tubeSide_t::POS ?
"positive" :
"negative")<<
" wire end has moved from "
800 if (tubeSide[isid] == tubeSide_t::POS)
801 locAMDBWireEndP = ret;
803 locAMDBWireEndN = ret;
◆ MuonChamber
◆ MuonChamberLite
◆ MuonGMR4::ReadoutGeomCnvAlg
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_associatedBounds
◆ m_associatedSurface
◆ m_backupTubeGeo
◆ m_BLinePar
◆ m_caching
int MuonGM::MuonReadoutElement::m_caching {-1} |
|
protectedinherited |
◆ m_cutoutShift
double MuonGM::MdtReadoutElement::m_cutoutShift {-9999.} |
|
private |
◆ m_deadlength
double MuonGM::MdtReadoutElement::m_deadlength {-9999.} |
|
private |
◆ m_deformTransf
◆ m_detectorElIdhash
◆ m_elemNormal
◆ m_endpluglength
double MuonGM::MdtReadoutElement::m_endpluglength {-9999.} |
|
private |
◆ m_eta
int MuonGM::MuonReadoutElement::m_eta {-1} |
|
privateinherited |
◆ m_firstwire_x
◆ m_firstwire_y
◆ m_hasCutouts
bool MuonGM::MuonReadoutElement::m_hasCutouts {false} |
|
protectedinherited |
◆ m_haveDeformTransf
std::atomic<bool> MuonGM::MdtReadoutElement::m_haveDeformTransf {false} |
|
mutableprivate |
◆ m_haveTubeBounds
std::atomic<bool> MuonGM::MdtReadoutElement::m_haveTubeBounds {false} |
|
mutableprivate |
◆ m_haveTubeGeo
std::atomic<bool> MuonGM::MdtReadoutElement::m_haveTubeGeo {false} |
|
mutableprivate |
◆ m_haveTubeSurfaces
std::atomic<bool> MuonGM::MdtReadoutElement::m_haveTubeSurfaces {false} |
|
mutableprivate |
◆ m_id
◆ m_idhash
◆ m_idHelper
◆ m_idHelperSvc
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_inBarrel
bool MuonGM::MdtReadoutElement::m_inBarrel {false} |
|
private |
◆ m_indexOfREinMuonStation
int MuonGM::MuonReadoutElement::m_indexOfREinMuonStation {-999} |
|
privateinherited |
◆ m_innerRadius
double MuonGM::MdtReadoutElement::m_innerRadius {-9999.} |
|
private |
◆ m_LongRsize
double MuonGM::MuonReadoutElement::m_LongRsize {-9999.} |
|
protectedinherited |
◆ m_LongSsize
double MuonGM::MuonReadoutElement::m_LongSsize {-9999.} |
|
protectedinherited |
◆ m_LongZsize
double MuonGM::MuonReadoutElement::m_LongZsize {-9999.} |
|
protectedinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_multilayer
int MuonGM::MdtReadoutElement::m_multilayer {0} |
|
private |
◆ m_muon_mgr
◆ m_nlayers
int MuonGM::MdtReadoutElement::m_nlayers {-1} |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_nMDTinStation
unsigned int MuonGM::MdtReadoutElement::m_nMDTinStation {0} |
|
private |
◆ m_nsteps
int MuonGM::MdtReadoutElement::m_nsteps {-1} |
|
private |
◆ m_ntubesinastep
int MuonGM::MdtReadoutElement::m_ntubesinastep {-1} |
|
private |
◆ m_ntubesperlayer
int MuonGM::MdtReadoutElement::m_ntubesperlayer {-1} |
|
private |
◆ m_parentMuonStation
◆ m_parentStationPV
PVConstLink MuonGM::MuonReadoutElement::m_parentStationPV {nullptr} |
|
privateinherited |
◆ m_phi
int MuonGM::MuonReadoutElement::m_phi {-1} |
|
privateinherited |
◆ m_Rsize
double MuonGM::MuonReadoutElement::m_Rsize {-9999.} |
|
protectedinherited |
◆ m_Ssize
double MuonGM::MuonReadoutElement::m_Ssize {-9999.} |
|
protectedinherited |
◆ m_stationS
double MuonGM::MuonReadoutElement::m_stationS {0.} |
|
privateinherited |
◆ m_statname
std::string MuonGM::MuonReadoutElement::m_statname {"XXX0"} |
|
protectedinherited |
◆ m_stIdx
int MuonGM::MuonReadoutElement::m_stIdx {-1} |
|
privateinherited |
◆ m_stIdx_BIS
const int MuonGM::MdtReadoutElement::m_stIdx_BIS {m_idHelper.stationNameIndex("BIS")} |
|
private |
◆ m_stIdx_BOL
const int MuonGM::MdtReadoutElement::m_stIdx_BOL {m_idHelper.stationNameIndex("BOL")} |
|
private |
◆ m_techname
std::string MuonGM::MuonReadoutElement::m_techname {"TTT0"} |
|
protectedinherited |
◆ m_tubeBounds
◆ m_tubeGeo
◆ m_tubelayerpitch
double MuonGM::MdtReadoutElement::m_tubelayerpitch {-9999.} |
|
private |
◆ m_tubelength
◆ m_tubelenStepSize
double MuonGM::MdtReadoutElement::m_tubelenStepSize {-9999.} |
|
private |
◆ m_tubepitch
double MuonGM::MdtReadoutElement::m_tubepitch {-9999.} |
|
private |
◆ m_tubeSurfaces
◆ m_tubeWallThickness
double MuonGM::MdtReadoutElement::m_tubeWallThickness {-9999.} |
|
private |
◆ m_type
◆ m_zsignRO_tubeFrame
◆ m_Zsize
double MuonGM::MuonReadoutElement::m_Zsize {-9999.} |
|
protectedinherited |
The documentation for this class was generated from the following files:
bool isBMG(const Identifier &id) const
is this a BMG chamber
std::atomic< MSG::Level > m_lvl
Current logging level.
void wireEndpointsAsBuilt(Amg::Vector3D &locAMDBWireEndP, Amg::Vector3D &locAMDBWireEndN, const int tubelayer, const int tube) const
std::array< double, maxnlayers > m_firstwire_x
void reset()
Reset the value to invalid.
int getNLayers() const
Returns the number of tube layers inside the multilayer.
virtual Amg::Transform3D AmdbLRSToGlobalTransform() const
int MinimalGeoFlag() const
std::string m_statname
examples are BMS5, CSS1, EML1
const T * ptr() const
Return a pointer to the cached value.
const Amg::Transform3D & absTransform() const
Identifier m_id
extended data-collection identifier
virtual const Amg::Vector3D & center() const override final
Return the center of the element.
std::string m_techname
MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17.
std::vector< CxxUtils::CachedUniquePtr< Amg::Transform3D > > m_deformTransf
const GeoInfo & geoInfo(const int tubeLayer, const int tube) const
int m_eta
Identifier field of the station eta.
IdentifierHash m_detectorElIdhash
detector element hash identifier
double innerTubeRadius() const
Returns the inner tube radius excluding the aluminium walls.
virtual void fillCache()=0
std::unique_ptr< GeoInfo > makeGeoInfo(const int tubelayer, const int tube) const
bool isValid() const
Test to see if the value is valid.
Amg::Vector3D localNominalTubePosWoCutouts(const int tubelayer, const int tube) const
std::atomic< bool > m_haveTubeBounds
double tubePitch() const
Returns the distance between 2 tubes in a tube layer.
Cached pointer with atomic update.
Amg::Transform3D globalTransform(const Amg::Vector3D &tubePos, const Amg::Transform3D &toDeform) const
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
std::atomic< bool > m_haveTubeGeo
Amg::Transform3D getTransform() const
std::vector< ALFA_RawData_p1 > t0
virtual const Trk::SurfaceBounds & bounds() const override final
Return the boundaries of the element.
Amg::Vector3D nodeform_localTubePos(const Identifier &id) const
Amg::Transform3D nodeform_localToGlobalTransf(const Identifier &id) const
const MdtIdHelper & m_idHelper
void setParentStationPV()
multilayer_t
MDT multi-layer index.
int tubeLayer(const Identifier &id) const
double getTubeLengthForCaching(const int tubeLayer, const int tube) const
const MuonStation * m_parentMuonStation
bool barrel() const
Returns whether the chamber is in the barrel (Assement on first later in stationName)
Trk::DetectorElemType m_type
virtual const Amg::Transform3D & transform() const override final
Return local to global transform.
std::vector< CxxUtils::CachedUniquePtr< Trk::CylinderBounds > > m_tubeBounds
CxxUtils::CachedValue< int > m_zsignRO_tubeFrame
float getParameter(const Parameter p) const
Returns a given parameter.
virtual const Amg::Vector3D & normal() const override final
Return the normal of the element.
#define ATH_MSG_VERBOSE(x)
#define THROW_EXCEPTION(MSG)
const Amg::Vector3D & center() const
Returns the center position of the Surface.
double getLongSsize() const
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
void setIndexOfREinMuonStation()
IMessageSvc * getMessageSvc(bool quiet=false)
virtual DetectorElemType detectorType() const =0
Return the Detector element type.
std::array< double, maxnlayers > m_firstwire_y
double distanceFromRO(const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const
int m_phi
Identifier field of the station phi.
Amg::Transform3D deformedTransform(const int tubelayer, const int tube) const
const Muon::IMuonIdHelperSvc * idHelperSvc() const
double getWireLength(const int tubeLayer, const int tube) const
Amg::Transform3D getRotateX3D(double angle)
get a rotation transformation around X-axis
virtual void clearCache()=0
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
const std::string & getStationName() const
const Amg::Transform3D & fromIdealToDeformed(const int tubelayer, const int tube) const
std::atomic< bool > m_haveTubeSurfaces
Flag whether any elements have been inserted into the corresponding vectors.
std::atomic< bool > m_haveDeformTransf
Amg::Vector3D localTubePos(const Identifier &id) const
Amg::Transform3D m_transform
unsigned int m_nMDTinStation
std::vector< CxxUtils::CachedUniquePtr< Trk::SaggedLineSurface > > m_tubeSurfaces
const MuonStation * parentMuonStation() const
Eigen::Affine3d Transform3D
double outerTubeRadius() const
Returns the tube radius taking the thickness of the tubes into account.
PVConstLink m_parentStationPV
int tube(const Identifier &id) const
CxxUtils::CachedValue< Amg::Vector3D > m_elemNormal
const Amg::Transform3D & getNativeToAmdbLRS() const
int getMultilayer() const
Returns the multilayer represented by the readout element.
const MuonDetectorManager * manager() const
bool m_hasCutouts
true is there are cutouts in the readdout-element
std::string getTechnologyType() const
const MdtIdHelper * mdtIdHelper() const
double signedRODistanceFromTubeCentre(const Identifier &id) const
MsgStream & msg() const
The standard message stream.
void setStationName(const std::string &)
Amg::Vector3D posOnDefChamWire(const Amg::Vector3D &locAMDBPos, const double width_narrow, const double width_wide, const double height, const double thickness, const Amg::Vector3D &fixedPoint) const
const BLinePar * m_BLinePar
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int tubeLayer, int tube) const
IdentifierHash m_idhash
data-collection hash identifier
double getNominalTubeLengthWoCutouts(const int tubeLayer, const int tube) const
std::vector< CxxUtils::CachedUniquePtr< GeoInfo > > m_tubeGeo
bool endcap() const
Returns whether the chamber is in the endcap.
void set(const T &val) const
Set the value, assuming it is currently invalid.
Eigen::Matrix< double, 3, 1 > Vector3D
Amg::Transform3D tubeToMultilayerTransf(const Identifier &id) const
Amg::Transform3D nodeform_globalToLocalTransf(const Identifier &id) const
double m_LongZsize
size in the specified direction
CxxUtils::CachedUniquePtr< Trk::SurfaceBounds > m_associatedBounds
Amg::Vector3D ROPos(const int tubelayer, const int tube) const
Amg::Vector3D tubeFrame_localROPos(const int tubelayer, const int tube) const
Amg::Transform3D toParentStation() const
void geoGetIds(FUNCTION f, const GeoGraphNode *node, int depthLimit=1)
Template helper for running the visitor.
int getStationIndex() const
MuonDetectorManager * m_muon_mgr
Container classifier the MDT as-built parameters See parameter description in http://atlas-muon-align...
Amg::Vector3D tubePos(const Identifier &id) const
Returns the global position of the given tube.
std::array< double, maxnsteps > m_tubelength
#define ATH_MSG_WARNING(x)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
std::string m_nm
Message source name.
Eigen::Translation< double, 3 > Translation3D
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
const MdtAsBuiltPar * getMdtAsBuiltParams() const
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
Eigen::AngleAxisd AngleAxis3D
int m_indexOfREinMuonStation
index of this RE in the mother MuonStation
int m_stIdx
Identifier field of the station index.
void initMessaging() const
Initialize our message level and MessageSvc.
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
MuonReadoutElement(GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
PVConstLink parentStationPV() const
Scalar mag() const
mag method
CxxUtils::CachedUniquePtr< Trk::Surface > m_associatedSurface
int getStationPhi() const
int getStationEta() const
Amg::Transform3D getTranslate3D(const double X, const double Y, const double Z)
: Returns a shift transformation along an arbitrary axis