ATLAS Offline Software
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
xAOD::TrackIsolationTool Class Reference

#include <TrackIsolationTool.h>

Inheritance diagram for xAOD::TrackIsolationTool:
Collaboration diagram for xAOD::TrackIsolationTool:

Classes

struct  TrackIsolationInput
 

Public Types

typedef std::vector< const TrackParticle * > TPVec
 Create a constructor for Athena. More...
 

Public Member Functions

 TrackIsolationTool (const std::string &name)
 constructor More...
 
virtual ~TrackIsolationTool (void)
 destructor More...
 
virtual StatusCode initialize () override
 initialize More...
 
virtual bool trackIsolation (TrackIsolation &result, const IParticle &tp, const std::vector< Iso::IsolationType > &cones, TrackCorrection corrections, const Vertex *vertex=0, const std::set< const TrackParticle * > *exclusionSet=0, const TrackParticleContainer *indetTrackParticles=0) const override
 ITrackIsolationTool interface: More...
 
virtual void print () const
 Print the state of the tool. More...
 
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
 

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

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

float phiInRange (float phi) const
 hepler function to ensure phi is within +-Pi More...
 
bool simpleIsolation (TrackIsolationInput &input, TrackIsolation &result, const TrackParticleContainer *indetTrackParticles=0) const
 simple isolation (loop) More...
 
bool binnedIsolation (TrackIsolationInput &input, TrackIsolation &result) const
 using TracksInConeTool More...
 
void add (TrackIsolationInput &input, const TrackParticle &tp2, TrackIsolation &result) const
 add track particle to isolation calculation More...
 
const IParticlegetReferenceParticle (const IParticle &particle) const
 get reference particle More...
 
const VertexretrieveIDBestPrimaryVertex (const VertexContainer *vtxC) const
 retrieve pvx if not given More...
 
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...
 

Static Private Member Functions

static void initresult (TrackIsolation &result, TrackCorrection corrlist, unsigned int typesize)
 init result struct More...
 

Private Attributes

SG::ReadHandleKey< TrackParticleContainerm_indetTrackParticleLocation
 track particle location More...
 
Gaudi::Property< boolm_simpleIsolation {this, "SimpleIsolation", false}
 flag to select calculation type More...
 
Gaudi::Property< floatm_overlapCone {this, "OverlapCone", 0.1}
 
float m_overlapCone2 = 0.0F
 
Gaudi::Property< floatm_coreTrackEtaRange
 overlap cone size squared More...
 
bool m_useLooseTrackCore {false}
 Whether the loose core track eta range is used. More...
 
ToolHandle< ITrackParticlesInConeToolm_tracksInConeTool
 tracks in cone tool More...
 
ToolHandle< InDet::IInDetTrackSelectionToolm_trkselTool
 selection of tracks More...
 
ToolHandle< CP::ITrackVertexAssociationToolm_ttvaTool
 Select tracks associated to the vertex. More...
 
bool m_useTTVATool {false}
 Use the ttva tool. Set to true if one was provided. More...
 
SG::ReadHandleKey< VertexContainerm_vertexLocation
 
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
 

Static Private Attributes

static constexpr float m_2PI = 2*M_PI
 define 2*Pi More...
 

Detailed Description

Definition at line 38 of file TrackIsolationTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ TPVec

Create a constructor for Athena.

Definition at line 43 of file TrackIsolationTool.h.

Constructor & Destructor Documentation

◆ TrackIsolationTool()

xAOD::TrackIsolationTool::TrackIsolationTool ( const std::string &  name)

constructor

Definition at line 27 of file TrackIsolationTool.cxx.

27  :
29  {
30 #ifndef XAOD_ANALYSIS
31  declareInterface<ITrackIsolationTool>(this);
32 #endif // XAOD_ANALYSIS
33  }

◆ ~TrackIsolationTool()

xAOD::TrackIsolationTool::~TrackIsolationTool ( void  )
virtualdefault

destructor

Member Function Documentation

◆ add()

void xAOD::TrackIsolationTool::add ( TrackIsolationInput input,
const TrackParticle tp2,
TrackIsolation result 
) const
private

add track particle to isolation calculation

sum up particle to the different cones

Definition at line 235 of file TrackIsolationTool.cxx.

