00001 #ifndef EEOccupancyTask_H 00002 #define EEOccupancyTask_H 00003 00004 /* 00005 * \file EEOccupancyTask.h 00006 * 00007 * $Date: 2012/04/27 13:46:13 $ 00008 * $Revision: 1.31 $ 00009 * \author G. Della Ricca 00010 * 00011 */ 00012 00013 #include "FWCore/Framework/interface/EDAnalyzer.h" 00014 #include "FWCore/Framework/interface/Event.h" 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 00017 #include "FWCore/Framework/interface/ESHandle.h" 00018 #include "Geometry/Records/interface/CaloGeometryRecord.h" 00019 00020 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00021 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00022 00023 #include "DataFormats/EcalDetId/interface/EEDetId.h" 00024 00025 class MonitorElement; 00026 class DQMStore; 00027 00028 class EEOccupancyTask: public edm::EDAnalyzer{ 00029 00030 public: 00031 00033 EEOccupancyTask(const edm::ParameterSet& ps); 00034 00036 virtual ~EEOccupancyTask(); 00037 00038 protected: 00039 00041 void analyze(const edm::Event& e, const edm::EventSetup& c); 00042 00044 void beginJob(void); 00045 00047 void endJob(void); 00048 00050 void beginRun(const edm::Run & r, const edm::EventSetup & c); 00051 00053 void endRun(const edm::Run & r, const edm::EventSetup & c); 00054 00056 void reset(void); 00057 00059 void setup(void); 00060 00062 void cleanup(void); 00063 00064 private: 00065 00066 int ievt_; 00067 00068 DQMStore* dqmStore_; 00069 00070 std::string prefixME_; 00071 00072 std::string subfolder_; 00073 00074 bool enableCleanup_; 00075 00076 bool mergeRuns_; 00077 00078 edm::InputTag EcalRawDataCollection_; 00079 edm::InputTag EEDigiCollection_; 00080 edm::InputTag EcalPnDiodeDigiCollection_; 00081 edm::InputTag EcalRecHitCollection_; 00082 edm::InputTag EcalTrigPrimDigiCollection_; 00083 00084 enum runClassification { notdata, physics, testpulse, laser, led, pedestal }; 00085 00086 MonitorElement* meEvent_[18]; 00087 MonitorElement* meOccupancy_[18]; 00088 MonitorElement* meOccupancyMem_[18]; 00089 MonitorElement* meEERecHitEnergy_[18]; 00090 MonitorElement* meSpectrum_[18]; 00091 00092 MonitorElement* meEERecHitSpectrum_[2]; 00093 MonitorElement* meEEDigiOccupancy_[2]; 00094 MonitorElement* meEEDigiOccupancyProEta_[2]; 00095 MonitorElement* meEEDigiOccupancyProPhi_[2]; 00096 MonitorElement* meEERecHitOccupancy_[2]; 00097 MonitorElement* meEERecHitOccupancyProEta_[2]; 00098 MonitorElement* meEERecHitOccupancyProPhi_[2]; 00099 MonitorElement* meEERecHitOccupancyThr_[2]; 00100 MonitorElement* meEERecHitOccupancyProEtaThr_[2]; 00101 MonitorElement* meEERecHitOccupancyProPhiThr_[2]; 00102 MonitorElement* meEETrigPrimDigiOccupancy_[2]; 00103 MonitorElement* meEETrigPrimDigiOccupancyProEta_[2]; 00104 MonitorElement* meEETrigPrimDigiOccupancyProPhi_[2]; 00105 MonitorElement* meEETrigPrimDigiOccupancyThr_[2]; 00106 MonitorElement* meEETrigPrimDigiOccupancyProEtaThr_[2]; 00107 MonitorElement* meEETrigPrimDigiOccupancyProPhiThr_[2]; 00108 MonitorElement* meEETestPulseDigiOccupancy_[2]; 00109 MonitorElement* meEELaserDigiOccupancy_[2]; 00110 MonitorElement* meEELedDigiOccupancy_[2]; 00111 MonitorElement* meEEPedestalDigiOccupancy_[2]; 00112 00113 float recHitEnergyMin_; 00114 float trigPrimEtMin_; 00115 00116 edm::ESHandle<CaloGeometry> pGeometry_; 00117 00118 float geometryEE[EEDetId::kSizeForDenseIndexing][2]; 00119 00120 bool init_; 00121 bool initCaloGeometry_; 00122 00123 }; 00124 00125 #endif