ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Analysis::TrackSelector Class Reference

#include <TrackSelector.h>

Inheritance diagram for Analysis::TrackSelector:
Collaboration diagram for Analysis::TrackSelector:

Public Member Functions

 TrackSelector (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~TrackSelector ()
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
bool selectTrack (const Amg::Vector3D &pv, const xAOD::TrackParticle *track, double refPt=0) const
 Returns true if the argument track fulfills the selection. More...
 
bool selectTrack (const Amg::Vector3D &pv, const xAOD::TrackParticle *track, std::bitset< 17 > &failedCuts, double refPt=0) const
 Also return individual cuts. More...
 
const std::bitset< 17 > & currentTrackpassedCuts () const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

enum  m_Cuts {
  pTMin, d0Max, z0Max, sigd0Max,
  sigz0Max, etaMax, nHitBLayer, deadBLayer,
  nHitPix, nHitSct, nHitSi, nHitTrt,
  nHitTrtHighE, fitChi2, fitProb, fitChi2OnNdfMax,
  trackingTightDef, numCuts
}
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

bool m_usePerigeeParameters
 Properties for V0 finding: not yet implemented. More...
 
double m_pTMin
 if true use perigee parameters instead of parameters w.r.t. primary vertex More...
 
bool m_usepTDepTrackSel
 min. pT: |pT|>pTMin More...
 
double m_pTMinOffset
 
double m_pTMinSlope
 
double m_d0Max
 
double m_z0Max
 max. d0: |d0|<d0Max More...
 
double m_sigd0Max
 max. z0: More...
 
double m_sigz0Max
 
double m_etaMax
 
bool m_useTrackSummaryInfo
 max. pseudo-rapidity More...
 
bool m_useBLayerHitPrediction
 if false the following cuts are ignored More...
 
int m_nHitBLayer
 
int m_nHitPix
 at least n hits in Blayer More...
 
int m_nHitSct
 at least n hits in pixels More...
 
int m_nHitSi
 at least n hits in SCT More...
 
int m_nHitTrt
 at least n hits in pixels+SCT More...
 
int m_nHitTrtHighE
 at least n hits in TRT More...
 
bool m_useDeadPixInfo
 at least n transition hits in TRT More...
 
bool m_useDeadSctInfo
 if true uses dead pixel sensors from conddb (except b-layer) to compute nPix More...
 
bool m_useTrackQualityInfo
 if true uses dead SCT sensors to compute nSct More...
 
double m_fitChi2
 if false the following cuts are ignored More...
 
double m_fitProb
 max. fit chi2 More...
 
double m_fitChi2OnNdfMax
 min. fit chi2 probability More...
 
std::string m_inputTrackCollection
 
std::string m_outputTrackCollection
 location of inputTracks in StoreGate More...
 
std::string m_sharedHitMapLocation
 location of outputTracks in StoreGate More...
 
bool m_useAntiPileUpCuts
 location of shared map in StoreGate More...
 
double m_antiPileUpSigD0Cut
 activate antiPU cut d0z0 More...
 
double m_antiPileUpSigZ0Cut
 
int m_antiPileUpNHitSiCut
 
int m_antiPileUpNHolePixCut
 
bool m_useTrackingTightDefinition
 
int m_ntri
 
int m_ntrf
 
std::atomic< int > m_ntrc [numCuts]
 
ToolHandle< Reco::ITrackToVertexm_trackToVertexTool {this, "trackToVertexTool", "Reco::TrackToVertex"}
 
std::bitset< numCutsm_passedCuts
 
bool m_useEtaDependentCuts
 
ServiceHandle< InDet::IInDetEtaDependentCutsSvcm_etaDependentCutsSvc {this, "InDetEtaDependentCutsSvc", ""}
 service to get cut values depending on different variable More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

This class selects tracks for b-taggers

Author
Laurent Vacavant (vacav.nosp@m.ant@.nosp@m.in2p3.nosp@m..fr)

Definition at line 29 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ m_Cuts

Enumerator
pTMin 
d0Max 
z0Max 
sigd0Max 
sigz0Max 
etaMax 
nHitBLayer 
deadBLayer 
nHitPix 
nHitSct 
nHitSi 
nHitTrt 
nHitTrtHighE 
fitChi2 
fitProb 
fitChi2OnNdfMax 
trackingTightDef 
numCuts 

Definition at line 96 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

Constructor & Destructor Documentation

◆ TrackSelector()

Analysis::TrackSelector::TrackSelector ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 23 of file TrackSelector.cxx.

24  :
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  }

◆ ~TrackSelector()

Analysis::TrackSelector::~TrackSelector ( )
virtual

Definition at line 65 of file TrackSelector.cxx.

65  {
66  }

Member Function Documentation

