ATLAS Offline Software
JetReclusteringTool.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 #ifndef JetReclustering_JetReclusteringTool_H
6 #define JetReclustering_JetReclusteringTool_H
7 
8 // making it more like a tool
9 #include "AsgTools/AsgTool.h"
10 #include "AsgTools/AnaToolHandle.h"
12 
13 #include <map>
14 #include <memory>
15 
16 /*
17  Author : Giordon Stark
18  Email : gstark@cern.ch
19  Thanks to Ben Nachman for inspiration, P-A for the help, Jon Burr for
20  assisting in dual-use conversion.
21 
22  Takes a set of small-R jets and reclusters to large-R jets
23 */
24 
25 class IJetModifier;
26 //class IJetExecuteTool;
27 class IJetFromPseudojet;
28 class IJetFinder;
29 class IJetGroomer;
30 class IPseudoJetGetter;
32 
33 class JetReclusteringTool : public asg::AsgTool, virtual public IJetExecuteTool {
34  public:
36  JetReclusteringTool(const std::string& myname);
37 
38  // initialization - set up everything
39  virtual StatusCode initialize() override;
40 
41  // execute - build jets
42  virtual int execute() const override;
43 
44  // display the configuration
45  virtual void print() const override;
46 
47  private:
48  // hold the class name
49  std::string m_APP_NAME = "JetReclusteringTool";
50 
51  /* Properties */
52  // input jet container to use as a constituent proxy
53  std::string m_inputJetContainer;
54  // output jet container to store reclustered jets
55  std::string m_outputJetContainer;
56  // radius of the reclustered jets
57  float m_radius;
58  // reclustering algorithm to use
59  std::string m_rc_alg;
60  /* variable R reclustering */
61  // minimum radius
62  float m_varR_minR;
63  // mass scale (GeV)
64  float m_varR_mass;
65  /* end variable R reclustering */
66  // minimum pt of the constituents (GeV)
68  // minimum pt of the reclustered jets (GeV)
69  float m_ptMin_rc;
70  // trimming to apply to reclustered jets
71  float m_ptFrac;
73  // enable to add area attributes form
74  bool m_doArea;
75  std::string m_areaAttributes;
76 
77  // make sure someone only calls a function once
78  bool m_isInitialized = false;
79  // this is for filtering input jets
82  // this is for reclustering using filtered input jets
88 
89  // tool for calculating effectiveR
91  // tool for trimming reclustered jet
93  // tool for the jpjr for m_jetTrimmingTool
95  // modifier tools for the reclustered jets
104 };
105 
106 #endif
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
asg::AnaToolHandle< IJetModifier >
JetReclusteringTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: JetReclusteringTool.cxx:75
JetReclusteringTool::m_ptFrac
float m_ptFrac
Definition: JetReclusteringTool.h:71
IJetFromPseudojet
IJetFromPseudojet is a dual-use tool interface for a tool that constructs a new ATLAS jet from a fast...
Definition: IJetFromPseudojet.h:24
JetReclusteringTool::m_nSubjettinessTool
asg::AnaToolHandle< IJetModifier > m_nSubjettinessTool
Definition: JetReclusteringTool.h:103
IJetFinder
Definition: IJetFinder.h:30
JetReclusteringTool::m_doArea
bool m_doArea
Definition: JetReclusteringTool.h:74
JetReclusteringTool::m_jetChargeTool
asg::AnaToolHandle< IJetModifier > m_jetChargeTool
Definition: JetReclusteringTool.h:96
JetReclusteringTool::m_centerOfMassShapesTool
asg::AnaToolHandle< IJetModifier > m_centerOfMassShapesTool
Definition: JetReclusteringTool.h:102
IJetExecuteTool
IJetExecuteTool is a dual-use tool interface for generic tools, i.e. those that behave like algorithm...
Definition: IJetExecuteTool.h:19
JetReclusteringTool::m_energyCorrelatorTool
asg::AnaToolHandle< IJetModifier > m_energyCorrelatorTool
Definition: JetReclusteringTool.h:98
JetReclusteringTool::m_jetPullTool
asg::AnaToolHandle< IJetModifier > m_jetPullTool
Definition: JetReclusteringTool.h:97
JetReclusteringTool
Definition: JetReclusteringTool.h:33
JetReclusteringTool::m_subjet_radius
float m_subjet_radius
Definition: JetReclusteringTool.h:72
JetReclusteringTool::m_reclusterJetTool
asg::AnaToolHandle< IJetExecuteTool > m_reclusterJetTool
Definition: JetReclusteringTool.h:86
JetReclusteringTool::m_isInitialized
bool m_isInitialized
Definition: JetReclusteringTool.h:78
JetReclusteringTool::m_ptMin_input
float m_ptMin_input
Definition: JetReclusteringTool.h:67
IJetExecuteTool.h
IJetPseudojetRetriever
Definition: IJetPseudojetRetriever.h:27
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JetReclusteringTool::m_varR_minR
float m_varR_minR
Definition: JetReclusteringTool.h:62
JetReclusteringTool::m_trimJetTool
asg::AnaToolHandle< IJetExecuteTool > m_trimJetTool
Definition: JetReclusteringTool.h:87
JetReclusteringTool::m_dipolarityTool
asg::AnaToolHandle< IJetModifier > m_dipolarityTool
Definition: JetReclusteringTool.h:101
JetReclusteringTool::m_inputJetFilterTool
asg::AnaToolHandle< IJetExecuteTool > m_inputJetFilterTool
Definition: JetReclusteringTool.h:81
JetReclusteringTool::print
virtual void print() const override
Print the state of the tool.
Definition: JetReclusteringTool.cxx:275
JetReclusteringTool::m_jetFromPseudoJetTool
asg::AnaToolHandle< IJetFromPseudojet > m_jetFromPseudoJetTool
Definition: JetReclusteringTool.h:84
JetReclusteringTool::m_jetFilterTool
asg::AnaToolHandle< IJetModifier > m_jetFilterTool
Definition: JetReclusteringTool.h:80
AnaToolHandle.h
JetReclusteringTool::m_rc_alg
std::string m_rc_alg
Definition: JetReclusteringTool.h:59
JetReclusteringTool::JetReclusteringTool
JetReclusteringTool(const std::string &myname)
Definition: JetReclusteringTool.cxx:37
JetReclusteringTool::m_ptMin_rc
float m_ptMin_rc
Definition: JetReclusteringTool.h:69
JetReclusteringTool::m_radius
float m_radius
Definition: JetReclusteringTool.h:57
JetReclusteringTool::m_areaAttributes
std::string m_areaAttributes
Definition: JetReclusteringTool.h:75
JetReclusteringTool::m_energyCorrelatorRatiosTool
asg::AnaToolHandle< IJetModifier > m_energyCorrelatorRatiosTool
Definition: JetReclusteringTool.h:99
JetReclusteringTool::execute
virtual int execute() const override
Method to be called for each event.
Definition: JetReclusteringTool.cxx:256
JetReclusteringTool::m_varR_mass
float m_varR_mass
Definition: JetReclusteringTool.h:64
JetReclusteringTool::m_inputJetContainer
std::string m_inputJetContainer
Definition: JetReclusteringTool.h:53
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
JetReclusteringTool::m_jetTrimmingTool_JPJR
asg::AnaToolHandle< IJetPseudojetRetriever > m_jetTrimmingTool_JPJR
Definition: JetReclusteringTool.h:94
IPseudoJetGetter
IPseudoJetGetter is a dual-use tool interface for retrieving a vector of fastjet pseudojets.
Definition: IPseudoJetGetter.h:27
JetReclusteringTool::m_jetFinderTool
asg::AnaToolHandle< IJetFinder > m_jetFinderTool
Definition: JetReclusteringTool.h:85
JetReclusteringTool::m_pseudoJetGetterTool
asg::AnaToolHandle< IPseudoJetGetter > m_pseudoJetGetterTool
Definition: JetReclusteringTool.h:83
IJetGroomer
Definition: IJetGroomer.h:23
AsgTool.h
JetReclusteringTool::m_outputJetContainer
std::string m_outputJetContainer
Definition: JetReclusteringTool.h:55
JetReclusteringTool::m_ktSplittingScaleTool
asg::AnaToolHandle< IJetModifier > m_ktSplittingScaleTool
Definition: JetReclusteringTool.h:100
JetReclusteringTool::m_effectiveRTool
asg::AnaToolHandle< IJetModifier > m_effectiveRTool
Definition: JetReclusteringTool.h:90
JetReclusteringTool::m_jetTrimmingTool
asg::AnaToolHandle< IJetGroomer > m_jetTrimmingTool
Definition: JetReclusteringTool.h:92
IJetModifier
IJetModifier is a dual-use tool interface for a tool that modifies a jet collection.
Definition: IJetModifier.h:20
JetReclusteringTool::m_APP_NAME
std::string m_APP_NAME
Definition: JetReclusteringTool.h:49