ATLAS Offline Software
ParticleLevelRCJetObjectLoader.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #include "xAODJet/JetContainer.h"
8 #include "xAODCore/ShallowCopy.h"
11 
12 
14 #include "TopEvent/EventTools.h"
17 
18 #include "fastjet/ClusterSequence.hh"
19 #include <fastjet/contrib/Nsubjettiness.hh>
20 #include <fastjet/contrib/EnergyCorrelator.hh>
25 
26 ParticleLevelRCJetObjectLoader::ParticleLevelRCJetObjectLoader(const std::shared_ptr<top::TopConfig>& cfg) : asg::
27  AsgTool("ParticleLevelRCJetObjectLoader"), m_config(cfg) {
28  m_ptcut = 0.;
29  m_etamax = 0.;
30  m_inputJetPtMin = 0.;
31  m_inputJetEtaMax = 999.;
32  m_trim = 0.;
33  m_radius = 0.;
34  m_treeName = "particleLevel";
35  m_InJetContainerBase = "AntiKt4TruthWZJets_RC";
36  m_OutJetContainerBase = "AntiKt10RCTrim";
37  m_InputJetContainer = "AntiKt4TruthWZJets_RC";
38  m_OutputJetContainer = "AntiKt10RCTrim";
39  m_name = "";
40  m_useJSS = false;
41  m_useAdditionalJSS = false;
42  m_jet_def_rebuild = nullptr;
43  m_nSub1_beta1 = nullptr;
44  m_nSub2_beta1 = nullptr;
45  m_nSub3_beta1 = nullptr;
46  m_ECF1 = nullptr;
47  m_ECF2 = nullptr;
48  m_ECF3 = nullptr;
49  m_split12 = nullptr;
50  m_split23 = nullptr;
51  m_qw = nullptr;
52  m_gECF332 = nullptr;
53  m_gECF461 = nullptr;
54  m_gECF322 = nullptr;
55  m_gECF331 = nullptr;
56  m_gECF422 = nullptr;
57  m_gECF441 = nullptr;
58  m_gECF212 = nullptr;
59  m_gECF321 = nullptr;
60  m_gECF311 = nullptr;
61 
62 
63  declareProperty("VarRCjets", m_VarRCjets = false);
64  declareProperty("VarRCjets_rho", m_VarRCjets_rho = "");
65  declareProperty("VarRCjets_mass_scale", m_VarRCjets_mass_scale = "");
66 }
67 
69 
70 
72  /* Initialize the re-clustered jets */
73  ATH_MSG_INFO(" Initializing particle level Re-clustered jets ");
74 
76 
77 
78  if (m_VarRCjets) {
79  m_ptcut = m_config->VarRCJetPtcut(); // 100 GeV
80  m_etamax = m_config->VarRCJetEtacut(); // 2.5
81  m_trim = m_config->VarRCJetTrimcut(); // 0.05 (5% jet pT)
82  m_radius = m_config->VarRCJetMaxRadius(); // 1.2 (min=0.4)
83  m_minradius = 0.4; // 0.4 default (until we have smaller jets!)
84  std::string original_rho(m_VarRCjets_rho);
85  std::replace(original_rho.begin(), original_rho.end(), '_', '.');
86  float rho = std::stof(original_rho);
87  float m_scale = mass_scales.at(m_VarRCjets_mass_scale);
88  m_massscale = rho * m_scale * 1e-3;
89 
90  m_useJSS = m_config->useVarRCJetSubstructure();
91  m_useAdditionalJSS = m_config->useVarRCJetAdditionalSubstructure();
92  } else {
93  m_ptcut = m_config->RCJetPtcut(); // for initialize [GeV] & passSelection
94  m_etamax = m_config->RCJetEtacut(); // for passSelection
95  m_trim = m_config->RCJetTrimcut(); // for initialize
96  m_radius = m_config->RCJetRadius(); // for initialize
97  m_minradius = -1.0;
98  m_massscale = -1.0;
99 
100  m_useJSS = m_config->useRCJetSubstructure();
101  m_useAdditionalJSS = m_config->useRCJetAdditionalSubstructure();
102  }
103 
104  m_inputJetPtMin = m_config->RCInputJetPtMin();
105  m_inputJetEtaMax = m_config->RCInputJetEtaMax();
106 
107 
108 
111 
112  // build a jet re-clustering tool for each case
113  m_jetReclusteringTool = std::make_shared<JetReclusteringTool>(m_treeName + m_name);
114  top::check(m_jetReclusteringTool->setProperty("InputJetContainer",
116  "Failed inputjetcontainer initialize reclustering tool");
117  top::check(m_jetReclusteringTool->setProperty("OutputJetContainer",
119  "Failed outputjetcontainer initialize reclustering tool");
120  top::check(m_jetReclusteringTool->setProperty("ReclusterRadius",
121  m_radius), "Failed re-clustering radius initialize reclustering tool");
122  top::check(m_jetReclusteringTool->setProperty("RCJetPtMin",
123  m_ptcut * 1e-3), "Failed ptmin [GeV] initialize reclustering tool");
124  top::check(m_jetReclusteringTool->setProperty("InputJetPtMin", m_inputJetPtMin * 1e-3), "Failed InputJetPtMin [GeV] initialize reclustering tool");
125  top::check(m_jetReclusteringTool->setProperty("TrimPtFrac",
126  m_trim), "Failed pT fraction initialize reclustering tool");
127  top::check(m_jetReclusteringTool->setProperty("VariableRMinRadius",
128  m_minradius), "Failed VarRC min radius initialize reclustering tool");
129  top::check(m_jetReclusteringTool->setProperty("VariableRMassScale",
130  m_massscale), "Failed VarRC mass scale initialize reclustering tool");
131  top::check(m_jetReclusteringTool->initialize(), "Failed to initialize reclustering tool");
132 
133  if (m_useJSS || m_useAdditionalJSS) {
134  ATH_MSG_INFO("Calculating RCJet Substructure");
135 
136  // Setup a bunch of FastJet stuff
137  //define the type of jets you will build (http://fastjet.fr/repo/doxygen-3.0.3/classfastjet_1_1JetDefinition.html)
138  m_jet_def_rebuild = std::make_shared<fastjet::JetDefinition>(fastjet::antikt_algorithm, 1.0, fastjet::E_scheme,
139  fastjet::Best);
140  }
141  if (m_useJSS) {
142  //Substructure tool definitions
143  m_nSub1_beta1 = std::make_shared<fastjet::contrib::Nsubjettiness>(1,
144  fastjet::contrib::OnePass_WTA_KT_Axes(),
145  fastjet::contrib::UnnormalizedMeasure(1.0));
146  m_nSub2_beta1 = std::make_shared<fastjet::contrib::Nsubjettiness>(2,
147  fastjet::contrib::OnePass_WTA_KT_Axes(),
148  fastjet::contrib::UnnormalizedMeasure(1.0));
149  m_nSub3_beta1 = std::make_shared<fastjet::contrib::Nsubjettiness>(3,
150  fastjet::contrib::OnePass_WTA_KT_Axes(),
151  fastjet::contrib::UnnormalizedMeasure(1.0));
152 
153 
154  m_split12 = std::make_shared<JetSubStructureUtils::KtSplittingScale>(1);
155  m_split23 = std::make_shared<JetSubStructureUtils::KtSplittingScale>(2);
156 
157  m_qw = std::make_shared<JetSubStructureUtils::Qw>();
158 
159  m_ECF1 = std::make_shared<fastjet::contrib::EnergyCorrelator>(1, 1.0, fastjet::contrib::EnergyCorrelator::pt_R);
160  m_ECF2 = std::make_shared<fastjet::contrib::EnergyCorrelator>(2, 1.0, fastjet::contrib::EnergyCorrelator::pt_R);
161  m_ECF3 = std::make_shared<fastjet::contrib::EnergyCorrelator>(3, 1.0, fastjet::contrib::EnergyCorrelator::pt_R);
162  }
163  if (m_useAdditionalJSS) {
164 
165  m_gECF332 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(3, 3, 2,
166  JetSubStructureUtils::EnergyCorrelator::pt_R);
167  m_gECF461 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(6, 4, 1,
168  JetSubStructureUtils::EnergyCorrelator::pt_R);
169  m_gECF322 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(2, 3, 2,
170  JetSubStructureUtils::EnergyCorrelator::pt_R);
171  m_gECF331 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(3, 3, 1,
172  JetSubStructureUtils::EnergyCorrelator::pt_R);
173  m_gECF422 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(2, 4, 2,
174  JetSubStructureUtils::EnergyCorrelator::pt_R);
175  m_gECF441 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(4, 4, 1,
176  JetSubStructureUtils::EnergyCorrelator::pt_R);
177  m_gECF212 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(1, 2, 2,
178  JetSubStructureUtils::EnergyCorrelator::pt_R);
179  m_gECF321 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(2, 3, 1,
180  JetSubStructureUtils::EnergyCorrelator::pt_R);
181  m_gECF311 = std::make_shared<JetSubStructureUtils::EnergyCorrelatorGeneralized>(1, 3, 1,
182  JetSubStructureUtils::EnergyCorrelator::pt_R);
183  }
184  ATH_MSG_INFO(" Re-clustered jets initialized ");
185 
186  return StatusCode::SUCCESS;
187 } // end initialize()
188 
190  /*
191  Make the jet container (if necessary) and execute the re-clustering tool
192  https://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/TopPhys/xAOD/TopEvent/trunk/Root/TopEventMaker.cxx#L31
193  */
194 
195  // -- Save the jet container to the TStore (only if it doesn't already exist!)
196  // -- Then, we can access it with the re-clustering tool further down
197  if (!evtStore()->contains<xAOD::JetContainer>(m_InputJetContainer)) {
198  auto rcJetInputs = std::make_unique< ConstDataVector< xAOD::JetContainer > >(SG::VIEW_ELEMENTS);
199  for(const xAOD::Jet* jet : *plEvent.m_jets) {
200  if(jet->pt() < m_inputJetPtMin || std::abs(jet->eta()) > m_inputJetEtaMax) continue;
201  rcJetInputs->push_back(jet);
202  }
203  top::check(evtStore()->tds()->record(std::move(rcJetInputs), m_InputJetContainer),
204  "Failed to put jets in TStore for re-clustering");
205  } // end if jet container exists
206 
207 
208 
209 
210 
211  // --- EXECUTE --- //
212  // only execute if the jet container doesn't exist
213  // (do not re-make the 'nominal' jet container over & over again!)
214  if (!evtStore()->contains<xAOD::JetContainer>(m_OutputJetContainer)) {
215  m_jetReclusteringTool->execute();
216 
217  const xAOD::JetContainer* myJets(nullptr);
218  top::check(evtStore()->retrieve(myJets, m_OutputJetContainer), "Failed to retrieve particle RC JetContainer");
219 
220  for (auto rcjet : *myJets) {
221  rcjet->auxdecor<bool>("PassedSelection") = passSelection(*rcjet);
222  }
223 
224  if (m_useJSS || m_useAdditionalJSS) {
225  static const SG::AuxElement::ConstAccessor<bool> passedSelection("PassedSelection");
226 
227  for (auto rcjet : *myJets) {
228  if (!passedSelection(*rcjet)) continue; // Calculate JSS only if passed object selection
229 
230 
231  std::vector<fastjet::PseudoJet> clusters;
232  clusters.clear();
233 
234  for (auto subjet : rcjet->getConstituents()) {
235  const xAOD::Jet* subjet_raw = static_cast<const xAOD::Jet*>(subjet->rawConstituent());
236 
237 
238  for (auto clus_itr : subjet_raw->getConstituents()) {
239 
240  TLorentzVector temp_p4;
241  temp_p4.SetPtEtaPhiM(clus_itr->pt(), clus_itr->eta(), clus_itr->phi(), clus_itr->m());
242 
243 
244  // Only in case AntiKt4EMPFlowJets are used include in the substructure only the charged component of the
245  // substructure
246  if (m_config->sgKeyJetsTDS(m_config->nominalHashValue(),
247  false).find("AntiKt4EMPFlowJets") != std::string::npos) {
248 
249  const xAOD::TruthParticle* tp = dynamic_cast<const xAOD::TruthParticle*>(clus_itr->rawConstituent());
250 
251  if( tp == nullptr)
252  continue;
253 
254  // Do not use charged particles
255  if (tp->charge() == 0) continue;
256 
257  //Apply same track selection used at reco-level
258  if ((clus_itr->pt() < m_config->ghostTrackspT()) || ( std::abs(clus_itr->eta()) > 2.5 ) ) continue;
259  }
260 
261  clusters.push_back(fastjet::PseudoJet(temp_p4.Px(), temp_p4.Py(), temp_p4.Pz(), temp_p4.E()));
262  }
263  }
264 
265  if (clusters.size() != 0) {
267  std::vector<fastjet::PseudoJet> my_pjets = fastjet::sorted_by_pt(clust_seq_rebuild.inclusive_jets(0.0));
268 
269  fastjet::PseudoJet correctedJet;
270  correctedJet = my_pjets[0];
271  //Sometimes fastjet splits the jet into two, so need to correct for that!!
272  if (my_pjets.size() > 1) correctedJet += my_pjets[1];
273 
274  if (m_useJSS) {
275  // Now finally we can calculate some substructure!
276  double tau32 = -1, tau21 = -1;
277 
278  double tau1 = m_nSub1_beta1->result(correctedJet);
279  double tau2 = m_nSub2_beta1->result(correctedJet);
280  double tau3 = m_nSub3_beta1->result(correctedJet);
281 
282  if (std::abs(tau1) > 1e-8) tau21 = tau2 / tau1;
283  else tau21 = -999.0;
284  if (std::abs(tau2) > 1e-8) tau32 = tau3 / tau2;
285  else tau32 = -999.0;
286 
287 
288 
289  double split12 = m_split12->result(correctedJet);
290  double split23 = m_split23->result(correctedJet);
291  double qw = m_qw->result(correctedJet);
292 
293  double D2 = -1;
294 
295  double vECF1 = m_ECF1->result(correctedJet);
296  double vECF2 = m_ECF2->result(correctedJet);
297  double vECF3 = m_ECF3->result(correctedJet);
298  if (std::abs(vECF2) > 1e-8) D2 = vECF3 * vECF1* vECF1* vECF1 / (vECF2 * vECF2 * vECF2);
299  else D2 = -999.0;
300 
301  // now attach the results to the original jet
302  rcjet->auxdecor<float>("Tau32_clstr") = tau32;
303  rcjet->auxdecor<float>("Tau21_clstr") = tau21;
304 
305  // lets also write out the components so we can play with them later
306  rcjet->auxdecor<float>("Tau3_clstr") = tau3;
307  rcjet->auxdecor<float>("Tau2_clstr") = tau2;
308  rcjet->auxdecor<float>("Tau1_clstr") = tau1;
309 
310  rcjet->auxdecor<float>("d12_clstr") = split12;
311  rcjet->auxdecor<float>("d23_clstr") = split23;
312  rcjet->auxdecor<float>("Qw_clstr") = qw;
313 
314 
315  rcjet->auxdecor<float>("nconstituent_clstr") = clusters.size();
316 
317  rcjet->auxdecor<float>("ECF1_clstr") = vECF1;
318  rcjet->auxdecor<float>("ECF2_clstr") = vECF2;
319  rcjet->auxdecor<float>("ECF3_clstr") = vECF3;
320  rcjet->auxdecor<float>("D2_clstr") = D2;
321  } // end of if useJSS
322 
323  if (m_useAdditionalJSS) {
324 
325  // MlB's t/H discriminators
326  // E = (a*n) / (b*m)
327  // for an ECFG_X_Y_Z, a=Y, n=Z -> dimenionless variable
328  double gECF332 = m_gECF332->result(correctedJet);
329  double gECF461 = m_gECF461->result(correctedJet);
330  double gECF322 = m_gECF322->result(correctedJet);
331  double gECF331 = m_gECF331->result(correctedJet);
332  double gECF422 = m_gECF422->result(correctedJet);
333  double gECF441 = m_gECF441->result(correctedJet);
334  double gECF212 = m_gECF212->result(correctedJet);
335  double gECF321 = m_gECF321->result(correctedJet);
336  double gECF311 = m_gECF311->result(correctedJet);
337 
338  double L1 = -999.0, L2 = -999.0, L3 = -999.0, L4 = -999.0, L5 = -999.0;
339  if (std::abs(gECF212) > 1e-12) {
340  L1 = gECF321 / gECF212;
341  L2 = gECF331 / sqrt(gECF212*gECF212*gECF212);
342  }
343  if (std::abs(gECF331) > 1e-12) {
344  L3 = gECF311 / pow(gECF331,1./3.);
345  L4 = gECF322 / pow(gECF331,4./3.);
346  }
347  if (std::abs(gECF441) > 1e-12) {
348  L5 = gECF422/gECF441;
349  }
350 
351  rcjet->auxdecor<float>("gECF332_clstr") = gECF332;
352  rcjet->auxdecor<float>("gECF461_clstr") = gECF461;
353  rcjet->auxdecor<float>("gECF322_clstr") = gECF322;
354  rcjet->auxdecor<float>("gECF331_clstr") = gECF331;
355  rcjet->auxdecor<float>("gECF422_clstr") = gECF422;
356  rcjet->auxdecor<float>("gECF441_clstr") = gECF441;
357  rcjet->auxdecor<float>("gECF212_clstr") = gECF212;
358  rcjet->auxdecor<float>("gECF321_clstr") = gECF321;
359  rcjet->auxdecor<float>("gECF311_clstr") = gECF311;
360  rcjet->auxdecor<float>("L1_clstr") = L1;
361  rcjet->auxdecor<float>("L2_clstr") = L2;
362  rcjet->auxdecor<float>("L3_clstr") = L3;
363  rcjet->auxdecor<float>("L4_clstr") = L4;
364  rcjet->auxdecor<float>("L5_clstr") = L5;
365  }
366 
367  // lets also store the rebuilt jet in case we need it later
368  if (m_useJSS || m_useAdditionalJSS) {
369  rcjet->auxdecor<float>("RRCJet_pt") = correctedJet.pt();
370  rcjet->auxdecor<float>("RRCJet_eta") = correctedJet.eta();
371  rcjet->auxdecor<float>("RRCJet_phi") = correctedJet.phi();
372  rcjet->auxdecor<float>("RRCJet_e") = correctedJet.e();
373  }// end of if useAdditional JSS
374  }//end of check on cluster size
375  } // end rcjet loop
376  } // //m_useJSS || m_useAdditionalJSS
377  } //if (!evtStore()->contains<xAOD::JetContainer>(m_OutputJetContainer))
378 
379 
380  // // }
381 
382  return StatusCode::SUCCESS;
383 } // end execute()
384 
386  return StatusCode::SUCCESS;
387 }
388 
390  /*
391  Check if the re-clustered jet passes selection.
392  Right now, this only does something for |eta| because
393  pT is taken care of in the re-clustering tool. When
394  small-r jet mass is available (calibrated+uncertainties),
395  we can cut on that.
396  */
397  // [pT] calibrated to >~ 22 GeV (23 Jan 2016)
398  if (jet.pt() < m_ptcut) return false;
399 
400  // [|eta|] calibrated < 2.5
401  if (std::abs(jet.eta()) > m_etamax) return false;
402 
403  // small-r jet mass not calibrated and no uncertainties
404 
405  return true;
406 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ShallowCopy.h
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
Trk::L2
@ L2
Definition: AlignModuleList.h:32
FlavorTagDiscriminants::hbb_key::subjet
const std::string subjet
Definition: HbbConstants.h:18
ParticleLevelRCJetObjectLoader::m_minradius
float m_minradius
Definition: ParticleLevelRCJetObjectLoader.h:89
KtSplittingScale.h
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ParticleLevelRCJetObjectLoader::m_jet_def_rebuild
std::shared_ptr< fastjet::JetDefinition > m_jet_def_rebuild
Definition: ParticleLevelRCJetObjectLoader.h:106
ParticleLevelRCJetObjectLoader::m_OutputJetContainer
std::string m_OutputJetContainer
Definition: ParticleLevelRCJetObjectLoader.h:100
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
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
top::ParticleLevelEvent::m_jets
const xAOD::JetContainer * m_jets
Pointer to truth level jets.
Definition: ParticleLevelEvent.h:54
asg
Definition: DataHandleTestTool.h:28
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::L1
@ L1
Definition: AlignModuleList.h:32
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
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
xAOD::Jet_v1::getConstituents
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Definition: Jet_v1.cxx:147
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
EventTools.h
A few functions for doing operations on particles / events. Currently holds code for dR,...
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
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
jet::ClusterSequence
fastjet::ClusterSequence ClusterSequence
Definition: ClusterSequence.h:21
Trk::L3
@ L3
Definition: AlignModuleList.h:32
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
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:41
ParticleLevelRCJetObjectLoader::m_OutJetContainerBase
std::string m_OutJetContainerBase
Definition: ParticleLevelRCJetObjectLoader.h:98
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::check
void check(bool thingToCheck, const std::string &usefulFailureMessage)
Print an error message and terminate if thingToCheck is false.
Definition: EventTools.cxx:15
top::ParticleLevelEvent
Definition: ParticleLevelEvent.h:24
ParticleLevelRCJetObjectLoader::m_ECF2
std::shared_ptr< fastjet::contrib::EnergyCorrelator > m_ECF2
Definition: ParticleLevelRCJetObjectLoader.h:111
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ParticleLevelRCJetObjectLoader::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: ParticleLevelRCJetObjectLoader.cxx:71
ParticleLevelRCJetObjectLoader::m_massscale
float m_massscale
Definition: ParticleLevelRCJetObjectLoader.h:90
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
TopConfig.h
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
EventInfo.h
python.StandardJetMods.qw
qw
Definition: StandardJetMods.py:268
xAOD::JetAlgorithmType::antikt_algorithm
@ antikt_algorithm
Definition: JetContainerInfo.h:33
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
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
EnergyCorrelatorGeneralized.h
JetContainer.h
ParticleLevelRCJetObjectLoader::m_gECF212
std::shared_ptr< JetSubStructureUtils::EnergyCorrelatorGeneralized > m_gECF212
Definition: ParticleLevelRCJetObjectLoader.h:122
Qw.h
ParticleLevelRCJetObjectLoader::m_useAdditionalJSS
bool m_useAdditionalJSS
Definition: ParticleLevelRCJetObjectLoader.h:93
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
ParticleLevelRCJetObjectLoader::m_jetReclusteringTool
std::shared_ptr< JetReclusteringTool > m_jetReclusteringTool
Definition: ParticleLevelRCJetObjectLoader.h:136
JetAuxContainer.h
IParticleHelpers.h
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
EnergyCorrelator.h
ParticleLevelRCJetObjectLoader.h
ParticleLevelEvent.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::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
fitman.rho
rho
Definition: fitman.py:532
ParticleLevelRCJetObjectLoader::m_config
const std::shared_ptr< top::TopConfig > & m_config
Definition: ParticleLevelRCJetObjectLoader.h:77