00001 #ifndef manTreeSFrameBase_manTreeSCycleBase_H__
00002 #define manTreeSFrameBase_manTreeSCycleBase_H__
00003
00004 #include <vector>
00005 #include <map>
00006 #include <set>
00007
00009 #include "manTree/manTree/MInDetTrack.h"
00010 #include "manTree/manTree/MElectron.h"
00011 #include "manTree/manTree/MJet.h"
00012 #include "manTree/manTree/MMuon.h"
00013 #include "manTree/manTree/MVertex.h"
00014 #include "manTree/manTree/MMissingEt.h"
00015 #include "manTree/manTree/MEventInfo.h"
00016 #include "manTree/manTree/MTriggerChain.h"
00017 #include "manTree/manTree/MTriggerChainConf.h"
00018 #include "manTree/manTree/MTriggerChainResult.h"
00019 #include "manTree/manTree/MTruthParticle.h"
00020 #include "manTree/manTree/MInDetTrack.h"
00021 #include "manTree/manTree/MPDFInfo.h"
00022
00023 #include "core/include/SCycleBase.h"
00024
00025 #include "manTreeSFrameBase/include/MEventTool.h"
00026
00045 class manTreeSCycleBase : public SCycleBase {
00046
00047 public:
00048
00049 manTreeSCycleBase();
00050
00051 virtual ~manTreeSCycleBase();
00052
00053 virtual void BeginInputFile(const SInputData& data) throw (SError) ;
00054
00056 bool newEvent(int run, int event);
00057
00059 void resetRunEventMap();
00060
00062 void disableBranch(const std::string branchName) throw (SError) ;
00063
00064 protected:
00065
00066
00067 MEventTool* m_event;
00068
00069
00070 void connectManTree(const SInputData& data) throw(SError);
00071
00072
00073 void isRealData(const SInputData& data);
00074
00076
00078 std::vector<manchester::MElectron>* m_em;
00080 std::vector<manchester::MJet>* m_jet;
00082 std::vector<manchester::MJet>* m_mcpart_jet;
00084 std::vector<manchester::MJet>* m_originalaod_jet;
00086 std::vector<manchester::MMuon>* m_muon;
00088 std::vector<manchester::MMuon>* m_stacomuon;
00090 std::vector<manchester::MVertex>* m_vertex;
00092 std::vector<manchester::MTriggerChain>* m_trigChains;
00094 std::vector<manchester::MTriggerChainResult>* m_trigResults;
00096 const manchester::MTriggerChainConf* m_trigconf;
00098 std::vector<manchester::MTruthParticle>* m_truthpart;
00100 manchester::MMissingEt* m_met;
00102 manchester::MEventInfo* m_evinfo;
00104 std::vector<manchester::MInDetTrack>* m_idTrk;
00105
00107 bool m_realData;
00108
00110 std::string m_inTreeName;
00111 std::string m_metName2010;
00112 std::string m_metName2011;
00113
00115 std::map< int, std::set<int> > m_run_event_map;
00116
00117 ClassDef(manTreeSCycleBase,0);
00118
00119 };
00120
00121
00122
00123 #endif //manTreeSFrameBase_manTreeSCycleBase_H__