236  {
237  // check if track pointer matches the one of input or one of the exclusion set
238  // Jon Burr: I'm not completely convinced by the use of CoreTrackEtaRange.
239  // With this setup, if you're running in simple isolation mode any track
240  // within the same eta slice (even on the other side of the detector) will
241  // be included in the eta code. If you manually provide a track particle
242  // container then the tool automatically runs in this simple mode...
243  // This is fine in IsolationBuilder (the main client) but could produce
244  // unexpected results with other users
245  if(input.corrections.trackbitset.test(static_cast<unsigned int>(Iso::coreTrackPtr))){
246  if(input.particle == &tp2 ||
247  (input.exclusionSet && input.exclusionSet->count(&tp2)) ||
248  (m_useLooseTrackCore && std::abs(input.particle->eta() - tp2.eta()) < m_coreTrackEtaRange)){
249  ATH_MSG_DEBUG("track pointer " << &tp2 << ", track pt = " << tp2.pt() << ", input pt = " << input.particle->pt()) ;
250  result.coreCorrections[Iso::coreTrackPtr] += tp2.pt();
251  return;
252  }
253  }
254 
255  // check eta
256  float deta = input.particle->eta()-tp2.eta();
257  if( fabs(deta) > input.maxRadius ) return;
258 
259  // check phi
260  float dphi = phiInRange(input.particle->phi()-tp2.phi());
261  if( fabs(dphi) > input.maxRadius ) return;
262 
263  // check dr2
264  float dr2 = deta*deta + dphi*dphi;
265 
266  // check cone if using cone based overlap removal
267  if(input.corrections.trackbitset.test(static_cast<unsigned int>(Iso::coreTrackCone))
268  && dr2 < m_overlapCone2 ) {
269  result.coreCorrections[Iso::coreTrackCone] += tp2.pt();
270  return;
271  }
272 
274  for( unsigned int k=0;k<input.coneSizesSquared.size();++k ){
275  if( dr2 >= input.coneSizesSquared[k] ) return;
276  result.ptcones[k] += tp2.pt();
277  if( dr2 <= input.ptvarconeRadiusSquared ){
278  result.ptvarcones_10GeVDivPt[k] += tp2.pt();
279  }
280  }
281  }

◆ binnedIsolation()

bool xAOD::TrackIsolationTool::binnedIsolation ( TrackIsolationInput input,
TrackIsolation result 
) const
private

using TracksInConeTool

prepare look-up structure

Definition at line 176 of file TrackIsolationTool.cxx.

177  {
179  std::vector<const TrackParticle*> tps;
180 #ifndef XAOD_ANALYSIS
181  if( !m_tracksInConeTool->particlesInCone(input.particle->eta(),input.particle->phi(),input.maxRadius,tps) ) return false;
182 #else
183  if( !getparticlesInCone(input.particle->eta(),input.particle->phi(),input.maxRadius,tps) ) return false;
184 #endif
185 
186  for( const auto& tp : tps ) {
187  if( (!m_trkselTool->accept( *tp , input.vertex)) ||
188  (m_useTTVATool && (!input.vertex || !m_ttvaTool->isCompatible(*tp, *input.vertex)))){
189  if (m_useTTVATool && !input.vertex){
190  ATH_MSG_DEBUG("Encountered a track isolation input with invalid vertex while requiring TTVA. Rejecting, please check your inputs!");
191  }
192  ATH_MSG_DEBUG("reject track pt = " << tp->pt());
193  continue;
194  } else{
195  ATH_MSG_DEBUG("Accept track " << tp << " pt = " << tp->pt() << " z+vz = " << tp->z0()+tp->vz() << " eta = " << tp->eta() << " phi = " << tp->phi());
196  }
197  add( input,*tp, result );
198 
199  }
200  return true;
201  }

◆ 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

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ getReferenceParticle()

const IParticle * xAOD::TrackIsolationTool::getReferenceParticle ( const IParticle particle) const
private

get reference particle

Print a warning for the case that no primary track was found. Given that eta/phi/pt are the same for the primary track and the muon track... Do not return a nullptr

Definition at line 88 of file TrackIsolationTool.cxx.

