ATLAS Offline Software
TrackRoiSelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETTRACKPERFMON_TRACKROISELECTIONTOOL_H
6 #define INDETTRACKPERFMON_TRACKROISELECTIONTOOL_H
7 
15 #include "AsgTools/IAsgTool.h"
17 #include "AsgTools/AsgTool.h"
19 #include "AthLinks/ElementLink.h"
20 
22 #include <string>
23 #include <vector>
24 
26 
27 namespace IDTPM {
28 
29  class TrackAnalysisCollections;
30 
31  typedef struct {
32  float z;
33  float r;
34  float tantheta;
35  } exitPoint_t;
36 
38  public virtual asg::IAsgTool,
39  public asg::AsgTool {
40 
41  public:
42 
44 
46  TrackRoiSelectionTool( const std::string& name );
47 
49  virtual ~TrackRoiSelectionTool() = default;
50 
52  virtual StatusCode initialize() override;
53 
56  TrackAnalysisCollections& trkAnaColls,
58 
60  template< class T >
61  bool accept( const T& t, const TrigRoiDescriptor* r ) const;
62 
64  template< class T >
65  std::vector< const T* > getTracks(
66  const std::vector< const T* >& tvec,
67  const TrigRoiDescriptor* r ) const;
68 
70  std::vector< const xAOD::TrackParticle* > getTrigTracks(
71  const std::vector< const xAOD::TrackParticle* >& tvec,
72  const ElementLink< TrigRoiDescriptorCollection >& roiLink ) const;
73 
74  private:
75 
77  exitPoint_t getExitPoint( float tz0, float teta ) const;
78 
79  float getOuterPhi( float pt, float phi, float r=1000. ) const;
80 
83  this, "TriggerTrkParticleContainerName", "", "Name of container of trigger tracks" };
84 
86  PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool {
87  this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", "" };
88 
89  }; // class TrackRoiSelectionTool
90 
91 } // namespace IDTPM
92 
93 
94 #endif // > !INDETTRACKPERFMON_TRACKROISELECTIONTOOL_H
IDTPM::exitPoint_t::tantheta
float tantheta
Definition: TrackRoiSelectionTool.h:34
beamspotman.r
def r
Definition: beamspotman.py:676
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:46
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
test_pyathena.pt
pt
Definition: test_pyathena.py:11
IDTPM::exitPoint_t
Definition: TrackRoiSelectionTool.h:31
TrigDecisionTool.h
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
Definition: TrigRoiDescriptor.h:56
IDTPM::TrackRoiSelectionTool::selectTracksInRoI
StatusCode selectTracksInRoI(TrackAnalysisCollections &trkAnaColls, const ElementLink< TrigRoiDescriptorCollection > &roiLink)
Main Track selection method.
Definition: TrackRoiSelectionTool.cxx:264
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::ReadHandleKey< xAOD::TrackParticleContainer >
IDTPM::TrackRoiSelectionTool::getOuterPhi
float getOuterPhi(float pt, float phi, float r=1000.) const
Definition: TrackRoiSelectionTool.cxx:128
IDTPM::TrackRoiSelectionTool::getTrigTracks
std::vector< const xAOD::TrackParticle * > getTrigTracks(const std::vector< const xAOD::TrackParticle * > &tvec, const ElementLink< TrigRoiDescriptorCollection > &roiLink) const
TrigDecTool- and EventView-based getter function for trigger tracks.
Definition: TrackRoiSelectionTool.cxx:232
IDTPM::TrackRoiSelectionTool::initialize
virtual StatusCode initialize() override
Initialize.
Definition: TrackRoiSelectionTool.cxx:38
IDTPM::phi
float phi(const U &p)
Definition: TrackParametersHelper.h:61
IDTPM::TrackRoiSelectionTool::getTracks
std::vector< const T * > getTracks(const std::vector< const T * > &tvec, const TrigRoiDescriptor *r) const
track getter function (for offline tracks or truth particles)
Definition: TrackRoiSelectionTool.cxx:199
IDTPM::TrackRoiSelectionTool::accept
bool accept(const T &t, const TrigRoiDescriptor *r) const
geometric RoI filters - for non-trigger tracks (e.g. offline, truth, etc.)
Definition: TrackRoiSelectionTool.cxx:57
IDTPM::TrackRoiSelectionTool::m_triggerTrkParticleName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_triggerTrkParticleName
Trigger TrackParticleContainer's name.
Definition: TrackRoiSelectionTool.h:82
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IDTPM::exitPoint_t::r
float r
Definition: TrackRoiSelectionTool.h:33
IAsgTool.h
IDTPM::TrackRoiSelectionTool::~TrackRoiSelectionTool
virtual ~TrackRoiSelectionTool()=default
Destructor.
IDTPM::TrackRoiSelectionTool::m_trigDecTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
TrigDecTool.
Definition: TrackRoiSelectionTool.h:86
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
IDTPM::TrackRoiSelectionTool::ASG_TOOL_CLASS
ASG_TOOL_CLASS(TrackRoiSelectionTool, IAsgTool)
IDTPM::exitPoint_t::z
float z
Definition: TrackRoiSelectionTool.h:32
IDTPM::TrackRoiSelectionTool::getExitPoint
exitPoint_t getExitPoint(float tz0, float teta) const
Geometric utility methods for track-RoI association.
Definition: TrackRoiSelectionTool.cxx:156
TrigRoiDescriptorCollection
Definition: TrigRoiDescriptorCollection.h:21
IDTPM::TrackRoiSelectionTool
Definition: TrackRoiSelectionTool.h:39
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
AsgTool.h
IDTPM::TrackRoiSelectionTool::TrackRoiSelectionTool
TrackRoiSelectionTool(const std::string &name)
Constructor.
Definition: TrackRoiSelectionTool.cxx:30