ATLAS Offline Software
Loading...
Searching...
No Matches
TauSelectionCuts.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TAUANALYSISTOOLS_TAUSELECTIONCUTS_H
6#define TAUANALYSISTOOLS_TAUSELECTIONCUTS_H
7
8/*
9 author: Dirk Duschinger
10 mail: dirk.duschinger@cern.ch
11 documentation in: https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/TauID/TauAnalysisTools/doc/README-TauSelectionTool.rst
12*/
13
14// Framework include(s):
15#include "xAODTau/TauJet.h"
17
18
19// ROOT include(s):
20#include "TH1F.h"
21
22#include <memory>
23
24namespace asg{
25 class AcceptData;
26 class AcceptInfo;
27}
28
29namespace ADD_CMODE(TauAnalysisTools)
30{
31
32class TauSelectionTool;
33
34class TauSelectionCut
35{
36
37public:
38 TauSelectionCut(const std::string& sName, TauSelectionTool* tTST);
39 virtual ~TauSelectionCut();
40
41 void writeControlHistograms();
42 void fillHistogramCutPre(const xAOD::TauJet& xTau);
43 void fillHistogramCut(const xAOD::TauJet& xTau);
44 virtual void setAcceptInfo (asg::AcceptInfo& info) const = 0;
45 virtual bool accept(const xAOD::TauJet& xTau,
46 asg::AcceptData& accept) = 0;
47 std::unique_ptr<TH1F> CreateControlPlot(const char* sName, const char* sTitle, int iBins, double dXLow, double dXUp);
48
49 const std::string& getName()
50 {
51 return m_sName;
52 };
53
54 void setProperty(const std::string& name, const std::string& value);
55
56protected:
57 std::string m_sName;
58
59 std::unique_ptr<TH1F> m_hHistCutPre;
60 std::unique_ptr<TH1F> m_hHistCut;
61
62 TauSelectionTool* m_tTST;
63
64 void declareProperty(const std::string& name, std::string& loc);
65 std::map<std::string, std::string&> m_mProperties;
66 std::string getProperty(const std::string& name);
67
68private:
69 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const = 0;
70};
71
72class TauSelectionCutPt
73 : public TauSelectionCut
74{
75public:
76 TauSelectionCutPt(TauSelectionTool* tTST);
77 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
78 virtual bool accept(const xAOD::TauJet& xTau,
79 asg::AcceptData& accept) override;
80private:
81 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
82};
83
84class TauSelectionCutAbsEta
85 : public TauSelectionCut
86{
87public:
88 TauSelectionCutAbsEta(TauSelectionTool* tTST);
89 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
90 virtual bool accept(const xAOD::TauJet& xTau,
91 asg::AcceptData& accept) override;
92private:
93 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
94};
95
96class TauSelectionCutAbsCharge
97 : public TauSelectionCut
98{
99public:
100 TauSelectionCutAbsCharge(TauSelectionTool* tTST);
101 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
102 virtual bool accept(const xAOD::TauJet& xTau,
103 asg::AcceptData& accept) override;
104private:
105 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
106};
107
108class TauSelectionCutNTracks
109 : public TauSelectionCut
110{
111public:
112 TauSelectionCutNTracks(TauSelectionTool* tTST);
113 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
114 virtual bool accept(const xAOD::TauJet& xTau,
115 asg::AcceptData& accept) override;
116private:
117 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
118};
119
120class TauSelectionCutRNNJetScoreSigTrans
121 : public TauSelectionCut
122{
123public:
124 TauSelectionCutRNNJetScoreSigTrans(TauSelectionTool* tTST);
125 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
126 virtual bool accept(const xAOD::TauJet& xTau,
127 asg::AcceptData& accept) override;
128private:
129 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
130};
131
132class TauSelectionCutGNTauScoreSigTrans
133 : public TauSelectionCut
134{
135public:
136 TauSelectionCutGNTauScoreSigTrans(TauSelectionTool* tTST);
137 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
138 virtual bool accept(const xAOD::TauJet& xTau,
139 asg::AcceptData& accept) override;
140private:
141 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
142};
143
144class TauSelectionCutJetIDWP
145 : public TauSelectionCut
146{
147public:
148 TauSelectionCutJetIDWP(TauSelectionTool* tTST);
149 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
150 virtual bool accept(const xAOD::TauJet& xTau,
151 asg::AcceptData& accept) override;
152private:
153 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
154};
155
156class TauSelectionCutRNNEleScoreSigTrans
157 : public TauSelectionCut
158{
159public:
160 TauSelectionCutRNNEleScoreSigTrans(TauSelectionTool* tTST);
161 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
162 virtual bool accept(const xAOD::TauJet& xTau,
163 asg::AcceptData& accept) override;
164private:
165 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
166};
167
168class TauSelectionCutEleIDWP
169 : public TauSelectionCut
170{
171public:
172 TauSelectionCutEleIDWP(TauSelectionTool* tTST);
173 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
174 virtual bool accept(const xAOD::TauJet& xTau,
175 asg::AcceptData& accept) override;
176private:
177 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
178};
179
180//added by Li-Gang Xia < ligang.xia@cern.ch >
181//to remove taus overlapping with muons satisfying pt > 2 GeV and not calo-tagged
182class TauSelectionCutMuonOLR
183 : public TauSelectionCut
184{
185public:
186 TauSelectionCutMuonOLR(TauSelectionTool* tTST);
187 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
188 virtual bool accept(const xAOD::TauJet& xTau,
189 asg::AcceptData& accept) override;
190private:
191 bool m_bTauMuonOLR; //False: overlapped, the tau is not kept. True: not overlapped, the tau is kept.)
192 virtual void fillHistogram(const xAOD::TauJet& xTau, TH1F& hHist) const override;
193};
194
195
196}
197
198#endif // TAUANALYSISTOOLS_TAUSELECTIONCUTS_H
void setProperty(columnar::PythonToolHandle &self, const std::string &key, nb::object value)
Object to encode the result of several cuts.
Object to describe a series of cuts.
StatusCode accept(const xAOD::Muon *mu)
T getProperty(const asg::IAsgTool *interface_tool, const std::string &prop_name)
TauJet_v3 TauJet
Definition of the current "tau version".
Definition TauJet.h:17