00001
00002 #ifndef JETINTERFACE_IFASTJETINTERFACETOOL_H
00003 #define JETINTERFACE_IFASTJETINTERFACETOOL_H
00004
00005
00006 #include "fastjet/PseudoJet.hh"
00007 #include "AsgTools/IAsgTool.h"
00008
00009 #include <vector>
00010
00011 namespace fastjet
00012 {
00013 class ClusterSequence;
00014 class JetDefinition;
00015 class AreaDefinition;
00016 }
00017
00018 class IFastJetInterfaceTool : virtual public asg::IAsgTool
00019 {
00020 ASG_TOOL_INTERFACE(IFastJetInterfaceTool)
00021
00022 public:
00023
00024 typedef fastjet::PseudoJet fjet_t;
00025 typedef std::vector<fjet_t> fjetlist_t;
00026
00027 virtual ~IFastJetInterfaceTool() { };
00028
00029 virtual StatusCode initialize() = 0;
00030 virtual StatusCode execute(const fjetlist_t& inJets,fjetlist_t& outJets) = 0;
00031 virtual fastjet::ClusterSequence* clusterSequence() = 0;
00032 virtual const fastjet::ClusterSequence* clusterSequence() const = 0;
00033
00034 virtual const fastjet::JetDefinition* getJetDefinition() const = 0;
00035 virtual const fastjet::AreaDefinition* getAreaDefinition() const = 0;
00036 virtual const std::string getAreaDefinitionType() const = 0;
00037
00038 };
00039
00043 #endif