CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Validation/EcalRecHits/interface/EcalRecHitsValidation.h

Go to the documentation of this file.
00001 #ifndef EcalRecHitsValidation_H
00002 #define EcalRecHitsValidation_H
00003 
00004 /*
00005  * \file EcalRecHitsValidation.h
00006  *
00007  * $Date: 2009/12/14 22:24:43 $
00008  * \author C. Rovelli
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 // BeginJob
00062 void beginJob();
00063 
00064 // EndJob
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