ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::MuonSegmentHitSummaryTool Class Reference

tool to calculate muon segment hit summary More...

#include <MuonSegmentHitSummaryTool.h>

Inheritance diagram for Muon::MuonSegmentHitSummaryTool:
Collaboration diagram for Muon::MuonSegmentHitSummaryTool:

Public Types

using HitCountsPerLayer = std::map<Identifier, EtaPhiHitCount>
using MdtLayerIntersectMap = std::map<int, MdtLayerIntersect>

Public Member Functions

 MuonSegmentHitSummaryTool (const std::string &, const std::string &, const IInterface *)
virtual ~MuonSegmentHitSummaryTool ()=default
StatusCode initialize ()
virtual HitCounts getHitCounts (const MuonSegment &seg) const
 calculate segment hit counts
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvcm_edmHelperSvc
 EDM Helper tool.
PublicToolHandle< Muon::MuonEDMPrinterToolm_printer
 EDM printer tool.
SG::ReadCondHandleKey< MuonGM::MuonDetectorManagerm_DetectorManagerKey
double m_positionAlongTubeCut
 cut on the distance from the tube wall use for hole count
double m_lowerADCBound
 lower bound for good MDT hits
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

tool to calculate muon segment hit summary

Definition at line 25 of file MuonSegmentHitSummaryTool.h.

Member Typedef Documentation

◆ HitCountsPerLayer

◆ MdtLayerIntersectMap

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuonSegmentHitSummaryTool()

Muon::MuonSegmentHitSummaryTool::MuonSegmentHitSummaryTool ( const std::string & ty,
const std::string & na,
const IInterface * pa )

Definition at line 16 of file MuonSegmentHitSummaryTool.cxx.

17 : AthAlgTool(ty, na, pa)
18{
19 declareInterface<IMuonSegmentHitSummaryTool>(this);
20 declareProperty("PositionAlongTubeCut", m_positionAlongTubeCut = -200.,
21 "Cut on distance from tube end used for holes, negative value means in the tube");
22 declareProperty("MinimumADCValue", m_lowerADCBound = 70.);
23}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
double m_lowerADCBound
lower bound for good MDT hits
double m_positionAlongTubeCut
cut on the distance from the tube wall use for hole count

◆ ~MuonSegmentHitSummaryTool()

virtual Muon::MuonSegmentHitSummaryTool::~MuonSegmentHitSummaryTool ( )
virtualdefault

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ getHitCounts()

MuonSegmentHitSummaryTool::HitCounts Muon::MuonSegmentHitSummaryTool::getHitCounts ( const MuonSegment & seg) const
virtual

calculate segment hit counts

This concerns only the RPC & TGC chambers

Check for the TGC and RPC chambers

get layer index

Implements Muon::IMuonSegmentHitSummaryTool.

Definition at line 36 of file MuonSegmentHitSummaryTool.cxx.

