ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigMonitoring
TrigIDR4Monitoring
src
TrackRoiSelector.h
Go to the documentation of this file.
1
13
14
#ifndef IDTPM2_TRACKROISELECTOR_H
15
#define IDTPM2_TRACKROISELECTOR_H
16
17
#include "
TrigSteeringEvent/TrigRoiDescriptor.h
"
18
19
#include <string>
20
#include <vector>
21
#include <optional>
22
23
class
TrigRoiDescriptorCollection
;
24
25
namespace
IDTPM2
{
26
29
30
class
TrackRoiSelector
{
31
32
public
:
33
35
TrackRoiSelector
() { }
36
38
virtual
~TrackRoiSelector
() =
default
;
39
41
template
<
class
T>
42
bool
accept
(
const
T& t,
const
TrigRoiDescriptor
*
r
)
const
;
43
45
template
<
class
T>
46
std::vector<const T*>
getTracks
(
const
std::vector<const T*>& tracks,
47
const
TrigRoiDescriptor
* roi )
const
;
48
49
private
:
50
51
struct
exit_point
{
52
exit_point
(
double
z_=0,
double
r_=0 ) :
z
(z_),
r
(r_) { }
53
double
z
;
54
double
r
;
55
};
56
57
58
private
:
59
62
63
#if 1
66
exit_point
getExitPoint
(
float
tz0,
float
teta )
const
;
67
#endif
68
69
std::optional<double>
getOuterPhi
(
float
pt,
float
phi
,
float
r
=1000. )
const
;
70
71
};
// class TrackRoiSelector
72
73
}
// namespace IDTPM2
74
75
76
template
<
class
T>
77
std::vector<const T*>
IDTPM2::TrackRoiSelector::getTracks
(
const
std::vector<const T*>& tracks,
78
const
TrigRoiDescriptor
* roi )
const
{
79
80
// std::cout << "\n\n\tSUTT roi filter" << tvec.size() << "\t" << *roi << "\n" << std::endl;
81
82
std::vector<const T*> selectedTracks;
83
84
for
(
size_t
it=0 ; it<tracks.size() ; it++ ) {
85
86
const
T* track = tracks.at(it);
87
89
if
( track->pt()==0 )
continue
;
90
91
bool
keep =
accept<T>
( *track, roi );
92
93
// if ( keep ) std::cout << it << "\t" << *tvec[it] << "\taccept: " << keep << std::endl;
94
95
if
( keep ) selectedTracks.push_back( track );
96
}
97
98
// std::cout << "\tSUTT: " << selectedTracks.size() << std::endl;
99
100
return
selectedTracks;
101
}
102
103
104
105
106
#endif
// > !IDTPM2_TRACKROISELECTOR_H
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
TrigRoiDescriptor.h
IDTPM2::TrackRoiSelector::getTracks
std::vector< const T * > getTracks(const std::vector< const T * > &tracks, const TrigRoiDescriptor *roi) const
track getter function (for offline tracks || truth particles)
Definition
TrackRoiSelector.h:77
IDTPM2::TrackRoiSelector::TrackRoiSelector
TrackRoiSelector()
Constructor - self evidently.
Definition
TrackRoiSelector.h:35
IDTPM2::TrackRoiSelector::~TrackRoiSelector
virtual ~TrackRoiSelector()=default
Destructor.
IDTPM2::TrackRoiSelector::accept
bool accept(const T &t, const TrigRoiDescriptor *r) const
geometric RoI filters - for non-trigger tracks (e.g. offline, truth, etc.)
Definition
TrackRoiSelector.cxx:27
IDTPM2::TrackRoiSelector::getExitPoint
exit_point getExitPoint(float tz0, float teta) const
why are there these "exit point functions ?
Definition
TrackRoiSelector.cxx:151
IDTPM2::TrackRoiSelector::getOuterPhi
std::optional< double > getOuterPhi(float pt, float phi, float r=1000.) const
Definition
TrackRoiSelector.cxx:118
TrigRoiDescriptorCollection
Definition
TrigRoiDescriptorCollection.h:14
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
Definition
TrigRoiDescriptor.h:48
r
int r
Definition
globals.cxx:22
IDTPM2
Search the ancestor history, looking for an ancestor that satifies the predicate ....
Definition
AnalysisR4.h:31
IDTPM2::TrackRoiSelector::exit_point
Definition
TrackRoiSelector.h:51
IDTPM2::TrackRoiSelector::exit_point::r
double r
Definition
TrackRoiSelector.h:54
IDTPM2::TrackRoiSelector::exit_point::exit_point
exit_point(double z_=0, double r_=0)
Definition
TrackRoiSelector.h:52
IDTPM2::TrackRoiSelector::exit_point::z
double z
Definition
TrackRoiSelector.h:53
Generated on
for ATLAS Offline Software by
1.17.0