00001
00002
00003
00004 #ifndef METMakerAlg_H
00005 #define METMakerAlg_H
00006
00007 #include "AthenaBaseComps/AthAlgorithm.h"
00008 #include "GaudiKernel/ToolHandle.h"
00009
00010 #include "xAODEgamma/Electron.h"
00011 #include "xAODEgamma/Photon.h"
00012 #include "xAODMuon/Muon.h"
00013 #include "xAODTau/TauJet.h"
00014
00015 class IMETMaker;
00016 class IAsgElectronLikelihoodTool;
00017 class IAsgPhotonIsEMSelector;
00018 namespace CP {
00019 class IMuonSelectionTool;
00020 }
00021 namespace TauAnalysisTools {
00022 class ITauSelectionTool;
00023 }
00024
00025 namespace met {
00026 class METMakerAlg : public AthAlgorithm {
00027
00028 public:
00029
00031 METMakerAlg(const std::string& name, ISvcLocator* pSvcLocator);
00032
00034 ~METMakerAlg();
00035
00037 StatusCode initialize();
00038 StatusCode execute();
00039 StatusCode finalize();
00040
00041 private:
00042
00044 METMakerAlg();
00045
00046 bool accept(const xAOD::Electron* el);
00047 bool accept(const xAOD::Photon* ph);
00048 bool accept(const xAOD::TauJet* tau);
00049 bool accept(const xAOD::Muon* muon);
00050
00051 std::string m_mapname;
00052 std::string m_corename;
00053 std::string m_outname;
00054 bool m_overwrite;
00055
00056 std::string m_softclname;
00057 std::string m_softtrkname;
00058
00059 std::string m_jetColl;
00060 std::string m_eleColl;
00061 std::string m_gammaColl;
00062 std::string m_tauColl;
00063 std::string m_muonColl;
00064
00065 bool m_doTruthLep;
00066
00068 ToolHandle<IMETMaker> m_metmaker;
00069
00070 ToolHandle<CP::IMuonSelectionTool> m_muonSelTool;
00071 ToolHandle<IAsgElectronLikelihoodTool> m_elecSelLHTool;
00072 ToolHandle<IAsgPhotonIsEMSelector> m_photonSelIsEMTool;
00073 ToolHandle<TauAnalysisTools::ITauSelectionTool> m_tauSelTool;
00074
00075 };
00076
00077 }
00078
00079 #endif