37{
38
39 HitCounts hitCounts;
40
41 SG::ReadCondHandle<MuonGM::MuonDetectorManager> DetectorManagerHandle{m_DetectorManagerKey};
42 const MuonGM::MuonDetectorManager* MuonDetMgr{*DetectorManagerHandle};
43 if (!MuonDetMgr) {
44 ATH_MSG_ERROR("Null pointer to the read MuonDetectorManager conditions object");
45 return hitCounts;
46 }
47
48 // calculate shortest channel
49 double shortestTube {FLT_MAX};
50 const MdtDriftCircleOnTrack* mdtShortest = nullptr;
51 bool transformIsSet = false;
52 Amg::Transform3D gToAMDB;
53 Amg::Vector3D lpos{Amg::Vector3D::Zero()};
54 Amg::Vector3D ldir{Amg::Vector3D::Zero()};
55 double dxdy = 1.;
56
57 using namespace MuonStationIndex;
58 const Identifier chid = m_edmHelperSvc->chamberId(seg);
59 const StIndex stIdx = m_idHelperSvc->stationIndex(chid);
60
62 if ((!m_idHelperSvc->isCsc(chid) && stIdx == StIndex::EI) || stIdx == StIndex::BO)
63 hitCounts.nexpectedTrigHitLayers = 1;
64 else if (stIdx == StIndex::BM)
65 hitCounts.nexpectedTrigHitLayers = 2;
66 else if (stIdx == StIndex::EM)
67 hitCounts.nexpectedTrigHitLayers = 3;
68
69 // loop over hits
70 for (const Trk::MeasurementBase* meas : seg.containedMeasurements()) {
71
72 // get id and check that it is a muon hit id
73 Identifier id = m_edmHelperSvc->getIdentifier(*meas);
74 if (!id.is_valid() || !m_idHelperSvc->isMuon(id)) continue;
75
76 // check if MDT is so increase ml counter
77 if (m_idHelperSvc->isMdt(id)) {
78 // get layer index
79 int ml = m_idHelperSvc->mdtIdHelper().multilayer(id);
80 int lay = m_idHelperSvc->mdtIdHelper().tubeLayer(id);
81 int tube = m_idHelperSvc->mdtIdHelper().tube(id);
82 int layIndex = 4 * (ml - 1) + (lay - 1); // start at 0 rather than at 1
83 MdtLayerIntersect& layIntersect = hitCounts.mdtHitHolePerLayerCounts[layIndex];
84 ++layIntersect.nhits;
85
86 const MdtDriftCircleOnTrack* mdt = dynamic_cast<const MdtDriftCircleOnTrack*>(meas);
87 if (mdt) {
88 const MuonGM::MdtReadoutElement* detEl =
89 mdt->prepRawData() ? mdt->prepRawData()->detectorElement() : MuonDetMgr->getMdtReadoutElement(id);
90 if (!detEl) {
91 ATH_MSG_WARNING(" could not get MdtReadoutElement for tube " << m_idHelperSvc->toString(id));
92 continue;
93 }
94
95 double tubeLen = detEl->getActiveTubeLength(lay, tube);
96 layIntersect.tubeLength = tubeLen;
97 if (!transformIsSet) {
98 gToAMDB = detEl->GlobalToAmdbLRSTransform();
99 lpos = gToAMDB * seg.globalPosition();
100 ldir = (gToAMDB * seg.globalDirection()).unit();
101 dxdy = std::abs(ldir.y()) > 0.001 ? ldir.x() / ldir.y() : 1000.;
102 transformIsSet = true;
103 }
104 if (!mdtShortest || tubeLen < shortestTube) {
105 mdtShortest = mdt;
106 shortestTube = tubeLen;
107 }
108 }
109 const bool first_layer = (m_idHelperSvc->mdtIdHelper().multilayer(id) == 1);
110 hitCounts.nmdtHitsMl1 += first_layer;
111 hitCounts.nmdtHitsMl2 += !first_layer;
112 if (mdt && mdt->prepRawData()) {
113 int adc = mdt->prepRawData()->adc();
114 if (adc > m_lowerADCBound) hitCounts.nmdtHighADCHits+=(adc > m_lowerADCBound);
115 hitCounts.adcMax = std::max(adc, hitCounts.adcMax);
116 }
117
118 }
120 else if (m_idHelperSvc->isTrigger(id)) {
121 // get gasgap ID (same for eta/phi projection)
122 Identifier gasGapId = m_idHelperSvc->gasGapId(id);
123 const bool measuresPhi = m_idHelperSvc->measuresPhi(id);
124 hitCounts.hitCountsPerLayer[gasGapId].nphiHits+= measuresPhi;
125 hitCounts.hitCountsPerLayer[gasGapId].netaHits+= !measuresPhi;
126 } else if (m_idHelperSvc->isCsc(id)) {
127 const bool measuresPhi = m_idHelperSvc->measuresPhi(id);
128 hitCounts.ncscHits.nphiHits+= measuresPhi;
129 hitCounts.ncscHits.netaHits+= !measuresPhi;
130 } else if (m_idHelperSvc->issTgc(id)){
131 const bool measuresPhi = m_idHelperSvc->measuresPhi(id);
132 hitCounts.nstgcHits.nphiHits+= measuresPhi;
133 hitCounts.nstgcHits.netaHits+= !measuresPhi;
134 } else if (m_idHelperSvc->isMM(id)){
135 const bool isStereo = m_idHelperSvc->mmIdHelper().isStereo(id);
136 hitCounts.nmmEtaHits += !isStereo;
137 hitCounts.nmmStereoHits+= isStereo;
138 }
139 }
140
141 const MuonSegmentQuality* quality = dynamic_cast<const MuonSegmentQuality*>(seg.fitQuality());
142 if (quality) {
143 for (const Identifier& id : quality->channelsWithoutHit()) {
145 int ml = m_idHelperSvc->mdtIdHelper().multilayer(id);
146 int lay = m_idHelperSvc->mdtIdHelper().tubeLayer(id);
147 int tube = m_idHelperSvc->mdtIdHelper().tube(id);
148 int layIndex = 4 * (ml - 1) + (lay - 1); // subtract 1 as fields start with 1 instead of 0
149 MdtLayerIntersect& layIntersect = hitCounts.mdtHitHolePerLayerCounts[layIndex];
150 ++layIntersect.nholes;
151
152 if (transformIsSet) {
153 const MuonGM::MdtReadoutElement* detEl = MuonDetMgr->getMdtReadoutElement(id);
154 if (!detEl) {
155 ATH_MSG_WARNING(" could not get MdtReadoutElement for tube " << m_idHelperSvc->toString(id));
156 continue;
157 }
158 double tubeLen = detEl->getActiveTubeLength(lay, tube);
159 double ytube = (gToAMDB * detEl->center(id)).y();
160 double xint = dxdy * (ytube - lpos.y()) + lpos.x();
161 layIntersect.distFromTubeEnd = xint;
162 layIntersect.tubeLength = tubeLen;
163 }
164 }
165 }
166
167
168 // now loop over map and get the counts for the trigger hits
169 for (std::pair<const Identifier, EtaPhiHitCount>& it : hitCounts.hitCountsPerLayer) {
170 EtaPhiHitCount& counts = it.second;
171
172 // increase eta/phi hit counts
173 if (counts.nphiHits != 0) ++hitCounts.nphiTrigHitLayers;
174 if (counts.netaHits != 0) {
175 ++hitCounts.netaTrigHitLayers;
176
177 // if both eta/phi projection have entries increase paired counters
178 if (counts.nphiHits != 0) ++hitCounts.npairedTrigHitLayers;
179 }
180 }
181
182 int currentEnclosedHoles = 0;
183 bool firstLayerWithHits = false;
184 // now loop over mdt map and get the number of enclosed holes
185 for ( auto& lit : hitCounts.mdtHitHolePerLayerCounts) {
186 hitCounts.nmdtHoles += lit.second.nholes;
187 if (lit.second.nhits == 0) {
188 ++currentEnclosedHoles;
189 // count holes within chamber bounds
190 if (std::abs(lit.second.distFromTubeEnd) - 0.5 * lit.second.tubeLength < m_positionAlongTubeCut)
191 ++hitCounts.nmdtHolesInChamber;
192 } else {
193 if (firstLayerWithHits) hitCounts.nmdtEnclosedHoles += currentEnclosedHoles;
194 currentEnclosedHoles = 0;
195 firstLayerWithHits = true;
196 }
197 }
198
199 if (mdtShortest) {
200 double posAlongTube = (mdtShortest->associatedSurface().transform().inverse() * seg.globalPosition()).z();
201 if (0.5 * shortestTube - std::abs(posAlongTube) < 100.) hitCounts.closeToChamberEdge = true;
202 }
203
204 if (seg.fitQuality()) {
205 // combine chi2 with missing hit information and apply cut
206 hitCounts.segmentQuality = seg.fitQuality()->chiSquared() + 5.1 * (hitCounts.nmdtHoles);
207 if (seg.fitQuality()->numberDoF() > 0) hitCounts.segmentQuality /= seg.fitQuality()->numberDoF();
208 }
209
210
211 return hitCounts;
212}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
virtual const Trk::StraightLineSurface & associatedSurface() const override final
Returns the surface on which this measurement was taken.
virtual const MdtPrepData * prepRawData() const override final
Returns the PrepRawData used to create this corrected measurement.
double getActiveTubeLength(const int tubeLayer, const int tube) const
virtual const Amg::Vector3D & center(const Identifier &) const override final
Return the center of the surface associated with this identifier In the case of silicon it returns th...
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
virtual const Amg::Vector3D & globalPosition() const override final
global position
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
EDM Helper tool.
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition FitQuality.h:60
double chiSquared() const
returns the of the overall track fit
Definition FitQuality.h:56
const FitQuality * fitQuality() const
return the FitQuality object, returns NULL if no FitQuality is defined
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Eigen::Matrix< double, 3, 1 > Vector3D
StIndex
enum to classify the different station layers in the muon spectrometer

