Go to the documentation of this file.00001 #ifndef OccupancyTask_H
00002 #define OccupancyTask_H
00003
00004 #include "DQM/EcalCommon/interface/DQWorkerTask.h"
00005
00006 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00007 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00008
00009 namespace ecaldqm {
00010
00011 class OccupancyTask : public DQWorkerTask {
00012 public:
00013 OccupancyTask(const edm::ParameterSet &, const edm::ParameterSet&);
00014 ~OccupancyTask();
00015
00016 bool filterRunType(const std::vector<short>&);
00017
00018 void analyze(const void*, Collections);
00019
00020 void runOnDigis(const EcalDigiCollection &);
00021 void runOnTPDigis(const EcalTrigPrimDigiCollection &);
00022 void runOnRecHits(const EcalRecHitCollection &, Collections);
00023
00024 enum MESets {
00025 kDigi,
00026 kDigiProjEta,
00027 kDigiProjPhi,
00028 kDigiAll,
00029 kDigiDCC,
00030
00031
00032
00033 kRecHit1D,
00034 kRecHitThr,
00035 kRecHitThrProjEta,
00036 kRecHitThrProjPhi,
00037 kRecHitThrAll,
00038 kTPDigi,
00039 kTPDigiProjEta,
00040 kTPDigiProjPhi,
00041 kTPDigiThr,
00042 kTPDigiThrProjEta,
00043 kTPDigiThrProjPhi,
00044 kTPDigiThrAll,
00045 nMESets
00046 };
00047
00048 static void setMEData(std::vector<MEData>&);
00049
00050 private:
00051 float recHitThreshold_;
00052 float tpThreshold_;
00053
00054 };
00055
00056 inline void OccupancyTask::analyze(const void* _p, Collections _collection){
00057 switch(_collection){
00058 case kEBDigi:
00059 case kEEDigi:
00060 runOnDigis(*static_cast<const EcalDigiCollection*>(_p));
00061 break;
00062 case kTrigPrimDigi:
00063 runOnTPDigis(*static_cast<const EcalTrigPrimDigiCollection*>(_p));
00064 break;
00065 case kEBRecHit:
00066 case kEERecHit:
00067 runOnRecHits(*static_cast<const EcalRecHitCollection*>(_p), _collection);
00068 break;
00069 default:
00070 break;
00071 }
00072 }
00073
00074 }
00075
00076 #endif
00077