ATLAS Offline Software
MuonCaloTagTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MuonCaloTagTool
7 // AlgTool performing calorimeter tagging of ID tracks for energy depositions
8 // compatible with mip. A CaloTag is added to the InDetCandidate object.
9 //
10 // Authors: Nicolo de Groot & Antonio Salvucci
11 // based on: CaloTrkMuId
12 //
14 
15 #include "MuonCaloTagTool.h"
16 
17 #include <vector>
18 
32 
33 // --- HepMC Includes ---
34 #include <cmath>
35 
36 #include "AtlasHepMC/GenParticle.h"
37 #include "AtlasHepMC/GenVertex.h"
38 #include "CLHEP/Vector/LorentzVector.h"
39 
40 namespace MuonCombined {
41  MuonCaloTagTool::MuonCaloTagTool(const std::string& type, const std::string& name, const IInterface* parent) :
42 
44  declareInterface<IMuonCombinedInDetExtensionTool>(this);
45  declareInterface<IMuonCombinedTrigCaloTagExtensionTool>(this);
46  }
47 
49  ATH_MSG_INFO("MuonCaloTagTool::initialize()");
50 
52  ATH_MSG_WARNING("Cosmic track selection and detailed track selection both set to true.");
53  ATH_MSG_WARNING("Cosmic track selection will be discarded. Fix jobOptions.");
54  }
55 
56  // --- Get an Identifier helper object ---
57  if (m_doCaloLR)
58  ATH_CHECK(m_caloMuonLikelihood.retrieve());
59  else
60  m_caloMuonLikelihood.disable();
61 
63  ATH_CHECK(m_caloMuonScoreTool.retrieve());
64  else
65  m_caloMuonScoreTool.disable();
66 
67  ATH_CHECK(m_caloMuonTagLoose.retrieve());
68  ATH_CHECK(m_caloMuonTagTight.retrieve());
69  ATH_CHECK(m_trkDepositInCalo.retrieve());
70  if (!m_trackIsolationTool.empty())
71  ATH_CHECK(m_trackIsolationTool.retrieve());
72  else
73  m_trackIsolationTool.disable();
74  ATH_CHECK(m_trkSelTool.retrieve());
77 
78  return StatusCode::SUCCESS;
79  }
80 
82  ATH_MSG_INFO("Number of true muons : " << m_nTrueMuons);
83  ATH_MSG_INFO("Number of tracks tagged : " << m_nTracksTagged);
84  ATH_MSG_INFO("Number of muons tagged : " << m_nMuonsTagged);
85  return StatusCode::SUCCESS;
86  }
87 
90  TrackCollection* meTracks, Trk::SegmentCollection* segments, const EventContext& ctx) const {
91  // shouldn't need this interface for this tool, I don't think
92  if (!prdData.mdtPrds) ATH_MSG_DEBUG("calo-tagging doesn't need PRDs");
93  extend(inDetCandidates, tagMap, combTracks, meTracks, segments, ctx);
94  }
95 
97  TrackCollection* combTracks, TrackCollection* meTracks, Trk::SegmentCollection* segments,
98  const EventContext& ctx) const {
99  if (combTracks || meTracks || segments) ATH_MSG_DEBUG("track collections passed to MuonCaloTagTool?");
100  const xAOD::CaloClusterContainer* caloClusterCont = nullptr;
101  const CaloCellContainer* caloCellCont = nullptr;
102  if (m_doCaloLR) { // retrieve the xAOD::CaloClusterContainer
104  if (!clusters.isValid())
105  ATH_MSG_WARNING("CaloClusterContainer " << m_caloClusterCont.key() << " not valid");
106  else if (!clusters.isPresent())
107  ATH_MSG_DEBUG("CaloClusterContainer " << m_caloClusterCont.key() << " not present");
108  else
109  caloClusterCont = clusters.cptr();
110  }
111  if (m_doOldExtrapolation) { // retrieve the CaloCellContainer
113  if (!cells.isValid())
114  ATH_MSG_WARNING("CaloCellContainer " << m_caloCellCont.key() << " not valid");
115  else if (!cells.isPresent())
116  ATH_MSG_DEBUG("CaloCellContainer " << m_caloCellCont.key() << " not present");
117  else
118  caloCellCont = cells.cptr();
119  }
120  extend(inDetCandidates, tagMap, caloCellCont, caloClusterCont);
121  }
122 
124  const CaloCellContainer* caloCellCont, const xAOD::CaloClusterContainer* caloClusterCont) const {
125  // --- Retrieve primary vertex (not retrieving for now) ---
126  const Trk::Vertex* vertex = nullptr;
127 
128  // --- Big loop over all the particles in the container ---
129  //-- make sure CaloCellContainer is there
130  if (!caloCellCont) { ATH_MSG_VERBOSE("Called with no CaloCellContainer in argument"); }
131 
132  for (const auto* idTP : inDetCandidates) {
133  // skip track particles which are no complete ID track
134  if (m_ignoreSiAssocated && idTP->isSiliconAssociated()) {
135  ATH_MSG_DEBUG("Associated track is just tracklet. Skipping this particle.");
136  continue;
137  }
138  // ensure that the id trackparticle has a track
139  const Trk::Track* track = idTP->indetTrackParticle().track(); //->originalTrack()
140  const xAOD::TrackParticle* tp = &(*idTP).indetTrackParticle(); //->originalTrackParticle()
141  if (!track) {
142  ATH_MSG_DEBUG("Particle with no track associated. Skipping this particle.");
143  continue;
144  }
146  if (!par) {
147  ATH_MSG_DEBUG("Could not retrieve Trk::TrackParameters from track. Skipping this particle.");
148  continue;
149  }
150 
151  // --- Get pdgId (when requested) ---
152  int pdgId = 0;
153 
155  truthParticleLinkAcc("truthParticleLink");
157  if (truthParticleLinkAcc.isAvailable(*tp)) {
158  truthLink = truthParticleLinkAcc(*tp);
159  if (m_doTruth && truthLink.isValid()) {
160  // no decay in flight
161  pdgId = (*truthLink)->pdgId();
162  } else {
163  ATH_MSG_DEBUG("No TruthLink available.");
164  }
165  }
166 
167  // --- Track selection ---
168 
169  if (!selectTrack(track, vertex)) {
170  // --- in debug mode, monitor the number of muons rejected by track selection ---
171  if (m_debugMode) {
172  // --- Truth info == 0 when doTruth is false ---
173  if (abs(pdgId) == 13) {
174  // MUST BE DEFINE track pt
175  ATH_MSG_DEBUG("Cutflow MuonCaloTag >>> Muon rejected by track selection."); //(pt = " << track->pt() << ")" <<
176  //"<<<"); to update
177  }
178  }
179  continue;
180  }
181 
182  // --- Track isolation --- -> SEE DETAILS IN corresponding method
183  if (!applyTrackIsolation(*tp)) {
184  // --- in debug mode, monitor the number of muons rejected by track selection ---
185  if (m_debugMode) {
186  // --- Truth info == 0 when doTruth is false ---
187  if (abs(pdgId) == 13) { ATH_MSG_DEBUG("Cutflow MuonCaloTag >>> Muon rejected by track isolation. <<<"); }
188  }
189  continue;
190  }
191 
192  // --- Show track information when debug mode is set to true ---
193  if (m_debugMode) {
195  if (pdgId) ATH_MSG_DEBUG(" pdgId = " << pdgId);
196  }
197  if (abs(pdgId) == 13) m_nTrueMuons++;
198 
199  // --- Muon tagging ---
200  float likelihood = 0;
201  float muon_score = -1;
202  int tag = 0;
203  std::vector<DepositInCalo> deposits;
204  if (m_doCaloMuonTag) {
205  if (m_doOldExtrapolation) {
206  deposits = m_trkDepositInCalo->getDeposits(par, caloCellCont);
207  } else {
208  deposits = m_trkDepositInCalo->getDeposits(tp);
209  }
210  tag = m_caloMuonTagLoose->caloMuonTag(deposits, par->eta(), par->pT());
211  tag += 10 * m_caloMuonTagTight->caloMuonTag(deposits, par->eta(), par->pT());
212  }
213  if (m_doCaloLR) { likelihood = m_caloMuonLikelihood->getLHR(tp, caloClusterCont); }
214  if (m_doCaloMuonScore) { muon_score = m_caloMuonScoreTool->getMuonScore(tp); }
215  ATH_MSG_DEBUG("Track found with tag " << tag << ", LHR " << likelihood << " and calo muon score " << muon_score);
216  // --- If all three taggers do not think it's a muon, forget about it ---
217  if (tag == 0 && likelihood <= m_CaloLRlikelihoodCut && muon_score < m_CaloMuonScoreCut) { continue; }
218  // --- Only accept tight tagged muons if pT is below 4 GeV and the muon score is below the threshold---
219  if (tag < 10 && par->pT() < 4000 && muon_score < m_CaloMuonScoreCut) { continue; }
220 
221  // FIXME const-cast changes object passed in as const
222  createMuon(*idTP, deposits, tag, likelihood, muon_score, tagMap);
223 
224  // --- Count number of muons written to container
225  if (abs(pdgId) == 13) m_nMuonsTagged++;
226  m_nTracksTagged++;
227  }
228 
229  } // end of the extend method
230 
231  // getTrackParameters -> SHOULD BE OK
233  // --- Retrieve the last measured hit which is closest to the solenoid/calorimeter entrance ---
235  const Trk::TrackParameters* param = nullptr;
236  if (paramvec) {
238  param = *(--itEnd);
239  }
240 
241  return param;
242  }
243 
244  // selectTrack -> TO CHECK track p momenta
246  if (m_doTrkSelection) {
247  bool result =
248  (m_trkSelTool->decision(*trk, vertex)) && (trk->perigeeParameters()->momentum().mag() > 2000); //;p()>2000); to check
249 
250  if (!result && m_showCutFlow) ATH_MSG_DEBUG("Track selection wrt primary vertex: Veto on this track");
251  return result;
252  }
254  bool result = selectCosmic(trk);
255  if (!result && m_showCutFlow) ATH_MSG_DEBUG("Track selection in commissioning mode: Veto on this track");
256  return result;
257  }
258 
259  // --- Return true when no track selection options are set ---
260  return true;
261  }
262 
263  // cosmicTrackSelection
264  bool MuonCaloTagTool::selectCosmic(const Trk::Track* ptcl) const {
265  // --- Only ask some hits with eta information ---
266  if (ptcl->perigeeParameters()->momentum().mag() > 2000) return false;
267  const Trk::TrackSummary* trkSummary = ptcl->trackSummary();
268  if (trkSummary) {
269  int nHitsSCT = trkSummary->get(Trk::numberOfSCTHits);
270  int nHitsPixel = trkSummary->get(Trk::numberOfPixelHits);
271  if ((nHitsSCT + nHitsPixel) > 2) return true;
272  } else {
273  ATH_MSG_WARNING("Trk::TrackSummary was not retrieved from TrackParticle.");
274  }
275 
276  return false;
277  }
278 
279  // applyTrackIsolation check
280 
282  if (m_trackIsolationTool.empty()) return true;
283 
284  xAOD::TrackCorrection corrlist;
285  corrlist.trackbitset.set(static_cast<unsigned int>(xAOD::Iso::IsolationTrackCorrection::coreTrackPtr));
286  std::vector<xAOD::Iso::IsolationType> ptcones = {xAOD::Iso::ptcone40};
287  xAOD::TrackIsolation trackIsolation;
288  if (!m_trackIsolationTool->trackIsolation(trackIsolation, tp, ptcones, corrlist)) {
289  ATH_MSG_WARNING(" Calculation of TrackIsolation failed");
290  return false;
291  }
292  ATH_MSG_VERBOSE("Got track isolation " << trackIsolation.ptcones[0]);
293  double ptIso = trackIsolation.ptcones[0];
294  double ptIsoRatio = -9999;
295  if (ptIso > 0) {
296  double pt = tp.pt();
297  if (pt > 0) // ---> just for safety (pt can never be 0 actually)
298  ptIsoRatio = ptIso / pt;
299  }
300  if (ptIso == 0 || ptIsoRatio < m_ptIsoPtRatioCut) {
301  return true;
302  } else {
303  if (m_showCutFlow) ATH_MSG_DEBUG("Did not pass track isolation cut.");
304  return false;
305  }
306  }
307 
308  // showTrackInfo -> SHOULD BE OK
310  double r = par->position().perp();
311  double eta = par->position().eta();
312  double phi = par->position().phi();
313  double pt = par->momentum().perp();
314  double momEta = par->momentum().eta();
315  double momPhi = par->momentum().phi();
316  ATH_MSG_DEBUG("*** Analysing track with parameters: ***");
317  ATH_MSG_VERBOSE(" position: r = " << r << ", eta = " << eta << ", phi = " << phi / M_PI);
318  ATH_MSG_DEBUG(" momentum: pt = " << pt << ", eta = " << momEta << ", phi = " << momPhi / M_PI);
319 
320  return;
321  }
322 
323  void MuonCaloTagTool::createMuon(const InDetCandidate& muonCandidate, const std::vector<DepositInCalo>& deposits, int tag,
324  float likelihood, float muonScore, InDetCandidateToTagMap* tagMap) const {
325  std::vector<DepositInCalo>::const_iterator deposit = deposits.begin();
326  std::vector<DepositInCalo>::const_iterator depositE = deposits.end();
327  double eLoss = 0; // Energy Loss as measured in the cell closest to the track in each sample
328  CaloTag* caloTag = nullptr;
329  for (; deposit != depositE; ++deposit) eLoss += deposit->energyDeposited();
330 
331  if (tag > 0) {
332  caloTag = new CaloTag(xAOD::Muon::CaloTag, eLoss, 0); // set eLoss, sigmaEloss is set to 0.
334 
335  if (muonScore > m_CaloMuonScoreCut && likelihood > m_CaloLRlikelihoodCut)
336  caloTag->set_author3(xAOD::Muon::CaloScore);
337  else if (muonScore > m_CaloMuonScoreCut)
338  caloTag->set_author2(xAOD::Muon::CaloScore);
339 
340  } else if (likelihood > m_CaloLRlikelihoodCut) {
341  caloTag = new CaloTag(xAOD::Muon::CaloLikelihood, eLoss, 0);
342  if (muonScore > m_CaloMuonScoreCut) caloTag->set_author2(xAOD::Muon::CaloScore);
343  } else if (muonScore > m_CaloMuonScoreCut) {
344  caloTag = new CaloTag(xAOD::Muon::CaloScore, eLoss, 0);
345  }
346 
347  if (caloTag) {
348  caloTag->set_deposits(deposits);
349  caloTag->set_caloMuonIdTag(tag);
350  caloTag->set_caloLRLikelihood(likelihood);
351  caloTag->set_caloMuonScore(muonScore);
352  tagMap->addEntry(&muonCandidate, caloTag);
353  }
354  }
355 
356 } // namespace MuonCombined
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
beamspotman.r
def r
Definition: beamspotman.py:676
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
MuonCombined::MuonCaloTagTool::m_caloMuonTagLoose
ToolHandle< ICaloMuonTag > m_caloMuonTagLoose
Definition: MuonCaloTagTool.h:112
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
MuonCombined::MuonCaloTagTool::m_ignoreSiAssocated
Gaudi::Property< bool > m_ignoreSiAssocated
Definition: MuonCaloTagTool.h:86
get_generator_info.result
result
Definition: get_generator_info.py:21
MuonCombined::MuonCaloTagTool::showTrackInfo
void showTrackInfo(const Trk::TrackParameters *par) const
Definition: MuonCaloTagTool.cxx:309
xAOD::TrackCorrection
Definition: IsolationCommon.h:18
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
CaloExtensionHelpers.h
MuonCombined::MuonCaloTagTool::m_ptIsoPtRatioCut
Gaudi::Property< double > m_ptIsoPtRatioCut
Definition: MuonCaloTagTool.h:89
MuonCombined::MuonCaloTagTool::applyTrackIsolation
bool applyTrackIsolation(const xAOD::TrackParticle &tp) const
Definition: MuonCaloTagTool.cxx:281
MuonCombined::InDetCandidateToTagMap
Definition: InDetCandidateToTagMap.h:15
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonCombined::CaloTag::set_caloLRLikelihood
void set_caloLRLikelihood(const float likelihood)
set the likelihood
Definition: CaloTag.h:83
xAOD::Iso::coreTrackPtr
@ coreTrackPtr
tracks pointer
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:66
TruthParticleContainer.h
GenVertex.h
MuonCombined::MuonCaloTagTool::extendWithPRDs
virtual void extendWithPRDs(const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, IMuonCombinedInDetExtensionTool::MuonPrdData prdData, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
Definition: MuonCaloTagTool.cxx:88
MuonCombined::MuonCaloTagTool::m_nMuonsTagged
std::atomic_int m_nMuonsTagged
Counts the number of truth muons tagged.
Definition: MuonCaloTagTool.h:73
MuonCombined::MuonCaloTagTool::getTrackParameters
const Trk::TrackParameters * getTrackParameters(const Trk::Track *trk) const
Definition: MuonCaloTagTool.cxx:232
xAOD::TrackCorrection::trackbitset
Iso::IsolationTrackCorrectionBitset trackbitset
Definition: IsolationCommon.h:19
test_pyathena.pt
pt
Definition: test_pyathena.py:11
MuonCombined::CaloTag::set_author2
void set_author2(const Author author2)
set the secondary author
Definition: CaloTag.h:110
CaloExtension.h
M_PI
#define M_PI
Definition: ActiveFraction.h:11
MuonCombined::CaloTag::set_author3
void set_author3(const Author author3)
set the third author
Definition: CaloTag.h:113
ParticleTest.tp
tp
Definition: ParticleTest.py:25
MuonCombined::InDetCandidate
Definition: InDetCandidate.h:18
TrackParticleTruthCollection.h
MuonCombined::MuonCaloTagTool::m_debugMode
Gaudi::Property< bool > m_debugMode
Definition: MuonCaloTagTool.h:84
MuonCombined::MuonCaloTagTool::m_doCaloMuonScore
Gaudi::Property< bool > m_doCaloMuonScore
Definition: MuonCaloTagTool.h:77
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
MuonCombined::MuonCaloTagTool::m_trkSelTool
ToolHandle< Trk::ITrackSelectorTool > m_trkSelTool
Definition: MuonCaloTagTool.h:121
MuonParameters::CaloTag
@ CaloTag
Definition: MuonParamDefs.h:64
MuonCombined::CaloTag::set_caloMuonScore
void set_caloMuonScore(const float muonScore)
set the calo muon score
Definition: CaloTag.h:86
MuonCombined::MuonCaloTagTool::m_doTrkSelection
Gaudi::Property< bool > m_doTrkSelection
Definition: MuonCaloTagTool.h:79
GenParticle.h
PowhegPy8EG_H2a.pdgId
dictionary pdgId
Definition: PowhegPy8EG_H2a.py:128
MuonCombined::MuonCaloTagTool::m_doCosmicTrackSelection
Gaudi::Property< bool > m_doCosmicTrackSelection
Definition: MuonCaloTagTool.h:81
MuonCombined::MuonCaloTagTool::m_CaloMuonScoreCut
Gaudi::Property< double > m_CaloMuonScoreCut
Definition: MuonCaloTagTool.h:102
IMuonCombinedTagTool.h
MuonCombined::MuonCaloTagTool::selectTrack
bool selectTrack(const Trk::Track *trk, const Trk::Vertex *vertex) const
Definition: MuonCaloTagTool.cxx:245
MuonCombined::MuonCaloTagTool::createMuon
void createMuon(const InDetCandidate &muonCandidate, const std::vector< DepositInCalo > &deposits, int tag, float likelihood, float muonScore, InDetCandidateToTagMap *tagMap) const
Definition: MuonCaloTagTool.cxx:323
MuonCombined::CaloTag::set_deposits
void set_deposits(const std::vector< DepositInCalo > &deposits)
set the detailed energy deposits in the calorimeter layers
Definition: CaloTag.h:92
MuonCombined::MuonCaloTagTool::m_caloMuonTagTight
ToolHandle< ICaloMuonTag > m_caloMuonTagTight
Definition: MuonCaloTagTool.h:114
MuonCombined::InDetCandidateToTagMap::addEntry
void addEntry(const InDetCandidate *idcand, TagBase *tag)
Definition: InDetCandidateToTagMap.cxx:8
MuonCombined::MuonCaloTagTool::m_CaloLRlikelihoodCut
Gaudi::Property< double > m_CaloLRlikelihoodCut
Definition: MuonCaloTagTool.h:101
MuonCombined::MuonCaloTagTool::m_doTruth
Gaudi::Property< bool > m_doTruth
Definition: MuonCaloTagTool.h:83
MuonCombined::MuonCaloTagTool::m_caloMuonLikelihood
ToolHandle< ICaloMuonLikelihoodTool > m_caloMuonLikelihood
Definition: MuonCaloTagTool.h:108
MuonCombined::MuonCaloTagTool::m_caloClusterCont
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClusterCont
Definition: MuonCaloTagTool.h:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonCombined::MuonCaloTagTool::m_doCaloLR
Gaudi::Property< bool > m_doCaloLR
Definition: MuonCaloTagTool.h:78
MuonCombined::MuonCaloTagTool::selectCosmic
bool selectCosmic(const Trk::Track *ptcl) const
Definition: MuonCaloTagTool.cxx:264
MuonCombined::MuonCaloTagTool::MuonCaloTagTool
MuonCaloTagTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuonCaloTagTool.cxx:41
IsolationCommon.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonCombined::MuonCaloTagTool::finalize
virtual StatusCode finalize() override
Definition: MuonCaloTagTool.cxx:81
MuonCombined::MuonCaloTagTool::m_nTrueMuons
std::atomic_int m_nTrueMuons
Counts the number true muons.
Definition: MuonCaloTagTool.h:71
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonCombined::MuonCaloTagTool::m_showCutFlow
Gaudi::Property< bool > m_showCutFlow
Definition: MuonCaloTagTool.h:82
Trk::ParametersBase
Definition: ParametersBase.h:55
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
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
InDetCandidate.h
MuonCombined::MuonCaloTagTool::m_caloCellCont
SG::ReadHandleKey< CaloCellContainer > m_caloCellCont
Definition: MuonCaloTagTool.h:68
MuonCombined::MuonCaloTagTool::m_nTracksTagged
std::atomic_int m_nTracksTagged
Counts the number of tracks tagged.
Definition: MuonCaloTagTool.h:72
MuonCombined::MuonCaloTagTool::extend
virtual void extend(const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
IMuonCombinedInDetExtensionTool interface: extend ID candidate.
Definition: MuonCaloTagTool.cxx:96
xAOD::TrackIsolation
Definition: IsolationCommon.h:33
MuonCombined::MuonCaloTagTool::m_trackIsolationTool
ToolHandle< xAOD::ITrackIsolationTool > m_trackIsolationTool
Definition: MuonCaloTagTool.h:120
Trk::Track::trackParameters
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:97
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
MuonCombined::MuonCaloTagTool::initialize
virtual StatusCode initialize() override
Definition: MuonCaloTagTool.cxx:48
MuonCombined::MuonCaloTagTool::m_caloMuonScoreTool
ToolHandle< ICaloMuonScoreTool > m_caloMuonScoreTool
Definition: MuonCaloTagTool.h:110
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
MuonCombined::CaloTag
TagBase implementation for a calo tag.
Definition: CaloTag.h:17
MuonCombined::MuonCaloTagTool::m_doCaloMuonTag
Gaudi::Property< bool > m_doCaloMuonTag
Definition: MuonCaloTagTool.h:76
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
xAOD::TrackIsolation::ptcones
std::vector< float > ptcones
Definition: IsolationCommon.h:36
xAOD::Iso::ptcone40
@ ptcone40
Definition: IsolationType.h:42
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
TrackParticle.h
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::Track::trackSummary
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonCombined
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
Definition: IMuonSystemExtensionTool.h:23
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
CaloCellHelpers.h
MuonCombined::MuonCaloTagTool::m_trkDepositInCalo
ToolHandle< ITrackDepositInCaloTool > m_trkDepositInCalo
Definition: MuonCaloTagTool.h:116
MuonCombined::CaloTag::set_caloMuonIdTag
void set_caloMuonIdTag(unsigned short tag)
set the tag
Definition: CaloTag.h:89
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
MuonCombined::MuonCaloTagTool::m_doOldExtrapolation
Gaudi::Property< bool > m_doOldExtrapolation
Definition: MuonCaloTagTool.h:85
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
MuonCaloTagTool.h
MuonCombined::IMuonCombinedInDetExtensionTool::MuonPrdData
Definition: IMuonCombinedInDetExtensionTool.h:27
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
Trk::TrackSummary::get
int get(const SummaryType &type) const
returns the summary information for the passed SummaryType.
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
AthAlgTool
Definition: AthAlgTool.h:26
MuonParameters::CaloLikelihood
@ CaloLikelihood
Definition: MuonParamDefs.h:65
TruthParticle.h
TrackingPrimitives.h
MuonCombined::IMuonCombinedInDetExtensionTool::MuonPrdData::mdtPrds
const Muon::MdtPrepDataContainer * mdtPrds
Definition: IMuonCombinedInDetExtensionTool.h:29