ATLAS Offline Software
ParticleLevelRCJetObjectLoader.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 //Load the reclustering tool for the collection of truth jets already selected.
6 //Create the collection of reclustered jets and save them in the evtStore().
7 //There is also the pass selection to apply the cut on eta and pt on the reclustered jets.
8 
9 #ifndef ParticleLevelRCJetObjectLoader_H_
10 #define ParticleLevelRCJetObjectLoader_H_
11 
13 #include "AsgTools/AsgTool.h"
14 #include "xAODCore/ShallowCopy.h"
15 
16 #include "xAODRootAccess/TEvent.h"
17 #include "xAODRootAccess/TStore.h"
19 
20 #include "xAODJet/JetContainer.h"
23 
24 #include <unordered_map>
25 #include <unordered_set>
26 #include <memory>
27 #include <set>
28 #include <list>
29 #include <vector>
30 
31 
32 namespace top {
33  class ParticleLevelEvent;
34  class TopConfig;
35 }
36 
37 namespace fastjet {
38  class JetDefinition;
39  namespace contrib {
40  class Nsubjettiness;
41  class EnergyCorrelator;
42  }
43 }
44 namespace JetSubStructureUtils {
45  class KtSplittingScale;
46  class Qw;
47  class EnergyCorrelatorGeneralized;
48 }
49 
50 
52 public:
53  //Default - so root can load based on a name
54  ParticleLevelRCJetObjectLoader(const std::shared_ptr<top::TopConfig>& cfg);
55 
56 
57  //Default - so we can clean up
59 
60  //Run once at the start of the job
62 
63  //Run for every event (in every systematic) that needs saving
65 
66 
67  //Clean-up remaining things
69 
70  bool passSelection(const xAOD::Jet& jet) const;
71 
72  //Access all of the container names from the Event Saver
73  std::string inputContainerName() {return m_InputJetContainer;};
74  std::string rcjetContainerName() {return m_OutputJetContainer;};
75 private:
76  std::string m_name;
77  const std::shared_ptr<top::TopConfig>& m_config;
78 
80  std::string m_VarRCjets_rho;
82 
83  float m_ptcut; // in GeV
84  float m_etamax;
87  float m_trim;
88  float m_radius;
89  float m_minradius;
90  float m_massscale;
91 
92  bool m_useJSS;
94 
95  std::string m_treeName;
96 
97  std::string m_InJetContainerBase;
98  std::string m_OutJetContainerBase;
99  std::string m_InputJetContainer;
100  std::string m_OutputJetContainer;
101 
102 
103 
104 
105  //Substructure tool definitions
106  std::shared_ptr<fastjet::JetDefinition> m_jet_def_rebuild;
107  std::shared_ptr<fastjet::contrib::Nsubjettiness> m_nSub1_beta1;
108  std::shared_ptr<fastjet::contrib::Nsubjettiness> m_nSub2_beta1;
109  std::shared_ptr<fastjet::contrib::Nsubjettiness> m_nSub3_beta1;
110  std::shared_ptr<fastjet::contrib::EnergyCorrelator> m_ECF1;
111  std::shared_ptr<fastjet::contrib::EnergyCorrelator> m_ECF2;
112  std::shared_ptr<fastjet::contrib::EnergyCorrelator> m_ECF3;
113  std::shared_ptr<JetSubStructureUtils::KtSplittingScale> m_split12;
114  std::shared_ptr<JetSubStructureUtils::KtSplittingScale> m_split23;
115  std::shared_ptr<JetSubStructureUtils::Qw> m_qw;
116  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF332;
117  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF461;
118  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF322;
119  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF331;
120  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF422;
121  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF441;
122  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF212;
123  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF321;
124  std::shared_ptr<JetSubStructureUtils::EnergyCorrelatorGeneralized> m_gECF311;
125 
126  std::map<std::string, float> mass_scales = {
127  {"m_t", 172500.},
128  {"m_w", 80385.},
129  {"m_z", 91188.},
130  {"m_h", 125090.}
131  };
132 
133 
134  //re-clustered jets
135  // -> need unordered map for systematics
136  std::shared_ptr<JetReclusteringTool> m_jetReclusteringTool;
137 };
138 
139 #endif
ShallowCopy.h
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ParticleLevelRCJetObjectLoader::m_minradius
float m_minradius
Definition: ParticleLevelRCJetObjectLoader.h:89
top
TopConfig A simple configuration that is NOT a singleton.
Definition: AnalysisTrackingHelper.cxx:58
ParticleLevelRCJetObjectLoader::m_jet_def_rebuild
std::shared_ptr< fastjet::JetDefinition > m_jet_def_rebuild
Definition: ParticleLevelRCJetObjectLoader.h:106
fastjet
Definition: FastJetLinkBase.h:22
ParticleLevelRCJetObjectLoader::m_OutputJetContainer
std::string m_OutputJetContainer
Definition: ParticleLevelRCJetObjectLoader.h:100
ParticleLevelRCJetObjectLoader::m_inputJetPtMin
float m_inputJetPtMin
Definition: ParticleLevelRCJetObjectLoader.h:85
ParticleLevelRCJetObjectLoader::m_VarRCjets
bool m_VarRCjets
Definition: ParticleLevelRCJetObjectLoader.h:79
ParticleLevelRCJetObjectLoader::m_gECF321
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF321
Definition: ParticleLevelRCJetObjectLoader.h:123
JetReclusteringTool.h
ParticleLevelRCJetObjectLoader::m_etamax
float m_etamax
Definition: ParticleLevelRCJetObjectLoader.h:84
ParticleLevelRCJetObjectLoader::m_VarRCjets_mass_scale
std::string m_VarRCjets_mass_scale
Definition: ParticleLevelRCJetObjectLoader.h:81
ParticleLevelRCJetObjectLoader::m_gECF422
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF422
Definition: ParticleLevelRCJetObjectLoader.h:120
ParticleLevelRCJetObjectLoader::m_gECF441
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF441
Definition: ParticleLevelRCJetObjectLoader.h:121
JetSubStructureUtils
Definition: RCJet.h:49
ParticleLevelRCJetObjectLoader::m_name
std::string m_name
Definition: ParticleLevelRCJetObjectLoader.h:74
ParticleLevelRCJetObjectLoader::mass_scales
std::map< std::string, float > mass_scales
Definition: ParticleLevelRCJetObjectLoader.h:126
ParticleLevelRCJetObjectLoader::m_useJSS
bool m_useJSS
Definition: ParticleLevelRCJetObjectLoader.h:92
ParticleLevelRCJetObjectLoader::m_gECF311
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF311
Definition: ParticleLevelRCJetObjectLoader.h:124
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
ParticleLevelRCJetObjectLoader::m_split12
std::shared_ptr< JetSubStructureUtils::KtSplittingScale > m_split12
Definition: ParticleLevelRCJetObjectLoader.h:113
ParticleLevelRCJetObjectLoader::~ParticleLevelRCJetObjectLoader
~ParticleLevelRCJetObjectLoader()
Definition: ParticleLevelRCJetObjectLoader.cxx:68
ParticleLevelRCJetObjectLoader::finalize
StatusCode finalize()
Definition: ParticleLevelRCJetObjectLoader.cxx:385
ParticleLevelRCJetObjectLoader::m_nSub2_beta1
std::shared_ptr< fastjet::contrib::Nsubjettiness > m_nSub2_beta1
Definition: ParticleLevelRCJetObjectLoader.h:108
Qw
ParticleLevelRCJetObjectLoader::m_gECF461
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF461
Definition: ParticleLevelRCJetObjectLoader.h:117
ParticleLevelRCJetObjectLoader::m_ECF1
std::shared_ptr< fastjet::contrib::EnergyCorrelator > m_ECF1
Definition: ParticleLevelRCJetObjectLoader.h:110
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ParticleLevelRCJetObjectLoader::m_ECF3
std::shared_ptr< fastjet::contrib::EnergyCorrelator > m_ECF3
Definition: ParticleLevelRCJetObjectLoader.h:112
ParticleLevelRCJetObjectLoader::m_OutJetContainerBase
std::string m_OutJetContainerBase
Definition: ParticleLevelRCJetObjectLoader.h:98
TEvent.h
ParticleLevelRCJetObjectLoader::m_split23
std::shared_ptr< JetSubStructureUtils::KtSplittingScale > m_split23
Definition: ParticleLevelRCJetObjectLoader.h:114
ParticleLevelRCJetObjectLoader::m_qw
std::shared_ptr< JetSubStructureUtils::Qw > m_qw
Definition: ParticleLevelRCJetObjectLoader.h:115
top::ParticleLevelEvent
Definition: ParticleLevelEvent.h:24
ParticleLevelRCJetObjectLoader::m_ECF2
std::shared_ptr< fastjet::contrib::EnergyCorrelator > m_ECF2
Definition: ParticleLevelRCJetObjectLoader.h:111
ParticleLevelRCJetObjectLoader::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: ParticleLevelRCJetObjectLoader.cxx:71
ParticleLevelRCJetObjectLoader
Definition: ParticleLevelRCJetObjectLoader.h:51
ParticleLevelRCJetObjectLoader::m_massscale
float m_massscale
Definition: ParticleLevelRCJetObjectLoader.h:90
ObjectSelectorBase.h
ParticleLevelRCJetObjectLoader::m_trim
float m_trim
Definition: ParticleLevelRCJetObjectLoader.h:87
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
ParticleLevelRCJetObjectLoader::m_gECF322
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF322
Definition: ParticleLevelRCJetObjectLoader.h:118
ParticleLevelRCJetObjectLoader::m_InJetContainerBase
std::string m_InJetContainerBase
Definition: ParticleLevelRCJetObjectLoader.h:97
ParticleLevelRCJetObjectLoader::ParticleLevelRCJetObjectLoader
ParticleLevelRCJetObjectLoader(const std::shared_ptr< top::TopConfig > &cfg)
Definition: ParticleLevelRCJetObjectLoader.cxx:26
ParticleLevelRCJetObjectLoader::m_ptcut
float m_ptcut
Definition: ParticleLevelRCJetObjectLoader.h:83
ParticleLevelRCJetObjectLoader::m_nSub1_beta1
std::shared_ptr< fastjet::contrib::Nsubjettiness > m_nSub1_beta1
Definition: ParticleLevelRCJetObjectLoader.h:107
ParticleLevelRCJetObjectLoader::m_gECF331
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF331
Definition: ParticleLevelRCJetObjectLoader.h:119
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
ParticleLevelRCJetObjectLoader::execute
StatusCode execute(const top::ParticleLevelEvent &plEvent)
Definition: ParticleLevelRCJetObjectLoader.cxx:189
ParticleLevelRCJetObjectLoader::m_VarRCjets_rho
std::string m_VarRCjets_rho
Definition: ParticleLevelRCJetObjectLoader.h:80
JetContainer.h
ParticleLevelRCJetObjectLoader::m_gECF212
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF212
Definition: ParticleLevelRCJetObjectLoader.h:122
ParticleLevelRCJetObjectLoader::m_useAdditionalJSS
bool m_useAdditionalJSS
Definition: ParticleLevelRCJetObjectLoader.h:93
ParticleLevelRCJetObjectLoader::m_jetReclusteringTool
std::shared_ptr< JetReclusteringTool > m_jetReclusteringTool
Definition: ParticleLevelRCJetObjectLoader.h:136
JetAuxContainer.h
ParticleLevelRCJetObjectLoader::inputContainerName
std::string inputContainerName()
Definition: ParticleLevelRCJetObjectLoader.h:73
ParticleLevelRCJetObjectLoader::m_nSub3_beta1
std::shared_ptr< fastjet::contrib::Nsubjettiness > m_nSub3_beta1
Definition: ParticleLevelRCJetObjectLoader.h:109
ParticleLevelRCJetObjectLoader::passSelection
bool passSelection(const xAOD::Jet &jet) const
Definition: ParticleLevelRCJetObjectLoader.cxx:389
AsgTool.h
ParticleLevelRCJetObjectLoader::m_gECF332
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF332
Definition: ParticleLevelRCJetObjectLoader.h:116
ParticleLevelRCJetObjectLoader::m_radius
float m_radius
Definition: ParticleLevelRCJetObjectLoader.h:88
ParticleLevelRCJetObjectLoader::rcjetContainerName
std::string rcjetContainerName()
Definition: ParticleLevelRCJetObjectLoader.h:74
ParticleLevelRCJetObjectLoader::m_InputJetContainer
std::string m_InputJetContainer
Definition: ParticleLevelRCJetObjectLoader.h:99
ParticleLevelRCJetObjectLoader::m_treeName
std::string m_treeName
Definition: ParticleLevelRCJetObjectLoader.h:95
ParticleLevelRCJetObjectLoader::m_inputJetEtaMax
float m_inputJetEtaMax
Definition: ParticleLevelRCJetObjectLoader.h:86
TActiveStore.h
TStore.h
ParticleLevelRCJetObjectLoader::m_config
const std::shared_ptr< top::TopConfig > & m_config
Definition: ParticleLevelRCJetObjectLoader.h:77