/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/manTreeSFrameBase/include/MEventTool.h

00001 #ifndef MANTREESFRAMEBASE_MEVENTTOOL_H__
00002 #define MANTREESFRAMEBASE_MEVENTTOOL_H__
00003 
00004 #include "core/include/SError.h"
00005 #include "plug-ins/include/SToolBase.h"
00006 
00008 #include <vector>
00009 #include <map>
00010 #include <string>
00011 #include <set>
00012 
00014 #include "manTree/manTree/MInDetTrack.h"
00015 #include "manTree/manTree/MElectron.h"
00016 #include "manTree/manTree/MJet.h"
00017 #include "manTree/manTree/MMuon.h"
00018 #include "manTree/manTree/MVertex.h"
00019 #include "manTree/manTree/MMissingEt.h"
00020 #include "manTree/manTree/MEventInfo.h"
00021 #include "manTree/manTree/MTriggerChain.h"
00022 #include "manTree/manTree/MTriggerChainConf.h"
00023 #include "manTree/manTree/MTriggerChainResult.h"
00024 #include "manTree/manTree/MTruthParticle.h"
00025 #include "manTree/manTree/MInDetTrack.h"
00026 #include "manTree/manTree/MPDFInfo.h"
00027 
00036 class MEventTool : public SToolBase {
00037 
00038  public:
00039 
00041   MEventTool( SCycleBase* parent );
00042 
00044   virtual ~MEventTool();
00045 
00047   void connectManTree(const SInputData& data) throw(SError);
00048 
00050   
00052   std::vector<manchester::MElectron>* getElectrons() const;
00054   std::vector<manchester::MMuon>* getMuons() const;
00056   std::vector<manchester::MMuon>* getStacoMuons() const;
00058   std::vector<manchester::MJet>* getJets() const;
00060   std::vector<manchester::MJet>* getAODJets() const;
00062   std::vector<manchester::MVertex>* getVertices() const;
00064   std::vector<manchester::MInDetTrack>* getIDTracks() const;
00066   std::vector<manchester::MTriggerChain>* getTriggerChains() const;
00068   std::vector<manchester::MTriggerChainResult>* getTriggerChainResults() const;
00070   const manchester::MTriggerChainConf* getTriggerChainConf() const;
00071 
00073   const manchester::MMissingEt* getMET() const; 
00075   manchester::MMissingEt* getMET_notconst(); 
00076 
00078   const manchester::MMissingEt* getAltMET(const std::string name) const;
00079 
00081   const manchester::MEventInfo* getEventInfo() const;
00082 
00084   std::vector<manchester::MJet>* getMCParticleJets() const;
00086   std::vector<manchester::MTruthParticle>* getMCTruthParticles() const;
00088   const manchester::MPDFInfo* getPDFInfo() const;
00089 
00091   void setUserElectrons(unsigned int cut, std::vector<const manchester::MElectron*> selem);
00092 
00094   const std::vector<const manchester::MElectron*>* getUserElectrons(unsigned int cut) const;
00095 
00097   void setUserMuons(unsigned int cut, std::vector<const manchester::MMuon*> selmuon);
00098 
00100   const std::vector<const manchester::MMuon*>* getUserMuons(unsigned int cut) const;
00101 
00103   void setUserJets(unsigned int cut, std::vector<const manchester::MJet*> seljet);
00104 
00106   const std::vector<const manchester::MJet*>* getUserJets(unsigned int cut) const;
00107 
00109   void disableBranch(const std::string branchName) throw(SError);
00110 
00111  protected:
00112 
00114   void fillDefaultBranchSet();
00115 
00117   std::string m_inTreeName;
00118 
00120   std::string m_metName2010;
00121   std::string m_metName2011;
00124   std::vector<manchester::MElectron>* m_em;
00126   std::vector<manchester::MJet>* m_jet;
00128   std::vector<manchester::MJet>*  m_mcpart_jet;
00130   std::vector<manchester::MJet>* m_originalaod_jet;
00132   std::vector<manchester::MMuon>* m_muon;
00134   std::vector<manchester::MMuon>* m_stacomuon;
00135   
00137   std::vector<manchester::MVertex>* m_vertex;
00139   std::vector<manchester::MTriggerChain>* m_trigChains;
00141   std::vector<manchester::MTriggerChainResult>* m_trigResults;
00143   const manchester::MTriggerChainConf* m_trigconf;
00145   std::vector<manchester::MTruthParticle>* m_truthpart;
00147   manchester::MMissingEt* m_met;
00149   std::map<std::string, manchester::MMissingEt*> m_met_map;
00151   manchester::MEventInfo* m_evinfo;
00153   std::vector<manchester::MInDetTrack>* m_idTrk;
00155   manchester::MPDFInfo* m_pdfinfo;
00156   
00157 
00159   std::map<unsigned int, std::vector<const manchester::MElectron*> > m_user_em;
00160   std::map<unsigned int, std::vector<const manchester::MMuon*> > m_user_muon;
00161   std::map<unsigned int, std::vector<const manchester::MJet*> > m_user_jet;
00162 
00164   std::set<std::string> m_branchNames;
00165 
00167   std::set<std::string> m_branchesToDisable;
00168                         
00170   ClassDef(MEventTool, 0);
00171 
00172 };//class MEventTool
00173 
00175 bool isHigherPt(const TLorentzVector* vec1, const TLorentzVector* vec2);
00176 
00177 #endif //MANTREESFRAMEBASE_MEVENTTOOL_H__

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7