|
ATLAS Offline Software
|
#include <MdtReadoutElement.h>
|
| MdtReadoutElement (defineArgs &&args) |
|
virtual | ~MdtReadoutElement () |
|
const parameterBook & | getParameters () const |
|
ActsTrk::DetectorType | detectorType () const override final |
| Overload from the ActsTrk::IDetectorElement. More...
|
|
double | thickness () const override final |
| Overload from the Acts::DetectorElement (2 * halfheight) More...
|
|
StatusCode | initElement () override final |
| Element initialization. More...
|
|
unsigned int | multilayer () const |
| Returns the multi layer of the MdtReadoutElement. More...
|
|
unsigned int | numLayers () const |
| Returns the number of tube layer. More...
|
|
unsigned int | numTubesInLay () const |
| Returns the number of tubes per layer. More...
|
|
IdentifierHash | measurementHash (const Identifier &measId) const override final |
| Constructs the identifier hash from the full measurement Identifier. More...
|
|
IdentifierHash | layerHash (const Identifier &measId) const override final |
| Transforms the Identifier into the layer hash. More...
|
|
Identifier | measurementId (const IdentifierHash &measHash) const override final |
| Converts the measurement hash back to the full Identifier. More...
|
|
bool | isValid (const IdentifierHash &measHash) const |
|
bool | isBarrel () const |
| States whether the chamber is built into the barrel or not. More...
|
|
double | tubePitch () const |
| Returns the pitch between 2 tubes in a layer. More...
|
|
double | innerTubeRadius () const |
| Returns the inner tube radius. More...
|
|
double | tubeRadius () const |
| Adds the thickness of the tube wall onto the radius. More...
|
|
double | moduleWidthS () const |
| Returns the length of the bottom edge of the chamber (short width) More...
|
|
double | moduleWidthL () const |
| Returns the length of the top edge of the chamber (top width) More...
|
|
double | moduleHeight () const |
| Returns the height of the chamber (Distance bottom - topWidth) More...
|
|
double | moduleThickness () const |
| Returns the thickness of the chamber. More...
|
|
Amg::Vector3D | globalTubePos (const ActsGeometryContext &ctx, const Identifier &measId) const |
| Returns the global position of the tube center. More...
|
|
Amg::Vector3D | globalTubePos (const ActsGeometryContext &ctx, const IdentifierHash &hash) const |
|
Amg::Vector3D | readOutPos (const ActsGeometryContext &ctx, const Identifier &measId) const |
| Returns the global position of the readout card. More...
|
|
Amg::Vector3D | readOutPos (const ActsGeometryContext &ctx, const IdentifierHash &measId) const |
|
Amg::Vector3D | highVoltPos (const ActsGeometryContext &ctx, const Identifier &measId) const |
| Returns the global position of the High Voltage connectors. More...
|
|
Amg::Vector3D | highVoltPos (const ActsGeometryContext &ctx, const IdentifierHash &measId) const |
|
double | distanceToReadout (const ActsGeometryContext &ctx, const Identifier &measId, const Amg::Vector3D &globPoint) const |
| Returns the distance along the wire from the readout card The distance is given as the delta z of the readout card in the local tube frame. More...
|
|
double | distanceToReadout (const ActsGeometryContext &ctx, const IdentifierHash &measHash, const Amg::Vector3D &globPoint) const |
|
double | distanceToReadout (const IdentifierHash &measHash, const Amg::Vector3D &localPoint) const |
| Returns the distance to the readout assuming that the parsed point is expressed in the local coordinate system of the tube. More...
|
|
double | activeTubeLength (const IdentifierHash &hash) const |
|
double | tubeLength (const IdentifierHash &hash) const |
|
double | wireLength (const IdentifierHash &hash) const |
|
double | uncutTubeLength (const IdentifierHash &tubeHash) const |
| Returns the uncut tube length. More...
|
|
void | setComplementaryReadoutEle (const MdtReadoutElement *other) |
| Set the link to the second readout element inside the muon station. More...
|
|
Amg::Vector3D | bLineReferencePoint () const |
| Returns the fixed point of the B-line & as-bult defromation model expressed in the as-built frame. More...
|
|
Amg::Vector3D | localTubePos (const IdentifierHash &hash) const |
| Returns the tube position in the chamber coordinate frame (Not applying the B-line corrections) More...
|
|
const GeoAlignableTransform * | alignableTransform () const |
| Returnsthe alignable transform of the readout element. More...
|
|
Identifier | identify () const override final |
| Return the athena identifier. More...
|
|
IdentifierHash | identHash () const |
| Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class. More...
|
|
int | stationName () const |
| Returns the stationName (BIS, BOS, etc) encoded into the integer. More...
|
|
int | stationEta () const |
| Returns the stationEta (positive A site, negative O site) More...
|
|
int | stationPhi () const |
| Returns the stationPhi (1-8) -> sector (2*phi - (isSmall)) More...
|
|
Muon::MuonStationIndex::ChIndex | chamberIndex () const |
| Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS) More...
|
|
const std::string & | chamberDesign () const |
| The chamber design refers to the construction parameters of a readout element. More...
|
|
const Muon::IMuonIdHelperSvc * | idHelperSvc () const |
| Returns the pointer to the muonIdHelperSvc. More...
|
|
Amg::Vector3D | center (const ActsGeometryContext &ctx) const |
| Returns the detector center (Which is the same as the detector center of the first measurement layer) More...
|
|
Amg::Vector3D | center (const ActsGeometryContext &ctx, const Identifier &id) const |
| Returns the center of a given detector layer using the complete Identifier of the measurement. More...
|
|
Amg::Vector3D | center (const ActsGeometryContext &ctx, const IdentifierHash &hash) const |
| Returns the center of a given detector layer using the Identifier hash of the measurement. More...
|
|
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx) const |
| Transformations to translate between local <-> global coordinates. More...
|
|
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx, const Identifier &id) const |
| Returns the global to local transformation into the rest frame of a given measurement layer. More...
|
|
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx, const IdentifierHash &hash) const |
| Returns the global to local transformation into the rest frame of a given measurement layer. More...
|
|
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx) const |
| Returns the local to global transformation into the ATLAS coordinate system. More...
|
|
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx, const Identifier &id) const |
|
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx, const IdentifierHash &id) const |
|
const Amg::Transform3D & | transform (const Acts::GeometryContext &gctx) const override final |
| Returns the transformation to the origin of the chamber coordinate system. More...
|
|
const Acts::Surface & | surface () const override final |
| Returns the surface associated to the readout element plane. More...
|
|
Acts::Surface & | surface () override final |
|
const Acts::Surface & | surface (const IdentifierHash &hash) const |
| Returns the sufrface associated to a wire / measurement plane in the detector. More...
|
|
Acts::Surface & | surface (const IdentifierHash &hash) |
|
std::shared_ptr< Acts::Surface > | surfacePtr (const IdentifierHash &hash) const |
| Returns the pointer associated to a certain wire / plane. More...
|
|
void | setChamberLink (const Chamber *chamber) |
| Sets the link to the enclosing chamber. More...
|
|
void | setSectorLink (const SpectrometerSector *envelope) |
| Set the link to the enclosing sector envelope. More...
|
|
const SpectrometerSector * | msSector () const |
| Returns the pointer to the envelope volume enclosing all chambers in the sector. More...
|
|
const Chamber * | chamber () const |
| Returns the pointer to the chamber enclosing this readout element. More...
|
|
std::vector< std::shared_ptr< Acts::Surface > > | getSurfaces () const |
| Returns all surfaces that are associated with the active readout planes. More...
|
|
void | releaseUnAlignedTrfs () const |
| Releases all cached transforms that are not connected with alignment. More...
|
|
unsigned int | storeAlignedTransforms (const ActsTrk::DetectorAlignStore &store) const override final |
| Caches the aligned transformation in the provided store. Returns the number of cached elements. 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...
|
|
|
static IdentifierHash | geoTransformHash () |
| Returns the hash that is associated with the surface cache holding the transformation that is placing the ReadoutElement inside the ATLAS coordinate system. More...
|
|
◆ TransformCacheMap
◆ tubeSide_t
◆ MdtReadoutElement()
MuonGMR4::MdtReadoutElement::MdtReadoutElement |
( |
defineArgs && |
args | ) |
|
◆ ~MdtReadoutElement()
MuonGMR4::MdtReadoutElement::~MdtReadoutElement |
( |
| ) |
|
|
virtualdefault |
◆ activeTubeLength()
◆ alignableTransform()
const GeoAlignableTransform* MuonGMR4::MuonReadoutElement::alignableTransform |
( |
| ) |
const |
|
inherited |
Returnsthe alignable transform of the readout element.
◆ applyBlineCorrections()
Apply the B-line model correction to a tube endpoint.
- Parameters
-
bline | Set of b-line parameters |
localTubeEndPoint | Endpoint of the tube to correct |
fixedPoint | Point in the chamber that's invariant in the b-line model |
thickness | Thickness of the two multilayers |
Definition at line 296 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.
325 double s0 = deformedPos.x();
326 double z0 = deformedPos.y();
327 double t0 = deformedPos.z();
329 <<
" " << chamberHeight <<
" " << chamberThickness <<
" " );
333 if (std::abs(fixedPoint.x()) > 0.01) s0mdt =
s0 - fixedPoint.x();
337 if (std::abs(fixedPoint.y()) > 0.01) z0mdt =
z0 - fixedPoint.y();
339 if (std::abs(fixedPoint.z()) > 0.01) t0mdt =
t0 - fixedPoint.z();
340 if (z0mdt < 0 || t0mdt < 0) {
341 ATH_MSG_WARNING(
""<<__func__<<
": correcting the local position of a point outside the mdt station (2 multilayers) volume -- RE "
345 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - correct for offset of B-line fixed point " << s0mdt <<
" " << z0mdt <<
" " << t0mdt);
348 const double s_rel = s0mdt / (width_actual / 2.);
349 const double z_rel = (z0mdt - chamberHeight / 2.) / (chamberHeight / 2.);
350 const double t_rel = (t0mdt - chamberThickness / 2.) / (chamberThickness / 2.);
352 ATH_MSG_VERBOSE(
"** In "<<__func__<<
" - width_actual, s_rel, z_rel, t_rel " << width_actual <<
" " << s_rel <<
" "
353 << z_rel <<
" " << t_rel );
354 double ds{0.},dz{0.},
dt{0.};
358 double ztmp = z_rel * z_rel - 1;
366 dz += bline.
getParameter(Parameter::tw) * s_rel * t_rel * chamberThickness / chamberHeight;
386 const double ep = bline.
getParameter(Parameter::ep) * expansionScale;
388 const double phi = 0.5 * (ep +
en) * s_rel * s_rel + 0.5 * (ep -
en) * s_rel;
389 const double localDt =
phi * (t0mdt - chamberThickness / 2.);
390 const double localDz =
phi * (z0mdt - chamberHeight / 2.);
396 deformedPos[0] =
s0 +
ds;
397 deformedPos[1] =
z0 + dz;
398 deformedPos[2] =
t0 +
dt;
◆ asBuiltRefFrame()
◆ bLineReferencePoint()
Amg::Vector3D MuonGMR4::MdtReadoutElement::bLineReferencePoint |
( |
| ) |
const |
◆ center() [1/3]
Returns the detector center (Which is the same as the detector center of the first measurement layer)
◆ center() [2/3]
Returns the center of a given detector layer using the complete Identifier of the measurement.
◆ center() [3/3]
Returns the center of a given detector layer using the Identifier hash of the measurement.
◆ chamber()
const Chamber* MuonGMR4::MuonReadoutElement::chamber |
( |
| ) |
const |
|
inherited |
Returns the pointer to the chamber enclosing this readout element.
◆ chamberDesign()
const std::string& MuonGMR4::MuonReadoutElement::chamberDesign |
( |
| ) |
const |
|
inherited |
The chamber design refers to the construction parameters of a readout element.
Used for the retrieval of the chamber parameters E.g. the chambers BOL1A8 & BOL2A8 are identical in terms of number of tubes, dimensions etc.
◆ chamberIndex()
Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS)
◆ createGeoTransform()
StatusCode MuonGMR4::MuonReadoutElement::createGeoTransform |
( |
| ) |
|
|
protectedinherited |
◆ detectorType()
|
inlinefinaloverridevirtual |
◆ distanceToReadout() [1/3]
Returns the distance along the wire from the readout card The distance is given as the delta z of the readout card in the local tube frame.
◆ distanceToReadout() [2/3]
◆ distanceToReadout() [3/3]
Returns the distance to the readout assuming that the parsed point is expressed in the local coordinate system of the tube.
I.e. the wire points along the z-axis
- Parameters
-
measHash | IdentifierHash of the tube |
localPoint | External local point inside the tube (No check is made whether that's the case). |
The position of the readout chip is at the negative tube side
Definition at line 197 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.
◆ fromIdealToDeformed()
Applies the B & as-built parameters.
No deformation parameters were parsed at all
No deformation parameters were stored for this particular readout element
Relative sign to calculate the thickness. If multilayer == 1, we want the lower point and the upper point otherwise.
Move the tube into the center
Apply as-built correction
Switch tube ends back to MGM coordinates
Definition at line 404 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.
411 return Amg::Transform3D::Identity();
413 #ifdef SIMULATIONBASE
414 return Amg::Transform3D::Identity();
422 return Amg::Transform3D::Identity();
434 const double relSign = (
multilayer() == 1 ? -1. : 1.);
438 const double thickness = relSign*( (toAMDB* (modHalfThick*Amg::Vector3D::UnitX())) -
449 if (distortPars.asBuilt) {
455 if (distortPars.bLine) {
464 <<
", thickness: "<<
thickness<<
", height: "<<height);
468 positiveEnd = fromAMDB * positiveEnd;
469 negativeEnd = fromAMDB * negativeEnd;
470 positiveEndBline = fromAMDB * positiveEndBline;
471 negativeEndBline = fromAMDB * negativeEndBline;
481 const Amg::Vector3D new_direction = (positiveEndBline - negativeEndBline).
unit();
482 const Amg::Vector3D rotation_vector = old_direction.cross(new_direction);
485 if (rotation_vector.mag() > 10. * std::numeric_limits<double>::epsilon()) {
486 const Amg::AngleAxis3D wire_rotation(std::asin(rotation_vector.mag()), rotation_vector.unit());
487 deformedTransform = from_center * wire_rotation * to_center;
489 deformedTransform = from_center * to_center;
494 return deformedTransform;
◆ geoTransformHash()
◆ getParameters()
◆ getSurfaces()
std::vector< std::shared_ptr< Acts::Surface > > MuonGMR4::MuonReadoutElement::getSurfaces |
( |
| ) |
const |
|
inherited |
◆ globalToLocalTrans() [1/3]
Transformations to translate between local <-> global coordinates.
They follow the common ATLAS conventations that the origin is located in the center of the detector layer x-axis: Points towards the sky y-axis: Points towards the edges of ATLAS z-axis: Points along the beamline The transformations always include the corrections from the A-Lines of the alignment system Returns the global to local transformation into the rest frame of the detector (Coincides with the first measurement layer)
Definition at line 78 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
◆ globalToLocalTrans() [2/3]
Returns the global to local transformation into the rest frame of a given measurement layer.
◆ globalToLocalTrans() [3/3]
Returns the global to local transformation into the rest frame of a given measurement layer.
◆ globalTubePos() [1/2]
Returns the global position of the tube center.
◆ globalTubePos() [2/2]
◆ highVoltPos() [1/2]
Returns the global position of the High Voltage connectors.
◆ highVoltPos() [2/2]
◆ identHash()
Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class.
◆ identify()
Identifier MuonGMR4::MuonReadoutElement::identify |
( |
| ) |
const |
|
finaloverridevirtualinherited |
◆ idHelperSvc()
Returns the pointer to the muonIdHelperSvc.
◆ initElement()
StatusCode MuonGMR4::MdtReadoutElement::initElement |
( |
| ) |
|
|
finaloverridevirtual |
Element initialization.
First check whether we're having tubes
Create bounds that are representing the surface planes of each tube layer & the readout element itself
Coordinate system of the trapezoid is in the center while the tubes are defined w.r.t. to the chamber edge. Move first tube into the proper position
Cache the transformations to the chamber layers
Cache the transformations to the tube layers
Ensure that all linear transformations are rotations
Ensure that all tubes have the same pitch
Implements MuonGMR4::MuonReadoutElement.
Definition at line 52 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.
57 return StatusCode::FAILURE;
61 return StatusCode::FAILURE;
63 #ifndef SIMULATIONBASE
72 std::optional<Amg::Vector3D> prevLayPos{std::nullopt};
74 for (
unsigned int lay =1 ; lay <=
numLayers() ; ++lay) {
77 ATH_CHECK(insertTransform<MdtReadoutElement>(layHash));
78 #ifdef SIMULATIONBASE_REMOVEPLANESURFACE
83 std::optional<Amg::Vector3D> prevTubePos{std::nullopt};
90 prevTubePos = std::nullopt;
93 ATH_CHECK(insertTransform<MdtReadoutElement>(idHash));
94 #ifndef SIMULATIONBASE
100 if (std::abs(tubeRot.determinant()- 1.) > std::numeric_limits<
float>::epsilon()){
101 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" Transformation matrix is not a pure rotation for "<<
104 return StatusCode::FAILURE;
111 const double dR = std::abs((tubePos - (*prevTubePos)).
z());
112 if (std::abs(dR -
tubePitch()) > pitchTolerance) {
113 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" Detected irregular tube in "<<
115 <<
". Expected tube pitch: "<<
tubePitch()<<
" measured tube pitch: "
118 return StatusCode::FAILURE;
121 if (prevLayPos &&
tube == 1) {
122 const double dR = (tubePos - (*prevLayPos)).
mag();
123 if (std::abs(dR -
tubePitch()) > pitchTolerance) {
124 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" Detected irregular layer pitch in "<<
126 <<
". Expected tube pitch: "<<
tubePitch()<<
" measured tube pitch: "
132 prevLayPos = std::make_optional<Amg::Vector3D>(tubePos);
134 prevTubePos = std::make_optional<Amg::Vector3D>(tubePos);
137 #ifndef SIMULATIONBASE
141 return StatusCode::SUCCESS;
◆ 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 MuonGMR4::MdtReadoutElement::innerTubeRadius |
( |
| ) |
const |
Returns the inner tube radius.
◆ insertTransform()
template<class MuonDetImpl >
Inserts a transfomration for caching.
◆ isBarrel()
bool MuonGMR4::MdtReadoutElement::isBarrel |
( |
| ) |
const |
States whether the chamber is built into the barrel or not.
◆ isValid()
◆ layerHash() [1/2]
◆ layerHash() [2/2]
◆ layerNumber()
Transforms the identifier hash into a layer number ranging from (0-numLayers()-1)
◆ localToGlobalTrans() [1/3]
◆ localToGlobalTrans() [2/3]
◆ localToGlobalTrans() [3/3]
◆ localTubePos()
◆ measurementHash() [1/2]
Constructs the identifier hash from the full measurement Identifier.
The hash is always defined w.r.t the specific detector element and used to access the information in memory quickly
Implements MuonGMR4::MuonReadoutElement.
◆ measurementHash() [2/2]
static IdentifierHash MuonGMR4::MdtReadoutElement::measurementHash |
( |
unsigned int |
layerNumber, |
|
|
unsigned int |
tubeNumber |
|
) |
| |
|
static |
Transform the layer and tube number to the measurementHash.
◆ measurementId()
◆ moduleHeight()
double MuonGMR4::MdtReadoutElement::moduleHeight |
( |
| ) |
const |
Returns the height of the chamber (Distance bottom - topWidth)
◆ moduleThickness()
double MuonGMR4::MdtReadoutElement::moduleThickness |
( |
| ) |
const |
Returns the thickness of the chamber.
◆ moduleWidthL()
double MuonGMR4::MdtReadoutElement::moduleWidthL |
( |
| ) |
const |
Returns the length of the top edge of the chamber (top width)
◆ moduleWidthS()
double MuonGMR4::MdtReadoutElement::moduleWidthS |
( |
| ) |
const |
Returns the length of the bottom edge of the chamber (short width)
◆ 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.
◆ msSector()
Returns the pointer to the envelope volume enclosing all chambers in the sector.
◆ multilayer()
unsigned int MuonGMR4::MdtReadoutElement::multilayer |
( |
| ) |
const |
◆ numLayers()
unsigned int MuonGMR4::MdtReadoutElement::numLayers |
( |
| ) |
const |
Returns the number of tube layer.
◆ numTubesInLay()
unsigned int MuonGMR4::MdtReadoutElement::numTubesInLay |
( |
| ) |
const |
Returns the number of tubes per layer.
◆ planeSurfaceFactory()
StatusCode MuonGMR4::MuonReadoutElement::planeSurfaceFactory |
( |
const IdentifierHash & |
hash, |
|
|
std::shared_ptr< Acts::PlanarBounds > |
pBounds |
|
) |
| |
|
protectedinherited |
Definition at line 125 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
131 <<
" no transform cache available for hash "<<
hash);
132 return StatusCode::FAILURE;
134 auto insert_itr =
m_surfaces.insert(std::make_unique<ActsTrk::SurfaceCache>(transformCache->second.get()));
135 if(!insert_itr.second){
137 <<
" Insertion to muon surface cache failed for hash "<<
hash);
138 return StatusCode::FAILURE;
141 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::PlaneSurface>(pBounds, **insert_itr.first));
142 return StatusCode::SUCCESS;
◆ readOutPos() [1/2]
Returns the global position of the readout card.
◆ readOutPos() [2/2]
◆ releaseUnAlignedTrfs()
void MuonGMR4::MuonReadoutElement::releaseUnAlignedTrfs |
( |
| ) |
const |
|
inherited |
◆ setChamberLink()
void MuonGMR4::MuonReadoutElement::setChamberLink |
( |
const Chamber * |
chamber | ) |
|
|
inherited |
◆ setComplementaryReadoutEle()
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setSectorLink()
◆ stationEta()
int MuonGMR4::MuonReadoutElement::stationEta |
( |
| ) |
const |
|
inherited |
Returns the stationEta (positive A site, negative O site)
◆ stationName()
int MuonGMR4::MuonReadoutElement::stationName |
( |
| ) |
const |
|
inherited |
Returns the stationName (BIS, BOS, etc) encoded into the integer.
◆ stationPhi()
int MuonGMR4::MuonReadoutElement::stationPhi |
( |
| ) |
const |
|
inherited |
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
◆ storeAlignedTransforms()
|
finaloverridevirtualinherited |
◆ strawSurfaceFactory()
StatusCode MuonGMR4::MuonReadoutElement::strawSurfaceFactory |
( |
const IdentifierHash & |
hash, |
|
|
std::shared_ptr< Acts::LineBounds > |
lBounds |
|
) |
| |
|
protectedinherited |
Definition at line 102 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
109 <<
" no transform cache available for hash "<<
hash);
110 return StatusCode::FAILURE;
113 auto insert_itr =
m_surfaces.insert(std::make_unique<ActsTrk::SurfaceCache>(transformCache->second.get()));
114 if(!insert_itr.second){
116 <<
" Insertion to muon surface cache failed for hash "<<
hash);
117 return StatusCode::FAILURE;
120 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::StrawSurface>(lBounds, **insert_itr.first));
121 return StatusCode::SUCCESS;
◆ surface() [1/4]
const Acts::Surface & MuonGMR4::MuonReadoutElement::surface |
( |
| ) |
const |
|
finaloverrideinherited |
◆ surface() [2/4]
Acts::Surface & MuonGMR4::MuonReadoutElement::surface |
( |
| ) |
|
|
finaloverrideinherited |
◆ surface() [3/4]
◆ surface() [4/4]
◆ surfacePtr()
std::shared_ptr< Acts::Surface > MuonGMR4::MuonReadoutElement::surfacePtr |
( |
const IdentifierHash & |
hash | ) |
const |
|
inherited |
◆ thickness()
double MuonGMR4::MdtReadoutElement::thickness |
( |
| ) |
const |
|
finaloverride |
Overload from the Acts::DetectorElement (2 * halfheight)
◆ toChamberLayer()
◆ toStation()
◆ toTubeFrame()
◆ transform()
const Acts::Transform3 & MuonGMR4::MuonReadoutElement::transform |
( |
const Acts::GeometryContext & |
gctx | ) |
const |
|
finaloverrideinherited |
◆ tubeLength()
◆ tubeNumber()
Transforms the idenfier hash into a tube number ranging from (0- numTubesInLay()-1)
◆ tubePitch()
double MuonGMR4::MdtReadoutElement::tubePitch |
( |
| ) |
const |
Returns the pitch between 2 tubes in a layer.
◆ tubeRadius()
double MuonGMR4::MdtReadoutElement::tubeRadius |
( |
| ) |
const |
Adds the thickness of the tube wall onto the radius.
◆ uncutTubeLength()
◆ wireEndpointAsBuilt()
Definition at line 226 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.
237 const multilayer_t ml = (
multilayer() == 1) ? multilayer_t::ML1 : multilayer_t::ML2;
255 const int layer_delta = ml == multilayer_t::ML1 ?
numLayers() - tubeLayer : tubeLayer +1;
259 const double zpitch =
params.zpitch(ml,
side);
260 const double ypitch =
params.ypitch(ml,
side);
271 const double offset_stagg = 0.5 * zpitch * stagg * ( (layer_delta-1) % 2);
273 tube* zpitch + offset_stagg,
274 (layer_delta-1) * ypitch};
278 ATH_MSG_VERBOSE(
"Off set staggering "<<offset_stagg<<
", layer_delta: "<<layer_delta<<
", zpitch: "<<zpitch<<
", ypitch: "<<ypitch
279 <<
", xshift: "<<xshift);
282 reference_point.y() +
z0 + endPlug.y(),
283 reference_point.z() + y0 + endPlug.z());
◆ wireLength()
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_args
◆ m_chambLink
const Chamber* MuonGMR4::MuonReadoutElement::m_chambLink {nullptr} |
|
privateinherited |
◆ m_chIdx
◆ m_detElHash
◆ m_idHelper
◆ m_idHelperSvc
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_isBarrel
bool MuonGMR4::MdtReadoutElement::m_isBarrel {m_idHelper.isBarrel(identify())} |
|
private |
◆ m_localToGlobalCaches
◆ 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_msSectorLink
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_pars
◆ m_reOtherMl
◆ m_stEta
int MuonGMR4::MuonReadoutElement::m_stEta {-1} |
|
privateinherited |
◆ m_stML
int MuonGMR4::MdtReadoutElement::m_stML {m_idHelper.multilayer(identify())} |
|
private |
◆ m_stName
int MuonGMR4::MuonReadoutElement::m_stName {-1} |
|
privateinherited |
◆ m_stPhi
int MuonGMR4::MuonReadoutElement::m_stPhi {-1} |
|
privateinherited |
◆ m_surfaces
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
const Chamber * m_chambLink
ActsTrk::SurfaceBoundSetPtr< Acts::LineBounds > tubeBounds
Sets of surface bounds which is shared amongst all readout elements used to assign the same bound obj...
Amg::Transform3D asBuiltRefFrame() const
Returns the transformation to go into the reference frame of the as-buit & b-line model starting from...
const Chamber * chamber() const
Returns the pointer to the chamber enclosing this readout element.
Amg::Vector3D localTubePos(const IdentifierHash &hash) const
Returns the tube position in the chamber coordinate frame (Not applying the B-line corrections)
std::set< IdentifierHash > removedTubes
List of tube places without tubes.
unsigned int numTubesInLay() const
Returns the number of tubes per layer.
std::shared_ptr< GeoAlignmentStore > geoModelAlignment
Store containing the aligned GeoModel nodes.
const MdtReadoutElement * m_reOtherMl
Complementary readout element.
ActsTrk::SurfaceBoundSetPtr< Acts::TrapezoidBounds > layerBounds
TransformCacheMap m_localToGlobalCaches
std::vector< MdtTubeLayerPtr > tubeLayers
Vector defining the position of all tubes in each tube layer.
const Acts::Surface & surface() const override final
Returns the surface associated to the readout element plane.
double tubeLength(const IdentifierHash &hash) const
bool isBarrel() const
States whether the chamber is built into the barrel or not.
double moduleThickness() const
Returns the thickness of the chamber.
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
ActsTrk::SurfaceCacheSet m_surfaces
Cache of all associated surfaces.
std::vector< ALFA_RawData_p1 > t0
double activeTubeLength(const IdentifierHash &hash) const
Amg::Vector3D readOutPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the readout card.
multilayer_t
MDT multi-layer index.
StatusCode createGeoTransform()
virtual DetectorType detectorType() const =0
Returns the detector element type.
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
float getParameter(const Parameter p) const
Returns a given parameter.
#define ATH_MSG_VERBOSE(x)
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
#define AmgSymMatrix(dim)
IMessageSvc * getMessageSvc(bool quiet=false)
double tubeRadius() const
Adds the thickness of the tube wall onto the radius.
double readoutSide
Is the readout chip at positive or negative Z?
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
unsigned int multilayer() const
Returns the multi layer of the MdtReadoutElement.
Helper struct to cache simulatenously the As-built and the BLine corrections of the Mdts for fast acc...
static unsigned int layerNumber(const IdentifierHash &hash)
Transforms the identifier hash into a layer number ranging from (0-numLayers()-1)
AlignmentStorePtr & getStore(const DetectorType type)
Returns the mutable alignable store for the ATLAS detector type (Pixel, Mdt, etc.)
double halfY
Length ~ number of tubes.
MuonReadoutElement()=delete
Amg::Transform3D getRotateX3D(double angle)
get a rotation transformation around X-axis
double uncutTubeLength(const IdentifierHash &tubeHash) const
Returns the uncut tube length.
Helper struct to store the pointer to the Mdt distrotion parameters, namely the As-built and the BLin...
static constexpr double expansionScale
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
parameterBook m_pars
defining parameter set
double moduleWidthS() const
Returns the length of the bottom edge of the chamber (short width)
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
unsigned int numLayers() const
Returns the number of tube layer.
Eigen::Affine3d Transform3D
MsgStream & msg() const
The standard message stream.
Include the GeoPrimitives which need to be put first.
double innerTubeRadius() const
Returns the inner tube radius.
double moduleHeight() const
Returns the height of the chamber (Distance bottom - topWidth)
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int tubeLayer, int tube) const
double distanceToReadout(const ActsGeometryContext &ctx, const Identifier &measId, const Amg::Vector3D &globPoint) const
Returns the distance along the wire from the readout card The distance is given as the delta z of the...
static IdentifierHash geoTransformHash()
Returns the hash that is associated with the surface cache holding the transformation that is placing...
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
MdtReadoutElement(defineArgs &&args)
StatusCode strawSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< Acts::LineBounds > lBounds)
Identifier identify() const override final
Return the athena identifier.
MdtAsBuiltPar::tubeSide_t tubeSide_t
Moves the wire endpoints according to the as-built model.
double tubePitch() const
Returns the pitch between 2 tubes in a layer.
Eigen::Matrix< double, 3, 1 > Vector3D
double tubePitch
Distance between 2 tubes in the layer.
double thickness() const override final
Overload from the Acts::DetectorElement (2 * halfheight)
static unsigned int tubeNumber(const IdentifierHash &hash)
Transforms the idenfier hash into a tube number ranging from (0- numTubesInLay()-1)
Amg::Vector3D bLineReferencePoint() const
Returns the fixed point of the B-line & as-bult defromation model expressed in the as-built frame.
double endPlugLength
Depth of the endplug into the active tube volume.
const MdtIdHelper & m_idHelper
Detector identifier helper to quickly extract the ID fields.
double shortHalfX
The chambers have either a rectangular or a trapezoidal shape to first approximation.
StatusCode planeSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< Acts::PlanarBounds > pBounds)
std::shared_ptr< Acts::Surface > surfacePtr(const IdentifierHash &hash) const
Returns the pointer associated to a certain wire / plane.
#define ATH_MSG_WARNING(x)
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.
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
Eigen::AngleAxisd AngleAxis3D
int stationEta() const
Returns the stationEta (positive A site, negative O site)
Amg::Transform3D toTubeFrame(const IdentifierHash &hash) const
Returns the transformation into the rest frame of the tube x-axis: Pointing towards the next layer y-...
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
double moduleWidthL() const
Returns the length of the top edge of the chamber (top width)
Amg::Vector3D applyBlineCorrections(const BLinePar &bline, const Amg::Vector3D &localTubeEndPoint, const Amg::Vector3D &fixedPoint, const double thickness) const
Apply the B-line model correction to a tube endpoint.
Scalar mag() const
mag method
Amg::Vector3D wireEndpointAsBuilt(const MdtAsBuiltPar &asBuilt, const IdentifierHash &tubeHash, const Amg::Vector3D &nominalEnd, const tubeSide_t side) const
const SpectrometerSector * m_msSectorLink
Pointer to the associated MS-sector & MuonChamber.
Amg::Transform3D getTranslate3D(const double X, const double Y, const double Z)
: Returns a shift transformation along an arbitrary axis