◆ initialize()

StatusCode Muon::MuonSegmentHitSummaryTool::initialize ( )

Definition at line 26 of file MuonSegmentHitSummaryTool.cxx.

27{
28 ATH_CHECK(m_DetectorManagerKey.initialize());
29 ATH_CHECK(m_edmHelperSvc.retrieve());
30 ATH_CHECK(m_printer.retrieve());
31 ATH_CHECK(m_idHelperSvc.retrieve());
32 return StatusCode::SUCCESS;
33}
#define ATH_CHECK
Evaluate an expression and check for errors.
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
EDM printer tool.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & Muon::IMuonSegmentHitSummaryTool::interfaceID ( )
inlinestaticinherited

Definition at line 77 of file IMuonSegmentHitSummaryTool.h.

77 {
78 static const InterfaceID IID_IMuonSegmentHitSummaryTool("Muon::IMuonSegmentHitSummaryTool", 1, 0);
79 return IID_IMuonSegmentHitSummaryTool;
80 }

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_DetectorManagerKey

SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> Muon::MuonSegmentHitSummaryTool::m_DetectorManagerKey
private
Initial value:
{
this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}

Definition at line 49 of file MuonSegmentHitSummaryTool.h.

49 {
50 this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_edmHelperSvc

ServiceHandle<Muon::IMuonEDMHelperSvc> Muon::MuonSegmentHitSummaryTool::m_edmHelperSvc
private
Initial value:
{
this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
"Handle to the service providing the IMuonEDMHelperSvc interface"}

EDM Helper tool.

Definition at line 39 of file MuonSegmentHitSummaryTool.h.

39 {
40 this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
41 "Handle to the service providing the IMuonEDMHelperSvc interface"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> Muon::MuonSegmentHitSummaryTool::m_idHelperSvc
private
Initial value:
{this, "MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"}

Definition at line 37 of file MuonSegmentHitSummaryTool.h.

37 {this, "MuonIdHelperSvc",
38 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_lowerADCBound

double Muon::MuonSegmentHitSummaryTool::m_lowerADCBound
private

lower bound for good MDT hits

Definition at line 53 of file MuonSegmentHitSummaryTool.h.

◆ m_positionAlongTubeCut

double Muon::MuonSegmentHitSummaryTool::m_positionAlongTubeCut
private

cut on the distance from the tube wall use for hole count

Definition at line 52 of file MuonSegmentHitSummaryTool.h.

◆ m_printer

PublicToolHandle<Muon::MuonEDMPrinterTool> Muon::MuonSegmentHitSummaryTool::m_printer
private
Initial value:
{
this,
"Printer",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
}

EDM printer tool.

Definition at line 43 of file MuonSegmentHitSummaryTool.h.

43 {
44 this,
45 "Printer",
46 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
47 };

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: