00001 #ifndef DQMSourcePi0_H
00002 #define DQMSourcePi0_H
00003
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDAnalyzer.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/ParameterSet/interface/InputTag.h"
00008
00009 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
00010 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00011
00012
00013 #include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h"
00014 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00015 #include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h"
00016 #include "Geometry/Records/interface/IdealGeometryRecord.h"
00017 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00018 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
00019 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00020 #include "Geometry/CaloTopology/interface/EcalEndcapTopology.h"
00021 #include "Geometry/CaloTopology/interface/EcalBarrelTopology.h"
00022
00023 typedef std::map<DetId, EcalRecHit> RecHitsMap;
00024
00025 class ecalRecHitLess : public std::binary_function<EcalRecHit, EcalRecHit, bool>
00026 {
00027 public:
00028 bool operator()(EcalRecHit x, EcalRecHit y)
00029 {
00030 return (x.energy() > y.energy());
00031 }
00032 };
00033
00034
00035
00036
00037 class DQMStore;
00038 class MonitorElement;
00039
00040 class DQMSourcePi0 : public edm::EDAnalyzer {
00041
00042 public:
00043
00044 DQMSourcePi0( const edm::ParameterSet& );
00045 ~DQMSourcePi0();
00046
00047 protected:
00048
00049 void beginJob(const edm::EventSetup& c);
00050
00051 void beginRun(const edm::Run& r, const edm::EventSetup& c);
00052
00053 void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00054
00055 void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00056 const edm::EventSetup& context) ;
00057
00058 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
00059 const edm::EventSetup& c);
00060
00061 void endRun(const edm::Run& r, const edm::EventSetup& c);
00062
00063 void endJob();
00064
00065 private:
00066
00067
00068 DQMStore* dbe_;
00069 int eventCounter_;
00070
00071
00073 MonitorElement * hiPhiDistrEB_;
00074
00076 MonitorElement * hiEtaDistrEB_;
00077
00079 MonitorElement * hRechitEnergyEB_;
00080
00082 MonitorElement * hEventEnergyEB_;
00083
00085 MonitorElement * hNRecHitsEB_;
00086
00088 MonitorElement * hMeanRecHitEnergyEB_;
00089
00091 MonitorElement * hMinvPi0EB_;
00092
00094 MonitorElement *hPt1Pi0EB_;
00095
00096
00098 MonitorElement *hPt2Pi0EB_;
00099
00100
00102 MonitorElement * hPtPi0EB_;
00103
00105 MonitorElement * hIsoPi0EB_;
00106
00108 MonitorElement * hS4S91EB_;
00109
00111 MonitorElement * hS4S92EB_;
00112
00113
00114
00116 MonitorElement * hRechitEnergyEE_;
00117
00119 MonitorElement * hEventEnergyEE_;
00120
00122 MonitorElement * hNRecHitsEE_;
00123
00125 MonitorElement * hMeanRecHitEnergyEE_;
00126
00128 edm::InputTag productMonitoredEB_;
00129
00131 edm::InputTag productMonitoredEE_;
00132
00133 int gammaCandEtaSize_;
00134 int gammaCandPhiSize_;
00135
00136 double clusSeedThr_;
00137 int clusEtaSize_;
00138 int clusPhiSize_;
00139
00140 double selePtGammaOne_;
00141 double selePtGammaTwo_;
00142 double selePtPi0_;
00143 double seleMinvMaxPi0_;
00144 double seleMinvMinPi0_;
00145 double seleXtalMinEnergy_;
00146 int seleNRHMax_;
00147
00148 double seleS4S9GammaOne_;
00149 double seleS4S9GammaTwo_;
00150 double selePi0BeltDR_;
00151 double selePi0BeltDeta_;
00152 double selePi0Iso_;
00153 bool ParameterLogWeighted_;
00154 double ParameterX0_;
00155 double ParameterT0_barl_;
00156 double ParameterW0_;
00157
00158 std::map<DetId, EcalRecHit> *recHitsEB_map;
00159
00160
00162 unsigned int prescaleFactor_;
00163
00165 std::string folderName_;
00166
00168 bool saveToFile_;
00169
00171 bool isMonEB_;
00172 bool isMonEE_;
00173
00175 std::string fileName_;
00176 };
00177
00178 #endif
00179