ATLAS Offline Software
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
Muon::TruthHitSummaryAlg Class Reference

#include <TruthHitSummaryAlg.h>

Inheritance diagram for Muon::TruthHitSummaryAlg:
Collaboration diagram for Muon::TruthHitSummaryAlg:

Classes

struct  summaryDecors
 

Public Types

using ChamberIdMap = std::map< Muon::MuonStationIndex::ChIndex, std::vector< Identifier > >
 This map contains all the hits corresponding to truth muons classified by chamber layer that recorded them. More...
 

Public Member Functions

virtual StatusCode initialize () override
 
virtual StatusCode execute (const EventContext &ctx) const override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

using WriteDecor_uint8_t = std::unique_ptr< SG::WriteDecorHandle< xAOD::TruthParticleContainer, uint8_t > >
 Struct object encapsulating all write-decorators. More...
 
using llvec = std::vector< unsigned long long >
 
using WriteDecor_llvec = std::unique_ptr< SG::WriteDecorHandle< xAOD::TruthParticleContainer, llvec > >
 
using WriteDecorKey_t = SG::WriteDecorHandleKey< xAOD::TruthParticleContainer >
 Key for each write-decorator. More...
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode addHitCounts (const EventContext &ctx, const xAOD::TruthParticle &truthParticle, ChamberIdMap &ids, summaryDecors &myDecors) const
 This is the actual function that decorates truth muons with hit counts. More...
 
StatusCode addHitIDVectors (const xAOD::TruthParticle &truthParticle, const ChamberIdMap &ids, summaryDecors &myDecors) const
 This function collapses the information given by the ChamberIdMap, which contains all hits from a truth muon classified by chamber, into 6 vectors carrying these hits categorized by detector technology (MDT, TGC, RPC, sTGC, CSC, MM). More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< xAOD::TruthParticleContainerm_muonTruth {this, "muonTruth", "MuonTruthParticles"}
 Key of the container of truth muons. More...
 
SG::ReadHandleKeyArray< PRD_MultiTruthCollectionm_PRD_TruthNames
 Keys for the containers of truth hits, grouped by detector technology. More...
 
WriteDecorKey_t m_nprecLayersKey {this, "nprecLayersKey", m_muonTruth, "nprecLayers", ""}
 
WriteDecorKey_t m_nphiLayersKey {this, "nphiLayersKey", m_muonTruth, "nphiLayers", ""}
 
WriteDecorKey_t m_ntrigEtaLayersKey {this, "ntrigEtaLayersKey", m_muonTruth, "ntrigEtaLayers", ""}
 
WriteDecorKey_t m_innerSmallHitsKey {this, "innerSmallHitsKey", m_muonTruth, "innerSmallHits", ""}
 
WriteDecorKey_t m_innerLargeHitsKey {this, "innerLargeHitsKey", m_muonTruth, "innerLargeHits", ""}
 
WriteDecorKey_t m_middleSmallHitsKey {this, "middleSmallHitsKey", m_muonTruth, "middleSmallHits", ""}
 
WriteDecorKey_t m_middleLargeHitsKey {this, "middleLargeHitsKey", m_muonTruth, "middleLargeHits", ""}
 
WriteDecorKey_t m_outerSmallHitsKey {this, "outerSmallHitsKey", m_muonTruth, "outerSmallHits", ""}
 
WriteDecorKey_t m_outerLargeHitsKey {this, "outerLargeHitsKey", m_muonTruth, "outerLargeHits", ""}
 
WriteDecorKey_t m_extendedSmallHitsKey {this, "extendedSmallHitsKey", m_muonTruth, "extendedSmallHits", ""}
 
WriteDecorKey_t m_extendedLargeHitsKey {this, "extendedLargeHitsKey", m_muonTruth, "extendedLargeHits", ""}
 
WriteDecorKey_t m_phiLayer1HitsKey {this, "phiLayer1HitsKey", m_muonTruth, "phiLayer1Hits", ""}
 
WriteDecorKey_t m_phiLayer2HitsKey {this, "phiLayer2HitsKey", m_muonTruth, "phiLayer2Hits", ""}
 
WriteDecorKey_t m_phiLayer3HitsKey {this, "phiLayer3HitsKey", m_muonTruth, "phiLayer3Hits", ""}
 
WriteDecorKey_t m_phiLayer4HitsKey {this, "phiLayer4HitsKey", m_muonTruth, "phiLayer4Hits", ""}
 
WriteDecorKey_t m_etaLayer1HitsKey {this, "etaLayer1HitsKey", m_muonTruth, "etaLayer1Hits", ""}
 
WriteDecorKey_t m_etaLayer2HitsKey {this, "etaLayer2HitsKey", m_muonTruth, "etaLayer2Hits", ""}
 
WriteDecorKey_t m_etaLayer3HitsKey {this, "etaLayer3HitsKey", m_muonTruth, "etaLayer3Hits", ""}
 
WriteDecorKey_t m_etaLayer4HitsKey {this, "etaLayer4HitsKey", m_muonTruth, "etaLayer4Hits", ""}
 
WriteDecorKey_t m_truthMdtHitsKey {this, "truthMdtHitsKey", m_muonTruth, "truthMdtHits", ""}
 
WriteDecorKey_t m_truthTgcHitsKey {this, "truthTgcHitsKey", m_muonTruth, "truthTgcHits", ""}
 
WriteDecorKey_t m_truthRpcHitsKey {this, "truthRpcHitsKey", m_muonTruth, "truthRpcHits", ""}
 
WriteDecorKey_t m_truthCscHitsKey {this, "truthCscHitskey", m_muonTruth, "truthCscHits", ""}
 
WriteDecorKey_t m_truthStgcHitsKey {this, "truthStgcHitsKey", m_muonTruth, "truthStgcHits", ""}
 
WriteDecorKey_t m_truthMMHitsKey {this, "truthMMHitsKey", m_muonTruth, "truthMMHits", ""}
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 Handle for muonIdHelper service. More...
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Friends

struct summaryDecors
 

Detailed Description

Definition at line 29 of file TruthHitSummaryAlg.h.

