ATLAS Offline Software
Loading...
Searching...
No Matches
DiTauSelectionTool.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

namespace ADD_CMODE (TauAnalysisTools)

Function Documentation

◆ ADD_CMODE()

namespace ADD_CMODE ( TauAnalysisTools )

forward declarations

need to define cut classes to be friends to access protected variables, needed for access of cut thresholds

Create a proper constructor for Athena

Constructor for standalone usage

Function initialising the tool

Get an object describing the "selection steps" of the tool

Get the decision using a generic IParticle pointer

Get the decision for a specific TauJet object

Set output file for control histograms

Write control histograms to output file

Object used to store selection information.

Definition at line 1 of file DiTauSelectionTool.h.

33{
34
36class DiTauSelectionCut;
37class DiTauSelectionCutPt;
38class DiTauSelectionCutAbsEta;
39class DiTauSelectionCutNSubjets;
40class DiTauSelectionCutAbsCharge;
41class DiTauSelectionCutOmniScore;
42class DiTauSelectionCutOmniIDWP;
43
44class DiTauSelectionTool : public virtual IAsgSelectionTool,
45 public virtual IDiTauSelectionTool,
47{
50 friend class DiTauSelectionCut;
51 friend class DiTauSelectionCutPt;
52 friend class DiTauSelectionCutAbsEta;
53 friend class DiTauSelectionCutNSubjets;
54 friend class DiTauSelectionCutAbsCharge;
55 friend class DiTauSelectionCutOmniScore;
56 friend class DiTauSelectionCutOmniIDWP;
57
59 ASG_TOOL_CLASS2( DiTauSelectionTool,
60 IAsgSelectionTool,
61 IDiTauSelectionTool )
62
63public:
65 DiTauSelectionTool( const std::string& name );
66
67 virtual ~DiTauSelectionTool();
68
70 virtual StatusCode initialize() override;
71
73 virtual const asg::AcceptInfo& getAcceptInfo() const override;
74
76 virtual asg::AcceptData accept( const xAOD::IParticle* p ) const override;
77
79 virtual asg::AcceptData accept( const xAOD::DiTauJet& tau ) const override;
80
82 virtual void setOutFile( TFile* fOutFile ) override;
83
85 virtual void writeControlHistograms() override;
86
87private:
88
89 // Execute at each event
90 virtual StatusCode beginEvent() override;
91
92 template<typename T, typename U>
93 void FillRegionVector(std::vector<T>& vRegion, U tMin, U tMax) const;
94 template<typename T, typename U>
95 void FillValueVector(std::vector<T>& vRegion, U tVal) const;
96 template<typename T>
97 void PrintConfigRegion(const std::string& sCutName, std::vector<T>& vRegion) const;
98 template<typename T>
99 void PrintConfigValue(const std::string& sCutName, std::vector<T>& vRegion) const;
100 template<typename T>
101 void PrintConfigValue(const std::string& sCutName, T& sVal) const;
102
103 // vector of transverse momentum cut regions
104 std::vector<float> m_vPtRegion;
105 // vector of absolute eta cut regions
106 std::vector<float> m_vAbsEtaRegion;
107 // vector of number of subjets cut regions
108 std::vector<float> m_vNSubjetsRegion;
109 // vector of absolute charge requirements
110 std::vector<int> m_vAbsCharges;
111 // vector of OmniScore cut regions
112 std::vector<float> m_vOmniScoreRegion;
113 // OmniID working point
114 std::string m_sOmniIDWP;
115
116 bool m_useOmniScore=false;
117
118 Gaudi::Property<std::string> m_sConfigPath{this, "ConfigPath", ""};
119 Gaudi::Property<int> m_iSelectionCuts{this, "SelectionCuts", TauAnalysisTools::NoDiTauCut};
120 Gaudi::Property<float> m_dPtMin{this, "PtMin", NAN};
121 Gaudi::Property<float> m_dAbsEtaMin{this, "AbsEtaMin", NAN};
122 Gaudi::Property<float> m_dAbsEtaMax{this, "AbsEtaMax", NAN};
123 Gaudi::Property<float> m_dNSubjetsMin{this, "NSubjetsMin", NAN};
124 Gaudi::Property<float> m_iAbsCharge{this, "AbsCharge", NAN};
125 Gaudi::Property<float> m_dOmniScoreMin{this, "OmniScoreMin", NAN};
126 Gaudi::Property<float> m_dOmniScoreMax{this, "OmniScoreMax", NAN};
127 Gaudi::Property<int> m_iOmniIDWP{this, "OmniIDWP", 0};
128
129 Gaudi::Property<std::vector<float>> m_vecAbsEtaRegion{this, "AbsEtaRegion",{}};
130 Gaudi::Property<std::vector<int>> m_vecAbsCharges{this, "AbsCharges", {}};
131
132protected:
133 TFile* m_fOutFile;
134 std::shared_ptr<TH1F> m_hCutFlow;
135
136private:
137
138 std::map<TauAnalysisTools::DiTauSelectionCuts, std::unique_ptr<DiTauSelectionCut>> m_cMap;
139
140 void setupCutFlowHistogram();
141 int convertStrToOmniIDWP(const std::string& sOmniIDWP) const;
142
143protected:
144
145 Gaudi::Property<bool> m_bCreateControlPlots{this, "CreateControlPlots", false};
146 SG::ReadDecorHandleKey<xAOD::DiTauJetContainer> m_OmniScoreDecorKey {this, "OmniScoreDecorName", "", "Name of OmniScore decoration"};
147
149 asg::AcceptInfo m_aAccept;
150
151
152}; // class DiTauSelectionTool
153
154} // namespace ADD_CMODE(TauAnalysisTools)
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
virtual asg::AcceptData accept(const xAOD::IParticle *) const =0
The main accept method: the actual cuts are applied here.
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Declare the interface ID for this pure-virtual interface class to the Athena framework.
Base class for dual-use tools that provide file metadata access.
virtual StatusCode beginEvent()
Function called when a new events is loaded.
::StatusCode StatusCode
StatusCode definition for legacy code.
DiTauJet_v1 DiTauJet
Definition of the current version.
Definition DiTauJet.h:17
void initialize()