CMS 3D CMS Logo

PhiSymmetryCalibration.h

Go to the documentation of this file.
00001 #ifndef Calibration_EcalCalibAlgos_PhiSymmetryCalibration_h
00002 #define Calibration_EcalCalibAlgos_PhiSymmetryCalibration_h
00003 
00004 //
00005 // Package:    Calibration/EcalCalibAlgos
00006 // Class:      PhiSymmetryCalibration
00007 // 
00008 //
00009 // Description: performs phi-symmetry calibration
00010 //
00011 //
00012 // Original Author:  David Futyan
00013 
00014 #include <vector>
00015 
00016 // obsolete #include "Geometry/Vector/interface/GlobalPoint.h"
00017 
00018 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00019 // Framework
00020 #include "FWCore/Framework/interface/EDAnalyzer.h"
00021 #include "FWCore/Framework/interface/EventSetup.h"
00022 #include "FWCore/Framework/interface/ProducerBase.h"
00023 #include "FWCore/Framework/interface/Frameworkfwd.h"
00024 #include "FWCore/Framework/interface/Event.h"
00025 #include "FWCore/Framework/interface/ESHandle.h"
00026 
00027 #include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h"
00028 #include "DataFormats/DetId/interface/DetId.h"
00029 
00030 #include "TFile.h"
00031 #include "TTree.h"
00032 #include "TH1F.h"
00033 #include "TF1.h"
00034 #include "TGraph.h"
00035 #include "TCanvas.h"
00036 
00037 class PhiSymmetryCalibration :  public edm::EDAnalyzer
00038 {
00039 
00040  public:
00041 
00043   PhiSymmetryCalibration( const edm::ParameterSet& iConfig );
00044   
00046   ~PhiSymmetryCalibration();
00047 
00049   virtual void beginJob(const edm::EventSetup&);
00050 
00052   virtual void endJob();
00053 
00055   virtual void analyze( const edm::Event&, const edm::EventSetup& );
00056 
00057  private:
00058 
00059   // private member functions
00060 
00061   void getKfactors();
00062   void fillHistos();
00063 
00064   // private data members
00065 
00066   int nevent;
00067 
00068 
00069   static const int  kBarlRings  = 85;
00070   static const int  kBarlWedges = 360;
00071   static const int  kSides      = 2;
00072 
00073   static const int  kEndcWedgesX = 100;
00074   static const int  kEndcWedgesY = 100;
00075 
00076   static const int  kEndcEtaRings = 39;
00077   static const int  kNMiscalBins  = 21;
00078 
00079   // Transverse energy sum arrays
00080   double etsum_barl_[kBarlRings]  [kBarlWedges] [kSides];
00081   double etsum_endc_[kEndcWedgesX][kEndcWedgesX][kSides];
00082 
00083   double etsumMean_barl_[kBarlRings];
00084   double etsumMean_endc_[kEndcEtaRings];
00085 
00086   double etsum_barl_miscal_[kNMiscalBins][kBarlRings];
00087   double etsum_endc_miscal_[kNMiscalBins][kEndcEtaRings];
00088 
00089   // crystal geometry information
00090   double cellEta_[kBarlRings];
00091 
00092   GlobalPoint cellPos_[kEndcWedgesX][kEndcWedgesY];
00093   double cellPhi_     [kEndcWedgesX][kEndcWedgesY];
00094   double cellArea_    [kEndcWedgesX][kEndcWedgesY];
00095   double meanCellArea_[kEndcEtaRings];
00096   double etaBoundary_ [kEndcEtaRings+1];
00097   int endcapRing_     [kEndcWedgesX][kEndcWedgesY];
00098   int nRing_          [kEndcEtaRings];
00099 
00100   // factors to convert from ET sum deviation to miscalibration
00101   double k_barl_[kBarlRings];
00102   double k_endc_[kEndcEtaRings];
00103   double miscal_[kNMiscalBins];
00104  
00105   std::vector<DetId> barrelCells;
00106   std::vector<DetId> endcapCells;
00107 
00108   // input calibration constants
00109   double oldCalibs_barl[kBarlRings  ][kBarlWedges][kSides];
00110   double oldCalibs_endc[kEndcWedgesX][kEndcWedgesY][kSides];
00111 
00112   // steering parameters
00113 
00114   std::string ecalHitsProducer_;
00115   std::string barrelHits_;
00116   std::string endcapHits_;
00117   double eCut_barl_;
00118   double eCut_endc_;  
00119   int eventSet_;
00120 
00121   static const int kMaxEndciPhi = 360;
00122    
00123   float phi_endc[kMaxEndciPhi][kEndcEtaRings]; 
00124   
00125 
00126 };
00127 
00128 #endif

Generated on Tue Jun 9 17:25:31 2009 for CMSSW by  doxygen 1.5.4