00001 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFEVT 00002 #define DQMOFFLINE_TRIGGER_EGHLTOFFEVT 00003 00004 //struct: EgHLTOffData (Egamma HLT Offline Data) 00005 // 00006 //author: Sam Harper (July 2008) 00007 // 00008 //WARNING: interface is NOT final, please dont use this class for now without clearing it with me 00009 // as I will change it and possibly break all your code 00010 // 00011 //aim: this is a simple struct which allows all the data needed by the egamma offline HLT DQM code to be passed in as single object 00012 // this includes the TriggerEvent handle and the vector of EgHLTOffEle at the moment 00013 // 00014 //implimentation: 00015 // 00016 // 00017 00018 #include "DQMOffline/Trigger/interface/EgHLTOffEle.h" 00019 #include "DQMOffline/Trigger/interface/EgHLTOffPho.h" 00020 00021 #include "DataFormats/Common/interface/Handle.h" 00022 #include "DataFormats/HLTReco/interface/TriggerEvent.h" 00023 #include "DataFormats/JetReco/interface/CaloJetCollection.h" 00024 00025 00026 namespace egHLT { 00027 //we own nothing.... 00028 class OffEvt { 00029 private: 00030 //edm::Handle<trigger::TriggerEvent> trigEvt_; 00031 edm::Handle<std::vector<reco::CaloJet> > jets_; 00032 00033 std::vector<OffEle> eles_;//egHLT::OffEle is lightweightish and handles copying okay hence it isnt a vector of pointers 00034 std::vector<OffPho> phos_;//egHLT::OffPho is lightweightish and handles copying okay hence it isnt a vector of pointers 00035 //const std::vector<reco::CaloJet>* jets_; 00036 00037 TrigCodes::TrigBitSet evtTrigBits_; //the triggers that fired in the event all in a handy bit set 00038 00039 public: 00040 OffEvt(){} 00041 ~OffEvt(){} 00042 00043 //accessors 00044 // const trigger::TriggerEvent& trigEvt()const{return *trigEvt_.product();} 00045 const std::vector<OffEle>& eles()const{return eles_;} 00046 std::vector<OffEle>& eles(){return eles_;} 00047 const std::vector<OffPho>& phos()const{return phos_;} 00048 std::vector<OffPho>& phos(){return phos_;} 00049 TrigCodes::TrigBitSet evtTrigBits()const{return evtTrigBits_;} 00050 const std::vector<reco::CaloJet>& jets()const{return *jets_.product();} 00051 00052 //modifiers 00053 void clear(); 00054 void setEvtTrigBits(TrigCodes::TrigBitSet bits){evtTrigBits_=bits;} 00055 void setJets(edm::Handle<std::vector<reco::CaloJet> > jets){jets_=jets;} 00056 00057 }; 00058 } 00059 00060 00061 #endif