Go to the documentation of this file.00001 #ifndef EcalRecHitsValidation_H
00002 #define EcalRecHitsValidation_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "FWCore/Framework/interface/Frameworkfwd.h"
00013 #include "FWCore/Framework/interface/EDAnalyzer.h"
00014
00015 #include "FWCore/Framework/interface/Event.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/Framework/interface/ESHandle.h"
00018 #include "FWCore/Framework/interface/MakerMacros.h"
00019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00020 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00021
00022 #include "DQMServices/Core/interface/DQMStore.h"
00023 #include "FWCore/ServiceRegistry/interface/Service.h"
00024
00025 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00026 #include "SimDataFormats/CaloHit/interface/PCaloHit.h"
00027 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
00028
00029 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
00030 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
00031 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
00032 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00033 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00034
00035 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h"
00036 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h"
00037
00038 #include <iostream>
00039 #include <fstream>
00040 #include <vector>
00041 #include <map>
00042 #include "DQMServices/Core/interface/MonitorElement.h"
00043
00044 class EcalRecHitsValidation: public edm::EDAnalyzer{
00045
00046 typedef std::map<uint32_t,float,std::less<uint32_t> > MapType;
00047
00048 public:
00049
00051 EcalRecHitsValidation(const edm::ParameterSet& ps);
00052
00054 ~EcalRecHitsValidation();
00055
00056 protected:
00057
00059 void analyze(const edm::Event& e, const edm::EventSetup& c);
00060
00061
00062 void beginJob();
00063
00064
00065 void endJob(void);
00066
00067 uint32_t getUnitWithMaxEnergy(MapType& themap);
00068 void findBarrelMatrix(int nCellInEta, int nCellInPhi,
00069 int CentralEta, int CentralPhi,int CentralZ,
00070 MapType& themap);
00071 void findEndcapMatrix(int nCellInX, int nCellInY,
00072 int CentralX, int CentralY,int CentralZ,
00073 MapType& themap);
00074
00075 private:
00076
00077 std::string HepMCLabel;
00078 std::string hitsProducer_;
00079
00080 bool verbose_;
00081
00082 DQMStore* dbe_;
00083
00084 std::string outputFile_;
00085
00086 edm::InputTag EBrechitCollection_;
00087 edm::InputTag EErechitCollection_;
00088 edm::InputTag ESrechitCollection_;
00089 edm::InputTag EBuncalibrechitCollection_;
00090 edm::InputTag EEuncalibrechitCollection_;
00091
00092 MonitorElement* meGunEnergy_;
00093 MonitorElement* meGunEta_;
00094 MonitorElement* meGunPhi_;
00095 MonitorElement* meEBRecHitSimHitRatio_;
00096 MonitorElement* meEERecHitSimHitRatio_;
00097 MonitorElement* meESRecHitSimHitRatio_;
00098 MonitorElement* meEBRecHitSimHitRatio1011_;
00099 MonitorElement* meEERecHitSimHitRatio1011_;
00100 MonitorElement* meEBRecHitSimHitRatio12_;
00101 MonitorElement* meEERecHitSimHitRatio12_;
00102 MonitorElement* meEBRecHitSimHitRatio13_;
00103 MonitorElement* meEERecHitSimHitRatio13_;
00104 MonitorElement* meEBRecHitSimHitRatioGt35_;
00105 MonitorElement* meEERecHitSimHitRatioGt35_;
00106 MonitorElement* meEBUnRecHitSimHitRatio_;
00107 MonitorElement* meEEUnRecHitSimHitRatio_;
00108 MonitorElement* meEBUnRecHitSimHitRatioGt35_;
00109 MonitorElement* meEEUnRecHitSimHitRatioGt35_;
00110 MonitorElement* meEBe5x5_;
00111 MonitorElement* meEBe5x5OverSimHits_;
00112 MonitorElement* meEBe5x5OverGun_;
00113 MonitorElement* meEEe5x5_;
00114 MonitorElement* meEEe5x5OverSimHits_;
00115 MonitorElement* meEEe5x5OverGun_;
00116
00117 MonitorElement* meEBRecHitLog10Energy_;
00118 MonitorElement* meEERecHitLog10Energy_;
00119 MonitorElement* meESRecHitLog10Energy_;
00120 MonitorElement* meEBRecHitLog10EnergyContr_;
00121 MonitorElement* meEERecHitLog10EnergyContr_;
00122 MonitorElement* meESRecHitLog10EnergyContr_;
00123 MonitorElement* meEBRecHitLog10Energy5x5Contr_;
00124 MonitorElement* meEERecHitLog10Energy5x5Contr_;
00125
00126 MonitorElement* meEBRecHitsOccupancyFlag5_6_;
00127 MonitorElement* meEBRecHitsOccupancyFlag8_9_;
00128
00129 MonitorElement* meEERecHitsOccupancyPlusFlag5_6_;
00130 MonitorElement* meEERecHitsOccupancyMinusFlag5_6_;
00131 MonitorElement* meEERecHitsOccupancyPlusFlag8_9_;
00132 MonitorElement* meEERecHitsOccupancyMinusFlag8_9_;
00133
00134 MonitorElement* meEBRecHitFlags_;
00135 MonitorElement* meEBRecHitSimHitvsSimHitFlag5_6_;
00136 MonitorElement* meEBRecHitSimHitFlag6_;
00137 MonitorElement* meEBRecHitSimHitFlag7_;
00138 MonitorElement* meEB5x5RecHitSimHitvsSimHitFlag8_;
00139
00140 MonitorElement* meEERecHitFlags_;
00141 MonitorElement* meEERecHitSimHitvsSimHitFlag5_6_;
00142 MonitorElement* meEERecHitSimHitFlag6_;
00143 MonitorElement* meEERecHitSimHitFlag7_;
00144
00145 std::vector<uint32_t> crystalMatrix;
00146
00147 };
00148
00149 #endif