Member Typedef Documentation

◆ ChamberIdMap

This map contains all the hits corresponding to truth muons classified by chamber layer that recorded them.

ChIndex is the chamber layer index (e.g. BMS, BOL,...), while Identifier is the hit ID, which represents the channel where the hit has been recorded.

Definition at line 43 of file TruthHitSummaryAlg.h.

◆ llvec

using Muon::TruthHitSummaryAlg::llvec = std::vector<unsigned long long>
private

Definition at line 53 of file TruthHitSummaryAlg.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ WriteDecor_llvec

Definition at line 54 of file TruthHitSummaryAlg.h.

◆ WriteDecor_uint8_t

Struct object encapsulating all write-decorators.

See the keys declaration below for the full list of decorators. As WriteDecor do not have default empty constructor, we cannot decouple declaration and population of this object. Therefore we define a constuctor taking

Parameters
parentalg instance, needed for the decorator keys, and
ctxevent context. In this way when we build a struct instance we automatically retrieve all write-decorators for that event context.

Definition at line 52 of file TruthHitSummaryAlg.h.

◆ WriteDecorKey_t

Key for each write-decorator.

List of decorators: nprecLayers counts coincidences between chamber layers (> 2-3)
considering hits from precision chambers; nphiLayers counts coincidences between phi chamber layers (> 0-2-3) considering hits with phi-measurement; ntrigEtaLayers counts coincidences between phi chamber layers (> 0-2-3) considering hits from trigger chambers with only-eta measurement; innerSmallHits, innerLargeHits, middleSmallHits, middleLargeHits, outerSmallHits, outerLargeHits, extendedSmallHits, extendedLargeHits count hits from precision chambers classified by inner/middle/outer/extended stations and small/large sectors; phiLayerjHits j=1,2,3,4 count hits with phi-measurment classified by 1/2/3/4 phi chamber layers; etaLayerjHits j=1,2,3,4 count hits from trigger chambers with only-eta measurement classified by 1/2/3/4 phi chamber layers; truthMdtHits, truthTgcHits, truthRpcHits, truthCscHits, truthStgcHits, truthMMHits are vectors carrying hit IDs categorized by detector technology (MDT, TGC, RPC, sTGC, CSC, MM).

Definition at line 151 of file TruthHitSummaryAlg.h.

Member Function Documentation

◆ addHitCounts()

StatusCode Muon::TruthHitSummaryAlg::addHitCounts ( const EventContext &  ctx,
const xAOD::TruthParticle truthParticle,
ChamberIdMap ids,
summaryDecors myDecors 
) const
private

This is the actual function that decorates truth muons with hit counts.

For each truth muon, we loop over the detector technologies and over the recorded hits. If a hit originated by that muon is found, we store the hit ID into a map (=ids), which contains all hits corresponding to truth muons classified by the chamber that recorded them. In addition, we update the following counters: -* nprecHitsPerChamberLayer[] counts the hits recorded by precision chambers (MDTs, MM, sTGCs with no phi
measurement), classified by chamber layer (eg. BIS, BML, ...); -* nphiHitsPerChamberLayer[] counts the hits recorded by chambers providing phi-measurement (sSTGs+trigger+others chambers with phi measurement), classified by phi chamber layer (e.g. BM1, BM2, BO1, ...); -* ntrigEtaHitsPerChamberLayer[] counts the hits recorded by trigger chambers (RPC, TGC) with only eta measurement, classified by phi chamber layer. At the end, we use this information to perfom further classification and save results (i.e. resulting counters) to decorators: – hits from precision chambers classified by inner/middle/outer/extended stations and small/large sectors – hits with phi-measurment classified by 1/2/3/4 phi chamber layers – hits from trigger chambers with only-eta measurement classified by 1/2/3/4 phi chamber layers – coincidences between chamber layers (> 2-3) considering hits from precision chambers – coincidences between phi chamber layers (> 0-2-3) considering hits with phi-measurement – coincidences between phi chamber layers (> 0-2-3) considering hits from trigger chambers with only-eta measurement

Parameters
ctxtells in which event we are
truthParticlereference to truth muon
idsreference to the empty chamberIdMap object that is going to be populated with truth muons'hits
myDecorsreference to the summary write-decorator object

Definition at line 66 of file TruthHitSummaryAlg.cxx.

