00001 #ifndef JetReclustering_JetReclusteringTool_H
00002 #define JetReclustering_JetReclusteringTool_H
00003
00004
00005 #include "AsgTools/AsgTool.h"
00006 #include "AsgTools/AnaToolHandle.h"
00007 #include "JetInterface/IJetExecuteTool.h"
00008
00009 #include <map>
00010 #include <memory>
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 class IJetModifier;
00022
00023 class IJetFromPseudojet;
00024 class IJetFinder;
00025 class IJetGroomer;
00026 class IPseudoJetGetter;
00027 class IJetPseudojetRetriever;
00028
00029 class JetReclusteringTool : public asg::AsgTool, virtual public IJetExecuteTool {
00030 public:
00031 ASG_TOOL_CLASS(JetReclusteringTool, IJetExecuteTool)
00032 JetReclusteringTool(std::string myname);
00033
00034
00035 virtual StatusCode initialize() override;
00036
00037
00038 virtual int execute() const override;
00039
00040
00041 virtual void print() const override;
00042
00043 private:
00044
00045 std::string m_APP_NAME = "JetReclusteringTool";
00046
00047
00048
00049 std::string m_inputJetContainer;
00050
00051 std::string m_outputJetContainer;
00052
00053 float m_radius;
00054
00055 std::string m_rc_alg;
00056
00057
00058 float m_varR_minR;
00059
00060 float m_varR_mass;
00061
00062
00063 float m_ptMin_input;
00064
00065 float m_ptMin_rc;
00066
00067 float m_ptFrac;
00068 float m_subjet_radius;
00069
00070 bool m_doArea;
00071 std::string m_areaAttributes;
00072
00073
00074 bool m_isInitialized = false;
00075
00076 asg::AnaToolHandle<IJetModifier> m_jetFilterTool;
00077 asg::AnaToolHandle<IJetExecuteTool> m_inputJetFilterTool;
00078
00079 asg::AnaToolHandle<IPseudoJetGetter> m_pseudoJetGetterTool;
00080 asg::AnaToolHandle<IJetFromPseudojet> m_jetFromPseudoJetTool;
00081 asg::AnaToolHandle<IJetFinder> m_jetFinderTool;
00082 asg::AnaToolHandle<IJetExecuteTool> m_reclusterJetTool;
00083 asg::AnaToolHandle<IJetExecuteTool> m_trimJetTool;
00084
00085
00086 asg::AnaToolHandle<IJetModifier> m_effectiveRTool;
00087
00088 asg::AnaToolHandle<IJetGroomer> m_jetTrimmingTool;
00089
00090 asg::AnaToolHandle<IJetPseudojetRetriever> m_jetTrimmingTool_JPJR;
00091
00092 asg::AnaToolHandle<IJetModifier> m_jetChargeTool;
00093 asg::AnaToolHandle<IJetModifier> m_jetPullTool;
00094 asg::AnaToolHandle<IJetModifier> m_energyCorrelatorTool;
00095 asg::AnaToolHandle<IJetModifier> m_energyCorrelatorRatiosTool;
00096 asg::AnaToolHandle<IJetModifier> m_ktSplittingScaleTool;
00097 asg::AnaToolHandle<IJetModifier> m_dipolarityTool;
00098 asg::AnaToolHandle<IJetModifier> m_centerOfMassShapesTool;
00099 asg::AnaToolHandle<IJetModifier> m_nSubjettinessTool;
00100 };
00101
00102 #endif