◆ currentTrackpassedCuts()

const std::bitset<17>& Analysis::TrackSelector::currentTrackpassedCuts ( ) const
inline

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [4/4]

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

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

Definition at line 199 of file AthCommonDataStore.h.

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

◆ declareProperty() [1/6]

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

Declare a new Gaudi property.

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

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

Definition at line 245 of file AthCommonDataStore.h.

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

◆ declareProperty() [2/6]

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

Declare a new Gaudi property.

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

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

Definition at line 221 of file AthCommonDataStore.h.

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

◆ declareProperty() [3/6]

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

Definition at line 259 of file AthCommonDataStore.h.

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

◆ declareProperty() [4/6]

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

Declare a new Gaudi property.

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

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

Definition at line 333 of file AthCommonDataStore.h.

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

◆ declareProperty() [5/6]

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

Declare a new Gaudi property.

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

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

Definition at line 352 of file AthCommonDataStore.h.

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

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode Analysis::TrackSelector::finalize ( )
overridevirtual

Definition at line 161 of file TrackSelector.cxx.

161  {
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  }

◆ initialize()

StatusCode Analysis::TrackSelector::initialize ( )
overridevirtual

retrieving TrackToVertex:

dump cuts:

Definition at line 72 of file TrackSelector.cxx.