68  {
69 
70  std::vector<unsigned int> nprecHitsPerChamberLayer;
71  std::vector<unsigned int> nphiHitsPerChamberLayer;
72  std::vector<unsigned int> ntrigEtaHitsPerChamberLayer;
73 
74  ntrigEtaHitsPerChamberLayer.resize(toInt(PhiIndex::PhiIndexMax));
75  nprecHitsPerChamberLayer.resize(toInt(ChIndex::ChIndexMax));
76  nphiHitsPerChamberLayer.resize(toInt(PhiIndex::PhiIndexMax));
77 
78  ATH_MSG_DEBUG("addHitCounts: unique ID " << HepMC::uniqueID(truthParticle));
79  auto truthParticleHistory = HepMC::simulation_history(&truthParticle, -1); // Returns a list of unique IDs
80  // loop over detector technologies
81  for (SG::ReadHandle<PRD_MultiTruthCollection>& col : m_PRD_TruthNames.makeHandles(ctx)) {
82  ATH_CHECK(col.isPresent());
83 
84  // loop over trajectories
85  for (const std::pair<Identifier, HepMcParticleLink> trajectory : *col) {
86  // check if gen particle same as input
87  if (std::ranges::find(truthParticleHistory, HepMC::uniqueID(trajectory.second)) == truthParticleHistory.end()) {
88  continue;
89  }
90  const Identifier& id = trajectory.first;
91  bool measPhi = m_idHelperSvc->measuresPhi(id);
92  bool isTgc = m_idHelperSvc->isTgc(id);
93  ChIndex chIndex = !isTgc ? m_idHelperSvc->chamberIndex(id) : ChIndex::ChUnknown;
94 
95  // add identifier to map
96  if (m_idHelperSvc->isTgc(id)) { // TGCS should be added to both EIL and EIS
97  PhiIndex index = m_idHelperSvc->phiIndex(id);
98  if (index == PhiIndex::T4) {
99  ids[ChIndex::EIS].push_back(id);
100  ids[ChIndex::EIL].push_back(id);
101  } else {
102  ids[ChIndex::EMS].push_back(id);
103  ids[ChIndex::EML].push_back(id);
104  }
105  } else {
106  ids[m_idHelperSvc->chamberIndex(id)].push_back(id);
107  }
108  if (m_idHelperSvc->issTgc(id)) {
109  if (measPhi) {
110  PhiIndex index = m_idHelperSvc->phiIndex(id);
111  ++nphiHitsPerChamberLayer.at(toInt(index));
112  } else {
113  ++nprecHitsPerChamberLayer.at(toInt(chIndex));
114  }
115  } else if (m_idHelperSvc->isMM(id)) {
116  ++nprecHitsPerChamberLayer.at(toInt(chIndex));
117  } else if (m_idHelperSvc->isTrigger(id)) {
118  PhiIndex index = m_idHelperSvc->phiIndex(id);
119  if (index != PhiIndex::PhiUnknown) {
120  if (measPhi)
121  ++nphiHitsPerChamberLayer.at(toInt(index));
122  else
123  ++ntrigEtaHitsPerChamberLayer.at(toInt(index));
124  }
125  } else {
126  if (measPhi) {
127  PhiIndex index = m_idHelperSvc->phiIndex(id);
128  ++nphiHitsPerChamberLayer.at(toInt(index));
129  } else {
130  ++nprecHitsPerChamberLayer.at(toInt(chIndex));
131  }
132  }
133  }
134  }
135 
136  uint8_t innerSmallHits = nprecHitsPerChamberLayer[toInt(ChIndex::BIS)] +
137  nprecHitsPerChamberLayer[toInt(ChIndex::EIS)] +
138  nprecHitsPerChamberLayer[toInt(ChIndex::CSS)];
139 
140  uint8_t innerLargeHits = nprecHitsPerChamberLayer[toInt(ChIndex::BIL)] +
141  nprecHitsPerChamberLayer[toInt(ChIndex::EIL)] +
142  nprecHitsPerChamberLayer[toInt(ChIndex::CSL)];
143 
144  uint8_t middleSmallHits = nprecHitsPerChamberLayer[toInt(ChIndex::BMS)] +
145  nprecHitsPerChamberLayer[toInt(ChIndex::EMS)];
146 
147  uint8_t middleLargeHits = nprecHitsPerChamberLayer[toInt(ChIndex::BML)] +
148  nprecHitsPerChamberLayer[toInt(ChIndex::EML)];
149 
150  uint8_t outerSmallHits = nprecHitsPerChamberLayer[toInt(ChIndex::BOS)] +
151  nprecHitsPerChamberLayer[toInt(ChIndex::EOS)];
152 
153  uint8_t outerLargeHits = nprecHitsPerChamberLayer[toInt(ChIndex::BML)] +
154  nprecHitsPerChamberLayer[toInt(ChIndex::EOL)];
155 
156  uint8_t extendedSmallHits = nprecHitsPerChamberLayer[toInt(ChIndex::EES)] +
157  nprecHitsPerChamberLayer[toInt(ChIndex::BEE)];
158 
159  uint8_t extendedLargeHits = nprecHitsPerChamberLayer[toInt(ChIndex::EEL)];
160 
161  uint8_t phiLayer1Hits = nphiHitsPerChamberLayer[toInt(PhiIndex::BM1)] +
162  nphiHitsPerChamberLayer[toInt(PhiIndex::T4)] +
163  nphiHitsPerChamberLayer[toInt(PhiIndex::CSC)] +
164  nphiHitsPerChamberLayer[toInt(PhiIndex::STGC1)] +
165  nphiHitsPerChamberLayer[toInt(PhiIndex::STGC2)];
166 
167  uint8_t phiLayer2Hits = nphiHitsPerChamberLayer[toInt(PhiIndex::BM2)] +
168  nphiHitsPerChamberLayer[toInt(PhiIndex::T1)];
169 
170  uint8_t phiLayer3Hits = nphiHitsPerChamberLayer[toInt(PhiIndex::BO1)] +
171  nphiHitsPerChamberLayer[toInt(PhiIndex::T2)];
172 
173  uint8_t phiLayer4Hits = nphiHitsPerChamberLayer[toInt(PhiIndex::BO2)] +
174  nphiHitsPerChamberLayer[toInt(PhiIndex::T3)];
175 
176  uint8_t etaLayer1Hits = ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BM1)] +
177  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T4)]+
178  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::CSC)] +
179  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::STGC1)] +
180  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::STGC2)];
181 
182  uint8_t etaLayer2Hits = ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BM2)] +
183  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T1)];
184 
185  uint8_t etaLayer3Hits = ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BO1)] +
186  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T2)];
187 
188  uint8_t etaLayer4Hits = ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BO2)] +
189  ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T3)];
190 
191  uint8_t nprecLayers = 0;
192  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::BIS)] + nprecHitsPerChamberLayer[toInt(ChIndex::BIL)] > 3);
193  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::BMS)] + nprecHitsPerChamberLayer[toInt(ChIndex::BML)] > 2);
194  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::BOS)] + nprecHitsPerChamberLayer[toInt(ChIndex::BOL)] > 2);
195  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::EIS)] + nprecHitsPerChamberLayer[toInt(ChIndex::EIL)] > 3);
196  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::EMS)] + nprecHitsPerChamberLayer[toInt(ChIndex::EML)] > 2);
197  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::EOS)] + nprecHitsPerChamberLayer[toInt(ChIndex::EOL)] > 2);
198  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::EES)] + nprecHitsPerChamberLayer[toInt(ChIndex::EEL)] > 3);
199  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::CSS)] + nprecHitsPerChamberLayer[toInt(ChIndex::CSL)] > 2);
200  nprecLayers += (nprecHitsPerChamberLayer[toInt(ChIndex::BEE)] > 3);
201 
202  uint8_t nphiLayers = 0;
203  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::BM1)] > 0);
204  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::BM2)] > 0);
205  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::BO1)] > 0);
206  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::BO2)] > 0);
207  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::T1)] > 0);
208  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::T2)] > 0);
209  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::T3)] > 0);
210  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::T4)] > 0);
211  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::CSC)] > 2);
212  nphiLayers += (nphiHitsPerChamberLayer[toInt(PhiIndex::STGC1)] + nphiHitsPerChamberLayer[toInt(PhiIndex::STGC2)] > 3);
213 
214  uint8_t ntrigEtaLayers = 0;
215  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BM1)] > 0);
216  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BM2)] > 0);
217  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BO1)] > 0);
218  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::BO2)] > 0);
219  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T1)] > 0);
220  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T2)] > 0);
221  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T3)] > 0);
222  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::T4)] > 0);
223  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::CSC)] > 2);
224  ntrigEtaLayers += (ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::STGC1)] + ntrigEtaHitsPerChamberLayer[toInt(PhiIndex::STGC2)] > 3);
225  // copy hit counts onto TruthParticle
226  (*myDecors.nprecLayersDecor)(truthParticle) = nprecLayers;
227  (*myDecors.nphiLayersDecor)(truthParticle) = nphiLayers;
228  (*myDecors.ntrigEtaLayersDecor)(truthParticle) = ntrigEtaLayers;
229  (*myDecors.innerSmallHitsDecor)(truthParticle) = innerSmallHits;
230  (*myDecors.innerLargeHitsDecor)(truthParticle) = innerLargeHits;
231  (*myDecors.middleSmallHitsDecor)(truthParticle) = middleSmallHits;
232  (*myDecors.middleLargeHitsDecor)(truthParticle) = middleLargeHits;
233  (*myDecors.outerSmallHitsDecor)(truthParticle) = outerSmallHits;
234  (*myDecors.outerLargeHitsDecor)(truthParticle) = outerLargeHits;
235  (*myDecors.extendedSmallHitsDecor)(truthParticle) = extendedSmallHits;
236  (*myDecors.extendedLargeHitsDecor)(truthParticle) = extendedLargeHits;
237 
238  (*myDecors.phiLayer1HitsDecor)(truthParticle) = phiLayer1Hits;
239  (*myDecors.phiLayer2HitsDecor)(truthParticle) = phiLayer2Hits;
240  (*myDecors.phiLayer3HitsDecor)(truthParticle) = phiLayer3Hits;
241  (*myDecors.phiLayer4HitsDecor)(truthParticle) = phiLayer4Hits;
242 
243  (*myDecors.etaLayer1HitsDecor)(truthParticle) = etaLayer1Hits;
244  (*myDecors.etaLayer2HitsDecor)(truthParticle) = etaLayer2Hits;
245  (*myDecors.etaLayer3HitsDecor)(truthParticle) = etaLayer3Hits;
246  (*myDecors.etaLayer4HitsDecor)(truthParticle) = etaLayer4Hits;
247 
248 
249  if (msgLvl(MSG::DEBUG)) {
250  ATH_MSG_DEBUG("Precision layers " << static_cast<int>(nprecLayers) << " phi layers " << static_cast<int>(nphiLayers)
251  << " triggerEta layers " << static_cast<int>(ntrigEtaLayers));
252 
253  if (nprecLayers > 0) {
254  msg(MSG::VERBOSE) << " Precision chambers ";
255 
256  for (int index = 0; index < static_cast<int>(nprecHitsPerChamberLayer.size()); ++index) {
257  if (nprecHitsPerChamberLayer[index] > 0)
258  msg(MSG::VERBOSE) << " " << chName(static_cast<ChIndex>(index))
259  << " hits " << nprecHitsPerChamberLayer[index];
260  }
261  }
262  if (nphiLayers > 0) {
263  msg(MSG::VERBOSE) << endmsg << " Phi chambers ";
264  for (int index = 0; index < static_cast<int>(nphiHitsPerChamberLayer.size()); ++index) {
265  if (nphiHitsPerChamberLayer[index] > 0)
266  msg(MSG::VERBOSE) << " " << phiName(static_cast<PhiIndex>(index))
267  << " hits " << nphiHitsPerChamberLayer[index];
268  }
269  }
270 
271  if (ntrigEtaLayers > 0) {
272  msg(MSG::VERBOSE) << endmsg << " Trigger Eta ";
273  for (int index = 0; index < static_cast<int>(ntrigEtaHitsPerChamberLayer.size()); ++index) {
274  if (ntrigEtaHitsPerChamberLayer[index] > 0)
275  msg(MSG::VERBOSE) << " " << phiName(static_cast<PhiIndex>(index))
276  << " hits " << ntrigEtaHitsPerChamberLayer[index];
277  }
278  }
279  msg(MSG::VERBOSE) << endmsg;
280  }
281  return StatusCode::SUCCESS;
282  }

