00001 #ifndef RETRIEVEPFOTOOL_H 00002 #define RETRIEVEPFOTOOL_H 00003 00006 #include "AsgTools/AsgTool.h" 00007 00008 #include "PFlowUtils/IRetrievePFOTool.h" 00009 00010 #include <string> 00011 00012 namespace CP { 00013 00014 class RetrievePFOTool : public virtual IRetrievePFOTool, public asg::AsgTool { 00015 00017 ASG_TOOL_CLASS( RetrievePFOTool, IRetrievePFOTool ); 00018 00019 public: 00021 RetrievePFOTool(const std::string& name); 00022 00024 virtual const xAOD::PFOContainer* retrievePFO(const CP::PFO_JetMETConfig_inputScale& theScale) const override; 00025 00027 virtual const xAOD::PFOContainer* retrievePFO(const CP::PFO_JetMETConfig_inputScale& theScale, const CP::PFO_JetMETConfig_charge& theCharge) const override; 00028 00029 private: 00030 00032 StatusCode retrieve_neutralPFO(const CP::PFO_JetMETConfig_inputScale& theScale, xAOD::PFOContainer* theContainer) const; 00033 00035 StatusCode fillPFOContainer( xAOD::PFOContainer* newContainer, const std::string& theName) const; 00036 00037 }; 00038 00039 } 00040 #endif