Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:26

0001 #ifndef RecoParticleFlow_PFClusterTools_PFEnergyCalibrationHF_h
0002 #define RecoParticleFlow_PFClusterTools_PFEnergyCalibrationHF_h
0003 
0004 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
0005 
0006 // -*- C++ -*-
0007 //
0008 // Package:    PFClusterTools
0009 // Class:      PFEnergyCalibrationHF
0010 //
0011 /**\class
0012 
0013  Description: An auxiliary class of the Particle-Flow algorithm,
0014               for the Calibration of Energy Deposits HF.
0015 
0016  Modified version of PFEnergyCalibration for the HF calibration.
0017      By Auguste Besson
0018 
0019 */
0020 
0021 #include <iostream>
0022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0023 
0024 class PFEnergyCalibrationHF {
0025 public:
0026   PFEnergyCalibrationHF();  // default constructor;
0027                             // needed by PFRootEvent
0028   explicit PFEnergyCalibrationHF(bool calibHF_use,
0029                                  const std::vector<double>& calibHF_eta_step,
0030                                  const std::vector<double>& calibHF_a_EMonly,
0031                                  const std::vector<double>& calibHF_b_HADonly,
0032                                  const std::vector<double>& calibHF_a_EMHAD,
0033                                  const std::vector<double>& calibHF_b_EMHAD);
0034 
0035   ~PFEnergyCalibrationHF();
0036 
0037   double energyEm(double uncalibratedEnergyECAL, double eta, double phi);
0038 
0039   // HCAL only calibration
0040   double energyHad(double uncalibratedEnergyHCAL, double eta, double phi);
0041 
0042   // ECAL+HCAL (abc) calibration
0043   double energyEmHad(double uncalibratedEnergyECAL, double uncalibratedEnergyHCAL, double eta, double phi);
0044 
0045   friend std::ostream& operator<<(std::ostream& out, const PFEnergyCalibrationHF& calib);
0046 
0047   const bool& getcalibHF_use() const { return calibHF_use_; }
0048   const std::vector<double>& getcalibHF_eta_step() const { return calibHF_eta_step_; }
0049   const std::vector<double>& getcalibHF_a_EMonly() const { return calibHF_a_EMonly_; }
0050   const std::vector<double>& getcalibHF_b_HADonly() const { return calibHF_b_HADonly_; }
0051   const std::vector<double>& getcalibHF_a_EMHAD() const { return calibHF_a_EMHAD_; }
0052   const std::vector<double>& getcalibHF_b_EMHAD() const { return calibHF_b_EMHAD_; }
0053 
0054 protected:
0055 private:
0056   bool calibHF_use_;
0057   std::vector<double> calibHF_eta_step_;
0058   std::vector<double> calibHF_a_EMonly_;
0059   std::vector<double> calibHF_b_HADonly_;
0060   std::vector<double> calibHF_a_EMHAD_;
0061   std::vector<double> calibHF_b_EMHAD_;
0062 };
0063 
0064 #endif