CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoParticleFlow/PFClusterTools/interface/PFEnergyCalibrationHF.h

Go to the documentation of this file.
00001 #ifndef RecoParticleFlow_PFClusterTools_PFEnergyCalibrationHF_h
00002 #define RecoParticleFlow_PFClusterTools_PFEnergyCalibrationHF_h 
00003 
00004 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
00005 
00006 // -*- C++ -*-
00007 //
00008 // Package:    PFClusterTools
00009 // Class:      PFEnergyCalibrationHF
00010 // 
00021 #include <iostream>
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023 
00024 class PFEnergyCalibrationHF 
00025 {
00026  public:
00027   PFEnergyCalibrationHF(); // default constructor;
00028                          // needed by PFRootEvent
00029  explicit PFEnergyCalibrationHF(bool calibHF_use, 
00030                                              std::vector<double> calibHF_eta_step,
00031                                              std::vector<double> calibHF_a_EMonly,
00032                                              std::vector<double> calibHF_b_HADonly,
00033                                              std::vector<double> calibHF_a_EMHAD,
00034                                              std::vector<double> calibHF_b_EMHAD);
00035   
00036   ~PFEnergyCalibrationHF();
00037 
00038 
00039   double energyEm(double uncalibratedEnergyECAL, 
00040                   double eta, double phi);
00041 
00042   // HCAL only calibration
00043   double energyHad(double uncalibratedEnergyHCAL, 
00044                    double eta, double phi) ;
00045   
00046   
00047   // ECAL+HCAL (abc) calibration
00048   double energyEmHad(double uncalibratedEnergyECAL, 
00049                      double uncalibratedEnergyHCAL, 
00050                      double eta, double phi) ;
00051 
00052 
00053   
00054   friend std::ostream& operator<<(std::ostream& out, 
00055                                   const PFEnergyCalibrationHF& calib);
00056 
00057   const bool& getcalibHF_use() const
00058     { return calibHF_use_;}
00059   const std::vector<double>& getcalibHF_eta_step() const
00060     {return calibHF_eta_step_;}
00061   const std::vector<double>& getcalibHF_a_EMonly() const
00062     {return calibHF_a_EMonly_;}
00063   const std::vector<double>& getcalibHF_b_HADonly() const
00064     {return calibHF_b_HADonly_;}
00065   const std::vector<double>& getcalibHF_a_EMHAD() const
00066     {return calibHF_a_EMHAD_;}
00067   const std::vector<double>& getcalibHF_b_EMHAD() const
00068     {return calibHF_b_EMHAD_;}
00069 
00070 
00071  protected:
00072 
00073  private:
00074   bool calibHF_use_;
00075   std::vector<double>  calibHF_eta_step_;
00076   std::vector<double>  calibHF_a_EMonly_;
00077   std::vector<double>  calibHF_b_HADonly_;
00078   std::vector<double>  calibHF_a_EMHAD_;
00079   std::vector<double>  calibHF_b_EMHAD_ ;
00080 };
00081 
00082 #endif
00083 
00084