![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station contains:
More...
#include <MMReadoutElement.h>
|
| MMReadoutElement (GeoVFullPhysVol *pv, const std::string &stName, int zi, int fi, int mL, MuonDetectorManager *mgr, const NswPassivationDbData *) |
| constructor More...
|
|
| ~MMReadoutElement () |
| destructor More...
|
|
virtual bool | containsId (const Identifier &id) const override final |
| function to be used to check whether a given Identifier is contained in the readout element More...
|
|
virtual double | distanceToReadout (const Amg::Vector2D &pos, const Identifier &id) const override final |
| distance to readout. More...
|
|
virtual int | stripNumber (const Amg::Vector2D &pos, const Identifier &id) const override final |
| strip number corresponding to local position. More...
|
|
virtual bool | stripPosition (const Identifier &id, Amg::Vector2D &pos) const override final |
| strip position – local or global If the strip number is outside the range of valid strips, the function will return false More...
|
|
bool | stripGlobalPosition (const Identifier &id, Amg::Vector3D &gpos) const |
|
double | stereoAngle (const Identifier &id) const |
| Wrapper to MuonChannelDesign::stereoAngle() More...
|
|
double | stripLength (const Identifier &id) const |
| strip length Wrappers to MuonChannelDesign::channelLength() taking into account the passivated width More...
|
|
double | stripActiveLength (const Identifier &id) const |
|
double | stripActiveLengthLeft (const Identifier &id) const |
|
double | stripActiveLengthRight (const Identifier &id) const |
|
bool | insideActiveBounds (const Identifier &id, const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const |
| boundary check Wrapper Trk::PlaneSurface::insideBounds() taking into account the passivated width More...
|
|
virtual int | numberOfLayers (bool) const override |
| number of layers in phi/eta projection More...
|
|
virtual int | numberOfStrips (const Identifier &layerId) const override final |
| number of strips per layer More...
|
|
virtual int | numberOfStrips (int, bool measuresPhi) const override final |
|
int | numberOfMissingTopStrips (const Identifier &layerId) const |
| Number of missing bottom and top strips (not read out) More...
|
|
int | numberOfMissingBottomStrips (const Identifier &layerId) const |
|
virtual bool | spacePointPosition (const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override final |
| space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in the reference frame of the phi surface. More...
|
|
virtual bool | spacePointPosition (const Identifier &phiId, const Identifier &etaId, Amg::Vector3D &pos) const override final |
| Global space point position for a given pair of phi and eta identifiers If one of the identifiers is outside the valid range, the function will return false. More...
|
|
Amg::Vector3D | localToGlobalCoords (const Amg::Vector3D &locPos, const Identifier &id) const |
| simHit local (SD) To Global position - to be used by MuonGeoAdaprors only More...
|
|
bool | spacePointPosition (const Identifier &layerId, const Amg::Vector2D &localPos, Amg::Vector3D &pos) const |
| Method calculating the global position of the hit on surface taking the as-built corrections into account. More...
|
|
virtual void | fillCache () override final |
| function to fill tracking cache More...
|
|
virtual int | surfaceHash (const Identifier &id) const override final |
| returns the hash to be used to look up the surface and transform in the MuonClusterReadoutElement tracking cache More...
|
|
int | surfaceHash (int gasGap, int measPhi) const |
| returns the hash to be used to look up the surface and transform in the MuonClusterReadoutElement tracking cache More...
|
|
virtual int | layerHash (const Identifier &id) const override final |
| returns the hash to be used to look up the normal and center in the MuonClusterReadoutElement tracking cache More...
|
|
int | layerHash (int gasGap) const |
| returns the hash to be used to look up the normal and center in the MuonClusterReadoutElement tracking cache More...
|
|
virtual int | boundaryHash (const Identifier &id) const override final |
| returns the hash function to be used to look up the surface boundary for a given identifier More...
|
|
virtual bool | measuresPhi (const Identifier &id) const override final |
| returns whether the current identifier corresponds to a phi measurement More...
|
|
void | initDesign () |
| initialize the design classes for this readout element More...
|
|
const MuonChannelDesign * | getDesign (const Identifier &id) const |
| returns the MuonChannelDesign class for the given identifier More...
|
|
void | setChamberLayer (int ml) |
| set methods only to be used by MuonGeoModel More...
|
|
const Amg::Transform3D & | getDelta () const |
| read A-line parameters and include the chamber rotation/translation in the local-to-global (ATLAS) reference frame transformaton More...
|
|
void | setDelta (const ALinePar &aline) |
|
void | setBLinePar (const BLinePar &bLine) |
| read B-line (chamber-deformation) parameters More...
|
|
void | posOnDefChamber (Amg::Vector3D &locPosML) const |
| transform a position (in chamber-frame coordinates) to the deformed-chamber geometry More...
|
|
bool | has_ALines () const |
|
bool | has_BLines () const |
|
const ALinePar * | getALinePar () const |
|
const BLinePar * | getBLinePar () const |
|
void | clearALinePar () |
|
void | clearBLinePar () |
|
const std::array< int, 4 > & | getReadoutSide () const |
|
virtual Amg::Vector3D | AmdbLRSToGlobalCoords (const Amg::Vector3D &x) const override final |
|
virtual Amg::Transform3D | AmdbLRSToGlobalTransform () const override final |
|
virtual Amg::Vector3D | GlobalToAmdbLRSCoords (const Amg::Vector3D &x) const override final |
|
virtual Amg::Transform3D | GlobalToAmdbLRSTransform () const override final |
|
virtual void | clearCache () override final |
| clear the cache of the readout elememt More...
|
|
virtual const Trk::PlaneSurface & | surface () const override |
| access to chamber surface (phi orientation), uses the first gas gap More...
|
|
virtual const Trk::PlaneSurface & | surface (const Identifier &id) const override |
| access to layer surfaces More...
|
|
const Trk::PlaneSurface & | surface (int surfHash) const |
| access to layer surfaces More...
|
|
virtual const Trk::SurfaceBounds & | bounds () const override |
| Return the boundaries of the element. More...
|
|
virtual const Trk::SurfaceBounds & | bounds (const Identifier &id) const override |
| Return the boundaries of the surface associated with this identifier. More...
|
|
const Trk::SurfaceBounds & | bounds (int boundHash) const |
|
virtual const Amg::Vector3D & | center () const override |
| Return the center of the element. More...
|
|
virtual const Amg::Vector3D & | center (const Identifier &id) const override |
| Return the center of the surface associated with this identifier In the case of silicon it returns the same as center() More...
|
|
const Amg::Vector3D & | center (int layHash) const |
|
virtual const Amg::Vector3D & | normal () const override |
| Return the normal of the element. More...
|
|
virtual const Amg::Vector3D & | normal (const Identifier &id) const override |
| Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal() More...
|
|
const Amg::Vector3D & | normal (int layHash) const |
|
virtual const Amg::Transform3D & | transform () const override |
| Return local to global transform. More...
|
|
virtual const Amg::Transform3D & | transform (const Identifier &id) const override |
| Return local to global transform associated with this identifier. More...
|
|
const Amg::Transform3D & | transform (int surfHash) const |
|
virtual std::vector< const Trk::Surface * > | surfaces () const |
| returns all the surfaces contained in this detector element More...
|
|
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 |
|
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...
|
|
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station contains:
Definition at line 23 of file MMReadoutElement.h.
◆ PCBPassivation
◆ MMReadoutElement()
constructor
Active gas volume in the R4 like description
Definition at line 69 of file MMReadoutElement.cxx.
74 std::string fixName = (stName[2] ==
'L') ?
"MML" :
"MMS";
77 Identifier
id =
mgr->mmIdHelper()->channelID(fixName, zi,
fi, mL, 1, 1);
81 if (
mgr->MinimalGeoFlag()) {
84 bool foundShape =
false;
85 const PVConstLink pvc {getMaterialGeom()};
86 const GeoTrd* trd=
dynamic_cast<const GeoTrd *
> (pvc->getLogVol()->getShape());
92 ATH_MSG_DEBUG(
"Expected a GeoTrd but got "<<printGeoShape(pvc->getLogVol()->getShape()));
95 std::vector<GeoChildNodeWithTrf>
children{getAllSubVolumes(pvc)};
96 for (
const GeoChildNodeWithTrf& child :
children) {
97 ATH_MSG_VERBOSE(
"Child node "<<child.nodeName<<
" "<<child.volume->getLogVol()->getName());
98 if (child.volume->getLogVol()->getName().find(
"Sensitive") == std::string::npos &&
100 child.volume->getLogVol()->getName() !=
"actMicroMegaGas") {
105 THROW_EXCEPTION(
"number of MM layers > 4: increase transform array size" );
112 const GeoShape* childShape = child.volume->getLogVol()->getShape();
113 while (childShape->typeID() != GeoTrd::getClassTypeID()){
114 auto [opA, opB] = getOps(childShape);
115 ATH_MSG_VERBOSE(
"Operands are "<<printGeoShape(opA)<<
", "<<printGeoShape(opB));
118 const GeoTrd* trd =
dynamic_cast<const GeoTrd*
>(childShape);
119 m_halfX = trd->getZHalfLength();
◆ ~MMReadoutElement()
MuonGM::MMReadoutElement::~MMReadoutElement |
( |
| ) |
|
|
default |
◆ absTransform()
◆ AmdbLRSToGlobalCoords()
|
inlinefinaloverridevirtual |
◆ AmdbLRSToGlobalTransform()
virtual Amg::Transform3D MuonGM::MMReadoutElement::AmdbLRSToGlobalTransform |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ boundaryHash()
|
inlinefinaloverridevirtual |
◆ bounds() [1/3]
|
inlineoverridevirtualinherited |
◆ bounds() [2/3]
|
inlineoverridevirtualinherited |
◆ bounds() [3/3]
◆ center() [1/3]
|
inlineoverridevirtualinherited |
◆ center() [2/3]
|
inlineoverridevirtualinherited |
◆ center() [3/3]
◆ clearALinePar()
void MuonGM::MMReadoutElement::clearALinePar |
( |
| ) |
|
◆ clearBLinePar()
void MuonGM::MMReadoutElement::clearBLinePar |
( |
| ) |
|
|
inline |
◆ clearCache()
void MuonGM::MuonClusterReadoutElement::clearCache |
( |
| ) |
|
|
finaloverridevirtualinherited |
◆ containsId()
◆ defTransform()
◆ detectorElementHash()
IdentifierHash MuonGM::MuonReadoutElement::detectorElementHash |
( |
| ) |
const |
|
inlineinherited |
◆ detectorType()
|
inlinefinaloverridevirtualinherited |
◆ detectorTypeString()
std::string Trk::TrkDetElementBase::detectorTypeString |
( |
| ) |
const |
|
inherited |
◆ distanceToReadout()
|
inlinefinaloverridevirtual |
distance to readout.
If the local position is outside the active volume, the function first shift the position back into the active volume
Implements MuonGM::MuonClusterReadoutElement.
Definition at line 196 of file MMReadoutElement.h.
197 const MuonChannelDesign* design =
getDesign(
id);
198 if (!design)
return -1.;
199 return design->distanceToReadout(
pos);
◆ fillCache()
void MuonGM::MMReadoutElement::fillCache |
( |
| ) |
|
|
finaloverridevirtual |
◆ getALinePar()
◆ getBLinePar()
◆ getDelta()
read A-line parameters and include the chamber rotation/translation in the local-to-global (ATLAS) reference frame transformaton
Definition at line 122 of file MMReadoutElement.h.
◆ getDesign()
◆ 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 |
◆ getReadoutSide()
const std::array<int, 4>& MuonGM::MMReadoutElement::getReadoutSide |
( |
| ) |
const |
|
inline |
◆ 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 |
◆ getZsize()
double MuonGM::MuonReadoutElement::getZsize |
( |
| ) |
const |
|
inlineinherited |
◆ globalPosition()
◆ GlobalToAmdbLRSCoords()
|
inlinefinaloverridevirtual |
◆ GlobalToAmdbLRSTransform()
virtual Amg::Transform3D MuonGM::MMReadoutElement::GlobalToAmdbLRSTransform |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ has_ALines()
bool MuonGM::MMReadoutElement::has_ALines |
( |
| ) |
const |
|
inline |
◆ has_BLines()
bool MuonGM::MMReadoutElement::has_BLines |
( |
| ) |
const |
|
inline |
◆ hasCutouts()
bool MuonGM::MuonReadoutElement::hasCutouts |
( |
| ) |
const |
|
inlineinherited |
◆ identify()
Identifier MuonGM::MuonReadoutElement::identify |
( |
| ) |
const |
|
inlinefinaloverridevirtualinherited |
◆ identifyHash()
|
inlinefinaloverridevirtualinherited |
◆ idHelperSvc()
◆ initDesign()
void MuonGM::MMReadoutElement::initDesign |
( |
| ) |
|
initialize the design classes for this readout element
The stereo angle is defined clock-wise from the y-axis
Input width is defined as the distance between two channels
Definition at line 220 of file MMReadoutElement.cxx.
221 if (m_ml < 1 || m_ml > 2) {
226 ISvcLocator* svcLocator = Gaudi::svcLocator();
228 if (svcLocator->service(
"GeoDbTagSvc",geoDbTag).isFailure()) {
231 if (geoDbTag->getSqliteReader()) {
243 double ylFrame =
mm->ylFrame();
244 double ysFrame =
mm->ysFrame();
253 m_offset = -0.5*(ylFrame - ysFrame);
261 THROW_EXCEPTION(
"MMReadoutElement -- Max number of strips not a valid value" );
267 design.inputPitch = pitch;
273 design.totalStrips = roParam.
tStrips;
277 design.inputWidth = pitch *
std::cos(design.stereoAngle());
279 if (!design.hasStereoAngle()) {
280 design.nch = design.totalStrips - design.nMissedBottomEta - design.nMissedTopEta;
281 design.setFirstPos(-0.5 * design.xSize() + pitch);
283 design.nch = design.totalStrips - design.nMissedBottomStereo - design.nMissedTopStereo;
284 design.setFirstPos( -0.5 * design.xSize() +
285 (1 + design.nMissedBottomStereo - design.nMissedBottomEta) * pitch);
◆ initDesignSqLite()
void MuonGM::MMReadoutElement::initDesignSqLite |
( |
| ) |
|
|
private |
The stereo angle is defined clock-wise from the y-axis
Input width is defined as the distance between two channels
Definition at line 136 of file MMReadoutElement.cxx.
138 ISvcLocator* svcLocator = Gaudi::svcLocator();
140 if (svcLocator->service(
"GeoDbTagSvc",geoDbTag).isFailure()) {
144 if (svcLocator->service(geoDbTag->getParamSvcName(),accessSvc).isFailure()) {
149 for (
unsigned int ind = 0;
ind < wmmRec->size();
ind++) {
150 std::string WMM_TYPE = (*wmmRec)[
ind]->getString(
"WMM_TYPE");
151 if (sector_l != WMM_TYPE[4]){
157 if (
m_ml != (
int) (WMM_TYPE[12]-
'0')){
160 const double Tck = (*wmmRec)[
ind]->getDouble(
"Tck");
161 const double activeBottomLength = (*wmmRec)[
ind]->getDouble(
"activeBottomLength");
162 const double activeH = (*wmmRec)[
ind]->getDouble(
"activeH");
163 const double activeTopLength = (*wmmRec)[
ind]->getDouble(
"activeTopLength");
164 const double gasTck = (*wmmRec)[
ind]->getDouble(
"gasTck");
165 const int nMissedBottomEta = (*wmmRec)[
ind]->getInt(
"nMissedBottomEta");
166 const int nMissedBottomStereo = (*wmmRec)[
ind]->getInt(
"nMissedBottomStereo");
167 const int nMissedTopEta = (*wmmRec)[
ind]->getInt(
"nMissedTopEta");
168 const int nMissedTopStereo = (*wmmRec)[
ind]->getInt(
"nMissedTopStereo");
172 const double stripPitch = (*wmmRec)[
ind]->getDouble(
"stripPitch");
173 const int totalStrips = (*wmmRec)[
ind]->getInt (
"totalStrips");
174 const double ylFrame = (*wmmRec)[
ind]->getDouble(
"ylFrame");
175 const double ysFrame = (*wmmRec)[
ind]->getDouble(
"ysFrame");
181 m_offset = -0.5*(ylFrame - ysFrame);
187 THROW_EXCEPTION(
"MMReadoutElement -- Max number of strips not a valid value" );
193 design.inputPitch = stripPitch;
194 design.thickness = gasTck;
195 design.nMissedTopEta = nMissedTopEta;
196 design.nMissedBottomEta = nMissedBottomEta;
197 design.nMissedTopStereo = nMissedTopStereo;
198 design.nMissedBottomStereo = nMissedBottomStereo;
199 design.totalStrips = totalStrips;
203 design.inputWidth = stripPitch *
std::cos(design.stereoAngle());
205 if (!design.hasStereoAngle()) {
206 design.nch = design.totalStrips - design.nMissedBottomEta - design.nMissedTopEta;
207 design.setFirstPos(-0.5 * design.xSize() + stripPitch);
209 design.nch = design.totalStrips - design.nMissedBottomStereo - design.nMissedTopStereo;
210 design.setFirstPos( -0.5 * design.xSize() + (1 + design.nMissedBottomStereo - design.nMissedBottomEta) * stripPitch);
213 <<
", strip pitch " << design.inputPitch <<
", nstrips " << design.nch
◆ 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.
◆ insideActiveBounds()
boundary check Wrapper Trk::PlaneSurface::insideBounds() taking into account the passivated width
Definition at line 257 of file MMReadoutElement.h.
258 const MuonChannelDesign* design =
getDesign(
id);
259 if(!design)
return false;
262 if (stripNo < 0) stripNo = (locpos.x()<0) ? 1 : design->totalStrips;
267 int pcb = (stripNo-1)/1024 + 1;
268 int pcbStrip = stripNo % 1024;
272 bool topPcb{pcb == 5 || (std::abs(
getStationEta()) == 2 && pcb == 3)};
273 int pcbStripMin = 1 + (
int)std::floor((design->passivatedHeight(pcbPassiv.bottom, pcb ==1) + 0.5*design->inputPitch - tol1)/design->inputPitch);
274 int pcbStripMax = 1024 - (
int)std::floor((design->passivatedHeight(pcbPassiv.top, topPcb) + 0.5*design->inputPitch - tol1)/design->inputPitch);
275 if(pcbStrip < pcbStripMin || pcbStrip > pcbStripMax)
return false;
279 return bounds(
id).
inside(locpos, tol1, tol2 - design->passivatedLength(locpos[1]<0 ? pcbPassiv.left : pcbPassiv.right , locpos[1] < 0));
◆ largeSector()
bool MuonGM::MuonReadoutElement::largeSector |
( |
| ) |
const |
|
inherited |
◆ layerHash() [1/2]
|
inlinefinaloverridevirtual |
◆ layerHash() [2/2]
int MuonGM::MMReadoutElement::layerHash |
( |
int |
gasGap | ) |
const |
|
inline |
◆ localToGlobalCoords()
simHit local (SD) To Global position - to be used by MuonGeoAdaprors only
Definition at line 345 of file MMReadoutElement.cxx.
◆ manager()
◆ measuresPhi()
|
inlinefinaloverridevirtual |
◆ 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.
◆ normal() [1/3]
|
inlineoverridevirtualinherited |
◆ normal() [2/3]
|
inlineoverridevirtualinherited |
◆ normal() [3/3]
◆ numberOfLayers()
int MuonGM::MMReadoutElement::numberOfLayers |
( |
bool |
| ) |
const |
|
inlineoverridevirtual |
◆ numberOfMissingBottomStrips()
int MuonGM::MMReadoutElement::numberOfMissingBottomStrips |
( |
const Identifier & |
layerId | ) |
const |
|
inline |
Definition at line 306 of file MMReadoutElement.h.
307 const MuonChannelDesign* design =
getDesign(
id);
308 if (!design)
return -1;
309 return design->numberOfMissingBottomStrips();
◆ numberOfMissingTopStrips()
int MuonGM::MMReadoutElement::numberOfMissingTopStrips |
( |
const Identifier & |
layerId | ) |
const |
|
inline |
Number of missing bottom and top strips (not read out)
Definition at line 300 of file MMReadoutElement.h.
301 const MuonChannelDesign* design =
getDesign(
id);
302 if (!design)
return -1;
303 return design->numberOfMissingTopStrips();
◆ numberOfStrips() [1/2]
int MuonGM::MMReadoutElement::numberOfStrips |
( |
const Identifier & |
layerId | ) |
const |
|
inlinefinaloverridevirtual |
◆ numberOfStrips() [2/2]
int MuonGM::MMReadoutElement::numberOfStrips |
( |
int |
lay, |
|
|
bool |
measuresPhi |
|
) |
| const |
|
inlinefinaloverridevirtual |
◆ parentMuonStation()
◆ parentMuonStationPos()
Amg::Vector3D MuonGM::MuonReadoutElement::parentMuonStationPos |
( |
| ) |
const |
|
inherited |
◆ parentStationPV()
PVConstLink MuonGM::MuonReadoutElement::parentStationPV |
( |
| ) |
const |
|
inherited |
◆ posOnDefChamber()
void MuonGM::MMReadoutElement::posOnDefChamber |
( |
Amg::Vector3D & |
locPosML | ) |
const |
transform a position (in chamber-frame coordinates) to the deformed-chamber geometry
Definition at line 390 of file MMReadoutElement.cxx.
395 double t0 = locPosML.x();
396 double s0 = locPosML.y();
397 double z0 = locPosML.z();
415 double ds{0.}, dz{0.},
dt{0.};
417 if (bp != 0 ||
bn != 0)
418 dt += 0.5*(s_rel*s_rel - 1)*((bp +
bn) + (bp -
bn)*z_rel);
420 if (sp != 0 || sn != 0)
421 dt += 0.5*(z_rel*z_rel - 1)*((sp + sn) + (sp - sn)*s_rel);
424 dt -= tw*s_rel*z_rel;
434 if (ep != 0 ||
en != 0) {
438 double delta = s_rel*s_rel * ((ep +
en)*s_rel/6 + (ep -
en)/4);
439 double phi = s_rel * ((ep +
en)*s_rel + (ep -
en)) / 2;
◆ refreshCache()
void MuonGM::MuonReadoutElement::refreshCache |
( |
| ) |
|
|
inherited |
◆ setBLinePar()
void MuonGM::MMReadoutElement::setBLinePar |
( |
const BLinePar & |
bLine | ) |
|
◆ setChamberLayer()
void MuonGM::MMReadoutElement::setChamberLayer |
( |
int |
ml | ) |
|
|
inline |
◆ setDelta()
void MuonGM::MMReadoutElement::setDelta |
( |
const ALinePar & |
aline | ) |
|
◆ 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 |
◆ 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;
91 name = (pStat->getLogVol())->getName();
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 |
◆ smallSector()
bool MuonGM::MuonReadoutElement::smallSector |
( |
| ) |
const |
|
inherited |
◆ spacePointPosition() [1/3]
Method calculating the global position of the hit on surface taking the as-built corrections into account.
The local position is expressed in the reference frame of each individual layer
Definition at line 452 of file MMReadoutElement.cxx.
456 const MuonChannelDesign* design =
getDesign(layerId);
458 ATH_MSG_WARNING(
"Unable to get MuonChannelDesign, therefore cannot provide position corrections. Returning." );
462 bool conditionsApplied{
false};
465 #ifndef SIMULATIONBASE
474 int istrip = design->positionRelativeToStrip(lpos, rel_pos);
476 ATH_MSG_WARNING(
"As-built corrections are provided only within the active area. Returning." );
493 pos[0] += strip_id.
ilayer%2 ? -2.75 : 2.75;
498 conditionsApplied =
true;
510 if (!conditionsApplied) {
515 conditionsApplied =
true;
521 if (conditionsApplied)
pos = trfToML.inverse()*
pos;
◆ spacePointPosition() [2/3]
|
inlinefinaloverridevirtual |
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in the reference frame of the phi surface.
If one of the identifiers is outside the valid range, the function will return false
Implements MuonGM::MuonClusterReadoutElement.
Definition at line 312 of file MMReadoutElement.h.
314 const MuonChannelDesign* phi_design =
getDesign(phiId);
315 const MuonChannelDesign* eta_design =
getDesign(etaId);
316 if (!phi_design || !eta_design)
return false;
317 pos = phi_design->rotation() * eta_design->rotation().inverse()*
pos;
◆ spacePointPosition() [3/3]
|
inlinefinaloverridevirtual |
◆ stereoAngle()
double MuonGM::MMReadoutElement::stereoAngle |
( |
const Identifier & |
id | ) |
const |
|
inline |
◆ stripActiveLength()
double MuonGM::MMReadoutElement::stripActiveLength |
( |
const Identifier & |
id | ) |
const |
|
inline |
◆ stripActiveLengthLeft()
double MuonGM::MMReadoutElement::stripActiveLengthLeft |
( |
const Identifier & |
id | ) |
const |
|
inline |
Definition at line 231 of file MMReadoutElement.h.
232 const MuonChannelDesign* design =
getDesign(
id);
233 if (!design)
return -1;
240 if (
l < 0)
return -1;
241 return std::max(0.,
l - design->passivatedLength(passiv.left,
true));
◆ stripActiveLengthRight()
double MuonGM::MMReadoutElement::stripActiveLengthRight |
( |
const Identifier & |
id | ) |
const |
|
inline |
Definition at line 244 of file MMReadoutElement.h.
245 const MuonChannelDesign* design =
getDesign(
id);
246 if (!design)
return -1;
253 if (
l < 0)
return -1;
254 return std::max(0.,
l - design->passivatedLength(passiv.right,
false));
◆ stripGlobalPosition()
◆ stripLength()
double MuonGM::MMReadoutElement::stripLength |
( |
const Identifier & |
id | ) |
const |
|
inline |
◆ stripNumber()
|
inlinefinaloverridevirtual |
strip number corresponding to local position.
If the local position is outside the active volume, the function first shift the position back into the active volume
Implements MuonGM::MuonClusterReadoutElement.
Definition at line 202 of file MMReadoutElement.h.
204 const MuonChannelDesign* design =
getDesign(
id);
205 if (!design)
return -1;
206 return design->channelNumber(
pos);
◆ stripPosition()
|
inlinefinaloverridevirtual |
◆ surface() [1/3]
|
inlineoverridevirtualinherited |
◆ surface() [2/3]
|
inlineoverridevirtualinherited |
◆ surface() [3/3]
access to layer surfaces
Definition at line 135 of file MuonClusterReadoutElement.h.
137 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting surface but cache is empty");
138 throw std::runtime_error(
"Empty surface cache");
◆ surfaceHash() [1/2]
|
inlinefinaloverridevirtual |
◆ surfaceHash() [2/2]
int MuonGM::MMReadoutElement::surfaceHash |
( |
int |
gasGap, |
|
|
int |
measPhi |
|
) |
| const |
|
inline |
◆ surfaces()
std::vector< const Trk::Surface * > MuonGM::MuonClusterReadoutElement::surfaces |
( |
| ) |
const |
|
inlinevirtualinherited |
returns all the surfaces contained in this detector element
Definition at line 197 of file MuonClusterReadoutElement.h.
198 std::vector<const Trk::Surface*> elementSurfaces;
202 elementSurfaces.reserve(
m_surfaceData->m_layerSurfaces.size());
203 for (
const std::unique_ptr<Trk::PlaneSurface>& ptr :
m_surfaceData->m_layerSurfaces) {
204 elementSurfaces.emplace_back(ptr.get());
208 return elementSurfaces;
◆ toParentStation()
◆ transform() [1/3]
|
inlineoverridevirtualinherited |
◆ transform() [2/3]
|
inlineoverridevirtualinherited |
◆ transform() [3/3]
Definition at line 148 of file MuonClusterReadoutElement.h.
150 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting transform but cache is empty");
151 throw std::runtime_error(
"Empty transform cache");
◆ ::MuonReadoutGeomCnvAlg
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_ALinePar
◆ m_BLinePar
◆ m_caching
int MuonGM::MuonReadoutElement::m_caching {-1} |
|
protectedinherited |
◆ m_delta
Amg::Transform3D MuonGM::MMReadoutElement::m_delta {Amg::Transform3D::Identity()} |
|
private |
◆ m_detectorElIdhash
◆ m_eta
int MuonGM::MuonReadoutElement::m_eta {-1} |
|
privateinherited |
◆ m_etaDesign
◆ m_halfX
double MuonGM::MMReadoutElement::m_halfX {100.} |
|
private |
◆ m_hasCutouts
bool MuonGM::MuonReadoutElement::m_hasCutouts {false} |
|
protectedinherited |
◆ m_id
◆ m_idhash
◆ m_idHelper
◆ m_idHelperSvc
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_indexOfREinMuonStation
int MuonGM::MuonReadoutElement::m_indexOfREinMuonStation {-999} |
|
privateinherited |
◆ m_lengthChamber
double MuonGM::MMReadoutElement::m_lengthChamber {0.} |
|
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_lWidthChamber
double MuonGM::MMReadoutElement::m_lWidthChamber {0.} |
|
private |
◆ m_maxHalfY
double MuonGM::MMReadoutElement::m_maxHalfY {2000.} |
|
private |
◆ m_minHalfY
double MuonGM::MMReadoutElement::m_minHalfY {1900.} |
|
private |
◆ m_ml
int MuonGM::MMReadoutElement::m_ml {0} |
|
private |
◆ 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_muon_mgr
◆ m_nlayers
int MuonGM::MMReadoutElement::m_nlayers {0} |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_offset
double MuonGM::MMReadoutElement::m_offset {0.} |
|
private |
◆ m_parentMuonStation
◆ m_parentStationPV
PVConstLink MuonGM::MuonReadoutElement::m_parentStationPV {nullptr} |
|
privateinherited |
◆ m_passivData
◆ m_phi
int MuonGM::MuonReadoutElement::m_phi {-1} |
|
privateinherited |
◆ m_readoutSide
std::array<int, 4> MuonGM::MMReadoutElement::m_readoutSide {} |
|
private |
◆ 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_surfaceData
std::unique_ptr<SurfaceData> MuonGM::MuonClusterReadoutElement::m_surfaceData {} |
|
protectedinherited |
◆ m_sWidthChamber
double MuonGM::MMReadoutElement::m_sWidthChamber {0.} |
|
private |
◆ m_tckChamber
double MuonGM::MMReadoutElement::m_tckChamber {0.} |
|
private |
◆ m_techname
std::string MuonGM::MuonReadoutElement::m_techname {"TTT0"} |
|
protectedinherited |
◆ m_type
◆ m_Xlg
◆ m_Zsize
double MuonGM::MuonReadoutElement::m_Zsize {-9999.} |
|
protectedinherited |
◆ s_dummy_passiv
The documentation for this class was generated from the following files:
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position – local or global If the strip number is outside the range of valid strips,...
std::atomic< MSG::Level > m_lvl
Current logging level.
virtual const Amg::Transform3D & transform() const override
Return local to global transform.
std::vector< double > tokenizeDouble(const std::string &the_str, std::string_view delimiter)
std::string m_statname
examples are BMS5, CSS1, EML1
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const =0
Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds.
const Amg::Transform3D & absTransform() const
Identifier m_id
extended data-collection identifier
std::array< int, 4 > m_readoutSide
std::string m_techname
MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17.
double activeBottomLength
MuonClusterReadoutElement(GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
virtual const Amg::Vector3D & normal() const override
Return the normal of the element.
Scalar phi() const
phi method
int m_eta
Identifier field of the station eta.
std::vector< int > readoutSide
IdentifierHash m_detectorElIdhash
detector element hash identifier
quadrupletIdentifier_t quadruplet
virtual const Amg::Vector3D & center() const override
Return the center of the element.
virtual Amg::Transform3D AmdbLRSToGlobalTransform() const override final
virtual void fillCache()=0
Eigen::Matrix< double, 2, 1 > Vector2D
std::vector< int > tokenizeInt(const std::string &the_str, std::string_view delimiter)
Amg::Transform3D getTranslateZ3D(const double Z)
: Returns a shift transformation along the z-axis
const MuonChannelDesign * getDesign(const Identifier &id) const
returns the MuonChannelDesign class for the given identifier
Amg::Transform3D getTransform() const
std::vector< ALFA_RawData_p1 > t0
void setParentStationPV()
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const override final
std::array< Amg::Transform3D, 4 > m_Xlg
const MuonStation * m_parentMuonStation
Trk::DetectorElemType m_type
const NswPassivationDbData * m_passivData
float getParameter(const Parameter p) const
Returns a given parameter.
const NswAsBuilt::StripCalculator * getMMAsBuiltCalculator() const
#define ATH_MSG_VERBOSE(x)
#define THROW_EXCEPTION(MSG)
const PCBPassivation & getPassivation(const Identifier &id) const
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
virtual int boundaryHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface boundary for a given identifier
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
void setIndexOfREinMuonStation()
IMessageSvc * getMessageSvc(bool quiet=false)
virtual DetectorElemType detectorType() const =0
Return the Detector element type.
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
int m_phi
Identifier field of the station phi.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
double stripActiveLengthRight(const Identifier &id) const
Identifier multilayerID(const Identifier &channeldID) const
std::unique_ptr< SurfaceData > m_surfaceData
virtual void clearCache()=0
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
const std::string & getStationName() const
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
void setIdentifier(const Identifier &id)
Sets the Identifier, hashes & station names.
NswPassivationDbData::PCBPassivation PCBPassivation
const MuonStation * parentMuonStation() const
Athena indices of a MM strip.
Eigen::Affine3d Transform3D
const BLinePar * m_BLinePar
PVConstLink m_parentStationPV
virtual int surfaceHash(const Identifier &id) const override final
returns the hash to be used to look up the surface and transform in the MuonClusterReadoutElement tra...
const MuonDetectorManager * manager() const
bool m_hasCutouts
true is there are cutouts in the readdout-element
MMDetectorDescription * Get_MMDetector(char type, int ieta, int iphi, int layer=1, char side='A')
Amg::Transform3D delta() const
void setChamberLayer(int ml)
set methods only to be used by MuonGeoModel
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
MsgStream & msg() const
The standard message stream.
void setStationName(const std::string &)
int stationPhi(const Identifier &id) const
const Amg::Transform3D & getDelta() const
read A-line parameters and include the chamber rotation/translation in the local-to-global (ATLAS) re...
std::array< MuonChannelDesign, 4 > m_etaDesign
virtual int layerHash(const Identifier &id) const =0
returns the hash function to be used to look up the center and the normal of the tracking surface for...
IdentifierHash m_idhash
data-collection hash identifier
const MmIdHelper & m_idHelper
int stationEta(const Identifier &id) const
Amg::Transform3D getRotateY3D(double angle)
get a rotation transformation around Y-axis
Eigen::Matrix< double, 3, 1 > Vector3D
virtual int layerHash(const Identifier &id) const override final
returns the hash to be used to look up the normal and center in the MuonClusterReadoutElement trackin...
double m_LongZsize
size in the specified direction
std::vector< double > stereoAngle
void posOnDefChamber(Amg::Vector3D &locPosML) const
transform a position (in chamber-frame coordinates) to the deformed-chamber geometry
MuonDetectorManager * m_muon_mgr
int channel(const Identifier &id) const override
int gasGap(const Identifier &id) const override
get the hashes
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override final
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in th...
double stereoAngle(const Identifier &id) const
Wrapper to MuonChannelDesign::stereoAngle()
#define ATH_MSG_WARNING(x)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual int stripNumber(const Amg::Vector2D &pos, const Identifier &id) const override final
strip number corresponding to local position.
std::string m_nm
Message source name.
Eigen::Translation< double, 3 > Translation3D
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
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.
const ALinePar * m_ALinePar
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
virtual const Trk::SurfaceBounds & bounds() const override
Return the boundaries of the element.
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
PVConstLink parentStationPV() const
virtual int surfaceHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface and surface transform for a given identif...
int getStationPhi() const
static constexpr PCBPassivation s_dummy_passiv
int getStationEta() const
double stripActiveLengthLeft(const Identifier &id) const