00001
00002
00003 #ifndef JetFinder_H
00004 #define JetFinder_H
00005
00006
00007
00008
00009
00010
00011
00012 #include "AsgTools/AsgTool.h"
00013 #include "JetInterface/IJetFinder.h"
00014 #include "JetInterface/IJetFromPseudojet.h"
00015 #include "fastjet/PseudoJet.hh"
00016 #include "fastjet/JetDefinition.hh"
00017 #include "xAODJet/JetContainer.h"
00018 #include "AsgTools/ToolHandle.h"
00019
00020 namespace fastjet {
00021 class ClusterSequence;
00022 }
00023
00037
00038
00039 class JetFinder
00040 : public asg::AsgTool,
00041 virtual public IJetFinder {
00042 ASG_TOOL_CLASS(JetFinder, IJetFinder)
00043
00044 public:
00045
00046
00047 JetFinder(std::string name);
00048
00049
00050 StatusCode initialize();
00051
00052
00053 int find(const PseudoJetVector& inps, xAOD::JetContainer& jets,
00054 xAOD::JetInput::Type contype, const NameList& ghostlabs) const;
00055
00056
00057
00058 void save(fastjet::ClusterSequence* pcs) const;
00059
00060
00061 bool isVariableR() const;
00062
00063
00064 void print() const;
00065
00066 private:
00067
00068
00069 std::string m_jetalg;
00070 float m_jetrad;
00071 float m_minrad;
00072 float m_massscale;
00073 float m_ptmin;
00074 float m_ghostarea;
00075 int m_ranopt;
00076 ToolHandle<IJetFromPseudojet> m_bld;
00077
00078
00079 fastjet::JetAlgorithm m_fjalg;
00080 bool m_isVariableR;
00081
00082 };
00083
00084 #endif