![]() |
ATLAS Offline Software
|
doesn't actually need to be an algtool as it class variables, so requires no python configuration More...
#include <TrackRoiSelector.h>
Classes | |
| struct | exit_point |
Public Member Functions | |
| TrackRoiSelector () | |
| Constructor - self evidently. | |
| virtual | ~TrackRoiSelector ()=default |
| Destructor. | |
| template<class T> | |
| bool | accept (const T &t, const TrigRoiDescriptor *r) const |
| geometric RoI filters - for non-trigger tracks (e.g. offline, truth, etc.) | |
| template<class T> | |
| std::vector< const T * > | getTracks (const std::vector< const T * > &tracks, const TrigRoiDescriptor *roi) const |
| track getter function (for offline tracks || truth particles) | |
Private Member Functions | |
| exit_point | getExitPoint (float tz0, float teta) const |
| why are there these "exit point functions ? | |
| std::optional< double > | getOuterPhi (float pt, float phi, float r=1000.) const |
doesn't actually need to be an algtool as it class variables, so requires no python configuration
Definition at line 30 of file TrackRoiSelector.h.
|
inline |
|
virtualdefault |
Destructor.
| template bool IDTPM2::TrackRoiSelector::accept | ( | const T & | t, |
| const TrigRoiDescriptor * | r ) const |
geometric RoI filters - for non-trigger tracks (e.g. offline, truth, etc.)
accept method for truth particles
Athena include(s).
Local include(s) STD includes
should really throw an exception
NB: This isn't actually correct - the tracks can bend out of the RoI even if the perigee phi is within the Roi so we check the outer phi limit later ...
must be contained along the beamline ...
this is actually wrong, but hey ho. It is even needed ?
calculation of approximate z position of the track at radius r && test if track within that z position at radius r
full check to determine whether a track is fully contained in the Roi (when used in conjunction with contained_zed above) sadly this will recalculate the Roi limits for every track, which is why the earlier version took this stuff from the Roi itself - will need to go back to that at some point,
now check phi taking account of the track transverse curvature NB: need to check the pt is properly signed
Definition at line 27 of file TrackRoiSelector.cxx.
|
private |
why are there these "exit point functions ?
Actually, this class should really be implemented as inheriting from an ITrackSelector.
should we not use the versions in the RoiDescriptor ? this is actually a largely copy of a TrigRoiDescriptor function Geometric utility methods for track-RoI association
not quite right, because it might be passing out through the rear endcap
leaves through the barrel side || front face?
through the barrel edge actually need to calculate the z exit coordinate
for proper containment rather than spurious "eta containment"
Definition at line 151 of file TrackRoiSelector.cxx.
|
private |
calculate the (very approximate) phi position for a track at a radius r
track (signed) radius of curvature (if pt is signed)
make sure it escapes the radius in question
calculate new position
wrap to -pi to pi - is this correct when using floats ? NB: float(M_PI)>M_PI ? so use doubles for all the calculations
Definition at line 118 of file TrackRoiSelector.cxx.
| std::vector< const T * > IDTPM2::TrackRoiSelector::getTracks | ( | const std::vector< const T * > & | tracks, |
| const TrigRoiDescriptor * | roi ) const |
track getter function (for offline tracks || truth particles)
no point looking at tracks that never make it into the detector ...
Definition at line 77 of file TrackRoiSelector.h.