◆ addHitIDVectors()

StatusCode Muon::TruthHitSummaryAlg::addHitIDVectors ( const xAOD::TruthParticle truthParticle,
const ChamberIdMap ids,
summaryDecors myDecors 
) const
private

This function collapses the information given by the ChamberIdMap, which contains all hits from a truth muon classified by chamber, into 6 vectors carrying these hits categorized by detector technology (MDT, TGC, RPC, sTGC, CSC, MM).

Parameters
truthParticlereference to truth muon
idsreference to the previously populated chamberIdMap object
myDecorsreference to the summary write-decorator object

Definition at line 284 of file TruthHitSummaryAlg.cxx.

286  {
287  std::vector<unsigned long long> mdtTruthHits{};
288  std::vector<unsigned long long> tgcTruthHits{};
289  std::vector<unsigned long long> rpcTruthHits{};
290  std::vector<unsigned long long> stgcTruthHits{};
291  std::vector<unsigned long long> cscTruthHits{};
292  std::vector<unsigned long long> mmTruthHits{};
293 
294  // loop over chamber layers
295  int nEI = 0, nEM = 0;
296  for (const auto& lay : ids) {
297  // loop over hits
298  if (lay.first == ChIndex::EIS || lay.first == ChIndex::EIL) nEI++;
299  if (lay.first == ChIndex::EMS || lay.first == ChIndex::EML) nEM++;
300  for (const Identifier& id : lay.second) {
301  if (m_idHelperSvc->isMdt(id))
302  mdtTruthHits.push_back(id.get_compact());
303  else if (m_idHelperSvc->isCsc(id))
304  cscTruthHits.push_back(id.get_compact());
305  else if (m_idHelperSvc->isTgc(id)) {
306  if ((lay.first == ChIndex::EIS || lay.first == ChIndex::EIL) && nEI > 1)
307  continue; // otherwise we double-count
308  if ((lay.first == ChIndex::EMS || lay.first == ChIndex::EML) && nEM > 1)
309  continue; // otherwise we double-count
310  tgcTruthHits.push_back(id.get_compact());
311  } else if (m_idHelperSvc->issTgc(id))
312  stgcTruthHits.push_back(id.get_compact());
313  else if (m_idHelperSvc->isRpc(id))
314  rpcTruthHits.push_back(id.get_compact());
315  else if (m_idHelperSvc->isMM(id))
316  mmTruthHits.push_back(id.get_compact());
317  }
318  }
319  auto attatchHits = [&truthParticle](const WriteDecor_llvec& dec,
320  std::vector<unsigned long long>& hits) {
321  if (dec) {
322  (*dec)(truthParticle) = std::move(hits);
323  }
324  };
325  attatchHits(myDecors.truthMdtHitsDecor, mdtTruthHits);
326  attatchHits(myDecors.truthTgcHitsDecor, tgcTruthHits);
327  attatchHits(myDecors.truthRpcHitsDecor, rpcTruthHits);
328  attatchHits(myDecors.truthCscHitsDecor, cscTruthHits);
329  attatchHits(myDecors.truthStgcHitsDecor, stgcTruthHits);
330  attatchHits(myDecors.truthMMHitsDecor, mmTruthHits);
331  ATH_MSG_VERBOSE("Added " << mdtTruthHits.size() << " mdt truth hits, " << cscTruthHits.size() << " csc truth hits, "
332  << rpcTruthHits.size() << " rpc truth hits, and " << tgcTruthHits.size() << " tgc truth hits");
333  return StatusCode::SUCCESS;
334  }

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64 {
65  return 0;
66 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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  }

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( ) const
inlineinherited

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode Muon::TruthHitSummaryAlg::execute ( const EventContext &  ctx) const
overridevirtual

