00001 #ifndef HLTriggerOffline_Tau_HLTTauElDQMOfflineSource_H 00002 #define HLTriggerOffline_Tau_HLTTauElDQMOfflineSource_H 00003 00004 00005 // Base Class Headers 00006 #include "DataFormats/Common/interface/Handle.h" 00007 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" 00008 #include "FWCore/Framework/interface/EDAnalyzer.h" 00009 #include "FWCore/Framework/interface/Frameworkfwd.h" 00010 #include "FWCore/Framework/interface/Event.h" 00011 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00012 #include "FWCore/ParameterSet/interface/InputTag.h" 00013 #include "DataFormats/Common/interface/RefToBase.h" 00014 #include "DataFormats/Math/interface/LorentzVector.h" 00015 #include <vector> 00016 #include "TDirectory.h" 00017 #include "TH1F.h" 00018 #include "TH2F.h" 00019 00020 00021 // DQM core 00022 #include "DQMServices/Core/interface/DQMStore.h" 00023 #include "DQMServices/Core/interface/MonitorElement.h" 00024 00025 00026 typedef math::XYZTLorentzVectorD LV; 00027 typedef std::vector<LV> LVColl; 00028 00029 00030 class HLTTauElDQMOfflineSource : public edm::EDAnalyzer{ 00031 public: 00033 explicit HLTTauElDQMOfflineSource(const edm::ParameterSet& pset); 00034 00036 ~HLTTauElDQMOfflineSource(); 00037 00038 // Operations 00039 00040 void analyze(const edm::Event & event, const edm::EventSetup&); 00041 void beginJob(const edm::EventSetup&); 00042 void endJob(); 00043 00044 private: 00045 00046 00047 00048 //edm::InputTag m_theL1Seed; 00049 edm::InputTag refCollection_; 00050 std::vector<int> m_theHLTOutputTypes; 00051 std::vector<bool> m_plotiso; 00052 std::vector<std::pair<double,double> > m_plotBounds; 00053 std::vector<edm::InputTag> m_theHLTCollectionLabels; 00054 std::vector<std::vector<edm::InputTag> > m_isoNames; // there has to be a better solution 00055 //std::string m_theHltName; 00056 00057 unsigned int reqNum_; 00058 int pdgGen_; 00059 double genEtaAcc_; 00060 double genEtAcc_; 00061 std::string outputFile_; 00062 std::string triggerName_; 00063 double thePtMin_ ; 00064 double thePtMax_ ; 00065 unsigned int theNbins_ ; 00066 00067 std::vector<MonitorElement*> m_etahist; 00068 std::vector<MonitorElement*> m_ethist; 00069 std::vector<MonitorElement*> m_etahistmatch; 00070 std::vector<MonitorElement*> m_ethistmatch; 00071 MonitorElement* m_total; 00072 MonitorElement* m_etgen; 00073 MonitorElement* m_etagen; 00074 00075 00076 template <class T> void fillHistos(edm::Handle<trigger::TriggerEventWithRefs>& ,const edm::Event& ,unsigned int,LVColl& ); 00077 00078 00079 }; 00080 #endif