00001 #ifndef ELECTRONCHARGECORRECTION_ELECHARGEALG_H
00002 #define ELECTRONCHARGECORRECTION_ELECHARGEALG_H 1
00003 
00004 #include "AthenaBaseComps/AthAlgorithm.h"
00005 #include "GaudiKernel/ToolHandle.h"
00006 
00007 
00008 #include "TTree.h"
00009 #include "TLorentzVector.h"
00010 
00011 #include <vector>
00012 
00013 
00014 #include "PATInterfaces/SystematicSet.h"
00015 
00016 namespace CP{
00017   
00018   class IEfficiencyScaleFactorTool;
00019 }
00020 
00021 class EleChargeAlg: public ::AthAlgorithm {
00022  public:
00023   EleChargeAlg( const std::string& name, ISvcLocator* pSvcLocator);
00024 
00025   virtual ~EleChargeAlg();
00026 
00027   virtual StatusCode  initialize();
00028   virtual StatusCode  execute();
00029   virtual StatusCode  finalize();
00030 
00031 
00032  private:
00034   CP::SystematicSet m_syst;
00035 
00037   ToolHandle<CP::IEfficiencyScaleFactorTool> m_eccTool;
00038 
00040   StringProperty m_eleContName;
00041 };
00042 
00043 #endif //> !ELECTRONCHARGECORRECTION_ELECHARGEALG_H