CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/Validation/EcalHits/interface/EcalBarrelSimHitsValidation.h

Go to the documentation of this file.
00001 #ifndef EcalBarrelSimHitsValidation_H
00002 #define EcalBarrelSimHitsValidation_H
00003 
00004 /*
00005  * \file EcalBarrelSimHitsValidation.h
00006  *
00007  * \author C.Rovelli
00008  *
00009 */
00010 
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "FWCore/Framework/interface/EDAnalyzer.h"
00013 
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/EventSetup.h"
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include "FWCore/Framework/interface/MakerMacros.h"
00018 
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/CaloHit/interface/PCaloHit.h"
00026 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
00027 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h"
00028 
00029 #include <iostream>
00030 #include <fstream>
00031 #include <vector>
00032 #include <map>
00033 #include "DQMServices/Core/interface/MonitorElement.h"
00034 
00035 
00036 class EcalBarrelSimHitsValidation: public edm::EDAnalyzer{
00037 
00038     typedef std::map<uint32_t,float,std::less<uint32_t> >  MapType;
00039 
00040 public:
00041 
00043 EcalBarrelSimHitsValidation(const edm::ParameterSet& ps);
00044 
00046 ~EcalBarrelSimHitsValidation();
00047 
00048 protected:
00049 
00051 void analyze(const edm::Event& e, const edm::EventSetup& c);
00052 
00053 // BeginJob
00054 void beginJob();
00055 
00056 // EndJob
00057 void endJob(void);
00058 
00059 private:
00060 
00061  uint32_t getUnitWithMaxEnergy(MapType& themap);
00062 
00063  virtual float energyInMatrixEB(int nCellInEta, int nCellInPhi, 
00064                                 int centralEta, int centralPhi, int centralZ,
00065                                 MapType& themap); 
00066 
00067  std::vector<uint32_t> getIdsAroundMax(int nCellInEta, int nCellInPhi, 
00068                                 int centralEta, int centralPhi, int centralZ,
00069                                 MapType& themap); 
00070 
00071  
00072  bool  fillEBMatrix(int nCellInEta, int nCellInPhi,
00073                     int CentralEta, int CentralPhi,int CentralZ,
00074                     MapType& fillmap, MapType&  themap);
00075  
00076  float eCluster2x2( MapType& themap);
00077  float eCluster4x4(float e33,MapType& themap);
00078 
00079  std::string g4InfoLabel;
00080  std::string EBHitsCollection;
00081  std::string ValidationCollection;
00082  
00083  bool verbose_;
00084  
00085  DQMStore* dbe_;
00086  
00087  std::string outputFile_;
00088 
00089  int myEntries;
00090  float eRLength[26];
00091 
00092  MonitorElement* menEBHits_;
00093 
00094  MonitorElement* menEBCrystals_;
00095 
00096  MonitorElement* meEBOccupancy_;
00097 
00098  MonitorElement* meEBLongitudinalShower_;
00099 
00100  MonitorElement* meEBhitEnergy_;
00101 
00102  MonitorElement* meEBhitLog10Energy_;
00103 
00104  MonitorElement* meEBhitLog10EnergyNorm_;
00105 
00106  MonitorElement* meEBhitLog10Energy25Norm_;
00107 
00108  MonitorElement* meEBhitEnergy2_;
00109 
00110  MonitorElement* meEBcrystalEnergy_;
00111 
00112  MonitorElement* meEBcrystalEnergy2_;
00113 
00114  MonitorElement* meEBe1_; 
00115  MonitorElement* meEBe4_; 
00116  MonitorElement* meEBe9_; 
00117  MonitorElement* meEBe16_; 
00118  MonitorElement* meEBe25_; 
00119 
00120  MonitorElement* meEBe1oe4_;
00121  MonitorElement* meEBe1oe9_;
00122  MonitorElement* meEBe4oe9_;
00123  MonitorElement* meEBe9oe16_;
00124  MonitorElement* meEBe1oe25_;
00125  MonitorElement* meEBe9oe25_; 
00126  MonitorElement* meEBe16oe25_;
00127 };
00128 
00129 #endif