ATLAS Offline Software
Loading...
Searching...
No Matches
InDetConversionTrackSelectorTool.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 InDetTrackSelectorTool_InDetConversionTrackSelectorTool_H
6#define InDetTrackSelectorTool_InDetConversionTrackSelectorTool_H
7
12#include "GaudiKernel/EventContext.h"
13#include "GaudiKernel/ToolHandle.h"
23
24namespace Trk {
25class Vertex;
26class Track;
28}
29
30namespace InDet {
31
33 : virtual public Trk::ITrackSelectorTool
34 , public AthAlgTool
35{
36
37public:
38 virtual StatusCode initialize() override;
39
40 InDetConversionTrackSelectorTool(const std::string& t,
41 const std::string& n,
42 const IInterface* p);
43
45
47 virtual bool decision(const Trk::Track& track,
48 const Trk::Vertex* vertex) const override final;
49
51 virtual bool decision(const Trk::TrackParticleBase& track,
52 const Trk::Vertex* vertex) const override final;
53
54 virtual bool decision(const xAOD::TrackParticle&,
55 const xAOD::Vertex*) const override final;
56
57private:
59 {
60 uint8_t val;
61 if (!tp.summaryValue(val, type))
62 return 0;
63 return val > 0 ? val : 0;
64 }
65
66 // Get Eta bin for eta-dependent TRT-track cuts
67 unsigned int getEtaBin(const Trk::Perigee& perigee) const;
68
69 Amg::Vector3D getPosOrBeamSpot(const EventContext& ctx,
70 const xAOD::Vertex*) const;
71
72 ToolHandle<Trk::IExtrapolator> m_extrapolator{ this,
73 "Extrapolator",
74 "",
75 "Extrapolator Tool" };
77 this,
78 "BeamSpotKey",
79 "BeamSpotData",
80 "SG key for beam spot"
81 };
82 SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo_key{this, "EventInfo", "EventInfo", "Input event information"};
83 Gaudi::Property<bool> m_useEventInfoBs{this,"UseEventInfoBS",false};
84 Trk::Vertex* getBeamSpot(const EventContext& ctx) const;
86 DoubleProperty m_maxSiD0
87 {this, "maxSiD0", 35., "Maximal d0 at (0,0,0) for tracks with Si hits"};
88 DoubleProperty m_maxTrtD0
89 {this, "maxTrtD0", 100., "Maximal d0 at (0,0,0) for standalone TRT tracks"};
90 DoubleProperty m_maxSiZ0{this, "maxSiZ0", 200., "Maximal z0 at (0,0,0)"};
91 DoubleProperty m_maxTrtZ0
92 {this, "maxTrtZ0", 1200., "Maximal z0 at (0,0,0) for standalone TRT tracks"};
93 DoubleProperty m_minPt{this, "minPt", 500., "Minimum Pt of tracks"};
94 DoubleProperty m_trRatio1
95 {this, "RatioCut1", 0.5, "TR ratio for tracks with 15 or less TRT hits"};
96 DoubleProperty m_trRatio2
97 {this, "RatioCut2", 0.1, "TR ratio for tracks with 16 to 25 TRT hits"};
98 DoubleProperty m_trRatio3
99 {this, "RatioCut3", 0.05, "TR ratio for tracks with 26 or more TRT hits"};
100 DoubleProperty m_trRatioTRT
101 {this, "RatioTRT", 0.1, "TR ratio for all TRT only tracks"};
102
103 DoubleArrayProperty m_TRTTrksEtaBins
104 {this, "TRTTrksEtaBins",
105 {999., 999., 999., 999., 999., 999., 999., 999., 999., 999.},
106 "Eta bins (10 expected) for TRT-only track cuts"};
107 DoubleArrayProperty m_TRTTrksBinnedRatioTRT
108 {this, "TRTTrksBinnedRatioTRT", {0., 0., 0., 0., 0., 0., 0., 0., 0., 0.},
109 "Eta-binned eProbabilityHT for TRT-only track cuts"};
110
111 DoubleProperty m_trRatioV0
112 {this, "RatioV0", 1., "TR ratio for pion selection during V0 reconstruction"};
113 DoubleProperty m_sD0_Si
114 {this, "significanceD0_Si", 2., "Cut on D0 significance of Si tracks"};
115 DoubleProperty m_sD0_Trt
116 {this, "significanceD0_Trt", 0.5, "Cut on D0 significance of TRT tracks"};
117 DoubleProperty m_sZ0_Trt
118 {this, "significanceZ0_Trt", 3., "Cut on Z0 significance of TRT tracks"};
119
120 BooleanProperty m_isConv{this, "IsConversion", true, "Conversion flag"};
121 BooleanProperty m_PIDonlyForXe
122 {this, "PIDonlyForXe", false, "Only check TRT PID if all hits are Xe hits"};
123
124}; // end of class definitions
125} // end of namespace definitions
126
127#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
int getCount(const xAOD::TrackParticle &tp, xAOD::SummaryType type) const
unsigned int getEtaBin(const Trk::Perigee &perigee) const
virtual ~InDetConversionTrackSelectorTool()=default
Amg::Vector3D getPosOrBeamSpot(const EventContext &ctx, const xAOD::Vertex *) const
DoubleProperty m_maxSiD0
Properties for track selection:all cuts are ANDed.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
InDetConversionTrackSelectorTool(const std::string &t, const std::string &n, const IInterface *p)
Trk::Vertex * getBeamSpot(const EventContext &ctx) const
virtual bool decision(const Trk::Track &track, const Trk::Vertex *vertex) const override final
Select a Trk::Track.
Property holding a SG store/key/clid from which a ReadHandle is made.
The abstract interface base class for track selector tools.
This class is a simplest representation of a vertex candidate.
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
SummaryType
Enumerates the different types of information stored in Summary.