ATLAS Offline Software
JetSoftDropTools.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETREC_JETSOFDROPTOOLS_H
6 #define JETREC_JETSOFDROPTOOLS_H
7 
18 #include "fastjet/PseudoJet.hh"
19 #include "fastjet/tools/Filter.hh"
20 
21 #include "xAODJet/JetContainer.h"
22 
24 #include "JetRec/JetGroomer.h"
26 
28 
29 
30 namespace JetGrooming {
31 
36  class SoftDrop
37  : virtual public JetGroomer {
38  ASG_TOOL_CLASS(SoftDrop, IJetProvider)
39 
40  public:
41  using JetGroomer::JetGroomer;
42 
43  StatusCode initialize() override ;
44 
45  virtual void insertGroomedJet(const xAOD::Jet&, const PseudoJetContainer&, xAOD::JetContainer&, PseudoJetVector&) const override ;
46 
47  protected:
48 
49  void setSoftDropAttributes(xAOD::Jet& groomedjet, int nsdsubjets) const ;
50 
51  Gaudi::Property<float> m_zcut {this, "ZCut", 0.1 , "pT fraction for retaining subjets"};
52  Gaudi::Property<float> m_beta {this, "Beta", 0.0, "How much to consider angular dependence"};
53  Gaudi::Property<float> m_R0 {this, "R0", 1.0, "Normalization of angular distance, usually the characteristic jet radius (default R0 = 1)"};
54 
55  Gaudi::Property<bool> m_saveSDatt {this, "SaveSoftDropAttributes",false, ""};
56 
57  };
58 
59 
60 
64  class RecSoftDrop: public SoftDrop {
66  public:
67  using SoftDrop::SoftDrop;//
68 
69  StatusCode initialize() override final ;
70 
71  virtual void insertGroomedJet(const xAOD::Jet&, const PseudoJetContainer&, xAOD::JetContainer&, PseudoJetVector&) const override final ;
72 
73  private:
74  Gaudi::Property<int> m_N {this, "N", 1 , "Number of layers (-1 <> infinite)"};
75  };
76 
77 
78 
79 
80 
84  class BottomUpSoftDrop: virtual public SoftDrop {
85  ASG_TOOL_CLASS0(BottomUpSoftDrop)
86  public:
87  using SoftDrop::SoftDrop;
88 
89  virtual void insertGroomedJet(const xAOD::Jet&, const PseudoJetContainer&, xAOD::JetContainer&, PseudoJetVector&) const override final ;
90  };
91 
92 
93 
94 }
95 
96 
97 #endif
IJetProvider.h
PropertyWrapper.h
JetGrooming::RecSoftDrop
Definition: JetSoftDropTools.h:73
JetGrooming::SoftDrop::m_R0
Gaudi::Property< float > m_R0
Definition: JetSoftDropTools.h:62
JetGrooming
Definition: JetGroomer.h:33
PseudoJetContainer
Definition: PseudoJetContainer.h:48
JetGrooming::SoftDrop::setSoftDropAttributes
void setSoftDropAttributes(xAOD::Jet &groomedjet, int nsdsubjets) const
Definition: JetSoftDropTools.cxx:97
JetGroomer
JetGrooming::SoftDrop::m_beta
Gaudi::Property< float > m_beta
Definition: JetSoftDropTools.h:61
JetGrooming::SoftDrop::insertGroomedJet
virtual void insertGroomedJet(const xAOD::Jet &, const PseudoJetContainer &, xAOD::JetContainer &, PseudoJetVector &) const override
Definition: JetSoftDropTools.cxx:83
JetGrooming::RecSoftDrop::m_N
Gaudi::Property< int > m_N
Definition: JetSoftDropTools.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ASG_TOOL_CLASS0
#define ASG_TOOL_CLASS0(CLASSNAME)
Definition: AsgToolMacros.h:62
JetGrooming::SoftDrop::initialize
StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: JetSoftDropTools.cxx:64
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
JetGrooming::SoftDrop
Definition: JetSoftDropTools.h:46
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
PseudoJetVector
std::vector< fastjet::PseudoJet > PseudoJetVector
Definition: JetConstituentFiller.cxx:17
PseudoJetContainer.h
JetContainer.h
JetGrooming::BottomUpSoftDrop::insertGroomedJet
virtual void insertGroomedJet(const xAOD::Jet &, const PseudoJetContainer &, xAOD::JetContainer &, PseudoJetVector &) const override final
Definition: JetSoftDropTools.cxx:127
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
JetGrooming::SoftDrop::m_saveSDatt
Gaudi::Property< bool > m_saveSDatt
Definition: JetSoftDropTools.h:64
JetGrooming::SoftDrop::m_zcut
Gaudi::Property< float > m_zcut
Definition: JetSoftDropTools.h:60
JetGrooming::RecSoftDrop::insertGroomedJet
virtual void insertGroomedJet(const xAOD::Jet &, const PseudoJetContainer &, xAOD::JetContainer &, PseudoJetVector &) const override final
Definition: JetSoftDropTools.cxx:109
IJetProvider
Definition: IJetProvider.h:27
JetGroomer.h
JetGrooming::RecSoftDrop::initialize
StatusCode initialize() override final
Dummy implementation of the initialisation function.
Definition: JetSoftDropTools.cxx:76