Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
BVertexTrackIsoTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //============================================================================
6 // BVertexTrackIsoTool.cxx
7 //============================================================================
8 //
9 // Author : Wolfgang Walkowiak <Wolfgang.Walkowiak@cern.ch.>
10 // Changes:
11 //
12 // Add B vertex 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 // - IsolationConeSizes -- List of isolation cone sizes
19 // - IsoTrkImpLogChi2Max -- List of maximum log(chi2) cuts for
20 // association of tracks to the primary
21 // vertex picked.
22 // - IsoDoTrkImpLogChi2Cut -- apply log(chi2) cuts
23 // 0 : don't apply log(chi2) cuts
24 // 1 : apply log(chi2) cuts
25 // 2 : apply log(chi2) cuts [former version]
26 // (The last two job options must
27 // contain the same number of elements
28 // as the IsolationConeSizes list.)
29 // - UseOptimizedAlgo -- Use the speed-optimized algorithm.
30 //
31 //============================================================================
32 //
35 #include "xAODBPhys/BPhysHelper.h"
38 
39 #include <format>
40 #include "TVector3.h"
41 #include <algorithm>
42 #include <sstream>
43 
44 namespace DerivationFramework {
45 
46  //-------------------------------------------------------------------------
47  //
48  // helper class
50  const std::string& Bname,
51  const std::string& Prefix,
52  double IsoValue,
53  int NTracks) :
54  BaseItem(Name, Bname, Prefix), isoValue(IsoValue), nTracks(NTracks) {
55  }
56 
58  }
59 
60  void BVertexTrackIsoTool::IsoItem::setup(const std::string& Name,
61  const std::string& Bname,
62  const std::string& Prefix) {
63  BaseItem::setup(Name, Bname, Prefix);
64  isoValue = -1.;
65  nTracks = 0;
66  }
67 
68  void BVertexTrackIsoTool::IsoItem::setup(const std::string& Name,
69  const std::string& Bname,
70  const std::string& Prefix,
71  double IsoValue,
72  int NTracks) {
73  BaseItem::setup(Name, Bname, Prefix);
74  isoValue = IsoValue;
75  nTracks = NTracks;
76  }
77 
79  isoValue = -2.;
80  nTracks = -1;
81  }
82 
84  copyVals((const IsoItem&)item);
85  }
86 
88  isoValue = item.isoValue;
89  nTracks = item.nTracks;
90  }
91 
93  return buildName();
94  }
95 
97  return buildName("Ntracks");
98  }
99 
100  //--------------------------------------------------------------------------
102  const std::string& n,
103  const IInterface* p)
105 
106 
107  declareProperty("IsolationConeSizes" , m_isoConeSizes);
108  declareProperty("IsoTrkImpLogChi2Max" , m_isoTrkImpLogChi2Max);
109  declareProperty("IsoDoTrkImpLogChi2Cut" , m_isoDoTrkImpLogChi2Cut);
110  declareProperty("UseOptimizedAlgo" , m_useOptimizedAlgo = true);
111  }
112  //--------------------------------------------------------------------------
114 
115  ATH_MSG_DEBUG("BVertexTrackIsoTool::initializeHook() -- begin");
116 
117  // check like-sized arrays
118  if ( m_isoConeSizes.size() != m_isoTrkImpLogChi2Max.size() ||
119  m_isoConeSizes.size() != m_isoDoTrkImpLogChi2Cut.size() ) {
120  ATH_MSG_ERROR("Size mismatch of IsolationConeSizes ("
121  << m_isoConeSizes.size()
122  << "), IsoTrkImpChi2Max ("
123  << m_isoTrkImpLogChi2Max.size()
124  << ") and IsoDoTrkImpChi2Cut ("
125  << m_isoDoTrkImpLogChi2Cut.size() << ") lists!");
126  }
127 
128  // initialize results array
129  initResults();
130 
131  // info output
132  ATH_MSG_INFO("calculateIsolation: using "
133  << (m_useOptimizedAlgo ?
134  "optimized (faster)" : "regular (slower)")
135  << "track isolation calculation methd.");
136 
137  ATH_MSG_DEBUG("BVertexTrackIsoTool::initializeHook() -- end");
138 
139  return StatusCode::SUCCESS;
140  }
141  //--------------------------------------------------------------------------
143 
144  ATH_MSG_DEBUG("BVertexTrackIsoTool::finalizeHook()");
145 
146  // everything all right
147  return StatusCode::SUCCESS;
148  }
149  //--------------------------------------------------------------------------
150  StatusCode
152 
153  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesVCLoopHook() -- begin");
154 
155  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesVCSetupHook: "
156  << "Vertex container index " << ivc
157  << " for collection " << m_vertexContainerNames[ivc]
158  << " with prefix " << m_branchPrefixes[ivc]);
159 
161 
162  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesVCSetupHook() -- end");
163 
164  // nothing to do here
165  return StatusCode::SUCCESS;
166  }
167  //--------------------------------------------------------------------------
168  StatusCode
170 
171  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesSVLoopHook() -- begin");
172 
173  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesSVLoopHook(): "
174  "calculate isolation ...");
175  if ( m_useOptimizedAlgo ) {
176  CHECK(calculateValues(vtx));
177  } else {
179  }
180  ATH_MSG_DEBUG("BVertexTrackIsoTool::addBranchesSVLoopHook(): "
181  "save isolation ...");
182  // save the isolation values
183  CHECK(saveIsolation(vtx));
184 
185  ATH_MSG_DEBUG("BVertexTrackIsoTool::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  TrackBag tracks = selectTracks(m_tracks, cand, ipv, its, itt);
208 
209  // loop over isolation cones (pt and deltaR)
210  unsigned int nCones = m_isoConeSizes.size();
211  for (unsigned int ic = 0; ic < nCones; ++ic) {
212 
213  IsoItem& iso = m_results[ic][its][ipv][itt];
214  const double& coneSize = m_isoConeSizes[ic];
215  const double& logChi2Max = m_isoTrkImpLogChi2Max[ic];
216  const int& doLogChi2 = m_isoDoTrkImpLogChi2Cut[ic];
217 
218  // presets
219  iso.resetVals();
220 
221  double nTracksInCone = 0;
222  double ptSumInCone = 0.;
223 
224  // make sure candRefPV exists
225  if ( candRefPV != NULL ) {
226 
227  for (TrackBag::const_iterator trkItr = tracks.begin();
228  trkItr != tracks.end(); ++trkItr) {
229  double deltaR = candP.DeltaR((*trkItr)->p4().Vect());
230  if ( deltaR < coneSize ) {
231  double logChi2 = (doLogChi2 > 0) ?
232  getTrackCandPVLogChi2(*trkItr, candRefPV) : -9999.;
233  // next line needed exactly as is for backward validation
234  if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
235  if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
236  nTracksInCone++;
237  ptSumInCone += (*trkItr)->pt();
238  } // logChi2
239  } // deltaR
240  }
241  // calculate result
242  if ( ptSumInCone + candP.Pt() > 0. ) {
243  iso.isoValue = candP.Pt() / ( ptSumInCone + candP.Pt() );
244  } else {
245  iso.isoValue = -5.;
246  }
247 
248  } else {
249  iso.isoValue = -10.;
250  } // if candRefPV != NULL
251 
252  iso.nTracks = nTracksInCone;
253  } // for ic
254 
255  return StatusCode::SUCCESS;
256  }
257  //--------------------------------------------------------------------------
258  // Fill track isolation values from cache if found
259  //--------------------------------------------------------------------------
261  const int ipv) const {
262 
263  ATH_MSG_DEBUG("fastFillHook: ipv: " << ipv);
264 
265  bool found(false);
266 
268  m_pvAssocResMap.find(buildPvAssocCacheName(vtx, ipv));
269  if ( itpv != m_pvAssocResMap.end() ) {
270  found = true;
271  unsigned int nCones = m_isoConeSizes.size();
272  unsigned int nTrackSels = m_trackSelectionTools.size();
273  unsigned int nTrackTypes = m_useTrackTypes.size();
274  for (unsigned int its = 0; its < nTrackSels; ++its) {
275  for (unsigned int ic = 0; ic < nCones; ++ic) {
276  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
277  m_results[ic][its][ipv][itt]
278  .copyVals(m_results[ic][its][itpv->second][itt]);
279  } // for its
280  } // for ic
281  } // for itt
282  } // if found
283 
284  ATH_MSG_DEBUG("fastFillHook: cache index: "
285  << buildPvAssocCacheName(vtx, ipv)
286  << ", found ? " << found
287  << ", ipv_ref: "
288  << (found ? itpv->second : -1));
289 
290  return found;
291  }
292  //--------------------------------------------------------------------------
293  // Track isolation calculation loops -- slower method
294  //--------------------------------------------------------------------------
295  StatusCode
297 
298  ATH_MSG_DEBUG("BVertexTrackIsoTool::calculateIsolation -- begin");
299 
300  unsigned int nCones = m_isoConeSizes.size();
301  unsigned int nTrackSels = m_trackSelectionTools.size();
302  unsigned int nPvAssocs = m_pvAssocTypes.size();
303  unsigned int nTrackTypes = m_useTrackTypes.size();
304 
305  for (unsigned int its = 0; its < nTrackSels; ++its) {
306  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
307  for (unsigned int ic = 0; ic < nCones; ++ic) {
308  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
309  CHECK(calcIsolation(m_results[ic][its][ipv][itt], vtx,
313  m_pvAssocTypes[ipv], m_useTrackTypes[itt]));
314  } // for itt
315  } // for ic
316  } // for ipv
317  } // for its
318 
319  return StatusCode::SUCCESS;
320  }
321  //--------------------------------------------------------------------------
322  // Calculate track isolation variables -- slower method
323  //--------------------------------------------------------------------------
326  const xAOD::Vertex* vtx,
327  const double coneSize,
328  const double logChi2Max,
329  const int doLogChi2,
330  const ToolHandle<TrkSelTool>& tSelTool,
331  const xAOD::BPhysHelper::pv_type pvAssocType,
332  const int trackTypes ) const {
333 
334  // preset
335  iso.nTracks = -1;
336  iso.isoValue = -2.;
337 
338  // candidate tracks and momentum
339  xAOD::BPhysHelper cand(vtx);
340  TrackBag candTracks = findAllTracksInDecay(cand);
341  TVector3 candP = cand.totalP();
342  const xAOD::Vertex* candRefPV = cand.pv(pvAssocType);
343  const xAOD::Vertex* candPV = cand.origPv(pvAssocType);
344 
345  // tracks to be considered
346  TrackBag tracks;
348  m_tracks->begin(); trkItr != m_tracks->end(); ++trkItr) {
349  const xAOD::TrackParticle* track = *trkItr;
350  // track selection check
351  if ( ! tSelTool->accept(*track, candRefPV) ) continue;
352  // track type check
353  if ( ! ((unsigned int)trackTypes == ttall() ||
354  (unsigned int)trackTypes == ttallMin() ||
355  (detTrackTypes(track, candPV, candRefPV)
356  & trackTypes) > 0x0) ) continue;
357  // track not in SV
358  if ( std::find(candTracks.begin(), candTracks.end(), track)
359  != candTracks.end() ) continue;
360  // tracks that survived so far
361  tracks.push_back(track);
362  }
363 
364  double nTracksInCone = 0;
365  double ptSumInCone = 0.;
366  for (TrackBag::const_iterator trkItr = tracks.begin();
367  trkItr != tracks.end(); ++trkItr) {
368  double deltaR = candP.DeltaR((*trkItr)->p4().Vect());
369  if ( deltaR < coneSize ) {
370  double logChi2 = (doLogChi2 > 0) ?
371  getTrackCandPVLogChi2(*trkItr, candRefPV) : -9999.;
372  // next line needed exactly as is for backward validation
373  if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
374  if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
375  nTracksInCone++;
376  ptSumInCone += (*trkItr)->pt();
377  }
378  } // deltaR
379  }
380  // calculate result
381  if ( ptSumInCone + candP.Pt() > 0. ) {
382  iso.isoValue = candP.Pt() / ( ptSumInCone + candP.Pt() );
383  } else {
384  iso.isoValue = -5;
385  }
386  iso.nTracks = nTracksInCone;
387 
388  return StatusCode::SUCCESS;
389  }
390  //--------------------------------------------------------------------------
391  StatusCode
393 
394  unsigned int nCones = m_isoConeSizes.size();
395  unsigned int nTrackSels = m_trackSelectionTools.size();
396  unsigned int nPvAssocs = m_pvAssocTypes.size();
397  unsigned int nTrackTypes = m_useTrackTypes.size();
398 
399  for (unsigned int its = 0; its < nTrackSels; ++its) {
400  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
401  for (unsigned int ic = 0; ic < nCones; ++ic) {
402  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
403  IsoItem result = m_results[ic][its][ipv][itt];
405  d_iso_value(result.isoName());
407  d_iso_ntracks(result.nTracksName());
408  d_iso_value(*vtx) = result.isoValue;
409  d_iso_ntracks(*vtx) = result.nTracks;
410  ATH_MSG_DEBUG("BVertexTrackIsoTool::saveIsolation() -- isobn: "
411  << result.isoName() << ", ntbn: "
412  << result.nTracksName());
413  ATH_MSG_DEBUG("BVertexTrackIsoTool::saveIsolation() -- vertex: ("
414  << vtx->x() << ", "
415  << vtx->y() << ", "
416  << vtx->z() << "), iso: "
417  << result.isoValue << ", nTracks: "
418  << result.nTracks);
419  } // for itt
420  } // for ic
421  } // for ipv
422  } // for its
423 
424  return StatusCode::SUCCESS;
425  }
426  //--------------------------------------------------------------------------
428 
429  ATH_MSG_DEBUG("BVertexTrackIsoTool::setResultsPrefix -- begin");
430 
431  unsigned int nCones = m_isoConeSizes.size();
432  unsigned int nTrackSels = m_trackSelectionTools.size();
433  unsigned int nPvAssocs = m_pvAssocTypes.size();
434  unsigned int nTrackTypes = m_useTrackTypes.size();
435 
436  for (unsigned int its = 0; its < nTrackSels; ++its) {
437  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
438  for (unsigned int ic = 0; ic < nCones; ++ic) {
439  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
440  m_results[ic][its][ipv][itt].setPrefix(prefix);
441  } // for itt
442  } // for ic
443  } // for ipv
444  } // for its
445 
446  ATH_MSG_DEBUG("BVertexTrackIsoTool::setResultsPrefix -- end");
447  }
448  //--------------------------------------------------------------------------
450 
451  unsigned int nCones = m_isoConeSizes.size();
452  unsigned int nTrackSels = m_trackSelectionTools.size();
453  unsigned int nPvAssocs = m_pvAssocTypes.size();
454  unsigned int nTrackTypes = m_useTrackTypes.size();
455 
456  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- begin");
457  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults : nCones = " << nCones);
458  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults : nTrackSels = "
459  << nTrackSels);
460  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults : nPvAssocs = "
461  << nPvAssocs);
462  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults : nTrackTypes = "
463  << nTrackTypes);
464  m_results.resize(boost::extents[nCones][nTrackSels][nPvAssocs][nTrackTypes]);
465  for (unsigned int its = 0; its < nTrackSels; ++its) {
466  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- its = " << its);
467  for (unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
468  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- ipv = " << ipv);
469  for (unsigned int ic = 0; ic < nCones; ++ic) {
470  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- ic = " << ic);
471  for (unsigned int itt = 0; itt < nTrackTypes; ++itt) {
472  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- itt = " << itt);
473 
474  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults :"
476  ipv, itt));
477 
478  m_results[ic][its][ipv][itt].setup(buildBranchName(ic, its,
479  ipv, itt),
481  } // for itt
482  } // for ic
483  } // for ipv
484  } // for its
485 
486  ATH_MSG_DEBUG("BVertexTrackIsoTool::initResults -- end");
487  }
488  //--------------------------------------------------------------------------
489  std::string BVertexTrackIsoTool::buildBranchName(unsigned int ic,
490  unsigned int its,
491  unsigned int ipv,
492  unsigned int itt) const {
493  ATH_MSG_DEBUG("BVertexTrackIsoTool::buildBranchName -- begin");
494 
495  double coneSize = m_isoConeSizes[ic];
496  double logChi2Max = m_isoTrkImpLogChi2Max[ic];
497  int doLogChi2 = m_isoDoTrkImpLogChi2Cut[ic];
498 
499  // format it nicely
500  std::string f = std::format("{:02d}_LC{:02d}d{}_{:s}",
501  static_cast<int>(coneSize * 10.), static_cast<int>(logChi2Max * 10.),doLogChi2,
502  buildBranchBaseName(its, ipv, itt));
503 
504  ATH_MSG_DEBUG("BVertexTrackIsoTool::buildBranchName: " << f);
505 
506  return f;
507  }
508  //--------------------------------------------------------------------------
509 }
510 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
DerivationFramework::BVertexTrackIsoTool::saveIsolation
virtual StatusCode saveIsolation(const xAOD::Vertex *vtx) const
Definition: BVertexTrackIsoTool.cxx:392
xAOD::Vertex_v1::x
float x() const
Returns the x position.
xAOD::BPhysHelper::totalP
TVector3 totalP()
: Returns total 3-momentum calculated from the refitted tracks
Definition: BPhysHelper.cxx:374
BVertexTrackIsoTool.h
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
get_generator_info.result
result
Definition: get_generator_info.py:21
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
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
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
EventPrimitivesHelpers.h
DerivationFramework::BPhysVertexTrackBase::m_pvAssocResMap
StringIntMap_t m_pvAssocResMap
Definition: BPhysVertexTrackBase.h:289
DerivationFramework::BVertexTrackIsoTool::m_isoConeSizes
std::vector< double > m_isoConeSizes
Definition: BVertexTrackIsoTool.h:110
DerivationFramework::BPhysVertexTrackBase::BaseItem::setup
virtual void setup(const std::string &Name, const std::string &Bname="iso", const std::string &Prefix="")
Definition: BPhysVertexTrackBase.cxx:185
DerivationFramework::BVertexTrackIsoTool::IsoItem::nTracksName
virtual std::string nTracksName() const
Definition: BVertexTrackIsoTool.cxx:96
DerivationFramework::BPhysVertexTrackBase::detTrackTypes
uint64_t detTrackTypes(const xAOD::TrackParticle *track, const xAOD::Vertex *candPV, const xAOD::Vertex *candRefPV) const
Definition: BPhysVertexTrackBase.cxx:1000
DerivationFramework::BVertexTrackIsoTool::addBranchesSVLoopHook
virtual StatusCode addBranchesSVLoopHook(const xAOD::Vertex *vtx) const
Definition: BVertexTrackIsoTool.cxx:169
DerivationFramework::BPhysVertexTrackBase::m_useTrackTypes
std::vector< uint64_t > m_useTrackTypes
Definition: BPhysVertexTrackBase.h:260
DerivationFramework::BVertexTrackIsoTool::calcIsolation
virtual StatusCode calcIsolation(IsoItem &iso, const xAOD::Vertex *vtx, const double coneSize, const double logChi2Max, const int doLogChi2, const ToolHandle< TrkSelTool > &tSelTool, const xAOD::BPhysHelper::pv_type pvAssocType, const int trackTypes) const
Definition: BVertexTrackIsoTool.cxx:325
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::BPhysVertexTrackBase::buildBranchBaseName
std::string buildBranchBaseName(unsigned int its, unsigned int ipv, unsigned int itt, const std::string &preSuffix="") const
Definition: BPhysVertexTrackBase.cxx:1310
DerivationFramework::BVertexTrackIsoTool::m_useOptimizedAlgo
bool m_useOptimizedAlgo
Definition: BVertexTrackIsoTool.h:113
DerivationFramework::BPhysVertexTrackBase::ttall
static uint64_t ttall()
Definition: BPhysVertexTrackBase.cxx:318
DerivationFramework::BVertexTrackIsoTool::IsoItem::nTracks
int nTracks
Definition: BVertexTrackIsoTool.h:64
DerivationFramework::BPhysVertexTrackBase::m_branchPrefixes
std::vector< std::string > m_branchPrefixes
Definition: BPhysVertexTrackBase.h:245
DerivationFramework::BVertexTrackIsoTool::m_isoTrkImpLogChi2Max
std::vector< double > m_isoTrkImpLogChi2Max
Definition: BVertexTrackIsoTool.h:111
DerivationFramework::BVertexTrackIsoTool::m_results
IsoItem4_t m_results
Definition: BVertexTrackIsoTool.h:117
DerivationFramework::BVertexTrackIsoTool::IsoItem::resetVals
virtual void resetVals()
Definition: BVertexTrackIsoTool.cxx:78
DerivationFramework::BVertexTrackIsoTool::m_isoDoTrkImpLogChi2Cut
std::vector< int > m_isoDoTrkImpLogChi2Cut
Definition: BVertexTrackIsoTool.h:112
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::BPhysHelper::pv_type
pv_type
: Enum type of the PV
Definition: BPhysHelper.h:475
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:59
DerivationFramework::BPhysVertexTrackBase::m_tracks
const xAOD::TrackParticleContainer * m_tracks
Definition: BPhysVertexTrackBase.h:271
DerivationFramework::BVertexTrackIsoTool::BVertexTrackIsoTool
BVertexTrackIsoTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: BVertexTrackIsoTool.cxx:101
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:671
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h: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:637
DerivationFramework::BVertexTrackIsoTool::IsoItem::setup
virtual void setup(const std::string &Name, const std::string &Bname="iso", const std::string &Prefix="")
Definition: BVertexTrackIsoTool.cxx:60
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
DerivationFramework::BPhysVertexTrackBase::findAllTracksInDecay
TrackBag findAllTracksInDecay(xAOD::BPhysHelper &vtx) const
Definition: BPhysVertexTrackBase.cxx:1056
DerivationFramework::BVertexTrackIsoTool::IsoItem::isoName
virtual std::string isoName() const
Definition: BVertexTrackIsoTool.cxx:92
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
hist_file_dump.f
f
Definition: hist_file_dump.py:141
DerivationFramework::TrackBag
std::vector< const xAOD::TrackParticle * > TrackBag
Definition: BPhysAddMuonBasedInvMass.h:32
xAOD::Vertex_v1::z
float z() const
Returns the z position.
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
xAOD::BPhysHelper::origPv
const xAOD::Vertex * origPv(const pv_type vertexType=BPhysHelper::PV_MIN_A0)
original PV
Definition: BPhysHelper.cxx:807
IInDetTrackSelectionTool.h
DerivationFramework::BVertexTrackIsoTool::IsoItem
Definition: BVertexTrackIsoTool.h:40
DerivationFramework::BVertexTrackIsoTool::fastFillHook
virtual bool fastFillHook(const xAOD::Vertex *vtx, const int ipv) const
Definition: BVertexTrackIsoTool.cxx:260
grepfile.ic
int ic
Definition: grepfile.py:33
DerivationFramework::BVertexTrackIsoTool::initResults
virtual void initResults()
Definition: BVertexTrackIsoTool.cxx:449
DerivationFramework::BVertexTrackIsoTool::IsoItem::isoValue
double isoValue
Definition: BVertexTrackIsoTool.h:63
checkTriggerxAOD.found
found
Definition: checkTriggerxAOD.py:328
DerivationFramework::BVertexTrackIsoTool::finalizeHook
virtual StatusCode finalizeHook()
Definition: BVertexTrackIsoTool.cxx:142
item
Definition: ItemListSvc.h:43
DerivationFramework::BVertexTrackIsoTool::IsoItem::copyVals
virtual void copyVals(const BaseItem &item)
Definition: BVertexTrackIsoTool.cxx:83
DerivationFramework::BPhysVertexTrackBase::m_trackSelectionTools
ToolHandleArray< TrkSelTool > m_trackSelectionTools
Definition: BPhysVertexTrackBase.h:250
DerivationFramework::BVertexTrackIsoTool::calculateIsolation
virtual StatusCode calculateIsolation(const xAOD::Vertex *vtx) const
Definition: BVertexTrackIsoTool.cxx:296
DerivationFramework::BVertexTrackIsoTool::IsoItem::IsoItem
IsoItem(const std::string &Name="_none_", const std::string &Bname="iso", const std::string &Prefix="", double IsoValue=-1., int NTracks=0)
Definition: BVertexTrackIsoTool.cxx:49
DerivationFramework::BVertexTrackIsoTool::addBranchesVCSetupHook
virtual StatusCode addBranchesVCSetupHook(size_t ivc) const
Definition: BVertexTrackIsoTool.cxx:151
EventInfo.h
DerivationFramework::BPhysVertexTrackBase::getTrackCandPVLogChi2
double getTrackCandPVLogChi2(const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doDCAin3D=false, int chi2DefToUse=0) const
Definition: BPhysVertexTrackBase.cxx:683
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:1224
BPhysHelper.h
: B-physics xAOD helpers.
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Name
JetDumper::Name Name
Definition: JetDumper.cxx:19
DerivationFramework::BPhysVertexTrackBase::ttallMin
static uint64_t ttallMin()
Definition: BPhysVertexTrackBase.cxx:313
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::BPhysVertexTrackBase::m_vertexContainerNames
std::vector< std::string > m_vertexContainerNames
Definition: BPhysVertexTrackBase.h:248
DerivationFramework::BVertexTrackIsoTool::calcValuesHook
virtual StatusCode calcValuesHook(const xAOD::Vertex *vtx, const unsigned int ipv, const unsigned int its, const unsigned int itt) const
Definition: BVertexTrackIsoTool.cxx:194
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::BVertexTrackIsoTool::setResultsPrefix
virtual void setResultsPrefix(std::string prefix) const
Definition: BVertexTrackIsoTool.cxx:427
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DerivationFramework::BVertexTrackIsoTool::buildBranchName
virtual std::string buildBranchName(unsigned int ic, unsigned int its, unsigned int ipv, unsigned int itt) const
Definition: BVertexTrackIsoTool.cxx:489
DerivationFramework::BPhysVertexTrackBase
Definition: BPhysVertexTrackBase.h:57
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
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
DerivationFramework::BVertexTrackIsoTool::initializeHook
virtual StatusCode initializeHook()
Definition: BVertexTrackIsoTool.cxx:113
DerivationFramework::BVertexTrackIsoTool::IsoItem::~IsoItem
virtual ~IsoItem()
Definition: BVertexTrackIsoTool.cxx:57