ATLAS Offline Software
TruthQualitySelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef INDETTRACKPERFMON_TRUTHQUALITYSELECTIONTOOL_H
5 #define INDETTRACKPERFMON_TRUTHQUALITYSELECTIONTOOL_H
6 
7 // Package includes
8 #include "ITrackSelectionTool.h"
12 
13 // Framework includes
14 #include "AsgTools/AsgTool.h"
15 #include "AsgTools/AnaToolHandle.h"
16 
17 // STL includes
18 #include <string>
19 
25 namespace IDTPM {
26 
28  public virtual IDTPM::ITrackSelectionTool,
29  public asg::AsgTool {
30 
31 public:
32 
34 
35  TruthQualitySelectionTool( const std::string& name );
36 
37  virtual StatusCode initialize() override;
38 
39  virtual StatusCode selectTracks(
40  TrackAnalysisCollections& trkAnaColls ) override;
41 
42  bool accept(const xAOD::TruthParticle* truth);
43 
44 private:
45 
46  ToolHandle< IAthSelectionTool > m_truthTool { this, "truthTool", {}, "Main truth selection tool" };
47  ToolHandle< InDet::IInDetTrackTruthOriginTool > m_trackTruthOriginTool {
48  this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool", "truth track origin tool" };
49 
50  FloatProperty m_minAbsEta { this, "minAbsEta", -9999., "Lower cut on |eta| for truth particles" };
51  FloatProperty m_minAbsPhi { this, "minAbsPhi", -9999., "Lower cut on |phi| for truth particles" };
52  FloatProperty m_maxAbsPhi { this, "maxAbsPhi", -9999., "Higher cut on |phi| for truth particles" };
53  FloatProperty m_minAbsD0 { this, "minAbsD0", -9999., "Lower cut on |d0| for truth particles" };
54  FloatProperty m_maxAbsD0 { this, "maxAbsD0", -9999., "Higher cut on |d0| for truth particles" };
55  FloatProperty m_minAbsZ0 { this, "minAbsZ0", -9999., "Lower cut on |z0| for truth particles" };
56  FloatProperty m_maxAbsZ0 { this, "maxAbsZ0", -9999., "Higher cut on |z0| for truth particles" };
57  FloatProperty m_minAbsQoPT { this, "minAbsQoPT", -9999., "Lower cut on |q/pt| for truth particles" };
58  FloatProperty m_maxAbsQoPT { this, "maxAbsQoPT", -9999., "Higher cut on |q/pt| for truth particles" };
59  FloatProperty m_minEta { this, "minEta", -9999., "Lower cut on eta for truth particles" };
60  FloatProperty m_maxEta { this, "maxEta", -9999., "Higher cut on eta for truth particles" };
61  FloatProperty m_minPhi { this, "minPhi", -9999., "Lower cut on phi for truth particles" };
62  FloatProperty m_maxPhi { this, "maxPhi", -9999., "Higher cut on phi for truth particles" };
63  FloatProperty m_minD0 { this, "minD0", -9999., "Lower cut on d0 for truth particles" };
64  FloatProperty m_maxD0 { this, "maxD0", -9999., "Higher cut on d0 for truth particles" };
65  FloatProperty m_minZ0 { this, "minZ0", -9999., "Lower cut on z0 for truth particles" };
66  FloatProperty m_maxZ0 { this, "maxZ0", -9999., "Higher cut on z0 for truth particles" };
67  FloatProperty m_minQoPT { this, "minQoPT", -9999., "Lower cut on q/pt for truth particles" };
68  FloatProperty m_maxQoPT { this, "maxQoPT", -9999., "Higher cut on q/pt for truth particles" };
69  BooleanProperty m_isHadron { this, "isHadron", false, "Select hadrons" };
70  BooleanProperty m_isPion { this, "isPion", false, "Select pions" };
71  BooleanProperty m_isFromB { this, "isFromB", false, "Select particles from B hadron decay" };
72  BooleanProperty m_isFromC { this, "isFromC", false, "Select particles from C hadron decay" };
73  BooleanProperty m_isFromHeavyFlav { this, "isFromHeavyFlav", false, "Select particles from heavy-flvour (B or C) hadron decay" };
74  BooleanProperty m_isFromLightFlav { this, "isFromLightFlav", false, "Select particles from light-flvour hadron decay" };
75 
76 };
77 
78 } // namespace IDTPM
79 
80 #endif // INDETTRACKPERFMON_TRUTHQUALITYSELECTIONTOOL_H
IDTPM::TruthQualitySelectionTool::m_maxAbsQoPT
FloatProperty m_maxAbsQoPT
Definition: TruthQualitySelectionTool.h:58
IDTPM::TruthQualitySelectionTool::m_isFromB
BooleanProperty m_isFromB
Definition: TruthQualitySelectionTool.h:71
IDTPM::TruthQualitySelectionTool::m_minQoPT
FloatProperty m_minQoPT
Definition: TruthQualitySelectionTool.h:67
IDTPM::TruthQualitySelectionTool::m_isFromHeavyFlav
BooleanProperty m_isFromHeavyFlav
Definition: TruthQualitySelectionTool.h:73
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
IDTPM::TruthQualitySelectionTool::m_isHadron
BooleanProperty m_isHadron
Definition: TruthQualitySelectionTool.h:69
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:46
IDTPM::TruthQualitySelectionTool::ASG_TOOL_CLASS
ASG_TOOL_CLASS(TruthQualitySelectionTool, ITrackSelectionTool)
IDTPM::TruthQualitySelectionTool::accept
bool accept(const xAOD::TruthParticle *truth)
Definition: TruthQualitySelectionTool.cxx:40
IDTPM::TruthQualitySelectionTool::m_maxZ0
FloatProperty m_maxZ0
Definition: TruthQualitySelectionTool.h:66
IDTPM::TruthQualitySelectionTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: TruthQualitySelectionTool.cxx:13
IDTPM::TruthQualitySelectionTool::selectTracks
virtual StatusCode selectTracks(TrackAnalysisCollections &trkAnaColls) override
Definition: TruthQualitySelectionTool.cxx:21
IDTPM::TruthQualitySelectionTool::m_minD0
FloatProperty m_minD0
Definition: TruthQualitySelectionTool.h:63
IAthSelectionTool.h
TrackAnalysisCollections.h
Class to hold for each event collections needed in the TrkAnalsis.
IDTPM::TruthQualitySelectionTool::m_isPion
BooleanProperty m_isPion
Definition: TruthQualitySelectionTool.h:70
IDTPM::TruthQualitySelectionTool::m_minAbsD0
FloatProperty m_minAbsD0
Definition: TruthQualitySelectionTool.h:53
IDTPM::TruthQualitySelectionTool::TruthQualitySelectionTool
TruthQualitySelectionTool(const std::string &name)
Definition: TruthQualitySelectionTool.cxx:10
IDTPM::TruthQualitySelectionTool::m_minEta
FloatProperty m_minEta
Definition: TruthQualitySelectionTool.h:59
IDTPM::TruthQualitySelectionTool::m_maxD0
FloatProperty m_maxD0
Definition: TruthQualitySelectionTool.h:64
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
IDTPM::TruthQualitySelectionTool::m_isFromLightFlav
BooleanProperty m_isFromLightFlav
Definition: TruthQualitySelectionTool.h:74
IDTPM::TruthQualitySelectionTool::m_trackTruthOriginTool
ToolHandle< InDet::IInDetTrackTruthOriginTool > m_trackTruthOriginTool
Definition: TruthQualitySelectionTool.h:47
IDTPM::TruthQualitySelectionTool::m_maxPhi
FloatProperty m_maxPhi
Definition: TruthQualitySelectionTool.h:62
IDTPM::ITrackSelectionTool
Definition: ITrackSelectionTool.h:24
AnaToolHandle.h
IDTPM::TruthQualitySelectionTool::m_maxAbsD0
FloatProperty m_maxAbsD0
Definition: TruthQualitySelectionTool.h:54
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
IDTPM::TruthQualitySelectionTool::m_maxEta
FloatProperty m_maxEta
Definition: TruthQualitySelectionTool.h:60
IDTPM::TruthQualitySelectionTool::m_isFromC
BooleanProperty m_isFromC
Definition: TruthQualitySelectionTool.h:72
IDTPM::TruthQualitySelectionTool::m_minAbsQoPT
FloatProperty m_minAbsQoPT
Definition: TruthQualitySelectionTool.h:57
InDetTrackTruthOriginTool.h
IDTPM::TruthQualitySelectionTool::m_maxAbsZ0
FloatProperty m_maxAbsZ0
Definition: TruthQualitySelectionTool.h:56
IDTPM::TruthQualitySelectionTool::m_truthTool
ToolHandle< IAthSelectionTool > m_truthTool
Definition: TruthQualitySelectionTool.h:46
IDTPM::TruthQualitySelectionTool::m_maxQoPT
FloatProperty m_maxQoPT
Definition: TruthQualitySelectionTool.h:68
IDTPM::TruthQualitySelectionTool::m_maxAbsPhi
FloatProperty m_maxAbsPhi
Definition: TruthQualitySelectionTool.h:52
ITrackSelectionTool.h
header file for interface for all the various track selection tools in this package
IDTPM::TruthQualitySelectionTool::m_minZ0
FloatProperty m_minZ0
Definition: TruthQualitySelectionTool.h:65
IDTPM::TruthQualitySelectionTool::m_minAbsPhi
FloatProperty m_minAbsPhi
Definition: TruthQualitySelectionTool.h:51
IDTPM::TruthQualitySelectionTool::m_minAbsEta
FloatProperty m_minAbsEta
Definition: TruthQualitySelectionTool.h:50
IDTPM::TruthQualitySelectionTool::m_minAbsZ0
FloatProperty m_minAbsZ0
Definition: TruthQualitySelectionTool.h:55
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
AsgTool.h
IDTPM::TruthQualitySelectionTool::m_minPhi
FloatProperty m_minPhi
Definition: TruthQualitySelectionTool.h:61
IDTPM::TruthQualitySelectionTool
Definition: TruthQualitySelectionTool.h:29