00001 #ifndef EnergyTask_H 00002 #define EnergyTask_H 00003 00004 #include "DQM/EcalCommon/interface/DQWorkerTask.h" 00005 00006 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00007 00008 class CaloTopology; 00009 00010 namespace ecaldqm { 00011 00012 class EnergyTask : public DQWorkerTask { 00013 public: 00014 EnergyTask(const edm::ParameterSet &, const edm::ParameterSet&); 00015 ~EnergyTask(); 00016 00017 bool filterRunType(const std::vector<short>&); 00018 00019 void beginRun(const edm::Run &, const edm::EventSetup &); 00020 00021 void analyze(const void*, Collections); 00022 00023 void runOnRecHits(const EcalRecHitCollection &); 00024 00025 enum MESets { 00026 kHitMap, // profile2d 00027 kHitMapAll, 00028 // k3x3Map, // profile2d 00029 kHit, // h1f 00030 kHitAll, 00031 kMiniCluster, // h1f 00032 nMESets 00033 }; 00034 00035 static void setMEData(std::vector<MEData>&); 00036 00037 private: 00038 const CaloTopology *topology_; 00039 bool isPhysicsRun_; 00040 float threshS9_; 00041 }; 00042 00043 inline void EnergyTask::analyze(const void* _p, Collections _collection){ 00044 switch(_collection){ 00045 case kEBRecHit: 00046 case kEERecHit: 00047 runOnRecHits(*static_cast<const EcalRecHitCollection*>(_p)); 00048 break; 00049 default: 00050 break; 00051 } 00052 } 00053 00054 } 00055 00056 #endif 00057