ATLAS Offline Software
NSubjettinessTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
19 #ifndef jetsubstructuremomenttools_nsubjetinesstool_header
20 #define jetsubstructuremomenttools_nsubjetinesstool_header
21 
24 
28 
29  public:
30  // Constructor and destructor
31  NSubjettinessTool(const std::string& name);
32 
34 
35  int modifyJet(xAOD::Jet &injet) const;
36 
37  private:
38 
40  struct moments_t;
41 
43  float m_Alpha;
44  std::vector<float> m_rawAlphaVals;
46 
48  std::map< float, moments_t > m_moments;
49 
50  };
51 
61 
63  std::string prefix;
64 
66  float alpha;
67 
69  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau1;
70  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau2;
71  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau3;
72  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau4;
73 
75  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau2_ungroomed;
76  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau3_ungroomed;
77  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau4_ungroomed;
78 
80  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau1_wta;
81  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau2_wta;
82  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau3_wta;
83  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau4_wta;
84 
86  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau2_wta_ungroomed;
87  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau3_wta_ungroomed;
88  std::unique_ptr< SG::AuxElement::Decorator<float> > dec_Tau4_wta_ungroomed;
89 
90  moments_t (float Alpha, const std::string& Prefix)
91  : prefix (Prefix),
92  alpha (Alpha)
93  {
94  std::string suffix = GetAlphaSuffix(alpha);
95 
96  dec_Tau1 = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau1"+suffix);
97  dec_Tau2 = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau2"+suffix);
98  dec_Tau3 = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau3"+suffix);
99  dec_Tau4 = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau4"+suffix);
100 
101  dec_Tau2_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau2_ungroomed"+suffix);
102  dec_Tau3_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau3_ungroomed"+suffix);
103  dec_Tau4_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau4_ungroomed"+suffix);
104 
105  dec_Tau1_wta = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau1_wta"+suffix);
106  dec_Tau2_wta = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau2_wta"+suffix);
107  dec_Tau3_wta = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau3_wta"+suffix);
108  dec_Tau4_wta = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau4_wta"+suffix);
109 
110  dec_Tau2_wta_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau2_wta_ungroomed"+suffix);
111  dec_Tau3_wta_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau3_wta_ungroomed"+suffix);
112  dec_Tau4_wta_ungroomed = std::make_unique< SG::AuxElement::Decorator<float> >(prefix+"Tau4_wta_ungroomed"+suffix);
113 
114  }
115 
116 };
117 
118 #endif
NSubjettinessTool::moments_t::dec_Tau3_wta
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau3_wta
Definition: NSubjettinessTool.h:82
hotSpotInTAG.suffix
string suffix
Definition: hotSpotInTAG.py:186
NSubjettinessTool::moments_t::moments_t
moments_t(float Alpha, const std::string &Prefix)
Definition: NSubjettinessTool.h:90
GetAlphaSuffix
std::string GetAlphaSuffix(float alpha)
Definition: NSubjettinessHelper.cxx:10
NSubjettinessTool::moments_t::dec_Tau2_wta
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau2_wta
Definition: NSubjettinessTool.h:81
NSubjettinessTool::moments_t::dec_Tau1_wta
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau1_wta
WTA NSubjettiness decorators.
Definition: NSubjettinessTool.h:80
NSubjettinessTool::moments_t
Definition: NSubjettinessTool.h:60
NSubjettinessTool::moments_t::dec_Tau4
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau4
Definition: NSubjettinessTool.h:72
NSubjettinessTool::moments_t::dec_Tau4_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau4_ungroomed
Definition: NSubjettinessTool.h:77
NSubjettinessTool::modifyJet
int modifyJet(xAOD::Jet &injet) const
Modify a single jet. This is obsolete and set to be removed.
Definition: NSubjettinessTool.cxx:66
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetSubStructureMomentToolsBase.h
NSubjettinessTool::m_rawAlphaVals
std::vector< float > m_rawAlphaVals
Definition: NSubjettinessTool.h:44
NSubjettinessTool::moments_t::dec_Tau1
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau1
NSubjettiness decorators.
Definition: NSubjettinessTool.h:69
NSubjettinessTool::moments_t::dec_Tau2
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau2
Definition: NSubjettinessTool.h:70
NSubjettinessTool::m_Alpha
float m_Alpha
Configurable as properties.
Definition: NSubjettinessTool.h:40
NSubjettinessTool::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: NSubjettinessTool.cxx:21
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
NSubjettinessTool::m_moments
std::map< float, moments_t > m_moments
Map of decorators using alpha as the key.
Definition: NSubjettinessTool.h:48
NSubjettinessTool::moments_t::dec_Tau2_wta_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau2_wta_ungroomed
WTA NSubjettiness ungroomed decorators.
Definition: NSubjettinessTool.h:86
NSubjettinessTool::moments_t::dec_Tau3_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau3_ungroomed
Definition: NSubjettinessTool.h:76
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
NSubjettinessTool::NSubjettinessTool
NSubjettinessTool(const std::string &name)
Definition: NSubjettinessTool.cxx:13
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
NSubjettinessTool::moments_t::prefix
std::string prefix
Prefix for decorations.
Definition: NSubjettinessTool.h:63
NSubjettinessTool::moments_t::dec_Tau4_wta
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau4_wta
Definition: NSubjettinessTool.h:83
NSubjettinessTool::moments_t::dec_Tau2_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau2_ungroomed
NSubjettiness ungroomed decorators.
Definition: NSubjettinessTool.h:75
JetSubStructureMomentToolsBase
Definition: JetSubStructureMomentToolsBase.h:18
NSubjettinessTool::moments_t::alpha
float alpha
Alpha value for calculations.
Definition: NSubjettinessTool.h:66
NSubjettinessTool::m_doDichroic
bool m_doDichroic
Vector of input values before cleaning.
Definition: NSubjettinessTool.h:45
NSubjettinessTool::moments_t::dec_Tau4_wta_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau4_wta_ungroomed
Definition: NSubjettinessTool.h:88
NSubjettinessTool::moments_t::dec_Tau3_wta_ungroomed
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau3_wta_ungroomed
Definition: NSubjettinessTool.h:87
NSubjettinessTool
Definition: NSubjettinessTool.h:26
IJetModifier
IJetModifier is a dual-use tool interface for a tool that modifies a jet collection.
Definition: IJetModifier.h:20
NSubjettinessHelper.h
NSubjettinessTool::moments_t::dec_Tau3
std::unique_ptr< SG::AuxElement::Decorator< float > > dec_Tau3
Definition: NSubjettinessTool.h:71