00001 #ifndef EEClusterTaskExtras_H 00002 #define EEClusterTaskExtras_H 00003 00004 /* 00005 * \file EEClusterTaskExtras.h 00006 * 00007 * $Date: 2009/12/14 21:14:06 $ 00008 * $Revision: 1.5 $ 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 #define EECLUSTERTASKEXTRAS_DQMOFFLINE 00018 00019 class MonitorElement; 00020 class DQMStore; 00021 00022 class EEClusterTaskExtras: public edm::EDAnalyzer{ 00023 00024 public: 00025 00027 EEClusterTaskExtras(const edm::ParameterSet& ps); 00028 00030 virtual ~EEClusterTaskExtras(); 00031 00032 protected: 00033 00035 void analyze(const edm::Event& e, const edm::EventSetup& c); 00036 00038 void beginJob(void); 00039 00041 void endJob(void); 00042 00044 void beginRun(const edm::Run & r, const edm::EventSetup & c); 00045 00047 void endRun(const edm::Run & r, const edm::EventSetup & c); 00048 00050 void reset(void); 00051 00053 void setup(void); 00054 00056 void cleanup(void); 00057 00058 // Determine Trigger 00059 std::vector<bool> determineTriggers(const edm::Event&, const edm::EventSetup& eventSetup); 00060 bool isExclusiveTrigger(int l1Trigger, std::vector<bool>& l1Triggers); 00061 bool doMonitorElement(std::string meName); 00062 00063 enum L1Triggers { 00064 CSC_TRIGGER = 0, 00065 DT_TRIGGER = 1, 00066 ECAL_TRIGGER = 2, 00067 HCAL_TRIGGER = 3, 00068 RPC_TRIGGER = 4 00069 }; 00070 00071 private: 00072 00073 int ievt_; 00074 00075 DQMStore* dqmStore_; 00076 00077 std::string prefixME_; 00078 00079 bool enableCleanup_; 00080 00081 bool mergeRuns_; 00082 00083 edm::InputTag SuperClusterCollection_; 00084 edm::InputTag EcalRecHitCollection_; 00085 edm::InputTag l1GMTReadoutRecTag_; 00086 edm::InputTag l1GTReadoutRecTag_; 00087 std::vector<std::string> meList_; 00088 00089 #ifndef EECLUSTERTASKEXTRAS_DQMOFFLINE 00090 MonitorElement* meSCSizCrystal_; 00091 MonitorElement* meSCSizBC_; 00092 00093 MonitorElement* meSCSeedEne_; 00094 MonitorElement* meSCEne2_; 00095 MonitorElement* meSCEneLow_; 00096 MonitorElement* meSCEneHigh_; 00097 MonitorElement* meSCEneSingleCrystal_; 00098 00099 MonitorElement* meSCSeedMapOccSC_[2]; 00100 MonitorElement* meSCSeedMapOccHighEne_[2]; 00101 MonitorElement* meSCSeedMapOccSingleCrystal_[2]; 00102 MonitorElement* meSCSeedMapOccTrg_[2][5]; 00103 MonitorElement* meSCSeedMapOccTrgExcl_[2][5]; 00104 MonitorElement* meSCSeedTime_; 00105 MonitorElement* meSCSeedMapTimeSC_[2]; 00106 MonitorElement* meSCSeedTimeVsAmp_; 00107 MonitorElement* meSCSeedTimeEEM_; 00108 MonitorElement* meSCSeedTimeEEP_; 00109 MonitorElement* meSCSeedTimePerFed_[18]; 00110 MonitorElement* meSCSeedMapTimeSC_[2][5]; 00111 #endif 00112 00113 MonitorElement* meSCSizCrystalVsEne_; 00114 00115 MonitorElement* meSCSeedMapOcc_[2]; 00116 MonitorElement* meSCSeedMapOccHighEneSC_[2]; 00117 MonitorElement* meSCSeedMapOccTrgSC_[2][5]; 00118 MonitorElement* meSCSeedMapOccTrgExclSC_[2][5]; 00119 00120 MonitorElement* meSCSeedMapTimeTrgSC_[2][5]; 00121 00122 bool init_; 00123 00124 }; 00125 00126 #endif