00001 #ifndef EBClusterTaskExtras_H 00002 #define EBClusterTaskExtras_H 00003 00004 /* 00005 * \file EBClusterTaskExtras.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 EBCLUSTERTASKEXTRAS_DQMOFFLINE 00018 00019 class MonitorElement; 00020 class DQMStore; 00021 00022 class EBClusterTaskExtras: public edm::EDAnalyzer{ 00023 00024 public: 00025 00027 EBClusterTaskExtras(const edm::ParameterSet& ps); 00028 00030 virtual ~EBClusterTaskExtras(); 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 EBCLUSTERTASKEXTRAS_DQMOFFLINE 00090 MonitorElement* meSCSizCrystal_; 00091 MonitorElement* meSCSizBC_; 00092 MonitorElement* meSCSizPhi_; 00093 00094 MonitorElement* meSCSeedEne_; 00095 MonitorElement* meSCEne2_; 00096 MonitorElement* meSCEneLow_; 00097 MonitorElement* meSCEneHigh_; 00098 MonitorElement* meSCEneSingleCrystal_; 00099 00100 MonitorElement* meSCSeedMapOccTT_; 00101 MonitorElement* meSCSeedMapOccHighEne_; 00102 MonitorElement* meSCSeedMapOccSingleCrystal_; 00103 00104 MonitorElement* meSCSeedTime_; 00105 MonitorElement* meSCSeedMapTimeTT_; 00106 MonitorElement* meSCSeedMapTimeMod_; 00107 MonitorElement* meSCSeedTimeVsPhi_; 00108 MonitorElement* meSCSeedTimeVsAmp_; 00109 MonitorElement* meSCSeedTimeEBM_; 00110 MonitorElement* meSCSeedTimeEBP_; 00111 MonitorElement* meSCSeedTimeEBMTop_; 00112 MonitorElement* meSCSeedTimeEBPTop_; 00113 MonitorElement* meSCSeedTimeEBMBot_; 00114 MonitorElement* meSCSeedTimeEBPBot_; 00115 MonitorElement* meSCSeedTimePerFed_[36]; 00116 00117 MonitorElement* meSCSeedMapOccTrg_[5]; 00118 MonitorElement* meSCSeedMapOccTrgExcl_[5]; 00119 MonitorElement* meSCSeedMapTimeTrgMod_[5]; 00120 #endif 00121 00122 MonitorElement* meSCSizCrystalVsEne_; 00123 00124 MonitorElement* meSCSeedMapOcc_; 00125 MonitorElement* meSCSeedMapOccHighEneTT_; 00126 00127 MonitorElement* meSCSeedMapOccTrgTT_[5]; 00128 MonitorElement* meSCSeedMapOccTrgExclTT_[5]; 00129 00130 MonitorElement* meSCSeedMapTimeTrgTT_[5]; 00131 MonitorElement* meSCSeedTimeTrg_[5]; 00132 00133 MonitorElement* meTrg_; 00134 MonitorElement* meTrgExcl_; 00135 00136 bool init_; 00137 00138 }; 00139 00140 #endif