ATLAS Offline Software
Loading...
Searching...
No Matches
EnergyCorrelatorGeneralizedRatiosTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
18
19#ifndef jetsubstructuremomenttools_energycorrelatorgeneralizedratiostool_header
20#define jetsubstructuremomenttools_energycorrelatorgeneralizedratiostool_header
21
24
28
29 public:
30
32 EnergyCorrelatorGeneralizedRatiosTool(const std::string& name);
33
34 virtual StatusCode initialize() override;
35
36 int modifyJet(xAOD::Jet &jet) const override;
37
38 private:
39
41 struct moments_t;
42
44 bool m_doM3;
45 bool m_doN3;
47 std::vector<float> m_rawBetaVals;
49
51 std::map< float, moments_t > m_moments;
52
54 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_2_1_2;
55 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_3_1_1;
56 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_3_2_1;
57 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_3_2_2;
58 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_3_3_1;
59 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_4_2_2;
60 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > m_acc_ECFG_4_4_1;
61
63 std::unique_ptr< SG::AuxElement::Decorator<float> > m_dec_L1;
64 std::unique_ptr< SG::AuxElement::Decorator<float> > m_dec_L2;
65 std::unique_ptr< SG::AuxElement::Decorator<float> > m_dec_L3;
66 std::unique_ptr< SG::AuxElement::Decorator<float> > m_dec_L4;
67 std::unique_ptr< SG::AuxElement::Decorator<float> > m_dec_L5;
68
69};
70
78
80
82 std::string prefix;
83
85 std::string suffix;
86
88 float beta;
89
91 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_2_1;
92 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_3_1;
93 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_3_2;
94 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_4_1;
95 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_4_2;
96
98 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_2_1_ungroomed;
99 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_3_1_ungroomed;
100 std::unique_ptr< SG::AuxElement::ConstAccessor<float> > acc_ECFG_3_2_ungroomed;
101
103 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_M2;
104 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_M3;
105 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_N2;
106 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_N3;
107
109 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_M2_dichroic;
110 std::unique_ptr< SG::AuxElement::Decorator<float> > dec_N2_dichroic;
111
112 moments_t (float Beta, const std::string& Prefix)
113 : prefix (Prefix),
114 suffix (GetBetaSuffix(Beta)),
115 beta (Beta),
116
117 acc_ECFG_2_1 (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_2_1"+suffix)),
118 acc_ECFG_3_1 (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_3_1"+suffix)),
119 acc_ECFG_3_2 (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_3_2"+suffix)),
120 acc_ECFG_4_1 (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_4_1"+suffix)),
121 acc_ECFG_4_2 (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_4_2"+suffix)),
122
123 acc_ECFG_2_1_ungroomed (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_2_1_ungroomed"+suffix)),
124 acc_ECFG_3_1_ungroomed (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_3_1_ungroomed"+suffix)),
125 acc_ECFG_3_2_ungroomed (std::make_unique< SG::AuxElement::ConstAccessor<float> >(prefix+"ECFG_3_2_ungroomed"+suffix)),
126
127 dec_M2 (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"M2"+suffix)),
128 dec_M3 (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"M3"+suffix)),
129 dec_N2 (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"N2"+suffix)),
130 dec_N3 (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"N3"+suffix)),
131
132 dec_M2_dichroic (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"M2_dichroic"+suffix)),
133 dec_N2_dichroic (std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"N2_dichroic"+suffix))
134 {
135 }
136
137};
138
139#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
std::string GetBetaSuffix(float beta)
Definition ECFHelper.cxx:10
int modifyJet(xAOD::Jet &jet) const override
Modify a single jet. This is obsolete and set to be removed.
std::unique_ptr< SG::AuxElement::Decorator< float > > m_dec_L5
bool m_doDichroic
Vector of input values before cleaning.
std::unique_ptr< SG::AuxElement::Decorator< float > > m_dec_L2
EnergyCorrelatorGeneralizedRatiosTool(const std::string &name)
Constructor.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_3_3_1
std::unique_ptr< SG::AuxElement::Decorator< float > > m_dec_L1
Decorator for L-series ECFRs.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_4_2_2
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_3_2_1
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_4_4_1
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_3_2_2
std::unique_ptr< SG::AuxElement::Decorator< float > > m_dec_L4
std::unique_ptr< SG::AuxElement::Decorator< float > > m_dec_L3
std::map< float, moments_t > m_moments
Map of moment accessors and decorators using beta as the key.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_2_1_2
ConstAccessors for L-series ECFs.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > m_acc_ECFG_3_1_1
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
IJetModifier is a dual-use tool interface for a tool that modifies a jet collection.
JetSubStructureMomentToolsBase(const std::string &name)
Forward declaration.
STL namespace.
Jet_v1 Jet
Definition of the current "jet version".
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_4_2
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_2_1
ECFG accessors.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_3_2_ungroomed
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_3_1
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_N2_dichroic
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_M2
M and N series decorators.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_3_2
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_4_1
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_3_1_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_N2
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_M3
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_M2_dichroic
Dichroic M and N series decorators.
std::unique_ptr< SG::AuxElement::ConstAccessor< float > > acc_ECFG_2_1_ungroomed
ECFG ungroomed accessors.
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_N3