ATLAS Offline Software
Loading...
Searching...
No Matches
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
14
16#include "AsgTools/IAsgTool.h"
17#include "AsgTools/AsgTool.h"
19#include "AthLinks/ElementLink.h"
20
22#include <string>
23#include <vector>
24
26
27namespace IDTPM {
28
30
31 typedef struct {
32 float z;
33 float r;
34 float tantheta;
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
55 StatusCode selectTracksInRoI(
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
virtual StatusCode initialize() override
Initialize.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_triggerTrkParticleName
Trigger TrackParticleContainer's name.
ASG_TOOL_CLASS(TrackRoiSelectionTool, IAsgTool)
virtual ~TrackRoiSelectionTool()=default
Destructor.
float getOuterPhi(float pt, float phi, float r=1000.) const
std::vector< const T * > getTracks(const std::vector< const T * > &tvec, const TrigRoiDescriptor *r) const
track getter function (for offline tracks or truth particles)
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
TrigDecTool.
bool accept(const T &t, const TrigRoiDescriptor *r) const
geometric RoI filters - for non-trigger tracks (e.g. offline, truth, etc.)
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.
exitPoint_t getExitPoint(float tz0, float teta) const
Geometric utility methods for track-RoI association.
StatusCode selectTracksInRoI(TrackAnalysisCollections &trkAnaColls, const ElementLink< TrigRoiDescriptorCollection > &roiLink)
Main Track selection method.
TrackRoiSelectionTool(const std::string &name)
Constructor.
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
int r
Definition globals.cxx:22
Athena include(s).
float phi(const U &p)