ATLAS Offline Software
JetModifiedMassDrop.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 // JetModifiedMassDrop.h
6 
7 #ifndef JetModifiedMassDrop_H
8 #define JetModifiedMassDrop_H
9 
10 // Joe Taenzer
11 // October 2016
12 //
13 // Tool to apply the modified mass drop tagger (mMDT) and groom jets by filtering with mMDT
14 // mMDT is described in this paper: arXiv:1307.0007
15 // See also: http://fastjet.hepforge.org/svn/contrib/contribs/RecursiveTools/tags/1.0.0/ModifiedMassDropTagger.hh
16 
17 #include "AsgTools/AsgTool.h"
20 #include "AsgTools/ToolHandle.h"
21 
23  enum SymmetryMeasure : int;
24  enum RecursionChoice : int;
25 }
26 
27 
29 : public asg::AsgTool,
30 // public fastjet::contrib::RecursiveSymmetryCutBase,
31  virtual public IJetGroomer {
33 
34 public:
35 
36  // Equivalent enums to those defined in RecursiveSymmetryToolBase.hh
37  // Redefined here so they can be used in the python configuration
38  // See: http://fastjet.hepforge.org/svn/contrib/contribs/RecursiveTools/tags/1.0.0/RecursiveSymmetryCutBase.hh
42  y
43 
44  };
45 
49  larger_m
50  };
51 
52  // Ctor.
53  JetModifiedMassDrop(const std::string& name);
54 
55  // Dtor.
57 
58  // Initilization.
59  virtual StatusCode initialize() override;
60 
61  // Groom a jet and add result to a container.
62  virtual int groom(const xAOD::Jet& jin,
63  const PseudoJetContainer&,
64  xAOD::JetContainer& jout) const override;
65 
66  // Dump to log.
67  virtual void print() const override;
68 
69 private: // data
70 
71  // Job options.
72  float m_zcut; // Cut on the symmetry measure
73  float m_mu; // Mass drop, mu = m_heavy/m_parent
74  bool m_doFilt; // Filter the jet after mass drop grooming
75  double m_filtR; // Filter radius to use
76  int m_filtNSub; // Number of subjets to keep in the filter
77 
78  // Symmetry measure to use, either y or scalar_z, default is y
79  int m_sym;
80  // Recursion choice, larger_pt or larger_mt, default is larger_pt
82 
83  ToolHandle<IJetFromPseudojet> m_bld; // Tool to build jets.
84 
85 };
86 
87 #endif
JetModifiedMassDrop::vector_z
@ vector_z
Definition: JetModifiedMassDrop.h:41
JetModifiedMassDrop::larger_m
@ larger_m
choose the subjet with larger mass (deprecated)
Definition: JetModifiedMassDrop.h:49
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
JetModifiedMassDrop::m_mu
float m_mu
Definition: JetModifiedMassDrop.h:73
JetModifiedMassDrop::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: JetModifiedMassDrop.cxx:45
PseudoJetContainer
Definition: PseudoJetContainer.h:48
JetModifiedMassDrop::scalar_z
@ scalar_z
Definition: JetModifiedMassDrop.h:40
JetModifiedMassDrop::m_filtR
double m_filtR
Definition: JetModifiedMassDrop.h:75
IJetFromPseudojet.h
JetModifiedMassDrop::m_doFilt
bool m_doFilt
Definition: JetModifiedMassDrop.h:74
JetModifiedMassDrop::m_filtNSub
int m_filtNSub
Definition: JetModifiedMassDrop.h:76
IJetGroomer.h
JetModifiedMassDrop::m_zcut
float m_zcut
Definition: JetModifiedMassDrop.h:72
JetModifiedMassDrop::y
@ y
Definition: JetModifiedMassDrop.h:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetModifiedMassDrop::m_bld
ToolHandle< IJetFromPseudojet > m_bld
Definition: JetModifiedMassDrop.h:83
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
JetModifiedMassDrop::groom
virtual int groom(const xAOD::Jet &jin, const PseudoJetContainer &, xAOD::JetContainer &jout) const override
Transform jet.
Definition: JetModifiedMassDrop.cxx:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JetRecGroomingParams
Definition: JetModifiedMassDrop.h:22
JetModifiedMassDrop
Definition: JetModifiedMassDrop.h:31
JetModifiedMassDrop::larger_mt
@ larger_mt
choose the subjet with larger
Definition: JetModifiedMassDrop.h:48
JetModifiedMassDrop::larger_pt
@ larger_pt
choose the subjet with larger
Definition: JetModifiedMassDrop.h:47
JetModifiedMassDrop::~JetModifiedMassDrop
~JetModifiedMassDrop()
JetModifiedMassDrop::m_recursion
int m_recursion
Definition: JetModifiedMassDrop.h:81
JetModifiedMassDrop::print
virtual void print() const override
Print the state of the tool.
Definition: JetModifiedMassDrop.cxx:139
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
JetModifiedMassDrop::SymmetryMeasure
SymmetryMeasure
an enum of the different (a)symmetry measures that can be used
Definition: JetModifiedMassDrop.h:40
IJetGroomer
Definition: IJetGroomer.h:23
JetModifiedMassDrop::RecursionChoice
RecursionChoice
an enum for the options of how to choose which of two subjets to recurse into
Definition: JetModifiedMassDrop.h:47
ToolHandle.h
AsgTool.h
JetModifiedMassDrop::m_sym
int m_sym
Definition: JetModifiedMassDrop.h:79
JetModifiedMassDrop::JetModifiedMassDrop
JetModifiedMassDrop(const std::string &name)
Definition: JetModifiedMassDrop.cxx:27