00001 // MuonSegmentPseudoJetGetter.h 00002 00003 #ifndef MuonSegmentPseudoJetGetter_H 00004 #define MuonSegmentPseudoJetGetter_H 00005 00006 // David Adams 00007 // January 2014 00008 00028 00029 #include "AsgTools/AsgTool.h" 00030 #include "JetInterface/IPseudoJetGetter.h" 00031 #include "fastjet/PseudoJet.hh" 00032 #include "xAODMuon/MuonSegmentContainer.h" 00033 #include "JetEDM/PseudoJetVector.h" 00034 #include "JetEDM/LabelIndex.h" 00035 00036 class MuonSegmentPseudoJetGetter 00037 : public asg::AsgTool, 00038 virtual public IPseudoJetGetter { 00039 ASG_TOOL_CLASS(MuonSegmentPseudoJetGetter, IPseudoJetGetter) 00040 00041 public: 00042 00043 typedef jet::LabelIndex LabelIndex; 00044 typedef jet::PseudoJetVector PseudoJetVector; 00045 00047 MuonSegmentPseudoJetGetter(const std::string& myname); 00048 00051 virtual StatusCode initialize(); 00052 00057 const PseudoJetVector* get() const; 00058 00061 virtual int appendTo(PseudoJetVector& psjs, const LabelIndex* pli) const; 00062 00065 int append(const xAOD::MuonSegmentContainer& inputs, PseudoJetVector& psjs, const LabelIndex* pli) const; 00066 00068 std::string label() const; 00069 00071 void print() const; 00072 00073 protected: //data 00074 00075 // Job options. 00076 std::string m_incoll; 00077 std::string m_outcoll; 00078 std::string m_label; 00079 double m_pt; 00080 00081 }; 00082 00083 #endif