CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/DQM/EcalBarrelMonitorTasks/interface/TrigPrimTask.h

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       //      kEtEmul,
00031       kEtMaxEmul,
00032       kEtRealMap,
00033       //      kEtEmulMap,
00034       kEtSummary,
00035       kMatchedIndex,
00036       kEmulMaxIndex,
00037       kTimingError,
00038       kEtVsBx,
00039       kOccVsBx,
00040       kLowIntMap,
00041       kMedIntMap,
00042       kHighIntMap,
00043       kTTFlags,
00044       kTTFMismatch,
00045 /*       kTimingCalo, */
00046 /*       kTimingMuon, */
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