ATLAS Offline Software
Loading...
Searching...
No Matches
TrackPairsSelector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETCONVERSIONFINDERTOOLS_TRACKPAIRSSELECTOR_H
6#define INDETCONVERSIONFINDERTOOLS_TRACKPAIRSSELECTOR_H
7
9#include "GaudiKernel/ToolHandle.h"
14
15namespace Trk {
16class Track;
17}
18
19namespace InDet {
25
27{
28
29public:
30 struct Cache
31 {
33 float m_distance = 9999.;
35 float m_deltaCotTheta = 9999.;
37 float m_deltaInit = 9999.;
38 };
39
40 TrackPairsSelector(const std::string& type,
41 const std::string& name,
42 const IInterface* parent);
43
44 virtual ~TrackPairsSelector() = default;
45
46 static const InterfaceID& interfaceID();
47
48 virtual StatusCode initialize() override;
49 virtual StatusCode finalize() override;
50
54 const xAOD::TrackParticle* trkPneg,
55 Cache& cache) const;
56
57 bool selectTrackPair(const Trk::Track* trkpos,
58 const Trk::Track* trkneg) const;
59
62 static std::map<std::string, float> getLastValues(const Cache& cache) ;
63
64private:
66 ToolHandle<InDet::ConversionFinderUtils> m_helpertool{
67 this,
68 "ConversionFinderHelperTool",
69 "InDet::ConversionFinderUtils",
70 "Conversion helper tool"
71 };
72
73 ToolHandle<Trk::ITrkDistanceFinder> m_distanceTool{
74 this,
75 "DistanceTool",
76 "Trk::SeedNewtonTrkDistanceFinder",
77 "Distance of minimum approach tool"
78 };
79
80
81 DoubleProperty m_maxR
82 {this, "MaxFirstHitRadius", 500.,
83 "Maximum initial hit radius in order to apply the impact point cut"};
84 DoubleProperty m_MinTrkAngle
85 {this, "MinTrackAngle", 0.,
86 "Minimum allowed angle between decay tracks. Used only in V0 reconstruction."};
87 DoubleArrayProperty m_maxDist
88 {this, "MaxDistBetweenTracks", {8., 80., 45.},
89 "Maximum allowed distance of minimum approach"};
90 DoubleArrayProperty m_etaCut
91 {this, "MaxEta", {0.8, 1.2, 1.2},
92 "Maximum eta difference between tracks in pair"};
93 DoubleArrayProperty m_initCut
94 {this, "MaxInitDistance", {10000., 10000., 10000.},
95 "Maximum distance difference between initial hits of tracks in pair"};
96};
97}
98#endif // INDETCONVERSIONFINDERTOOLS_TRACKPAIRSSELECTOR_H
99
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
ToolHandle< Trk::ITrkDistanceFinder > m_distanceTool
Distance of minimum approach tool.
static const InterfaceID & interfaceID()
ToolHandle< InDet::ConversionFinderUtils > m_helpertool
Conversion helper tool.
DoubleArrayProperty m_etaCut
bool selectTrackParticlePair(const xAOD::TrackParticle *trkPpos, const xAOD::TrackParticle *trkPneg, Cache &cache) const
Track pair selectors.Return true if the argument track fulfills the selection.
virtual StatusCode finalize() override
bool selectTrackPair(const Trk::Track *trkpos, const Trk::Track *trkneg) const
virtual ~TrackPairsSelector()=default
DoubleProperty m_maxR
Properties for track selection: all cuts are ANDed.
DoubleArrayProperty m_initCut
static std::map< std::string, float > getLastValues(const Cache &cache)
Return a map with the values calculated for the last pair to decorate the vertex once it is created.
TrackPairsSelector(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize() override
DoubleArrayProperty m_maxDist
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
float m_deltaCotTheta
Delta cot theta between the tracks.
float m_distance
Distance of closest approach between the tracks.
float m_deltaInit
Distance difference between initial hits of tracks.