#ifndef MCPRODUCTION_H #define MCPRODUCTION_H ///////////////////////////////////////////////////////////////////////////////////////////////////// /// Name : MCPRODUCTION /// Package : offline/PhysicsAnalysis/AnalysisCommon/AnalysisExamples /// Author : Daniel Hayden /// Created : Jan 2010 /// /// DESCRIPTION: /// /// Example of G/Z'->ee reconstruction on AOD ////// /////////////////////////////////////////////////////////////////////////////////////////////////////// #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/Algorithm.h" #include "GaudiKernel/ObjectVector.h" #include "GaudiKernel/ITHistSvc.h" #include "CLHEP/Units/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" #include "AnalysisTools/AnalysisTools.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "VxVertex/VxContainer.h" #include "EventInfo/EventInfo.h" #include "EventInfo/EventID.h" #include "egammaEvent/egammaContainer.h" #include "TrigParticle/TrigElectronContainer.h" #include "AnalysisTriggerEvent/LVL1_ROI.h" #include "TrigCaloEvent/TrigEMClusterContainer.h" #include "CaloEvent/CaloClusterContainer.h" #include "egammaEvent/ElectronContainer.h" #include "CBNT_Utils/CBNT_AthenaAwareBase.h" #include #include #include "TH1.h" #include "TH2.h" #include "TGraph.h" typedef std::vector ElectronVect; class MCProduction; class MCProduction : public Algorithm { public: MCProduction(const std::string& name, ISvcLocator* pSvcLocator); ~MCProduction(); StatusCode initialize(); StatusCode finalize(); StatusCode execute(); private: /// the z -> ee reconstruction method StatusCode mcproduction(); private: /// get a handle to the tool helper ToolHandle m_analysisTools; /** tool to access the trigger decision */ ToolHandle m_trigDec; /// a handle on Store Gate StoreGateSvc* m_storeGate; /// a handle on the Hist/TTree registration service ITHistSvc * m_thistSvc; /// name of the AOD electron container to retrieve from StoreGate std::string m_electronContainerName; std::string m_trkMatchContainerName; std::string m_ElectronTriggerFlag; std::string m_MCorData; std::string m_eventInfoKey; /// use selection cuts - for electrons /// to be modified thru job options double m_ptElecCut; double m_MassElecCut; double m_etaElecCut; double m_LatestOQ; double m_Scale; /// create the histograms /// for electrons /// reconstructed quantities // CutFlow TH1F* h_CutFlow; // Pair TH1F* h_Pair_Pt; TH1F* h_Pair_Et; TH1F* h_Pair_Eta; TH1F* h_Pair_InvMass; }; #endif // MCPRODUCTION_H