ATLAS Offline Software
BMuonTrackIsoTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //============================================================================
6 // BMuonTrackIsoTool.cxx
7 //============================================================================
8 //
9 // Author : Wolfgang Walkowiak <Wolfgang.Walkowiak@cern.ch.>
10 // Changes:
11 //
12 // Add muon track isolation information for different configurations,
13 // different track selections and different PV-to-SV association methods.
14 //
15 // For an usage example see BPHY8.py .
16 //
17 // Job options provided by this class:
18 // - MuonContainerName -- name of muon container
19 // - IsolationConeSizes -- List of isolation cone sizes
20 // - IsoTrkImpLogChi2Max -- List of maximum log(chi2) cuts for
21 // association of tracks to the primary
22 // vertex picked.
23 // - IsoDoTrkImpLogChi2Cut -- apply log(chi2) cuts
24 // 0 : don't apply log(chi2) cuts
25 // 1 : apply log(chi2) cuts
26 // 2 : apply log(chi2) cuts [former version]
27 // (The last two job options must
28 // contain the same number of elements
29 // as the IsolationConeSizes list.)
30 //
31 //============================================================================
32 //
34 #include "xAODMuon/MuonContainer.h"
36 #include "xAODBPhys/BPhysHelper.h"
40 
41 #include "boost/format.hpp"
42 #include "TVector3.h"
43 #include <algorithm>
44 #include <sstream>
45 #include <string>
46 
47 namespace DerivationFramework {
48 
49  //-------------------------------------------------------------------------
50  //
51  // helper class
53  const std::string& Bname,
54  const std::string& Prefix) :
55  BaseItem(Name, Bname, Prefix) {
56  }
57 
59  }
60 
62  vIsoValues.clear();
63  vNTracks.clear();
64  vMuons.clear();
65  }
66 
68  copyVals((const MuIsoItem&)item);
69  }
70 
72  vIsoValues = item.vIsoValues;
73  vNTracks = item.vNTracks;
74  vMuons = item.vMuons;
75  }
76 
77  void BMuonTrackIsoTool::MuIsoItem::fill(double isoValue, int nTracks,
78  const xAOD::Muon* muon) {
79  vIsoValues.push_back(isoValue);
80  vNTracks.push_back(nTracks);
81  vMuons.push_back(muon);
82  }
83 
85  return buildName();
86  }
87 
89  return buildName("Ntracks");
90  }
91 
93  return buildName("", "_muLink");
94  }
95 
96  //--------------------------------------------------------------------------
98  const std::string& n,
99  const IInterface* p)
101 
102  declareInterface<DerivationFramework::IAugmentationTool>(this);
103 
104  declareProperty("MuonContainerName" , m_muonContainerName="");
105  declareProperty("IsolationConeSizes" , m_isoConeSizes);
106  declareProperty("IsoTrkImpLogChi2Max" , m_isoTrkImpLogChi2Max);
107  declareProperty("IsoDoTrkImpLogChi2Cut" , m_isoDoTrkImpLogChi2Cut);
108  }
109  //--------------------------------------------------------------------------
111 
112  ATH_MSG_DEBUG("BMuonTrackIsoTool::initializeHook() -- begin");
113 
114  // check like-sized arrays
115  if ( m_isoConeSizes.size() != m_isoTrkImpLogChi2Max.size() ||
116  m_isoConeSizes.size() != m_isoDoTrkImpLogChi2Cut.size() ) {
117  ATH_MSG_ERROR("Size mismatch of IsolationConeSizes ("
118  << m_isoConeSizes.size()
119  << "), IsoTrkImpChi2Max ("
120  << m_isoTrkImpLogChi2Max.size()
121  << ") and IsoDoTrkImpChi2Cut ("
122  << m_isoDoTrkImpLogChi2Cut.size() << ") lists!");
123  }
124 
125  // check muon container name
126  if ( m_muonContainerName == "" ) {
127  ATH_MSG_ERROR("No muon container name provided!");
128  }
129 
130  // initialize results array
131  initResults();
132 
133  ATH_MSG_DEBUG("BMuonTrackIsoTool::initializeHook() -- end");
134 
135  return StatusCode::SUCCESS;
136  }
137  //--------------------------------------------------------------------------
139 
140  ATH_MSG_DEBUG("BMuonTrackIsoTool::finalizeHook()");
141 
142  // everything all right
143  return StatusCode::SUCCESS;
144  }
145  //--------------------------------------------------------------------------
146  StatusCode
148 
149  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesVCLoopHook() -- begin");
150 
151  ATH_MSG_DEBUG("BMuonTrackisoTool::addBranchesVCSetupHook: "
152  << "Vertex container index " << ivc
153  << " for collection " << m_vertexContainerNames[ivc]
154  << " with prefix " << m_branchPrefixes[ivc]);
155 
157 
158  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesVCSetupHook() -- end");
159 
160  // nothing to do here
161  return StatusCode::SUCCESS;
162  }
163  //--------------------------------------------------------------------------
164  StatusCode
166 
167  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesSVLoopHook() -- begin");
168 
169  // retrieve muon container
170  m_muons = NULL;
171  if ( m_muonContainerName != "" ) {
173  ATH_MSG_DEBUG("Found muon collection with key " << m_muonContainerName);
174  }
175 
176  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesSVLoopHook(): "
177  "calculate muon track isolation ...");
178  CHECK(calculateValues(vtx));
179 
180  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesSVLoopHook(): "
181  "save muon track isolation ...");
182  // save the isolation values
183  CHECK(saveIsolation(vtx));
184 
185  ATH_MSG_DEBUG("BMuonTrackIsoTool::addBranchesSVLoopHook() -- end");
186 
187  // nothing to do here
188  return StatusCode::SUCCESS;
189  }
190  //--------------------------------------------------------------------------
191  // Calculate track isolation variables -- faster method with caching
192  //--------------------------------------------------------------------------
193  StatusCode
195  const unsigned int ipv,
196  const unsigned int its,
197  const unsigned int itt) const {
198 
199  ATH_MSG_DEBUG("calcValuesHook: ipv: " << ipv
200  << ", its: " << its << ", itt: " << itt);
201 
202  // candidate tracks and momentum
203  xAOD::BPhysHelper cand(vtx);
204  TVector3 candP = cand.totalP();
205  const xAOD::Vertex* candRefPV = cand.pv(m_pvAssocTypes[ipv]);
206 
207  MuonBag muons;
208  // TrackBag candMuTracks = findAllMuonIdTracksInDecay(cand, muons);
209  std::vector<TVector3> candMuTracks = findMuonRefTrackMomenta(cand, muons);
210 
211  TrackBag tracks = selectTracks(m_tracks, cand, ipv, its, itt);
212 
213  ATH_MSG_DEBUG("calcValuesHook: found " << muons.size() <<
214  " muons and " << candMuTracks.size() <<
215  " tracks from B cand; " << tracks.size() <<
216  " tracks to check.");
217 
218  // loop over isolation cones (pt and deltaR)
219  unsigned int nCones = m_isoConeSizes.size();
220  for (unsigned int ic = 0; ic < nCones; ++ic) {
221  MuIsoItem& iso = m_results[ic][its][ipv][itt];
222  // reset
223  iso.resetVals();
224 
225  // loop over refitted ID tracks for muons in candidate
226  unsigned int id(0);
227  // for (TrackBag::const_iterator muTrkItr = candMuTracks.begin();
228  // muTrkItr != candMuTracks.end(); ++muTrkItr, ++id) {
229  for (id=0; id < candMuTracks.size(); ++id) {
230 
231  // make sure there was an ID track for the muon
232  // if ( *muTrkItr != NULL ) {
233  if ( candMuTracks[id].Mag() > 0. ) {
234 
235  const double& coneSize = m_isoConeSizes[ic];
236  const double& logChi2Max = m_isoTrkImpLogChi2Max[ic];
237  const int& doLogChi2 = m_isoDoTrkImpLogChi2Cut[ic];
238 
239  double nTracksInCone = 0;
240  double ptSumInCone = 0.;
241 
242  double isoValue(-5.);
243 
244  // make sure candRefPV exists
245  if ( candRefPV != NULL ) {
246 
247  for (TrackBag::const_iterator trkItr = tracks.begin();
248  trkItr != tracks.end(); ++trkItr) {
249  double deltaR = candMuTracks[id].DeltaR((*trkItr)->p4().Vect());
250  if ( deltaR < coneSize ) {
251  double logChi2 = (doLogChi2 > 0) ?
252  getTrackCandPVLogChi2(*trkItr, candRefPV) : -9999.;
253  // next line needed exactly as is for backward validation
254  if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
255  if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
256  nTracksInCone++;
257  ptSumInCone += (*trkItr)->pt();
258  }
259  } // deltaR
260  }
261  // calculate result
262  if ( ptSumInCone + candMuTracks[id].Pt() > 0. ) {
263  isoValue = candMuTracks[id].Pt()
264  / ( ptSumInCone + candMuTracks[id].Pt() );
265  }
266 
267  } else {
268  isoValue = -10.;
269  } // if candRefPV != NULL
270 
271  const xAOD::Muon* muon = id < muons.size() ? muons.at(id) : NULL;
272  iso.fill(isoValue, nTracksInCone, muon);
273  } // if *muTrkItr != NULL
274  } // for muTrkItr
275  } // for ic
276 
277  return StatusCode::SUCCESS;
278  }
279  //--------------------------------------------------------------------------
280  // Fill track isolation values from cache if found
281  //--------------------------------------------------------------------------
283  const int ipv) const {
284 
285  ATH_MSG_DEBUG("fastFillHook: ipv: " << ipv);
286 
287  bool found(false);
288 
290  m_pvAssocResMap.find(buildPvAssocCacheName(vtx, ipv));
291  if ( itpv != m_pvAssocResMap.end() ) {
292  found = true;
293  unsigned int nCones = m_isoConeSizes.size();
294  unsigned int nTrackSels = m_trackSelectionTools.size();
295  unsigned int nTrackTypes = m_useTrackTypes.size();
296  for (unsigned int its = 0; its < nTrackSels; ++its) {
297  for (unsigned int ic = 0; ic < nCones; ++ic) {
298  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
299  m_results[ic][its][ipv][itt]
300  .copyVals(m_results[ic][its][itpv->second][itt]);
301  } // for its
302  } // for ic
303  } // for itt
304  } // if found
305 
306  ATH_MSG_DEBUG("fastFillHook: cache index: "
307  << buildPvAssocCacheName(vtx, ipv)
308  << ", found ? " << found
309  << ", ipv_ref: "
310  << (found ? itpv->second : -1));
311 
312  return found;
313  }
314  //--------------------------------------------------------------------------
315  StatusCode
317 
319  typedef std::vector<MuonLink_t> MuonLinkVector_t;
320 
321  unsigned int nCones = m_isoConeSizes.size();
322  unsigned int nTrackSels = m_trackSelectionTools.size();
323  unsigned int nPvAssocs = m_pvAssocTypes.size();
324  unsigned int nTrackTypes = m_useTrackTypes.size();
325 
326  for (unsigned int its = 0; its < nTrackSels; ++its) {
327  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
328  for (unsigned int ic = 0; ic < nCones; ++ic) {
329  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
330  MuIsoItem result = m_results[ic][its][ipv][itt];
332  dv_iso_values(result.muIsoName());
334  dv_iso_ntracks(result.nTracksName());
335  dv_iso_values(*vtx) = result.vIsoValues;
336  dv_iso_ntracks(*vtx) = result.vNTracks;
337  ATH_MSG_DEBUG("BMuonTrackIsoTool::saveIsolation() -- isobn: "
338  << result.muIsoName() << ", ntbn: "
339  << result.nTracksName());
340  ATH_MSG_DEBUG("BMuonTrackIsoTool::saveIsolation() -- vertex: ("
341  << vtx->x() << ", "
342  << vtx->y() << ", "
343  << vtx->z() << "), N(iso): "
344  << result.vIsoValues.size() << ", N(nTracks): "
345  << result.vNTracks.size());
346  MuonLinkVector_t links;
347  for (const xAOD::Muon* muon : result.vMuons) {
348  if ( muon != NULL ) {
349  MuonLink_t link(muon, *m_muons);
350  links.push_back(link);
351  } else {
352  ATH_MSG_WARNING("BMuonTrackIsoTool::saveIsolation(): "
353  << " *muon == NULL -- EL not saved!");
354  }
355  }
356  SG::Decorator<MuonLinkVector_t> decor(result.muLinkName());
357  decor(*vtx) = links;
358  ATH_MSG_DEBUG("BMuonTrackIsoTool::saveIsolation() -- muLinks: "
359  << "N_saved = " << links.size() );
360  } // for itt
361  } // for ic
362  } // for ipv
363  } // for its
364 
365  return StatusCode::SUCCESS;
366  }
367  //--------------------------------------------------------------------------
368  void BMuonTrackIsoTool::setResultsPrefix(std::string prefix) const {
369 
370  ATH_MSG_DEBUG("BMuonTrackIsoTool::setResultsPrefix -- begin");
371 
372  unsigned int nCones = m_isoConeSizes.size();
373  unsigned int nTrackSels = m_trackSelectionTools.size();
374  unsigned int nPvAssocs = m_pvAssocTypes.size();
375  unsigned int nTrackTypes = m_useTrackTypes.size();
376 
377  for (unsigned int its = 0; its < nTrackSels; ++its) {
378  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
379  for (unsigned int ic = 0; ic < nCones; ++ic) {
380  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
381  m_results[ic][its][ipv][itt].setPrefix(prefix);
382  } // for itt
383  } // for ic
384  } // for ipv
385  } // for its
386 
387  ATH_MSG_DEBUG("BMuonTrackIsoTool::setResultsPrefix -- end");
388  }
389  //--------------------------------------------------------------------------
391 
392  unsigned int nCones = m_isoConeSizes.size();
393  unsigned int nTrackSels = m_trackSelectionTools.size();
394  unsigned int nPvAssocs = m_pvAssocTypes.size();
395  unsigned int nTrackTypes = m_useTrackTypes.size();
396 
397  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- begin");
398  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults : nCones = " << nCones);
399  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults : nTrackSels = "
400  << nTrackSels);
401  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults : nPvAssocs = "
402  << nPvAssocs);
403  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults : nTrackTypes = "
404  << nTrackTypes);
405  m_results.resize(boost::extents[nCones][nTrackSels][nPvAssocs][nTrackTypes]);
406  for (unsigned int its = 0; its < nTrackSels; ++its) {
407  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- its = " << its);
408  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
409  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- ipv = " << ipv);
410  for (unsigned int ic = 0; ic < nCones; ++ic) {
411  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- ic = " << ic);
412  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
413  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- itt = " << itt);
414 
415  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults :"
417  ipv, itt));
418 
419  m_results[ic][its][ipv][itt].setup(buildBranchName(ic, its,
420  ipv, itt),
422  } // for itt
423  } // for ic
424  } // for ipv
425  } // for its
426 
427  ATH_MSG_DEBUG("BMuonTrackIsoTool::initResults -- end");
428  }
429  //--------------------------------------------------------------------------
430  std::string BMuonTrackIsoTool::buildBranchName(unsigned int ic,
431  unsigned int its,
432  unsigned int ipv,
433  unsigned int itt) const {
434  ATH_MSG_DEBUG("BMuonTrackIsoTool::buildBranchName -- begin");
435 
436  double coneSize = m_isoConeSizes[ic];
437  double logChi2Max = m_isoTrkImpLogChi2Max[ic];
438  int doLogChi2 = m_isoDoTrkImpLogChi2Cut[ic];
439 
440  // format it nicely
441  boost::format f("%02d_LC%02dd%1d_%s");
442  f % (int)(coneSize*10.) % (int)(logChi2Max*10.) % doLogChi2
443  % buildBranchBaseName(its, ipv, itt);
444 
445  ATH_MSG_DEBUG("BMuonTrackIsoTool::buildBranchName: " << f.str());
446 
447  return f.str();
448  }
449  //--------------------------------------------------------------------------
450 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
xAOD::Vertex_v1::x
float x() const
Returns the x position.
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
xAOD::BPhysHelper::totalP
TVector3 totalP()
: Returns total 3-momentum calculated from the refitted tracks
Definition: BPhysHelper.cxx:374
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
DerivationFramework::BMuonTrackIsoTool::initResults
void initResults()
Definition: BMuonTrackIsoTool.cxx:390
MuonLink_t
ElementLink< xAOD::MuonContainer > MuonLink_t
Definition: PFMuonFlowElementAssoc.cxx:19
get_generator_info.result
result
Definition: get_generator_info.py:21
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::BPhysVertexTrackBase::m_pvAssocTypes
std::vector< xAOD::BPhysHelper::pv_type > m_pvAssocTypes
Definition: BPhysVertexTrackBase.h:280
vtune_athena.format
format
Definition: vtune_athena.py:14
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
DerivationFramework::BMuonTrackIsoTool::calcValuesHook
virtual StatusCode calcValuesHook(const xAOD::Vertex *vtx, const unsigned int ipv, const unsigned int its, const unsigned int itt) const override
Definition: BMuonTrackIsoTool.cxx:194
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::MuIsoItem
MuIsoItem(const std::string &Name="_none_", const std::string &Bname="muiso", const std::string &Prefix="")
Definition: BMuonTrackIsoTool.cxx:52
EventPrimitivesHelpers.h
DerivationFramework::BPhysVertexTrackBase::m_pvAssocResMap
StringIntMap_t m_pvAssocResMap
Definition: BPhysVertexTrackBase.h:289
DerivationFramework::BMuonTrackIsoTool::finalizeHook
virtual StatusCode finalizeHook() override
Definition: BMuonTrackIsoTool.cxx:138
DerivationFramework::BMuonTrackIsoTool::addBranchesVCSetupHook
virtual StatusCode addBranchesVCSetupHook(size_t ivc) const override
Definition: BMuonTrackIsoTool.cxx:147
DerivationFramework::BPhysVertexTrackBase::m_useTrackTypes
std::vector< uint64_t > m_useTrackTypes
Definition: BPhysVertexTrackBase.h:260
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::~MuIsoItem
virtual ~MuIsoItem()
Definition: BMuonTrackIsoTool.cxx:58
DerivationFramework::MuonBag
std::vector< const xAOD::Muon * > MuonBag
Definition: BPhysAddMuonBasedInvMass.h:33
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
DerivationFramework::BPhysVertexTrackBase::buildBranchBaseName
std::string buildBranchBaseName(unsigned int its, unsigned int ipv, unsigned int itt, const std::string &preSuffix="") const
Definition: BPhysVertexTrackBase.cxx:1316
DerivationFramework::BPhysVertexTrackBase::m_branchPrefixes
std::vector< std::string > m_branchPrefixes
Definition: BPhysVertexTrackBase.h:245
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
DerivationFramework::BMuonTrackIsoTool::m_isoDoTrkImpLogChi2Cut
std::vector< int > m_isoDoTrkImpLogChi2Cut
Definition: BMuonTrackIsoTool.h:99
BMuonTrackIsoTool.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::BMuonTrackIsoTool::BMuonTrackIsoTool
BMuonTrackIsoTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: BMuonTrackIsoTool.cxx:97
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:58
DerivationFramework::BPhysVertexTrackBase::m_tracks
const xAOD::TrackParticleContainer * m_tracks
Definition: BPhysVertexTrackBase.h:271
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::BPhysVertexTrackBase::buildPvAssocCacheName
virtual std::string buildPvAssocCacheName(const xAOD::Vertex *vtx, const int ipv) const
Definition: BPhysVertexTrackBase.cxx:676
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DMTest::links
links
Definition: CLinks_v1.cxx:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
DerivationFramework::BPhysVertexTrackBase::m_branchBaseName
std::string m_branchBaseName
Definition: BPhysVertexTrackBase.h:246
DerivationFramework::BPhysVertexTrackBase::calculateValues
StatusCode calculateValues(const xAOD::Vertex *vtx) const
Definition: BPhysVertexTrackBase.cxx:642
DerivationFramework::BMuonTrackIsoTool::m_isoTrkImpLogChi2Max
std::vector< double > m_isoTrkImpLogChi2Max
Definition: BMuonTrackIsoTool.h:98
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
DerivationFramework::BMuonTrackIsoTool::m_muons
const xAOD::MuonContainer * m_muons
Definition: BMuonTrackIsoTool.h:102
DerivationFramework::BPhysVertexTrackBase::findMuonRefTrackMomenta
std::vector< TVector3 > findMuonRefTrackMomenta(xAOD::BPhysHelper &vtx, MuonBag &muons) const
Definition: BPhysVertexTrackBase.cxx:1157
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
DerivationFramework::TrackBag
std::vector< const xAOD::TrackParticle * > TrackBag
Definition: BPhysAddMuonBasedInvMass.h:32
DerivationFramework::BMuonTrackIsoTool::fastFillHook
virtual bool fastFillHook(const xAOD::Vertex *vtx, const int ipv) const override
Definition: BMuonTrackIsoTool.cxx:282
xAOD::Vertex_v1::z
float z() const
Returns the z position.
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::BMuonTrackIsoTool::initializeHook
virtual StatusCode initializeHook() override
Definition: BMuonTrackIsoTool.cxx:110
DerivationFramework::BMuonTrackIsoTool::m_muonContainerName
std::string m_muonContainerName
Definition: BMuonTrackIsoTool.h:96
IInDetTrackSelectionTool.h
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::muIsoName
std::string muIsoName() const
Definition: BMuonTrackIsoTool.cxx:84
grepfile.ic
int ic
Definition: grepfile.py:33
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
DerivationFramework::BMuonTrackIsoTool::saveIsolation
StatusCode saveIsolation(const xAOD::Vertex *vtx) const
Definition: BMuonTrackIsoTool.cxx:316
item
Definition: ItemListSvc.h:43
DerivationFramework::BMuonTrackIsoTool::buildBranchName
std::string buildBranchName(unsigned int ic, unsigned int its, unsigned int ipv, unsigned int itt) const
Definition: BMuonTrackIsoTool.cxx:430
DerivationFramework::BPhysVertexTrackBase::m_trackSelectionTools
ToolHandleArray< TrkSelTool > m_trackSelectionTools
Definition: BPhysVertexTrackBase.h:250
EventInfo.h
MuonContainer.h
DerivationFramework::BPhysVertexTrackBase::getTrackCandPVLogChi2
double getTrackCandPVLogChi2(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doDCAin3D=false, int chi2DefToUse=0) const
Definition: BPhysVertexTrackBase.cxx:689
DerivationFramework::BPhysVertexTrackBase::selectTracks
TrackBag selectTracks(const xAOD::TrackParticleContainer *inpTracks, xAOD::BPhysHelper &cand, const unsigned int ipv, const unsigned int its, const unsigned int itt) const
Definition: BPhysVertexTrackBase.cxx:1230
BPhysHelper.h
: B-physics xAOD helpers.
DerivationFramework::BMuonTrackIsoTool::setResultsPrefix
void setResultsPrefix(std::string prefix) const
Definition: BMuonTrackIsoTool.cxx:368
Name
JetDumper::Name Name
Definition: JetDumper.cxx:19
Prompt::Def::Pt
@ Pt
Definition: VarHolder.h:76
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::resetVals
virtual void resetVals() override
Definition: BMuonTrackIsoTool.cxx:61
DerivationFramework::BPhysVertexTrackBase::m_vertexContainerNames
std::vector< std::string > m_vertexContainerNames
Definition: BPhysVertexTrackBase.h:248
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::muLinkName
std::string muLinkName() const
Definition: BMuonTrackIsoTool.cxx:92
xAOD::Vertex_v1::y
float y() const
Returns the y position.
xAOD::BPhysHelper::pv
const xAOD::Vertex * pv(const pv_type vertexType=BPhysHelper::PV_MIN_A0)
Get the refitted collision vertex of type pv_type.
Definition: BPhysHelper.cxx:796
DerivationFramework::BPhysVertexTrackBase::BaseItem
Definition: BPhysVertexTrackBase.h:60
DerivationFramework::BMuonTrackIsoTool::addBranchesSVLoopHook
virtual StatusCode addBranchesSVLoopHook(const xAOD::Vertex *vtx) const override
Definition: BMuonTrackIsoTool.cxx:165
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::copyVals
virtual void copyVals(const BaseItem &item) override
Definition: BMuonTrackIsoTool.cxx:67
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::nTracksName
std::string nTracksName() const
Definition: BMuonTrackIsoTool.cxx:88
DerivationFramework::BMuonTrackIsoTool::MuIsoItem
Definition: BMuonTrackIsoTool.h:41
DerivationFramework::BPhysVertexTrackBase
Definition: BPhysVertexTrackBase.h:57
DerivationFramework::BMuonTrackIsoTool::MuIsoItem::fill
void fill(double isoValue=-2., int nTracks=-1, const xAOD::Muon *muon=NULL)
Definition: BMuonTrackIsoTool.cxx:77
xAOD::Iso::coneSize
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
Definition: IsolationHelpers.h:27
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
DerivationFramework::BMuonTrackIsoTool::m_results
MuIsoItem4_t m_results
Definition: BMuonTrackIsoTool.h:107
Decorator.h
Helper class to provide type-safe access to aux data.
DerivationFramework::BMuonTrackIsoTool::m_isoConeSizes
std::vector< double > m_isoConeSizes
Definition: BMuonTrackIsoTool.h:97