Go to the documentation of this file.00001 #ifndef TrigPrimTask_H
00002 #define TrigPrimTask_H
00003
00004 #include "DQM/EcalCommon/interface/DQWorkerTask.h"
00005
00006 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00007
00008 class EcalTrigTowerConstituentsMap;
00009
00010 namespace ecaldqm {
00011
00012 class TrigPrimTask : public DQWorkerTask {
00013 public:
00014 TrigPrimTask(const edm::ParameterSet &, const edm::ParameterSet &);
00015 ~TrigPrimTask();
00016
00017 void bookMEs();
00018
00019 void analyze(const void*, Collections);
00020
00021 void beginRun(const edm::Run &, const edm::EventSetup &);
00022 void beginEvent(const edm::Event &, const edm::EventSetup &);
00023
00024 void runOnRealTPs(const EcalTrigPrimDigiCollection &);
00025 void runOnEmulTPs(const EcalTrigPrimDigiCollection &);
00026 void runOnDigis(const EcalDigiCollection &);
00027
00028 enum MESets {
00029 kEtReal,
00030
00031 kEtMaxEmul,
00032 kEtRealMap,
00033
00034 kEtSummary,
00035 kMatchedIndex,
00036 kEmulMaxIndex,
00037 kTimingError,
00038 kEtVsBx,
00039 kOccVsBx,
00040 kLowIntMap,
00041 kMedIntMap,
00042 kHighIntMap,
00043 kTTFlags,
00044 kTTFMismatch,
00045
00046
00047 kEtEmulError,
00048 kFGEmulError,
00049 nMESets
00050 };
00051
00052 static void setMEData(std::vector<MEData>&);
00053
00054 enum Constants {
00055 nBXBins = 15
00056 };
00057
00058 private:
00059 const EcalTrigTowerConstituentsMap* ttMap_;
00060 const EcalTrigPrimDigiCollection* realTps_;
00061
00062 bool runOnEmul_;
00063
00064 int expectedTiming_;
00065 std::string HLTCaloPath_;
00066 std::string HLTMuonPath_;
00067 bool HLTCaloBit_;
00068 bool HLTMuonBit_;
00069
00070 int bxBinEdges_[nBXBins + 1];
00071 float bxBin_;
00072
00073 std::map<uint32_t, unsigned> towerReadouts_;
00074 };
00075
00076 inline void TrigPrimTask::analyze(const void* _p, Collections _collection){
00077 switch(_collection){
00078 case kTrigPrimDigi:
00079 runOnRealTPs(*static_cast<const EcalTrigPrimDigiCollection*>(_p));
00080 break;
00081 case kTrigPrimEmulDigi:
00082 runOnEmulTPs(*static_cast<const EcalTrigPrimDigiCollection*>(_p));
00083 break;
00084 case kEBDigi:
00085 case kEEDigi:
00086 runOnDigis(*static_cast<const EcalDigiCollection*>(_p));
00087 break;
00088 default:
00089 break;
00090 }
00091 }
00092
00093 }
00094
00095 #endif
00096