88  {
89  if( particle.type() == xAOD::Type::ObjectType::Muon) {
90  const Muon* muon = static_cast<const Muon*>(&particle);
91  const xAOD::TrackParticle* tp = muon->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
92  if( !tp ) tp = muon->primaryTrackParticle();
93  if( !tp ) {
96  ATH_MSG_WARNING(" No TrackParticle found for muon with pT: " <<muon->pt() * 1.e-3 <<"[GeV], eta: "<<muon->eta()<<" phi: "<<
97  muon->phi()<<" q: "<<muon->charge()<<" primaryAuthor: "<<muon->author()<< " allAuthors: "<<muon->allAuthors());
98  } else return tp;
99  }
100  return &particle;
101  }

◆ initialize()

StatusCode xAOD::TrackIsolationTool::initialize ( )
overridevirtual

initialize

square cone

Reimplemented from asg::AsgTool.

Definition at line 40 of file TrackIsolationTool.cxx.

41  {
42 #ifndef XAOD_ANALYSIS
43  ATH_CHECK(m_tracksInConeTool.retrieve( DisableTool{m_simpleIsolation} ));
44 #endif // XAOD_ANALYSIS
45 
46  if(m_trkselTool.retrieve().isFailure()){
47  ATH_MSG_FATAL("Could not retrieve InDetTrackSelectionTool");
48  return StatusCode::FAILURE;
49  }
50  if (!m_ttvaTool.empty()) {
51  ATH_MSG_DEBUG("Use TTVA tool " << m_ttvaTool);
52  m_useTTVATool = true;
53  ATH_CHECK( m_ttvaTool.retrieve() );
54  }
55  else
56  ATH_MSG_DEBUG("Will not use TTVA tool");
57 
60 
61  // the read handles
63  if (!m_vertexLocation.key().empty())
64  ATH_CHECK(m_vertexLocation.initialize());
65 
66  if (m_coreTrackEtaRange.value() > 0)
67  m_useLooseTrackCore = true;
68 
69  return StatusCode::SUCCESS;
70  }

◆ initresult()

void xAOD::TrackIsolationTool::initresult ( TrackIsolation result,
TrackCorrection  corrlist,
unsigned int  typesize 
)
staticprivate

init result struct

Definition at line 283 of file TrackIsolationTool.cxx.

285  {
286 
287  result.corrlist = corrlist;
288  result.coreCorrections.clear();
289  result.ptcones.resize(typesize,0.);
290  result.ptvarcones_10GeVDivPt.resize(typesize,0.);
291 
292  std::vector<float> vec;
293  vec.resize(typesize,0.);
294 
295  for(unsigned int i=0;i<static_cast<unsigned int>(Iso::numIsolationTrackCorrections);i++){
296  result.coreCorrections[static_cast<Iso::IsolationTrackCorrection>(i)] = 0.;
297  }
298  }

◆ 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.

◆ 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  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ 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.

◆ phiInRange()

float xAOD::TrackIsolationTool::phiInRange ( float  phi) const
inlineprivate

hepler function to ensure phi is within +-Pi

Definition at line 92 of file TrackIsolationTool.h.

92  {
93  while (phi >= M_PI) phi -= m_2PI;
94  while (phi < -M_PI) phi += m_2PI;
95  return phi;
96  }

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ 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  }

◆ retrieveIDBestPrimaryVertex()

const Vertex * xAOD::TrackIsolationTool::retrieveIDBestPrimaryVertex ( const VertexContainer vtxC) const
private

retrieve pvx if not given

Definition at line 72 of file TrackIsolationTool.cxx.

73  {
74  if (vtxC) {
75  if (vtxC->empty()) {
76  ATH_MSG_INFO("No vertex in container.");
77  return nullptr;
78  }
79  // In fact, should rather do like that, in case front is not PriVtx
80  for (const auto* const vtx : *vtxC ) {
81  if (vtx->vertexType() == xAOD::VxType::PriVtx)
82  return vtx;
83  }
84  }
85  return nullptr;
86  }

◆ simpleIsolation()

bool xAOD::TrackIsolationTool::simpleIsolation ( TrackIsolationInput input,
TrackIsolation result,
const TrackParticleContainer indetTrackParticles = 0 
) const
private

simple isolation (loop)

retrieve track particles if not passed into the interface

Definition at line 203 of file TrackIsolationTool.cxx.

