ATLAS Offline Software
TrackSelector.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
10 #include "TrkTrack/Track.h"
12 #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh"
14 #include "GaudiKernel/IToolSvc.h"
15 #include <string>
16 #include <bitset>
17 #include <algorithm>
18 
19 namespace Analysis {
20 
21  static const InterfaceID IID_ITrackSelector("Analysis::TrackSelector", 1, 0);
22 
23  TrackSelector::TrackSelector(const std::string& type,
24  const std::string& name, const IInterface* parent) :
26  m_ntri(0),
27  m_ntrf(0)
28  {
29 
30  declareInterface<TrackSelector>(this);
31  declareProperty("useBLayerHitPrediction", m_useBLayerHitPrediction = false);
32  declareProperty("usePerigeeParameters", m_usePerigeeParameters = false);
34  declareProperty("usepTDepTrackSel", m_usepTDepTrackSel = false);
35  declareProperty("pTMinOffset", m_pTMinOffset = 0.);
36  declareProperty("pTMinSlope", m_pTMinSlope = 0.);
39  declareProperty("sigd0Max",m_sigd0Max = 999.*Gaudi::Units::mm);
40  declareProperty("sigz0Max",m_sigz0Max = 999.*Gaudi::Units::mm);
41  declareProperty("etaMax", m_etaMax = 9999.);
42  declareProperty("useTrackSummaryInfo", m_useTrackSummaryInfo = true);
43  declareProperty("nHitBLayer", m_nHitBLayer = 1);
44  declareProperty("nHitPix", m_nHitPix = 1);
45  declareProperty("nHitSct", m_nHitSct = 0);
46  declareProperty("nHitSi", m_nHitSi = 7);
47  declareProperty("nHitTrt", m_nHitTrt = 0);
48  declareProperty("nHitTrtHighE", m_nHitTrtHighE = 0);
49  declareProperty("useDeadPixInfo", m_useDeadPixInfo = true);
50  declareProperty("useDeadSctInfo", m_useDeadSctInfo = true);
51  declareProperty("useTrackQualityInfo", m_useTrackQualityInfo = true);
52  declareProperty("fitChi2", m_fitChi2 = 99999.);
53  declareProperty("fitProb", m_fitProb = -1.);
54  declareProperty("fitChi2OnNdfMax",m_fitChi2OnNdfMax=999.);
55  declareProperty("inputTrackCollection", m_inputTrackCollection);
56  declareProperty("outputTrackCollection", m_outputTrackCollection);
57  declareProperty("useAntiPileUpCuts", m_useAntiPileUpCuts = false);
58  declareProperty("antiPileUpSigD0Cut", m_antiPileUpSigD0Cut = 3.0);
59  declareProperty("antiPileUpSigZ0Cut", m_antiPileUpSigZ0Cut = 3.8);
60  declareProperty("antiPileUpNHitSiCut", m_antiPileUpNHitSiCut = 9);
61  declareProperty("antiPileUpNHolePixCut", m_antiPileUpNHolePixCut = 9);
62  declareProperty("useTrackingTightDefinition", m_useTrackingTightDefinition = false);
63  }
64 
66  }
67 
68  const InterfaceID& TrackSelector::interfaceID() {
69  return IID_ITrackSelector;
70  }
71 
73  for(int i=0;i<numCuts;i++) m_ntrc[i]=0;
75  if ( m_trackToVertexTool.retrieve().isFailure() ) {
76  ATH_MSG_FATAL("#BTAG# Failed to retrieve tool " << m_trackToVertexTool);
77  return StatusCode::FAILURE;
78  } else {
79  ATH_MSG_DEBUG("#BTAG# Retrieved tool " << m_trackToVertexTool);
80  }
81 
82  m_useEtaDependentCuts = !(m_etaDependentCutsSvc.name().empty());
84  ATH_CHECK(m_etaDependentCutsSvc.retrieve());
85  ATH_MSG_INFO("Using InDetEtaDependentCutsSvc. Track selections from config not used");
86  }
87  else{
88  ATH_MSG_INFO("Using track selections from config");
89  }
90 
95  }
96 
98  if (msgLvl(MSG::DEBUG)) {
99  msg(MSG::DEBUG) << "#BTAG# TrackSelector " << name() << " cuts: " << endmsg;
101  msg(MSG::DEBUG) << "#BTAG# - pT >= " << m_pTMin << endmsg;
102  msg(MSG::DEBUG) << "#BTAG# - |eta| <= " << m_etaMax << endmsg;
103  msg(MSG::DEBUG) << "#BTAG# - |d0| <= " << m_d0Max << endmsg;
104  msg(MSG::DEBUG) << "#BTAG# - |z0| <= " << m_z0Max << endmsg;
105  }
106 
107  msg(MSG::DEBUG) << "#BTAG# - |sigd0| <= " << m_sigd0Max << endmsg;
108  msg(MSG::DEBUG) << "#BTAG# - |sigz0| <= " << m_sigz0Max << endmsg;
109  if(m_useAntiPileUpCuts) {
110  msg(MSG::DEBUG) << "#BTAG# - antiPUcut: reject tracks with |sigz0| > " << m_antiPileUpSigZ0Cut
111  << " when |sigd0| < " << m_antiPileUpSigD0Cut << endmsg;
112  }
113 
115 
117  msg(MSG::DEBUG) << "#BTAG# - nbHitsBLayer >= " << m_nHitBLayer << endmsg;
118  if(m_useDeadPixInfo) {
119  msg(MSG::DEBUG) << "#BTAG# - nbHitsPix+nbDeadPix >= " << m_nHitPix << endmsg;
120  } else {
121  msg(MSG::DEBUG) << "#BTAG# - nbHitsPix >= " << m_nHitPix << endmsg;
122  }
124  msg(MSG::DEBUG) << "#BTAG# using conddb for b-layer hit requirements " << endmsg;
125 
126  if(m_useDeadSctInfo) {
127  msg(MSG::DEBUG) << "#BTAG# - nbHitsSct+nbDeadSct >= " << m_nHitSct << endmsg;
128  } else {
129  msg(MSG::DEBUG) << "#BTAG# - nbHitsSct >= " << m_nHitSct << endmsg;
130  }
131  int nhsi = m_nHitSi;
133  if(m_useDeadPixInfo) {
134  if(m_useDeadSctInfo) {
135  msg(MSG::DEBUG) << "#BTAG# - nbHitsSi+nbDeadPix+nbDeadSct >= " << nhsi << endmsg;
136  } else {
137  msg(MSG::DEBUG) << "#BTAG# - nbHitsSi+nbDeadPix >= " << nhsi << endmsg;
138  }
139  } else {
140  if(m_useDeadSctInfo) {
141  msg(MSG::DEBUG) << "#BTAG# - nbHitsSi+nbDeadSct >= " << nhsi << endmsg;
142  } else {
143  msg(MSG::DEBUG) << "#BTAG# - nbHitsSi >= " << nhsi << endmsg;
144  }
145  }
146  }
147 
148  msg(MSG::DEBUG) << "#BTAG# - nbHitsTrt >= " << m_nHitTrt << endmsg;
149  msg(MSG::DEBUG) << "#BTAG# - nbHitsTrtHighE >= " << m_nHitTrtHighE << endmsg;
150  }
151 
152  msg(MSG::DEBUG) << "#BTAG# - fit chi2 <= " << m_fitChi2 << endmsg;
153  msg(MSG::DEBUG) << "#BTAG# - fit proba >= " << m_fitProb << endmsg;
154  msg(MSG::DEBUG) << "#BTAG# - fit chi2 / ndf <= " << m_fitChi2OnNdfMax << endmsg;
155  }
156 
157  return StatusCode::SUCCESS;
158  }
159 
160 
162  ATH_MSG_VERBOSE("#BTAG# tracks selected: In= " << m_ntri);
163  for(int i=0;i<numCuts;i++) ATH_MSG_VERBOSE("#BTAG# cut" << i << "= " << m_ntrc[i]);
164  ATH_MSG_VERBOSE("#BTAG# Out= " << m_ntrf);
165  return StatusCode::SUCCESS;
166  }
167 
168 
170  const xAOD::TrackParticle* track,
171  double refPt) const
172 {
173  std::bitset<17> failedCuts;
174  return selectTrack (pv, track, failedCuts, refPt);
175 }
176 
178  const xAOD::TrackParticle* track,
179  std::bitset<17>& failedCuts,
180  double refPt) const
181 {
182  double trackD0;
183  double trackZ0;
184  double tracksigD0;
185  double tracksigZ0;
187  trackD0 = track->d0();
188  trackZ0 = track->z0() - pv.z();
189  tracksigD0 = std::sqrt(track->definingParametersCovMatrix()(0,0));
190  tracksigZ0 = std::sqrt(track->definingParametersCovMatrix()(1,1));
191  } else {
192  // extrapolate with the TrackToVertex tool:
193  auto ctx = Gaudi::Hive::currentContext();
194  auto perigee = m_trackToVertexTool->perigeeAtVertex(ctx, *track, pv);
195  if (perigee==nullptr) {
196  ATH_MSG_WARNING("#BTAG# Extrapolation failed. Rejecting track... ");
197  return false;
198  }
199  trackD0 = perigee->parameters()[Trk::d0];
200  trackZ0 = perigee->parameters()[Trk::z0];
201  tracksigD0 = std::sqrt((*perigee->covariance())(Trk::d0,Trk::d0));
202  tracksigZ0 = std::sqrt((*perigee->covariance())(Trk::z0,Trk::z0));
203  }
204 
205  ATH_MSG_VERBOSE( "#BTAG# Track "
206  << " Eta= " << track->eta() << " Phi= " << track->phi() << " pT= " <<track->pt()
207  << " d0= " << trackD0
208  << " z0= " << trackZ0 << " sigd0= " << tracksigD0 << " sigz0: " << tracksigZ0 );
209 
211  double eta = track->eta();
212  bool pass = true;
213  double pTMin_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMinPtAtEta(eta) : m_pTMin;
214  if(track->pt() < pTMin_cut) {
215  pass = false;
216  failedCuts.set(pTMin);
217  } else if (refPt > 0 && m_usepTDepTrackSel && track->pt() < m_pTMinOffset + m_pTMinSlope*refPt) {
218  pass = false;
219  failedCuts.set(pTMin);
220  }
221 
222  double d0_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMaxPrimaryImpactAtEta(eta) : m_d0Max;
223  if(std::abs(trackD0)>d0_cut) {
224  pass = false;
225  failedCuts.set(d0Max);
226  }
227 
228  double z0_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMaxZImpactAtEta(eta) : m_z0Max;
229  if(std::abs(trackZ0*sin(track->theta()))>z0_cut) {
230  pass = false;
231  failedCuts.set(z0Max);
232  }
233  if (tracksigD0>m_sigd0Max) {
234  pass = false;
235  failedCuts.set(sigd0Max);
236  }
237  if (tracksigZ0>m_sigz0Max) {
238  pass = false;
239  failedCuts.set(sigz0Max);
240  }
241  if(m_useAntiPileUpCuts) {
242  if(fabs(trackZ0/tracksigZ0)>m_antiPileUpSigZ0Cut && fabs(trackD0/tracksigD0)<m_antiPileUpSigD0Cut) {
243  pass = false;
244  failedCuts.set(sigz0Max);
245  failedCuts.set(sigd0Max);
246  }
247  }
248 
249  double eta_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMaxEta() : m_etaMax;
250  if(std::abs(track->eta())>eta_cut) {
251  pass = false;
252  failedCuts.set(etaMax);
253  }
255  uint8_t nb=0;
257  int InPix_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMinInnermostPixelHitsAtEta(eta) : m_nHitBLayer;
258  if(nb < InPix_cut) {
259  failedCuts.set(nHitBLayer);
261  pass = false;
262  failedCuts.set(deadBLayer);
263  } else {
264  uint8_t ehib=1;
265  if (!track->summaryValue(ehib,xAOD::expectInnermostPixelLayerHit)) {
266  ATH_MSG_WARNING("#BTAG# expectInnermostPixelLayerHit not computed in TrackSummary: assuming true");
267  ehib=1;
268  }
269  if(ehib) { // check if module was alive
270  pass = false;
271  failedCuts.set(deadBLayer);
272  }
273  }
274  }
275  uint8_t nhp=0;
276  track->summaryValue(nhp, xAOD::numberOfPixelHoles);
277  if(m_useAntiPileUpCuts) {
278  int PixHole_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMaxPixelHolesAtEta(eta) : m_antiPileUpNHolePixCut;
279  if(nhp>=PixHole_cut) {
280  pass = false;
281  }
282  }
283  uint8_t np=0;
284  track->summaryValue(np, xAOD::numberOfPixelHits);
285  if(m_useDeadPixInfo)
286  {
287  uint8_t ndead;
288  track->summaryValue(ndead, xAOD::numberOfPixelDeadSensors);
289  np += std::max((int)ndead, 0);
290  }
291  int Pix_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMinPixelHitsAtEta(eta) : m_nHitPix;
292  if(np < Pix_cut) {
293  pass = false;
294  failedCuts.set(nHitPix);
295  }
296 
297  uint8_t ns=0;
298  track->summaryValue(ns, xAOD::numberOfSCTHits);
299  if(m_useDeadSctInfo)
300  {
301  uint8_t ndead;
302  track->summaryValue(ndead, xAOD::numberOfSCTDeadSensors);
303  ns += std::max((int)ndead,0);
304  }
305  int SCTStrip_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMinStripHitsAtEta(eta) : m_nHitSct;
306  if(ns < SCTStrip_cut) {
307  pass = false;
308  failedCuts.set(nHitSct);
309  }
310 
311  int Si_cut = m_useEtaDependentCuts ? m_etaDependentCutsSvc->getMinSiHitsAtEta(eta) : m_nHitSi;
312  if((np+ns) < Si_cut) {
313  pass = false;
314  failedCuts.set(nHitSi);
315  }
316  if(m_useAntiPileUpCuts) {
317  if((np+ns) < m_antiPileUpNHitSiCut) {
318  pass = false;
319  failedCuts.set(nHitSi);
320  }
321  }
322  uint8_t nh=0;
323  track->summaryValue(nh, xAOD::numberOfTRTHits);//ms
324  if(nh < m_nHitTrt) {
325  pass = false;
326  failedCuts.set(nHitTrt);
327  }
328  uint8_t nhe=0;
329  track->summaryValue(nhe, xAOD::numberOfTRTHighThresholdHits);//ms
330  if(nhe < m_nHitTrtHighE) {
331  pass = false;
332  failedCuts.set(nHitTrtHighE);
333  }
334  // Tracking CP group Tight definition
336  uint8_t nibl, nnibl;
337  track->summaryValue(nibl , xAOD::numberOfPixelHits);
338  track->summaryValue(nnibl, xAOD::numberOfPixelHits);
339  bool innerHitsCrit = ((nibl+nnibl)>0);
340  bool lowetaCrit = fabs(track->eta())> 1.65 && (ns+np)>=11;
341  bool highetaCrit = fabs(track->eta())<=1.65 && (ns+np)>=9 ;
342  bool pixholeCrit = (nhp==0) ;
343  bool isTight = innerHitsCrit && pixholeCrit && (lowetaCrit || highetaCrit);
344  if (!isTight){
345  pass=false;
346  failedCuts.set(trackingTightDef);
347  }
348 
349  }
350  }
351 
352  // Now the fit quality
353  double chi2 = track->chiSquared();
354  int ndf = track->numberDoF();
355  double proba = 1.;
356  if(ndf>0 && chi2>=0.) {
357  Genfun::CumulativeChiSquare myCumulativeChiSquare(ndf);
358  proba = 1.-myCumulativeChiSquare(chi2);
359  }
360  if(chi2>m_fitChi2) {
361  pass = false;
362  failedCuts.set(fitChi2);
363  }
364  if(proba<m_fitProb) {
365  pass = false;
366  failedCuts.set(fitProb);
367  }
368  if(ndf>0) {
369  if(chi2/double(ndf)>m_fitChi2OnNdfMax) {
370  pass = false;
371  failedCuts.set(fitChi2OnNdfMax);
372  }
373  } else {
374  pass = false;
375  failedCuts.set(fitChi2OnNdfMax);
376  }
377 
379  if( msgLvl(MSG::VERBOSE) ){
380  ATH_MSG_VERBOSE("#BTAG# passedCuts for track ");
381  for(int i=0;i<numCuts;i++) {
382  int passl = ~failedCuts[(m_Cuts)i];
383  if(passl) m_ntrc[i]++;
384  msg(MSG::VERBOSE) << passl;
385  }
386  msg(MSG::VERBOSE) << endmsg;
387  }
388 
389  return pass;
390  }
391 
392 }
Analysis::TrackSelector::m_Cuts
m_Cuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
Analysis::TrackSelector::interfaceID
static const InterfaceID & interfaceID()
Definition: TrackSelector.cxx:68
covarianceTool.ndf
ndf
Definition: covarianceTool.py:678
Analysis::TrackSelector::m_useAntiPileUpCuts
bool m_useAntiPileUpCuts
location of shared map in StoreGate
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:89
Analysis::TrackSelector::m_z0Max
double m_z0Max
max. d0: |d0|<d0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:68
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
Analysis::TrackSelector::m_useTrackSummaryInfo
bool m_useTrackSummaryInfo
max. pseudo-rapidity
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:72
Analysis::TrackSelector::m_useDeadSctInfo
bool m_useDeadSctInfo
if true uses dead pixel sensors from conddb (except b-layer) to compute nPix
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:81
Analysis::TrackSelector::selectTrack
bool selectTrack(const Amg::Vector3D &pv, const xAOD::TrackParticle *track, double refPt=0) const
Returns true if the argument track fulfills the selection.
Definition: TrackSelector.cxx:169
Analysis::TrackSelector::fitChi2OnNdfMax
@ fitChi2OnNdfMax
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:98
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Analysis::TrackSelector::m_sigz0Max
double m_sigz0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:70
max
#define max(a, b)
Definition: cfImp.cxx:41
TrackParticle.h
Analysis::TrackSelector::m_nHitSi
int m_nHitSi
at least n hits in SCT
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:77
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
Analysis::TrackSelector::pTMin
@ pTMin
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Analysis::TrackSelector::deadBLayer
@ deadBLayer
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Analysis::TrackSelector::m_fitChi2OnNdfMax
double m_fitChi2OnNdfMax
min. fit chi2 probability
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:85
Analysis::TrackSelector::nHitBLayer
@ nHitBLayer
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Analysis::TrackSelector::finalize
virtual StatusCode finalize() override
Definition: TrackSelector.cxx:161
Analysis::TrackSelector::nHitTrtHighE
@ nHitTrtHighE
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Trk::z0
@ z0
Definition: ParamDefs.h:70
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Analysis::TrackSelector::m_pTMin
double m_pTMin
if true use perigee parameters instead of parameters w.r.t. primary vertex
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:63
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
PlotPulseshapeFromCool.np
np
Definition: PlotPulseshapeFromCool.py:64
Analysis::TrackSelector::m_antiPileUpNHolePixCut
int m_antiPileUpNHolePixCut
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:93
Analysis::TrackSelector::initialize
virtual StatusCode initialize() override
Definition: TrackSelector.cxx:72
Analysis::TrackSelector::trackingTightDef
@ trackingTightDef
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:98
xAOD::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
Definition: TrackingPrimitives.h:278
Analysis::TrackSelector::m_antiPileUpSigZ0Cut
double m_antiPileUpSigZ0Cut
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:91
Track.h
Analysis::TrackSelector::nHitSct
@ nHitSct
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Analysis::TrackSelector::m_ntri
int m_ntri
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:101
GeoPrimitives.h
Analysis::TrackSelector::m_inputTrackCollection
std::string m_inputTrackCollection
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:86
lumiFormat.i
int i
Definition: lumiFormat.py:92
Analysis::TrackSelector::m_useDeadPixInfo
bool m_useDeadPixInfo
at least n transition hits in TRT
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:80
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Analysis::TrackSelector::m_useBLayerHitPrediction
bool m_useBLayerHitPrediction
if false the following cuts are ignored
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:73
Analysis::TrackSelector::m_usepTDepTrackSel
bool m_usepTDepTrackSel
min. pT: |pT|>pTMin
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:64
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Analysis::TrackSelector::m_antiPileUpNHitSiCut
int m_antiPileUpNHitSiCut
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:92
Analysis::TrackSelector::m_pTMinOffset
double m_pTMinOffset
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:65
TrackSummary.h
Analysis::TrackSelector::m_ntrf
int m_ntrf
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:102
Analysis::TrackSelector::etaMax
@ etaMax
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
Analysis::TrackSelector::m_etaMax
double m_etaMax
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:71
Analysis::TrackSelector::m_usePerigeeParameters
bool m_usePerigeeParameters
Properties for V0 finding: not yet implemented.
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:62
Analysis::TrackSelector::sigd0Max
@ sigd0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
Analysis::TrackSelector::m_useTrackingTightDefinition
bool m_useTrackingTightDefinition
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:94
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
Analysis::TrackSelector::m_outputTrackCollection
std::string m_outputTrackCollection
location of inputTracks in StoreGate
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:87
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::d0
@ d0
Definition: ParamDefs.h:69
Analysis::TrackSelector::m_useEtaDependentCuts
bool m_useEtaDependentCuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:109
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Analysis::TrackSelector::m_nHitPix
int m_nHitPix
at least n hits in Blayer
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:75
Analysis::TrackSelector::m_sigd0Max
double m_sigd0Max
max. z0:
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:69
Analysis::TrackSelector::numCuts
@ numCuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:99
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
Analysis::TrackSelector::m_useTrackQualityInfo
bool m_useTrackQualityInfo
if true uses dead SCT sensors to compute nSct
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:82
Analysis::TrackSelector::nHitSi
@ nHitSi
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Analysis::TrackSelector::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:105
Analysis::TrackSelector::m_nHitSct
int m_nHitSct
at least n hits in pixels
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:76
Analysis::TrackSelector::~TrackSelector
virtual ~TrackSelector()
Definition: TrackSelector.cxx:65
Analysis::TrackSelector::sigz0Max
@ sigz0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
Analysis::TrackSelector::m_ntrc
std::atomic< int > m_ntrc[numCuts]
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:103
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Analysis::TrackSelector::m_antiPileUpSigD0Cut
double m_antiPileUpSigD0Cut
activate antiPU cut d0z0
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:90
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
Analysis::TrackSelector::m_fitProb
double m_fitProb
max. fit chi2
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:84
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
Analysis::TrackSelector::fitChi2
@ fitChi2
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:98
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
python.changerun.pv
pv
Definition: changerun.py:81
Analysis::TrackSelector::TrackSelector
TrackSelector(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrackSelector.cxx:23
Analysis::TrackSelector::z0Max
@ z0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
TrackSelector.h
Analysis::TrackSelector::m_d0Max
double m_d0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:67
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
Analysis::TrackSelector::m_etaDependentCutsSvc
ServiceHandle< InDet::IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
service to get cut values depending on different variable
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:111
Analysis::TrackSelector::m_pTMinSlope
double m_pTMinSlope
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:66
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
Analysis::TrackSelector::nHitPix
@ nHitPix
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
AthAlgTool
Definition: AthAlgTool.h:26
Analysis::TrackSelector::d0Max
@ d0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
FitQuality.h
hotSpotInTAG.nb
nb
Definition: hotSpotInTAG.py:164
Analysis::TrackSelector::m_nHitTrtHighE
int m_nHitTrtHighE
at least n hits in TRT
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:79
Analysis::TrackSelector::nHitTrt
@ nHitTrt
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
Analysis::TrackSelector::fitProb
@ fitProb
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:98
Analysis::TrackSelector::m_nHitTrt
int m_nHitTrt
at least n hits in pixels+SCT
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:78
Analysis::TrackSelector::m_nHitBLayer
int m_nHitBLayer
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:74
Analysis::TrackSelector::m_fitChi2
double m_fitChi2
if false the following cuts are ignored
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:83
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
TrackParticleContainer.h