Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:05

0001 #ifndef CALIBCALORIMETRY_HCALALGOS_HCALPULSECONTAINMENTCORRECTION_H
0002 #define CALIBCALORIMETRY_HCALALGOS_HCALPULSECONTAINMENTCORRECTION_H 1
0003 
0004 #include <map>
0005 class HcalPulseShape;
0006 class HcalTimeSlew;
0007 
0008 /** \class HcalPulseContainmentCorrection
0009   *
0010   * Amplitude correction for pulse containment in time.
0011   * Currently only for HPD pulse shape.
0012   *  
0013   * \author P. Dudero - Minnesota
0014   */
0015 class HcalPulseContainmentCorrection {
0016 public:
0017   HcalPulseContainmentCorrection(int num_samples,
0018                                  float fixedphase_ns,
0019                                  bool phaseAsInSim,
0020                                  float max_fracerror,
0021                                  const HcalTimeSlew* hcalTimeSlew_delay);
0022   HcalPulseContainmentCorrection(const HcalPulseShape* shape,
0023                                  int num_samples,
0024                                  float fixedphase_ns,
0025                                  bool phaseAsInSim,
0026                                  float max_fracerror,
0027                                  const HcalTimeSlew* hcalTimeSlew_delay);
0028   double getCorrection(double fc_ampl) const;
0029   double fractionContained(double fc_ampl) const { return 1.0 / this->getCorrection(fc_ampl); }
0030 
0031 private:
0032   std::map<double, double> mCorFactors_;
0033 };
0034 
0035 #endif