Go to the documentation of this file.00001 #ifndef FOURVECTORHLTCLIENT_H
00002 #define FOURVECTORHLTCLIENT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "FWCore/Framework/interface/Frameworkfwd.h"
00013 #include "FWCore/Framework/interface/Event.h"
00014 #include "FWCore/Framework/interface/MakerMacros.h"
00015 #include <FWCore/Framework/interface/EDAnalyzer.h>
00016 #include "DQMServices/Core/interface/DQMStore.h"
00017 #include "DQMServices/Core/interface/MonitorElement.h"
00018 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00019
00020 #include <memory>
00021 #include <iostream>
00022 #include <fstream>
00023 #include <string>
00024 #include <vector>
00025 #include <map>
00026 #include <TH1F.h>
00027 #include <TH2F.h>
00028 #include <TProfile2D.h>
00029
00030
00031 class FourVectorHLTClient: public edm::EDAnalyzer {
00032
00033 public:
00034
00036 FourVectorHLTClient(const edm::ParameterSet& ps);
00037
00039 virtual ~FourVectorHLTClient();
00040
00041 protected:
00042
00044 void beginJob();
00045
00047 void beginRun(const edm::Run& r, const edm::EventSetup& c);
00048
00050 void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00051
00052 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00053 const edm::EventSetup& context) ;
00054
00056 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00057 const edm::EventSetup& c);
00058
00060 void endRun(const edm::Run& r, const edm::EventSetup& c);
00061
00063 void endJob();
00064
00065 void normalizeHLTMatrix();
00066
00067 private:
00068
00069 void initialize();
00070 void calculateRatio(TH1F* effHist, TH1F* denHist);
00071 TH1F * get1DHisto(std::string meName, DQMStore * dbi);
00072 TH2F * get2DHisto(std::string meName, DQMStore * dbi);
00073 TProfile2D * get2DProfile(std::string meName, DQMStore * dbi);
00074 TProfile * get1DProfile(std::string meName, DQMStore * dbi);
00075 edm::ParameterSet parameters_;
00076
00077
00078 DQMStore* dbe_;
00079 TString sourceDir_;
00080 TString clientDir_;
00081 TString customEffDir_;
00082 std::string processname_;
00083
00084 std::vector<TString> hltMEName;
00085 std::vector<TString> hltPathName;
00086
00087 std::vector<MonitorElement*> hltMEs;
00088 std::vector<std::pair<std::string, std::string> > custompathnamepairs_;
00089
00090 std::vector<MonitorElement*> v_ME_HLTPassPass_;
00091 std::vector<MonitorElement*> v_ME_HLTPassPass_Normalized_;
00092 std::vector<MonitorElement*> v_ME_HLTPass_Normalized_Any_;
00093
00094 std::string pathsSummaryFolder_ ;
00095 std::string pathsSummaryHLTCorrelationsFolder_ ;
00096 std::string pathsSummaryFilterCountsFolder_ ;
00097 std::string pathsSummaryFilterEfficiencyFolder_ ;
00098
00099 int counterLS_;
00100 int counterEvt_;
00101 int prescaleLS_;
00102 int prescaleEvt_;
00103 int nChannels;
00104 Float_t reportSummary;
00105 Float_t summarySum;
00106 Float_t summaryContent[20];
00107
00108 HLTConfigProvider hltConfig_;
00109 MonitorElement * reportSummary_;
00110 MonitorElement * reportSummaryContent_[20];
00111 MonitorElement * reportSummaryMap_;
00112 MonitorElement * testHLTEff_;
00113 MonitorElement * klmgrvTest_;
00114
00115
00116 };
00117
00118 #endif