30{
31
32class DiTauSelectionTool;
33
34class DiTauSelectionCut
35{
36
37public:
38 DiTauSelectionCut(const std::string& sName, DiTauSelectionTool* tDTST);
39 virtual ~DiTauSelectionCut();
40
41 void writeControlHistograms();
44 virtual void setAcceptInfo (asg::AcceptInfo& info) const = 0;
46 asg::AcceptData& accept) = 0;
47 std::unique_ptr<TH1F> CreateControlPlot(const char* sName, const char* sTitle, int iBins, double dXLow, double dXUp);
48
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 DiTauSelectionTool* m_tDTST{};
63
64 void declareProperty(const std::string& name, std::string& loc);
65 std::map<std::string, std::string&> m_mProperties;
67
68private:
69 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const = 0;
70};
71
72class DiTauSelectionCutPt
73 : public DiTauSelectionCut
74{
75public:
76 DiTauSelectionCutPt(DiTauSelectionTool* tDTST);
77 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
79 asg::AcceptData& accept) override;
80private:
81 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
82};
83
84class DiTauSelectionCutAbsEta
85 : public DiTauSelectionCut
86{
87public:
88 DiTauSelectionCutAbsEta(DiTauSelectionTool* tDTST);
89 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
91 asg::AcceptData& accept) override;
92private:
93 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
94};
95
96class DiTauSelectionCutNSubjets
97 : public DiTauSelectionCut
98{
99public:
100 DiTauSelectionCutNSubjets(DiTauSelectionTool* tDTST);
101 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
103 asg::AcceptData& accept) override;
104private:
105 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
106};
107
108class DiTauSelectionCutAbsCharge
109 : public DiTauSelectionCut
110{
111public:
112 DiTauSelectionCutAbsCharge(DiTauSelectionTool* tDTST);
113 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
115 asg::AcceptData& accept) override;
116private:
117 float m_bDiTauCharge;
118 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
119};
120
121
122class DiTauSelectionCutOmniScore
123 : public DiTauSelectionCut
124{
125public:
126 DiTauSelectionCutOmniScore(DiTauSelectionTool* tDTST);
127
128 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
129
131 asg::AcceptData& accept) override;
132private:
133
134 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
135};
136
137
138class DiTauSelectionCutOmniIDWP
139 : public DiTauSelectionCut
140{
141public:
142 DiTauSelectionCutOmniIDWP(DiTauSelectionTool* tDTST);
143 virtual void setAcceptInfo (asg::AcceptInfo& info) const override;
145 asg::AcceptData& accept) override;
146private:
147 virtual void fillHistogram(
const xAOD::DiTauJet& xTau, TH1F& hHist)
const override;
148};
149
150}
void setProperty(columnar::PythonToolHandle &self, const std::string &key, nb::object value)
StatusCode accept(const xAOD::Muon *mu)
T getProperty(const asg::IAsgTool *interface_tool, const std::string &prop_name)
DiTauJet_v1 DiTauJet
Definition of the current version.