File indexing completed on 2023-03-17 10:58:27
0001 #ifndef DQMOFFLINE_TRIGGER_EGHLTPHOHLTFILTERMON
0002 #define DQMOFFLINE_TRIGGER_EGHLTPHOHLTFILTERMON
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0019
0020 #include "DQMOffline/Trigger/interface/EgHLTMonElemContainer.h"
0021 #include "DQMOffline/Trigger/interface/EgHLTMonElemManager.h"
0022 #include "DQMOffline/Trigger/interface/EgHLTMonElemWithCut.h"
0023 #include "DQMOffline/Trigger/interface/EgHLTMonElemFuncs.h"
0024 #include "DQMOffline/Trigger/interface/EgHLTOffEvt.h"
0025 #include "DQMOffline/Trigger/interface/EgHLTParticlePair.h"
0026 #include "DQMOffline/Trigger/interface/EgHLTOffPho.h"
0027 #include "DQMOffline/Trigger/interface/EgHLTTrigCodes.h"
0028
0029 #include <string>
0030
0031 namespace trigger {
0032 class TriggerObject;
0033 }
0034
0035 namespace egHLT {
0036 struct BinData;
0037 struct CutMasks;
0038
0039 class PhoHLTFilterMon {
0040 public:
0041
0042
0043 bool ptrCompStr(const PhoHLTFilterMon* lhs, const std::string& rhs) { return lhs->filterName() < rhs; }
0044 bool ptrCompStr(const std::string& lhs, const PhoHLTFilterMon* rhs) { return lhs < rhs->filterName(); }
0045
0046 template <class T>
0047 inline bool ptrLess(const T* lhs, const T* rhs) {
0048 return *lhs < *rhs;
0049 }
0050
0051 private:
0052 std::string filterName_;
0053 const TrigCodes::TrigBitSet filterBit_;
0054 bool doHEP_;
0055
0056 std::vector<MonElemManagerBase<trigger::TriggerObject>*> trigMonElems_;
0057 std::vector<MonElemContainer<OffPho>*> phoEffHists_;
0058 std::vector<MonElemContainer<OffPho>*> phoMonElems_;
0059 std::vector<MonElemContainer<OffPho>*> phoFailMonElems_;
0060
0061
0062 MonElemManagerBase<ParticlePair<OffPho> >* diPhoMassBothME_;
0063 MonElemManagerBase<ParticlePair<OffPho> >* diPhoMassOnlyOneME_;
0064 MonElemManagerBase<ParticlePair<OffPho> >* diPhoMassBothHighME_;
0065 MonElemManagerBase<ParticlePair<OffPho> >* diPhoMassOnlyOneHighME_;
0066
0067
0068 PhoHLTFilterMon(const PhoHLTFilterMon&) {}
0069 PhoHLTFilterMon& operator=(const PhoHLTFilterMon&) { return *this; }
0070
0071 public:
0072 PhoHLTFilterMon(MonElemFuncs& monElemFuncs,
0073 std::string filterName,
0074 TrigCodes::TrigBitSet filterBit,
0075 const BinData& bins,
0076 const CutMasks& masks,
0077 bool doHEP);
0078 ~PhoHLTFilterMon();
0079
0080 void fill(const OffEvt& evt, float weight);
0081
0082
0083 bool operator<(const PhoHLTFilterMon& rhs) const { return filterName_ < rhs.filterName_; }
0084
0085 const std::string& filterName() const { return filterName_; }
0086 };
0087 }
0088
0089 #endif