Definition at line 50 of file TruthHitSummaryAlg.cxx.

50  {
51  // skip if no input data found
52  SG::ReadHandle muonTruthContainer(m_muonTruth, ctx);
53  ATH_CHECK(muonTruthContainer.isPresent());
54 
55  summaryDecors myDecors{this, ctx};
56 
57  // loop over truth coll (muon only)
58  for (const xAOD::TruthParticle* truthParticle : *muonTruthContainer) {
59  ChamberIdMap ids{};
60  ATH_CHECK(addHitCounts(ctx, *truthParticle, ids, myDecors));
61  ATH_CHECK(addHitIDVectors(*truthParticle, ids, myDecors));
62  }
63  return StatusCode::SUCCESS;
64  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90 {
91  // If we didn't find any symlinks to add, just return the collection
92  // from the base class. Otherwise, return the extended collection.
93  if (!m_extendedExtraObjects.empty()) {
95  }
96  return BaseAlg::extraOutputDeps();
97 }

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96  {
97  return execState( ctx ).filterPassed();
98  }

◆ initialize()

StatusCode Muon::TruthHitSummaryAlg::initialize ( )
overridevirtual

Definition at line 15 of file TruthHitSummaryAlg.cxx.

15  {
17  ATH_CHECK(m_PRD_TruthNames.initialize());
18  ATH_CHECK(m_idHelperSvc.retrieve());
19 
45 
46  return StatusCode::SUCCESS;
47  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ isClonable()

bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::isClonable
overridevirtualinherited

Specify if the algorithm is clonable.

Reentrant algorithms are clonable.

Definition at line 68 of file AthCommonReentrantAlgorithm.cxx.

52 {
53  // Reentrant algorithms are clonable.
54  return true;
55 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100  {
101  execState( ctx ).setFilterPassed( state );
102  }

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77 {
78  return BaseAlg::sysExecute (ctx);
79 }

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107  {
109 
110  if (sc.isFailure()) {
111  return sc;
112  }
113 
114  ServiceHandle<ICondSvc> cs("CondSvc",name());
115  for (auto h : outputHandles()) {
116  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117  // do this inside the loop so we don't create the CondSvc until needed
118  if ( cs.retrieve().isFailure() ) {
119  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120  return StatusCode::SUCCESS;
121  }
122  if (cs->regHandle(this,*h).isFailure()) {
123  sc = StatusCode::FAILURE;
124  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125  << " with CondSvc");
126  }
127  }
128  }
129  return sc;
130 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Friends And Related Function Documentation

◆ summaryDecors

friend struct summaryDecors
friend

Definition at line 55 of file TruthHitSummaryAlg.h.

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_etaLayer1HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_etaLayer1HitsKey {this, "etaLayer1HitsKey", m_muonTruth, "etaLayer1Hits", ""}
private

Definition at line 167 of file TruthHitSummaryAlg.h.

◆ m_etaLayer2HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_etaLayer2HitsKey {this, "etaLayer2HitsKey", m_muonTruth, "etaLayer2Hits", ""}
private

Definition at line 168 of file TruthHitSummaryAlg.h.

◆ m_etaLayer3HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_etaLayer3HitsKey {this, "etaLayer3HitsKey", m_muonTruth, "etaLayer3Hits", ""}
private

Definition at line 169 of file TruthHitSummaryAlg.h.

◆ m_etaLayer4HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_etaLayer4HitsKey {this, "etaLayer4HitsKey", m_muonTruth, "etaLayer4Hits", ""}
private

Definition at line 170 of file TruthHitSummaryAlg.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_extendedLargeHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_extendedLargeHitsKey {this, "extendedLargeHitsKey", m_muonTruth, "extendedLargeHits", ""}
private

Definition at line 162 of file TruthHitSummaryAlg.h.

◆ m_extendedSmallHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_extendedSmallHitsKey {this, "extendedSmallHitsKey", m_muonTruth, "extendedSmallHits", ""}
private

Definition at line 161 of file TruthHitSummaryAlg.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> Muon::TruthHitSummaryAlg::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Handle for muonIdHelper service.

Definition at line 180 of file TruthHitSummaryAlg.h.

◆ m_innerLargeHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_innerLargeHitsKey {this, "innerLargeHitsKey", m_muonTruth, "innerLargeHits", ""}
private

Definition at line 156 of file TruthHitSummaryAlg.h.

◆ m_innerSmallHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_innerSmallHitsKey {this, "innerSmallHitsKey", m_muonTruth, "innerSmallHits", ""}
private

Definition at line 155 of file TruthHitSummaryAlg.h.

◆ m_middleLargeHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_middleLargeHitsKey {this, "middleLargeHitsKey", m_muonTruth, "middleLargeHits", ""}
private

Definition at line 158 of file TruthHitSummaryAlg.h.

◆ m_middleSmallHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_middleSmallHitsKey {this, "middleSmallHitsKey", m_muonTruth, "middleSmallHits", ""}
private

Definition at line 157 of file TruthHitSummaryAlg.h.

◆ m_muonTruth

SG::ReadHandleKey<xAOD::TruthParticleContainer> Muon::TruthHitSummaryAlg::m_muonTruth {this, "muonTruth", "MuonTruthParticles"}
private

Key of the container of truth muons.

Definition at line 133 of file TruthHitSummaryAlg.h.

◆ m_nphiLayersKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_nphiLayersKey {this, "nphiLayersKey", m_muonTruth, "nphiLayers", ""}
private

Definition at line 153 of file TruthHitSummaryAlg.h.

◆ m_nprecLayersKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_nprecLayersKey {this, "nprecLayersKey", m_muonTruth, "nprecLayers", ""}
private

Definition at line 152 of file TruthHitSummaryAlg.h.

◆ m_ntrigEtaLayersKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_ntrigEtaLayersKey {this, "ntrigEtaLayersKey", m_muonTruth, "ntrigEtaLayers", ""}
private

Definition at line 154 of file TruthHitSummaryAlg.h.

◆ m_outerLargeHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_outerLargeHitsKey {this, "outerLargeHitsKey", m_muonTruth, "outerLargeHits", ""}
private

Definition at line 160 of file TruthHitSummaryAlg.h.

◆ m_outerSmallHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_outerSmallHitsKey {this, "outerSmallHitsKey", m_muonTruth, "outerSmallHits", ""}
private

Definition at line 159 of file TruthHitSummaryAlg.h.

◆ m_phiLayer1HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_phiLayer1HitsKey {this, "phiLayer1HitsKey", m_muonTruth, "phiLayer1Hits", ""}
private

Definition at line 163 of file TruthHitSummaryAlg.h.

◆ m_phiLayer2HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_phiLayer2HitsKey {this, "phiLayer2HitsKey", m_muonTruth, "phiLayer2Hits", ""}
private

Definition at line 164 of file TruthHitSummaryAlg.h.

◆ m_phiLayer3HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_phiLayer3HitsKey {this, "phiLayer3HitsKey", m_muonTruth, "phiLayer3Hits", ""}
private

Definition at line 165 of file TruthHitSummaryAlg.h.

◆ m_phiLayer4HitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_phiLayer4HitsKey {this, "phiLayer4HitsKey", m_muonTruth, "phiLayer4Hits", ""}
private

Definition at line 166 of file TruthHitSummaryAlg.h.

◆ m_PRD_TruthNames

SG::ReadHandleKeyArray<PRD_MultiTruthCollection> Muon::TruthHitSummaryAlg::m_PRD_TruthNames
private
Initial value:
{
this, "PRD_TruthMaps", {"CSC_TruthMap", "RPC_TruthMap", "TGC_TruthMap", "MDT_TruthMap"}, "remove NSW by default for now, can always be changed in the configuration"}

Keys for the containers of truth hits, grouped by detector technology.

Each element of the container has a hit ("sensor" or "channel") ID, representing the detector channel where the hit has been recorded, and a link to the MC particle that generated the hit

Definition at line 139 of file TruthHitSummaryAlg.h.

◆ m_truthCscHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthCscHitsKey {this, "truthCscHitskey", m_muonTruth, "truthCscHits", ""}
private

Definition at line 175 of file TruthHitSummaryAlg.h.

◆ m_truthMdtHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthMdtHitsKey {this, "truthMdtHitsKey", m_muonTruth, "truthMdtHits", ""}
private

Definition at line 172 of file TruthHitSummaryAlg.h.

◆ m_truthMMHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthMMHitsKey {this, "truthMMHitsKey", m_muonTruth, "truthMMHits", ""}
private

Definition at line 177 of file TruthHitSummaryAlg.h.

◆ m_truthRpcHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthRpcHitsKey {this, "truthRpcHitsKey", m_muonTruth, "truthRpcHits", ""}
private

Definition at line 174 of file TruthHitSummaryAlg.h.

◆ m_truthStgcHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthStgcHitsKey {this, "truthStgcHitsKey", m_muonTruth, "truthStgcHits", ""}
private

Definition at line 176 of file TruthHitSummaryAlg.h.

◆ m_truthTgcHitsKey

WriteDecorKey_t Muon::TruthHitSummaryAlg::m_truthTgcHitsKey {this, "truthTgcHitsKey", m_muonTruth, "truthTgcHits", ""}
private

Definition at line 173 of file TruthHitSummaryAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Muon::TruthHitSummaryAlg::ChamberIdMap
std::map< Muon::MuonStationIndex::ChIndex, std::vector< Identifier > > ChamberIdMap
This map contains all the hits corresponding to truth muons classified by chamber layer that recorded...
Definition: TruthHitSummaryAlg.h:43
Muon::MuonStationIndex::PhiIndex::T4
@ T4
xAOD::phiLayer1Hits
@ phiLayer1Hits
number of phi hits in the first trigger layer (BML1 ot T4)
Definition: TrackingPrimitives.h:349
Muon::TruthHitSummaryAlg::m_etaLayer3HitsKey
WriteDecorKey_t m_etaLayer3HitsKey
Definition: TruthHitSummaryAlg.h:169
xAOD::etaLayer1Hits
@ etaLayer1Hits
number of eta hits in the first trigger layer (BML1 ot T4)
Definition: TrackingPrimitives.h:354
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
xAOD::phiLayer3Hits
@ phiLayer3Hits
number of phi hits in the third trigger layer (BOL1 ot T2)
Definition: TrackingPrimitives.h:351
Muon::TruthHitSummaryAlg::m_truthMdtHitsKey
WriteDecorKey_t m_truthMdtHitsKey
Definition: TruthHitSummaryAlg.h:172
xAOD::phiLayer4Hits
@ phiLayer4Hits
number of phi hits in the fourth trigger layer (T3)
Definition: TrackingPrimitives.h:352
Muon::TruthHitSummaryAlg::m_phiLayer2HitsKey
WriteDecorKey_t m_phiLayer2HitsKey
Definition: TruthHitSummaryAlg.h:164
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Muon::MuonStationIndex::PhiIndex::BO1
@ BO1
Muon::MuonStationIndex::ChIndex::EEL
@ EEL
Muon::MuonStationIndex::ChIndex::EML
@ EML
Muon::TruthHitSummaryAlg::addHitIDVectors
StatusCode addHitIDVectors(const xAOD::TruthParticle &truthParticle, const ChamberIdMap &ids, summaryDecors &myDecors) const
This function collapses the information given by the ChamberIdMap, which contains all hits from a tru...
Definition: TruthHitSummaryAlg.cxx:284
Muon::MuonStationIndex::ChIndex::EOS
@ EOS
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
index
Definition: index.py:1
Muon::MuonStationIndex::ChIndex::BIL
@ BIL
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
Muon::MuonStationIndex::PhiIndex::BM1
@ BM1
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Muon::TruthHitSummaryAlg::m_outerLargeHitsKey
WriteDecorKey_t m_outerLargeHitsKey
Definition: TruthHitSummaryAlg.h:160
AthCommonMsg< Gaudi::Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Muon::TruthHitSummaryAlg::m_etaLayer1HitsKey
WriteDecorKey_t m_etaLayer1HitsKey
Definition: TruthHitSummaryAlg.h:167
Muon::TruthHitSummaryAlg::m_truthCscHitsKey
WriteDecorKey_t m_truthCscHitsKey
Definition: TruthHitSummaryAlg.h:175
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Muon::MuonStationIndex::ChIndex::EIS
@ EIS
Muon::MuonStationIndex::ChIndex::CSL
@ CSL
xAOD::innerLargeHits
@ innerLargeHits
number of precision hits in the inner large layer
Definition: TrackingPrimitives.h:332
Muon::TruthHitSummaryAlg::m_extendedSmallHitsKey
WriteDecorKey_t m_extendedSmallHitsKey
Definition: TruthHitSummaryAlg.h:161
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Muon::MuonStationIndex::PhiIndex::T1
@ T1
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::etaLayer3Hits
@ etaLayer3Hits
number of eta hits in the third trigger layer (BOL1 ot T2)
Definition: TrackingPrimitives.h:356
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
xAOD::middleLargeHits
@ middleLargeHits
number of precision hits in the middle large layer
Definition: TrackingPrimitives.h:334
Muon::MuonStationIndex::ChIndex::EIL
@ EIL
Muon::TruthHitSummaryAlg::m_ntrigEtaLayersKey
WriteDecorKey_t m_ntrigEtaLayersKey
Definition: TruthHitSummaryAlg.h:154
xAOD::phiLayer2Hits
@ phiLayer2Hits
number of phi hits in the second trigger layer (BML2 ot T1)
Definition: TrackingPrimitives.h:350
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
AthCommonReentrantAlgorithm::extraOutputDeps
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Definition: AthCommonReentrantAlgorithm.cxx:89
xAOD::etaLayer2Hits
@ etaLayer2Hits
number of eta hits in the second trigger layer (BML2 ot T1)
Definition: TrackingPrimitives.h:355
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
Muon::TruthHitSummaryAlg::m_truthMMHitsKey
WriteDecorKey_t m_truthMMHitsKey
Definition: TruthHitSummaryAlg.h:177
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Muon::MuonStationIndex::ChIndex::BIS
@ BIS
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Muon::MuonStationIndex::PhiIndex::CSC
@ CSC
Muon::TruthHitSummaryAlg::m_nprecLayersKey
WriteDecorKey_t m_nprecLayersKey
Definition: TruthHitSummaryAlg.h:152
xAOD::extendedLargeHits
@ extendedLargeHits
number of precision hits in the extended large layer
Definition: TrackingPrimitives.h:338
Muon::TruthHitSummaryAlg::m_extendedLargeHitsKey
WriteDecorKey_t m_extendedLargeHitsKey
Definition: TruthHitSummaryAlg.h:162
Muon::MuonStationIndex::chIndex
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
Definition: MuonStationIndex.cxx:11
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::MuonStationIndex::chName
const std::string & chName(ChIndex index)
convert ChIndex into a string
Definition: MuonStationIndex.cxx:119
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
AthCommonReentrantAlgorithm::sysExecute
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
Definition: AthCommonReentrantAlgorithm.cxx:76
Muon::TruthHitSummaryAlg::m_phiLayer3HitsKey
WriteDecorKey_t m_phiLayer3HitsKey
Definition: TruthHitSummaryAlg.h:165
Muon::TruthHitSummaryAlg::m_truthStgcHitsKey
WriteDecorKey_t m_truthStgcHitsKey
Definition: TruthHitSummaryAlg.h:176
Muon::TruthHitSummaryAlg::m_etaLayer4HitsKey
WriteDecorKey_t m_etaLayer4HitsKey
Definition: TruthHitSummaryAlg.h:170
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
Muon::MuonStationIndex::ChIndex::BML
@ BML
Muon::MuonStationIndex::ChIndex::CSS
@ CSS
HepMC::simulation_history
std::deque< int > simulation_history(const T &p, const int direction)
Function to calculate all the descendants(direction=1)/ancestors(direction=-1) of the particle.
Definition: MagicNumbers.h:192
Muon::MuonStationIndex::ChIndex::BOS
@ BOS
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Muon::TruthHitSummaryAlg::m_middleLargeHitsKey
WriteDecorKey_t m_middleLargeHitsKey
Definition: TruthHitSummaryAlg.h:158
Muon::TruthHitSummaryAlg::m_innerLargeHitsKey
WriteDecorKey_t m_innerLargeHitsKey
Definition: TruthHitSummaryAlg.h:156
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
Muon::MuonStationIndex::ChIndex::EES
@ EES
Muon::TruthHitSummaryAlg::addHitCounts
StatusCode addHitCounts(const EventContext &ctx, const xAOD::TruthParticle &truthParticle, ChamberIdMap &ids, summaryDecors &myDecors) const
This is the actual function that decorates truth muons with hit counts.
Definition: TruthHitSummaryAlg.cxx:66
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
Muon::MuonStationIndex::ChIndex::BEE
@ BEE
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Muon::MuonStationIndex::ChIndex::BMS
@ BMS
Muon::MuonStationIndex::PhiIndex::BO2
@ BO2
xAOD::middleSmallHits
@ middleSmallHits
number of precision hits in the middle small layer
Definition: TrackingPrimitives.h:333
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
Muon::TruthHitSummaryAlg::m_outerSmallHitsKey
WriteDecorKey_t m_outerSmallHitsKey
Definition: TruthHitSummaryAlg.h:159
xAOD::outerSmallHits
@ outerSmallHits
number of precision hits in the outer small layer
Definition: TrackingPrimitives.h:335
Muon::MuonStationIndex::PhiIndex
PhiIndex
enum to classify the different phi layers in the muon spectrometer
Definition: MuonStationIndex.h:31
Muon::TruthHitSummaryAlg::WriteDecor_llvec
std::unique_ptr< SG::WriteDecorHandle< xAOD::TruthParticleContainer, llvec > > WriteDecor_llvec
Definition: TruthHitSummaryAlg.h:54
xAOD::outerLargeHits
@ outerLargeHits
number of precision hits in the outer large layer
Definition: TrackingPrimitives.h:336
DeMoScan.index
string index
Definition: DeMoScan.py:362
a
TList * a
Definition: liststreamerinfos.cxx:10
Muon::MuonStationIndex::PhiIndex::T3
@ T3
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
h
Muon::TruthHitSummaryAlg::m_truthTgcHitsKey
WriteDecorKey_t m_truthTgcHitsKey
Definition: TruthHitSummaryAlg.h:173
Muon::MuonStationIndex::PhiIndex::T2
@ T2
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Muon::TruthHitSummaryAlg::m_phiLayer4HitsKey
WriteDecorKey_t m_phiLayer4HitsKey
Definition: TruthHitSummaryAlg.h:166
Muon::MuonStationIndex::PhiIndex::BM2
@ BM2
DEBUG
#define DEBUG
Definition: page_access.h:11
Muon::TruthHitSummaryAlg::m_muonTruth
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_muonTruth
Key of the container of truth muons.
Definition: TruthHitSummaryAlg.h:133
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Muon::TruthHitSummaryAlg::m_truthRpcHitsKey
WriteDecorKey_t m_truthRpcHitsKey
Definition: TruthHitSummaryAlg.h:174
Muon::TruthHitSummaryAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Handle for muonIdHelper service.
Definition: TruthHitSummaryAlg.h:180
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
Muon::MuonStationIndex::ChIndex::EOL
@ EOL
Muon::TruthHitSummaryAlg::m_middleSmallHitsKey
WriteDecorKey_t m_middleSmallHitsKey
Definition: TruthHitSummaryAlg.h:157
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthCommonReentrantAlgorithm.cxx:107
Muon::TruthHitSummaryAlg::m_nphiLayersKey
WriteDecorKey_t m_nphiLayersKey
Definition: TruthHitSummaryAlg.h:153
Muon::TruthHitSummaryAlg::m_phiLayer1HitsKey
WriteDecorKey_t m_phiLayer1HitsKey
Definition: TruthHitSummaryAlg.h:163
Muon::TruthHitSummaryAlg::m_innerSmallHitsKey
WriteDecorKey_t m_innerSmallHitsKey
Definition: TruthHitSummaryAlg.h:155
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
Muon::MuonStationIndex::ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
Definition: MuonStationIndex.h:15
Muon::TruthHitSummaryAlg::m_PRD_TruthNames
SG::ReadHandleKeyArray< PRD_MultiTruthCollection > m_PRD_TruthNames
Keys for the containers of truth hits, grouped by detector technology.
Definition: TruthHitSummaryAlg.h:139
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:13
xAOD::extendedSmallHits
@ extendedSmallHits
number of precision hits in the extended small layer
Definition: TrackingPrimitives.h:337
Muon::MuonStationIndex::ChIndex::EMS
@ EMS
Muon::TruthHitSummaryAlg::m_etaLayer2HitsKey
WriteDecorKey_t m_etaLayer2HitsKey
Definition: TruthHitSummaryAlg.h:168
Muon::TruthHitSummaryAlg::summaryDecors
friend struct summaryDecors
Definition: TruthHitSummaryAlg.h:55
xAOD::innerSmallHits
@ innerSmallHits
number of precision hits in the inner small layer
Definition: TrackingPrimitives.h:331
Muon::MuonStationIndex::phiName
const std::string & phiName(PhiIndex index)
convert PhiIndex into a string
Definition: MuonStationIndex.cxx:87
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthCommonReentrantAlgorithm.h:114
xAOD::etaLayer4Hits
@ etaLayer4Hits
number of eta hits in the fourth trigger layer (T3)
Definition: TrackingPrimitives.h:357
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >
Muon::MuonStationIndex::ChIndex::BOL
@ BOL
Identifier
Definition: IdentifierFieldParser.cxx:14