File indexing completed on 2024-04-06 12:09:50
0001 #ifndef DQMOFFLINE_TRIGGER_EGHLTOFFLINESOURCE
0002 #define DQMOFFLINE_TRIGGER_EGHLTOFFLINESOURCE
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #include "FWCore/Framework/interface/Frameworkfwd.h"
0031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0032 #include "FWCore/Framework/interface/Event.h"
0033
0034 #include "DQMOffline/Trigger/interface/EgHLTBinData.h"
0035 #include "DQMOffline/Trigger/interface/EgHLTCutMasks.h"
0036 #include "DQMOffline/Trigger/interface/EgHLTMonElemContainer.h"
0037 #include "DQMOffline/Trigger/interface/EgHLTMonElemFuncs.h"
0038 #include "DQMOffline/Trigger/interface/EgHLTOffHelper.h"
0039 #include "DQMOffline/Trigger/interface/EgHLTOffEvt.h"
0040 #include "DQMOffline/Trigger/interface/EgHLTTrigCodes.h"
0041
0042 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0043 #include "DQMServices/Core/interface/DQMStore.h"
0044
0045 class HLTConfigProvider;
0046
0047 namespace egHLT {
0048 class EleHLTFilterMon;
0049 class PhoHLTFilterMon;
0050 }
0051
0052
0053
0054
0055
0056
0057 class EgHLTOfflineSource : public DQMEDAnalyzer {
0058 private:
0059 MonitorElement* dqmErrsMonElem_;
0060 MonitorElement* nrEventsProcessedMonElem_;
0061 int nrEventsProcessed_;
0062
0063 std::vector<egHLT::EleHLTFilterMon*>
0064 eleFilterMonHists_;
0065 std::vector<egHLT::PhoHLTFilterMon*>
0066 phoFilterMonHists_;
0067 std::vector<egHLT::MonElemContainer<egHLT::OffEle>*> eleMonElems_;
0068 std::vector<egHLT::MonElemContainer<egHLT::OffPho>*> phoMonElems_;
0069
0070 std::string dirName_;
0071 std::string subdirName_;
0072 bool dohep_;
0073 egHLT::OffEvt offEvt_;
0074 egHLT::OffHelper
0075 offEvtHelper_;
0076 std::unique_ptr<egHLT::TrigCodes> trigCodes;
0077
0078
0079
0080 std::vector<std::string> eleHLTFilterNames_;
0081 std::vector<std::string> phoHLTFilterNames_;
0082 std::vector<std::string>
0083 eleHLTFilterNames2Leg_;
0084 std::vector<std::string> eleTightLooseTrigNames_;
0085 std::vector<std::string> phoTightLooseTrigNames_;
0086 std::vector<std::string> diEleTightLooseTrigNames_;
0087 std::vector<std::string> diPhoTightLooseTrigNames_;
0088
0089 egHLT::BinData binData_;
0090 egHLT::CutMasks cutMasks_;
0091
0092 bool filterInactiveTriggers_;
0093 std::string hltTag_;
0094
0095 public:
0096 explicit EgHLTOfflineSource(const edm::ParameterSet&);
0097
0098
0099 EgHLTOfflineSource(const EgHLTOfflineSource& rhs) = delete;
0100 EgHLTOfflineSource& operator=(const EgHLTOfflineSource& rhs) = delete;
0101
0102 ~EgHLTOfflineSource() override;
0103
0104 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0105 void analyze(const edm::Event&, const edm::EventSetup&) override;
0106
0107 void addEleTrigPath(egHLT::MonElemFuncs& monElemFuncs, const std::string& name);
0108 void addPhoTrigPath(egHLT::MonElemFuncs& monElemFuncs, const std::string& name);
0109 void getHLTFilterNamesUsed(std::vector<std::string>& filterNames) const;
0110 void filterTriggers(const HLTConfigProvider& hltConfig);
0111 };
0112
0113 #endif