204  {
205 
208  if( !indetTrackParticles ) {
210  if (!tpH.isValid()) {
211  ATH_MSG_ERROR("Could not open a TrackParticle container with key "
213  return false;
214  }
215  indetTrackParticles = tpH.ptr();
216  }
217 
218  // exit if not track particles found
219  if( !indetTrackParticles ) return false;
220 
221  // loop over all track particles
222  for( const auto *const tp : *indetTrackParticles ) {
223  if( (!m_trkselTool->accept(*tp, input.vertex)) ||
224  (m_useTTVATool && !m_ttvaTool->isCompatible(*tp, *input.vertex))){
225  ATH_MSG_DEBUG("[2] reject track pt = " << tp->pt());
226  continue;
227  }
228 
229  add( input, *tp, result );
230  }
231 
232  return true;
233  }

◆ 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.

◆ trackIsolation()

bool xAOD::TrackIsolationTool::trackIsolation ( TrackIsolation result,
const IParticle tp,
const std::vector< Iso::IsolationType > &  cones,
TrackCorrection  corrections,
const Vertex vertex = 0,
const std::set< const TrackParticle * > *  exclusionSet = 0,
const TrackParticleContainer indetTrackParticles = 0 
) const
overridevirtual

ITrackIsolationTool interface:

prepare input

get track particle

Implements xAOD::ITrackIsolationTool.

Definition at line 104 of file TrackIsolationTool.cxx.

110  {
112  // If not vertex is given, use the ID best one. If one does not want to cut on z0sinT, use the TrackSelectionTool config
114  if (vertex == nullptr && !m_vertexLocation.key().empty()) {
116  if (!vtxH.isValid()) {
117  ATH_MSG_ERROR("Did not find a vertex container with key " << m_vertexLocation.key());
118  return false;
119  }
121  if (vertex)
122  ATH_MSG_DEBUG("No vertex provided, is required. Use the ID-chosen pvx, z = " << vertex->z());
123  }
124 
127  if( !tp ){
128  ATH_MSG_WARNING("Failed to obtain reference particle");
129  return false;
130  }
131  if (tp->pt() <= 0.)
132  ATH_MSG_WARNING("A particle of type " << particle.type() << " with strange pT : " << tp->pt()*1e-3 << " GeV");
133  TrackIsolationInput input( tp, corrbitset, vertex, exclusionSet );
134 
135  for( auto isoType : isoTypes ){
136  Iso::IsolationFlavour flavour = Iso::isolationFlavour(isoType);
137  if( flavour != Iso::ptcone ) {
138  ATH_MSG_WARNING("Unsupported isolation type passed, cannot calculate isolation " << Iso::toCString(isoType));
139  return false;
140  }
141  float conesize = Iso::coneSize(isoType);
142  input.coneSizesSquared.push_back(conesize*conesize);
143  }
144 
145  for(size_t i=1; i<input.coneSizesSquared.size(); i++){
146  if(input.coneSizesSquared[i]>input.coneSizesSquared[i-1]) ATH_MSG_ERROR("Isolation Cone should be in decreasing order. "<< i << "th variable is " << Iso::toCString(isoTypes[i]) << " is larger than the one before it: " << Iso::toCString(isoTypes[i-1]));
147  }
148 
149  std::sort(input.coneSizesSquared.begin(),input.coneSizesSquared.end(),[](float i, float j) { return i>j; });
150 
151  initresult(result, corrbitset, input.coneSizesSquared.size());
152 
153  input.maxRadius = sqrt(input.coneSizesSquared[0]);
154 
155  bool success = false;
156  // run isolation code
157  if( indetTrackParticles ) success = simpleIsolation(input,result,indetTrackParticles);
158  else if( m_simpleIsolation ) success = simpleIsolation(input,result);
159  else success = binnedIsolation(input,result);
160 
161  if( msgLvl(MSG::DEBUG) ){
162  if( !success ){
163  ATH_MSG_DEBUG(" Track isolation calculation failed");
164  }else{
165  msg(MSG::DEBUG) << "Calculated track isolation: ";
166  for( unsigned int i = 0; i< result.ptcones.size();++i ){
167  msg(MSG::DEBUG) << " coneSizeSquared " << std::setw(3) << input.coneSizesSquared[i] << " value " << result.ptcones[i];
168  }
169  msg(MSG::DEBUG) << endmsg;
170  }
171  }
172  return success;
173  }

◆ 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_2PI

constexpr float xAOD::TrackIsolationTool::m_2PI = 2*M_PI
staticconstexprprivate

define 2*Pi

Definition at line 89 of file TrackIsolationTool.h.

◆ m_coreTrackEtaRange

Gaudi::Property<float> xAOD::TrackIsolationTool::m_coreTrackEtaRange
private
Initial value:
{this,
"CoreTrackEtaRange", 0.0, "The maximum eta range to consider something a core track"}

overlap cone size squared

The maximum eta range to consider something a core track

Definition at line 129 of file TrackIsolationTool.h.

◆ 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_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_indetTrackParticleLocation

SG::ReadHandleKey<TrackParticleContainer> xAOD::TrackIsolationTool::m_indetTrackParticleLocation
private
Initial value:
{this,
"TrackParticleLocation", "InDetTrackParticles"}

track particle location

Definition at line 118 of file TrackIsolationTool.h.

◆ m_overlapCone

Gaudi::Property<float> xAOD::TrackIsolationTool::m_overlapCone {this, "OverlapCone", 0.1}
private

Definition at line 124 of file TrackIsolationTool.h.

◆ m_overlapCone2

float xAOD::TrackIsolationTool::m_overlapCone2 = 0.0F
private

Definition at line 126 of file TrackIsolationTool.h.

◆ m_simpleIsolation

Gaudi::Property<bool> xAOD::TrackIsolationTool::m_simpleIsolation {this, "SimpleIsolation", false}
private

flag to select calculation type

Definition at line 122 of file TrackIsolationTool.h.

◆ m_tracksInConeTool

ToolHandle<ITrackParticlesInConeTool> xAOD::TrackIsolationTool::m_tracksInConeTool
private
Initial value:
{this,
"TracksInConeTool", "xAOD::TrackParticlesInConeTool/TrackParticlesInConeTool"}

tracks in cone tool

Definition at line 135 of file TrackIsolationTool.h.

◆ m_trkselTool

ToolHandle<InDet::IInDetTrackSelectionTool> xAOD::TrackIsolationTool::m_trkselTool
private
Initial value:
{this,
"TrackSelectionTool", "InDet::InDetTrackSelectionTool/TrackSelectionTool"}

selection of tracks

Definition at line 139 of file TrackIsolationTool.h.

◆ m_ttvaTool

ToolHandle<CP::ITrackVertexAssociationTool> xAOD::TrackIsolationTool::m_ttvaTool
private
Initial value:
{this,
"TTVATool", "", "Optional track to vertex association tool to filter tracks"}

Select tracks associated to the vertex.

Definition at line 143 of file TrackIsolationTool.h.

◆ m_useLooseTrackCore

bool xAOD::TrackIsolationTool::m_useLooseTrackCore {false}
private

Whether the loose core track eta range is used.

Definition at line 132 of file TrackIsolationTool.h.

◆ m_useTTVATool

bool xAOD::TrackIsolationTool::m_useTTVATool {false}
private

Use the ttva tool. Set to true if one was provided.

Definition at line 146 of file TrackIsolationTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexLocation

SG::ReadHandleKey<VertexContainer> xAOD::TrackIsolationTool::m_vertexLocation
private
Initial value:
{this,
"VertexLocation", "PrimaryVertices"}

Definition at line 148 of file TrackIsolationTool.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
xAOD::name
name
Definition: TriggerMenuJson_v1.cxx:29
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
xAOD::TrackIsolationTool::binnedIsolation
bool binnedIsolation(TrackIsolationInput &input, TrackIsolation &result) const
using TracksInConeTool
Definition: TrackIsolationTool.cxx:176
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
xAOD::TrackIsolationTool::retrieveIDBestPrimaryVertex
const Vertex * retrieveIDBestPrimaryVertex(const VertexContainer *vtxC) const
retrieve pvx if not given
Definition: TrackIsolationTool.cxx:72
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
beamspotPlotBcids.k
k
Definition: beamspotPlotBcids.py:524
get_generator_info.result
result
Definition: get_generator_info.py:21
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::TrackIsolationTool::m_overlapCone
Gaudi::Property< float > m_overlapCone
Definition: TrackIsolationTool.h:124
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::TrackIsolationTool::m_vertexLocation
SG::ReadHandleKey< VertexContainer > m_vertexLocation
Definition: TrackIsolationTool.h:148
xAOD::TrackIsolationTool::m_ttvaTool
ToolHandle< CP::ITrackVertexAssociationTool > m_ttvaTool
Select tracks associated to the vertex.
Definition: TrackIsolationTool.h:143
xAOD::TrackIsolationTool::m_useTTVATool
bool m_useTTVATool
Use the ttva tool. Set to true if one was provided.
Definition: TrackIsolationTool.h:146
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
xAOD::Iso::IsolationFlavour
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Definition: IsolationFlavour.h:17
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::Iso::coreTrackPtr
@ coreTrackPtr
tracks pointer
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:66
xAOD::TrackIsolationTool::m_trkselTool
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkselTool
selection of tracks
Definition: TrackIsolationTool.h:139
M_PI
#define M_PI
Definition: ActiveFraction.h:11
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
xAOD::TrackIsolationTool::m_tracksInConeTool
ToolHandle< ITrackParticlesInConeTool > m_tracksInConeTool
tracks in cone tool
Definition: TrackIsolationTool.h:135
ParticleTest.tp
tp
Definition: ParticleTest.py:25
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::Iso::numIsolationTrackCorrections
@ numIsolationTrackCorrections
unknown
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:75
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:269
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
xAOD::TrackIsolationTool::getReferenceParticle
const IParticle * getReferenceParticle(const IParticle &particle) const
get reference particle
Definition: TrackIsolationTool.cxx:88
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:92
xAOD::TrackIsolationTool::m_indetTrackParticleLocation
SG::ReadHandleKey< TrackParticleContainer > m_indetTrackParticleLocation
track particle location
Definition: TrackIsolationTool.h:118
xAOD::TrackIsolationTool::m_2PI
static constexpr float m_2PI
define 2*Pi
Definition: TrackIsolationTool.h:89
xAOD::e
setPy e
Definition: CompositeParticle_v1.cxx:166
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
xAOD::Iso::ptcone
@ ptcone
Track isolation.
Definition: IsolationFlavour.h:22
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::Iso::coreTrackCone
@ coreTrackCone
tracks in cone
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:69
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
xAOD::TrackIsolationTool::phiInRange
float phiInRange(float phi) const
hepler function to ensure phi is within +-Pi
Definition: TrackIsolationTool.h:92
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
xAOD::Iso::isolationFlavour
IsolationFlavour isolationFlavour(IsolationType type)
convert Isolation Type into Isolation Flavour
Definition: IsolationHelpers.h:47
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
xAOD::Iso::IsolationTrackCorrection
IsolationTrackCorrection
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:61
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
xAOD::TrackIsolationTool::add
void add(TrackIsolationInput &input, const TrackParticle &tp2, TrackIsolation &result) const
add track particle to isolation calculation
Definition: TrackIsolationTool.cxx:235
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
xAOD::TrackIsolationTool::m_coreTrackEtaRange
Gaudi::Property< float > m_coreTrackEtaRange
overlap cone size squared
Definition: TrackIsolationTool.h:129
Muon
struct TBPatternUnitContext Muon
SG::ReadHandle::ptr
const_pointer_type ptr()
Dereference the pointer.
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
h
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::TrackIsolationTool::initresult
static void initresult(TrackIsolation &result, TrackCorrection corrlist, unsigned int typesize)
init result struct
Definition: TrackIsolationTool.cxx:283
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
xAOD::TrackIsolationTool::simpleIsolation
bool simpleIsolation(TrackIsolationInput &input, TrackIsolation &result, const TrackParticleContainer *indetTrackParticles=0) const
simple isolation (loop)
Definition: TrackIsolationTool.cxx:203
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::TrackIsolationTool::m_overlapCone2
float m_overlapCone2
Definition: TrackIsolationTool.h:126
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::TrackIsolationTool::m_simpleIsolation
Gaudi::Property< bool > m_simpleIsolation
flag to select calculation type
Definition: TrackIsolationTool.h:122
SG::DataProxy
Definition: DataProxy.h:44
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
xAOD::Iso::coneSize
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
Definition: IsolationHelpers.h:27
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::TrackIsolationTool::m_useLooseTrackCore
bool m_useLooseTrackCore
Whether the loose core track eta range is used.
Definition: TrackIsolationTool.h:132