ATLAS Offline Software
JetBottomUpSoftDrop.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // JetBottomUpSoftDrop.h
6 
7 #ifndef JetBottomUpSoftDrop_H
8 #define JetBottomUpSoftDrop_H
9 
10 // Jennifer Roloff & Joe Taenzer
11 // October 2016
12 //
13 // Tool to groom jets with bottom up softdrop.
14 // SoftDrop is described in this paper: arXiv:1402.2657
15 // Bottom Up SoftDrop is described in this paper (under the name "Iterated SoftDrop": https://arxiv.org/pdf/1704.06266.pdf
16 // See also: https://fastjet.hepforge.org/trac/browser/contrib/contribs/RecursiveTools/tags/2.0.0-beta1/BottomUpSoftDrop.hh
17 
18 #include "AsgTools/AsgTool.h"
21 #include "AsgTools/ToolHandle.h"
22 
23 #include "fastjet/ClusterSequence.hh"
24 #include "fastjet/contrib/RecursiveSymmetryCutBase.hh"
25 #include "fastjet/contrib/BottomUpSoftDrop.hh"
26 
28 : public asg::AsgTool,
29  virtual public IJetGroomer {
31 
32 public:
33 
34  // Ctor.
35  JetBottomUpSoftDrop(const std::string& name);
36 
37  // Dtor.
39 
40  // Initilization.
42 
43  // Groom a jet and add result to a container.
44  int groom(const xAOD::Jet& jin,
45  const PseudoJetContainer&,
46  xAOD::JetContainer& jout) const;
47 
48  // Dump to log.
49  void print() const;
50 
51 private: // data
52 
53  // Job options.
54  // SoftDrop algorithm:
55  // z > zcut * (dR12/R0)^beta
56  // z = min(pT1, pT2)/(pT1+pT2)
57  // R0 = characteristic jet radius
58  float m_zcut; // pT fraction for retaining subjets
59  float m_beta; // How much to consider angular dependence
60  float m_R0; // Normalization of angular distance, usually the characteristic jet radius (default R0 = 1)
61  ToolHandle<IJetFromPseudojet> m_bld; // Tool to build jets.
62 
63 };
64 
65 #endif
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
JetBottomUpSoftDrop::JetBottomUpSoftDrop
JetBottomUpSoftDrop(const std::string &name)
Definition: JetBottomUpSoftDrop.cxx:22
JetBottomUpSoftDrop::m_zcut
float m_zcut
Definition: JetBottomUpSoftDrop.h:58
JetBottomUpSoftDrop::print
void print() const
Print the state of the tool.
Definition: JetBottomUpSoftDrop.cxx:100
PseudoJetContainer
Definition: PseudoJetContainer.h:48
IJetFromPseudojet.h
IJetGroomer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetBottomUpSoftDrop::groom
int groom(const xAOD::Jet &jin, const PseudoJetContainer &, xAOD::JetContainer &jout) const
Transform jet.
Definition: JetBottomUpSoftDrop.cxx:58
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
JetBottomUpSoftDrop::m_bld
ToolHandle< IJetFromPseudojet > m_bld
Definition: JetBottomUpSoftDrop.h:61
JetBottomUpSoftDrop::m_R0
float m_R0
Definition: JetBottomUpSoftDrop.h:60
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
JetBottomUpSoftDrop
Definition: JetBottomUpSoftDrop.h:29
JetBottomUpSoftDrop::~JetBottomUpSoftDrop
~JetBottomUpSoftDrop()
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
JetBottomUpSoftDrop::m_beta
float m_beta
Definition: JetBottomUpSoftDrop.h:59
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
IJetGroomer
Definition: IJetGroomer.h:23
ToolHandle.h
AsgTool.h
JetBottomUpSoftDrop::initialize
StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: JetBottomUpSoftDrop.cxx:36