72  {
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  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & Analysis::TrackSelector::interfaceID ( )
static

Definition at line 68 of file TrackSelector.cxx.

68  {
69  return IID_ITrackSelector;
70  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

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

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ selectTrack() [1/2]

bool Analysis::TrackSelector::selectTrack ( const Amg::Vector3D pv,
const xAOD::TrackParticle track,
double  refPt = 0 
) const

Returns true if the argument track fulfills the selection.

Definition at line 169 of file TrackSelector.cxx.

172 {
173  std::bitset<17> failedCuts;
174  return selectTrack (pv, track, failedCuts, refPt);
175 }

◆ selectTrack() [2/2]

bool Analysis::TrackSelector::selectTrack ( const Amg::Vector3D pv,
const xAOD::TrackParticle track,
std::bitset< 17 > &  failedCuts,
double  refPt = 0 
) const

Also return individual cuts.

apply cuts:

std::string showPassedCuts = ~failedCuts.to_string(); // not available !

Definition at line 177 of file TrackSelector.cxx.

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  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_antiPileUpNHitSiCut

int Analysis::TrackSelector::m_antiPileUpNHitSiCut
private

◆ m_antiPileUpNHolePixCut

int Analysis::TrackSelector::m_antiPileUpNHolePixCut
private

◆ m_antiPileUpSigD0Cut

double Analysis::TrackSelector::m_antiPileUpSigD0Cut
private

activate antiPU cut d0z0

Definition at line 90 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_antiPileUpSigZ0Cut

double Analysis::TrackSelector::m_antiPileUpSigZ0Cut
private

◆ m_d0Max

double Analysis::TrackSelector::m_d0Max
private

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_etaDependentCutsSvc

ServiceHandle<InDet::IInDetEtaDependentCutsSvc> Analysis::TrackSelector::m_etaDependentCutsSvc {this, "InDetEtaDependentCutsSvc", ""}
private

service to get cut values depending on different variable

Definition at line 111 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_etaMax

double Analysis::TrackSelector::m_etaMax
private

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_fitChi2

double Analysis::TrackSelector::m_fitChi2
private

if false the following cuts are ignored

Definition at line 83 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_fitChi2OnNdfMax

double Analysis::TrackSelector::m_fitChi2OnNdfMax
private

min. fit chi2 probability

Definition at line 85 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_fitProb

double Analysis::TrackSelector::m_fitProb
private

◆ m_inputTrackCollection

std::string Analysis::TrackSelector::m_inputTrackCollection
private

◆ m_nHitBLayer

int Analysis::TrackSelector::m_nHitBLayer
private

◆ m_nHitPix

int Analysis::TrackSelector::m_nHitPix
private

at least n hits in Blayer

Definition at line 75 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_nHitSct

int Analysis::TrackSelector::m_nHitSct
private

at least n hits in pixels

Definition at line 76 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_nHitSi

int Analysis::TrackSelector::m_nHitSi
private

at least n hits in SCT

Definition at line 77 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_nHitTrt

int Analysis::TrackSelector::m_nHitTrt
private

at least n hits in pixels+SCT

Definition at line 78 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_nHitTrtHighE

int Analysis::TrackSelector::m_nHitTrtHighE
private

at least n hits in TRT

Definition at line 79 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_ntrc

std::atomic<int> Analysis::TrackSelector::m_ntrc[numCuts]
mutableprivate

◆ m_ntrf

int Analysis::TrackSelector::m_ntrf
private

◆ m_ntri

int Analysis::TrackSelector::m_ntri
private

◆ m_outputTrackCollection

std::string Analysis::TrackSelector::m_outputTrackCollection
private

location of inputTracks in StoreGate

Definition at line 87 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_passedCuts

std::bitset<numCuts> Analysis::TrackSelector::m_passedCuts
private

◆ m_pTMin

double Analysis::TrackSelector::m_pTMin
private

if true use perigee parameters instead of parameters w.r.t. primary vertex

Definition at line 63 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_pTMinOffset

double Analysis::TrackSelector::m_pTMinOffset
private

◆ m_pTMinSlope

double Analysis::TrackSelector::m_pTMinSlope
private

◆ m_sharedHitMapLocation

std::string Analysis::TrackSelector::m_sharedHitMapLocation
private

location of outputTracks in StoreGate

Definition at line 88 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_sigd0Max

double Analysis::TrackSelector::m_sigd0Max
private

◆ m_sigz0Max

double Analysis::TrackSelector::m_sigz0Max
private

◆ m_trackToVertexTool

ToolHandle< Reco::ITrackToVertex > Analysis::TrackSelector::m_trackToVertexTool {this, "trackToVertexTool", "Reco::TrackToVertex"}
private

◆ m_useAntiPileUpCuts

bool Analysis::TrackSelector::m_useAntiPileUpCuts
private

location of shared map in StoreGate

Definition at line 89 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useBLayerHitPrediction

bool Analysis::TrackSelector::m_useBLayerHitPrediction
private

if false the following cuts are ignored

Definition at line 73 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useDeadPixInfo

bool Analysis::TrackSelector::m_useDeadPixInfo
private

at least n transition hits in TRT

Definition at line 80 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useDeadSctInfo

bool Analysis::TrackSelector::m_useDeadSctInfo
private

if true uses dead pixel sensors from conddb (except b-layer) to compute nPix

Definition at line 81 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useEtaDependentCuts

bool Analysis::TrackSelector::m_useEtaDependentCuts
private

◆ m_usePerigeeParameters

bool Analysis::TrackSelector::m_usePerigeeParameters
private

Properties for V0 finding: not yet implemented.

Properties for track selection: all cuts are ANDed

Definition at line 62 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_usepTDepTrackSel

bool Analysis::TrackSelector::m_usepTDepTrackSel
private

min. pT: |pT|>pTMin

Definition at line 64 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useTrackingTightDefinition

bool Analysis::TrackSelector::m_useTrackingTightDefinition
private

◆ m_useTrackQualityInfo

bool Analysis::TrackSelector::m_useTrackQualityInfo
private

if true uses dead SCT sensors to compute nSct

Definition at line 82 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_useTrackSummaryInfo

bool Analysis::TrackSelector::m_useTrackSummaryInfo
private

max. pseudo-rapidity

Definition at line 72 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_z0Max

double Analysis::TrackSelector::m_z0Max
private

max. d0: |d0|<d0Max

Definition at line 68 of file PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h.


The documentation for this class was generated from the following files:
Analysis::TrackSelector::m_passedCuts
std::bitset< numCuts > m_passedCuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:107
Analysis::TrackSelector::m_Cuts
m_Cuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
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
test_pyathena.eta
eta
Definition: test_pyathena.py:10
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
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
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
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:557
Analysis::TrackSelector::pTMin
@ pTMin
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Analysis::TrackSelector::nHitTrtHighE
@ nHitTrtHighE
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:97
Trk::z0
@ z0
Definition: ParamDefs.h:64
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
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
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::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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Analysis::TrackSelector::m_antiPileUpSigZ0Cut
double m_antiPileUpSigZ0Cut
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:91
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
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
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Analysis::TrackSelector::m_inputTrackCollection
std::string m_inputTrackCollection
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:86
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:85
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
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Analysis::TrackSelector::m_useTrackingTightDefinition
bool m_useTrackingTightDefinition
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:94
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
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:221
Trk::d0
@ d0
Definition: ParamDefs.h:63
Analysis::TrackSelector::m_useEtaDependentCuts
bool m_useEtaDependentCuts
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:109
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
a
TList * a
Definition: liststreamerinfos.cxx:10
Analysis::TrackSelector::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:105
h
Analysis::TrackSelector::m_nHitSct
int m_nHitSct
at least n hits in pixels
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:76
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
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
Analysis::TrackSelector::z0Max
@ z0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
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
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
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
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Analysis::TrackSelector::d0Max
@ d0Max
Definition: PhysicsAnalysis/JetTagging/JetTagTools/JetTagTools/TrackSelector.h:96
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
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
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
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
fitman.k
k
Definition: fitman.py:528
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237