|
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 25 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());
94 ATH_MSG_DEBUG(
"Expected a GeoTrd but got "<<printGeoShape(pvc->getLogVol()->getShape()));
97 std::vector<GeoChildNodeWithTrf>
children{getAllSubVolumes(pvc)};
98 for (
const GeoChildNodeWithTrf& child :
children) {
99 ATH_MSG_VERBOSE(
"Child node "<<child.nodeName<<
" "<<child.volume->getLogVol()->getName());
100 if (child.volume->getLogVol()->getName().find(
"Sensitive") == std::string::npos &&
102 child.volume->getLogVol()->getName() !=
"actMicroMegaGas") {
107 THROW_EXCEPTION(
"number of MM layers > 4: increase transform array size" );
114 const GeoShape* childShape = child.volume->getLogVol()->getShape();
115 while (childShape->typeID() != GeoTrd::getClassTypeID()){
116 auto [opA, opB] = getOps(childShape);
117 ATH_MSG_VERBOSE(
"Operands are "<<printGeoShape(opA)<<
", "<<printGeoShape(opB));
120 const GeoTrd* trd =
dynamic_cast<const GeoTrd*
>(childShape);
121 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 194 of file MMReadoutElement.h.
195 const MuonChannelDesign* design =
getDesign(
id);
196 if (!design)
return -1.;
197 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 124 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 221 of file MMReadoutElement.cxx.
222 if (m_ml < 1 || m_ml > 2) {
227 SmartIF<IGeoDbTagSvc> geoDbTag{Gaudi::svcLocator()->service(
"GeoDbTagSvc")};
231 if (geoDbTag->getSqliteReader()) {
243 double ylFrame =
mm->ylFrame();
244 double ysFrame =
mm->ysFrame();
257 m_offset = -0.5*(ylFrame - ysFrame);
265 THROW_EXCEPTION(
"MMReadoutElement -- Max number of strips not a valid value" );
271 design.inputPitch = pitch;
277 design.totalStrips = roParam.
tStrips;
281 design.inputWidth = pitch *
std::cos(design.stereoAngle());
283 if (!design.hasStereoAngle()) {
284 design.nch = design.totalStrips - design.nMissedBottomEta - design.nMissedTopEta;
285 design.setFirstPos(-0.5 * design.xSize() + pitch);
287 design.nch = design.totalStrips - design.nMissedBottomStereo - design.nMissedTopStereo;
288 design.setFirstPos( -0.5 * design.xSize() +
289 (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 138 of file MMReadoutElement.cxx.
140 SmartIF<IGeoDbTagSvc> geoDbTag{Gaudi::svcLocator()->service(
"GeoDbTagSvc")};
144 SmartIF<IRDBAccessSvc> accessSvc{Gaudi::svcLocator()->service(geoDbTag->getParamSvcName())};
150 for (
unsigned int ind = 0;
ind < wmmRec->size();
ind++) {
151 std::string WMM_TYPE = (*wmmRec)[
ind]->getString(
"WMM_TYPE");
152 if (sector_l != WMM_TYPE[4]){
158 if (
m_ml != (
int) (WMM_TYPE[12]-
'0')){
161 const double Tck = (*wmmRec)[
ind]->getDouble(
"Tck");
162 const double activeBottomLength = (*wmmRec)[
ind]->getDouble(
"activeBottomLength");
163 const double activeH = (*wmmRec)[
ind]->getDouble(
"activeH");
164 const double activeTopLength = (*wmmRec)[
ind]->getDouble(
"activeTopLength");
165 const double gasTck = (*wmmRec)[
ind]->getDouble(
"gasTck");
166 const int nMissedBottomEta = (*wmmRec)[
ind]->getInt(
"nMissedBottomEta");
167 const int nMissedBottomStereo = (*wmmRec)[
ind]->getInt(
"nMissedBottomStereo");
168 const int nMissedTopEta = (*wmmRec)[
ind]->getInt(
"nMissedTopEta");
169 const int nMissedTopStereo = (*wmmRec)[
ind]->getInt(
"nMissedTopStereo");
173 const double stripPitch = (*wmmRec)[
ind]->getDouble(
"stripPitch");
174 const int totalStrips = (*wmmRec)[
ind]->getInt (
"totalStrips");
175 const double ylFrame = (*wmmRec)[
ind]->getDouble(
"ylFrame");
176 const double ysFrame = (*wmmRec)[
ind]->getDouble(
"ysFrame");
182 m_offset = -0.5*(ylFrame - ysFrame);
188 THROW_EXCEPTION(
"MMReadoutElement -- Max number of strips not a valid value" );
194 design.inputPitch = stripPitch;
195 design.thickness = gasTck;
196 design.nMissedTopEta = nMissedTopEta;
197 design.nMissedBottomEta = nMissedBottomEta;
198 design.nMissedTopStereo = nMissedTopStereo;
199 design.nMissedBottomStereo = nMissedBottomStereo;
200 design.totalStrips = totalStrips;
204 design.inputWidth = stripPitch *
std::cos(design.stereoAngle());
206 if (!design.hasStereoAngle()) {
207 design.nch = design.totalStrips - design.nMissedBottomEta - design.nMissedTopEta;
208 design.setFirstPos(-0.5 * design.xSize() + stripPitch);
210 design.nch = design.totalStrips - design.nMissedBottomStereo - design.nMissedTopStereo;
211 design.setFirstPos( -0.5 * design.xSize() + (1 + design.nMissedBottomStereo - design.nMissedBottomEta) * stripPitch);
214 <<
", 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 255 of file MMReadoutElement.h.
256 const MuonChannelDesign* design =
getDesign(
id);
257 if(!design)
return false;
260 if (stripNo < 0) stripNo = (locpos.x()<0) ? 1 : design->totalStrips;
265 int pcb = (stripNo-1)/1024 + 1;
266 int pcbStrip = stripNo % 1024;
270 bool topPcb{pcb == 5 || (std::abs(
getStationEta()) == 2 && pcb == 3)};
271 int pcbStripMin = 1 + (
int)std::floor((design->passivatedHeight(pcbPassiv.bottom, pcb ==1) + 0.5*design->inputPitch - tol1)/design->inputPitch);
272 int pcbStripMax = 1024 - (
int)std::floor((design->passivatedHeight(pcbPassiv.top, topPcb) + 0.5*design->inputPitch - tol1)/design->inputPitch);
273 if(pcbStrip < pcbStripMin || pcbStrip > pcbStripMax)
return false;
277 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 349 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 304 of file MMReadoutElement.h.
305 const MuonChannelDesign* design =
getDesign(
id);
306 if (!design)
return -1;
307 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 298 of file MMReadoutElement.h.
299 const MuonChannelDesign* design =
getDesign(
id);
300 if (!design)
return -1;
301 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 394 of file MMReadoutElement.cxx.
399 double t0 = locPosML.x();
400 double s0 = locPosML.y();
401 double z0 = locPosML.z();
419 double ds{0.}, dz{0.},
dt{0.};
421 if (bp != 0 ||
bn != 0)
422 dt += 0.5*(s_rel*s_rel - 1)*((bp +
bn) + (bp -
bn)*z_rel);
424 if (sp != 0 || sn != 0)
425 dt += 0.5*(z_rel*z_rel - 1)*((sp + sn) + (sp - sn)*s_rel);
428 dt -= tw*s_rel*z_rel;
438 if (ep != 0 ||
en != 0) {
442 double delta = s_rel*s_rel * ((ep +
en)*s_rel/6 + (ep -
en)/4);
443 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;
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 456 of file MMReadoutElement.cxx.
460 const MuonChannelDesign* design =
getDesign(layerId);
462 ATH_MSG_WARNING(
"Unable to get MuonChannelDesign, therefore cannot provide position corrections. Returning." );
466 bool conditionsApplied{
false};
469 #ifndef SIMULATIONBASE
478 int istrip = design->positionRelativeToStrip(lpos, rel_pos);
480 ATH_MSG_WARNING(
"As-built corrections are provided only within the active area. Returning." );
497 pos[0] += strip_id.
ilayer%2 ? -2.75 : 2.75;
502 conditionsApplied =
true;
514 if (!conditionsApplied) {
519 conditionsApplied =
true;
525 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 310 of file MMReadoutElement.h.
312 const MuonChannelDesign* phi_design =
getDesign(phiId);
313 const MuonChannelDesign* eta_design =
getDesign(etaId);
314 if (!phi_design || !eta_design)
return false;
315 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 229 of file MMReadoutElement.h.
230 const MuonChannelDesign* design =
getDesign(
id);
231 if (!design)
return -1;
238 if (
l < 0)
return -1;
239 return std::max(0.,
l - design->passivatedLength(passiv.left,
true));
◆ stripActiveLengthRight()
double MuonGM::MMReadoutElement::stripActiveLengthRight |
( |
const Identifier & |
id | ) |
const |
|
inline |
Definition at line 242 of file MMReadoutElement.h.
243 const MuonChannelDesign* design =
getDesign(
id);
244 if (!design)
return -1;
251 if (
l < 0)
return -1;
252 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 200 of file MMReadoutElement.h.
202 const MuonChannelDesign* design =
getDesign(
id);
203 if (!design)
return -1;
204 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");
◆ MuonGMR4::ReadoutGeomCnvAlg
◆ 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_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_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_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.
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)
double getLongSsize() const
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
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 setLongSsize(double)
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