#include <HcalPulseContainmentCorrection.h>
Public Member Functions | |
double | fractionContained (double fc_ampl) const |
double | getCorrection (double fc_ampl) const |
HcalPulseContainmentCorrection (int num_samples, float fixedphase_ns, float max_fracerror) | |
Generate energy correction factors based on a predetermined phase of the hit + time slew. | |
HcalPulseContainmentCorrection (const HcalPulseShape *shape, int num_samples, float fixedphase_ns, float max_fracerror) | |
Private Attributes | |
std::map< double, double > | mCorFactors_ |
Amplitude correction for pulse containment in time. Currently only for HPD pulse shape.
Definition at line 16 of file HcalPulseContainmentCorrection.h.
HcalPulseContainmentCorrection::HcalPulseContainmentCorrection | ( | int | num_samples, |
float | fixedphase_ns, | ||
float | max_fracerror | ||
) |
Generate energy correction factors based on a predetermined phase of the hit + time slew.
Definition at line 17 of file HcalPulseContainmentCorrection.cc.
References mCorFactors_.
{ HcalPulseContainmentAlgo corFalgo(num_samples, (double)fixedphase_ns); // Generate lookup map for the correction function, never exceeding // a maximum fractional error for lookups. // // static const double max_recofc = 5000.0f; genlkupmap<HcalPulseContainmentAlgo> (1.0, 5000.0f, // generation domain max_fracerror, // maximum fractional error 1.0, // min_xstep = minimum true fC increment corFalgo, mCorFactors_); // return lookup map }
HcalPulseContainmentCorrection::HcalPulseContainmentCorrection | ( | const HcalPulseShape * | shape, |
int | num_samples, | ||
float | fixedphase_ns, | ||
float | max_fracerror | ||
) |
Definition at line 35 of file HcalPulseContainmentCorrection.cc.
References mCorFactors_.
{ HcalPulseContainmentAlgo corFalgo(shape, num_samples, (double)fixedphase_ns); genlkupmap<HcalPulseContainmentAlgo> (1.0, 5000.0f, // generation domain max_fracerror, // maximum fractional error 1.0, // min_xstep = minimum true fC increment corFalgo, mCorFactors_); // return lookup map }
double HcalPulseContainmentCorrection::fractionContained | ( | double | fc_ampl | ) | const [inline] |
Definition at line 26 of file HcalPulseContainmentCorrection.h.
References getCorrection().
{ return 1.0/this->getCorrection(fc_ampl); }
double HcalPulseContainmentCorrection::getCorrection | ( | double | fc_ampl | ) | const |
Definition at line 49 of file HcalPulseContainmentCorrection.cc.
References gather_cfg::cout, mCorFactors_, and alignCSCRings::s.
Referenced by fractionContained(), HcalSimpleRecAlgoImpl::reco(), ZdcSimpleRecAlgoImpl::reco1(), ZdcSimpleRecAlgoImpl::reco2(), and HcalSimpleRecAlgo::reconstruct().
{ double correction; std::map<double,double>::const_iterator fcupper,fclower; fcupper = mCorFactors_.upper_bound(fc_ampl); fclower = fcupper; fclower--; if (fcupper == mCorFactors_.end()) { correction = fclower->second; } else if (fcupper == mCorFactors_.begin()) { correction = fcupper->second; } else { if (fabs(fclower->first - fc_ampl) < fabs(fcupper->first - fc_ampl) ) correction = fclower->second; else correction = fcupper->second; } #if 0 char s[80]; sprintf (s, "%7.1f (%8.5f %8.5f) (%8.5f %8.5f) %8.5f", fc_ampl, fclower->first, fclower->second, fcupper->first, fcupper->second, correction); cout << s << endl; #endif return correction; }
std::map<double,double> HcalPulseContainmentCorrection::mCorFactors_ [private] |
Definition at line 29 of file HcalPulseContainmentCorrection.h.
Referenced by getCorrection(), and HcalPulseContainmentCorrection().