#include <CSCFindPeakTime.h>
Public Member Functions | |
float | averageTime (int tmax, const float *adc) |
Weighted average of time bins. More... | |
CSCFindPeakTime (const edm::ParameterSet &ps) | |
void | fivePoleFitCharge (int tmax, const float *adc, const float &t_zero, const float &t_peak, std::vector< float > &adcsFit) |
float | fivePoleFitTime (int tmax, const float *adc, float t_peak) |
float | parabolaFitTime (int tmax, const float *adc) |
Parabolic fit to three time bins centered on maximum. More... | |
float | peakTime (int tmax, const float *adc, float t_peak) |
Basic result of this class. More... | |
~CSCFindPeakTime () | |
Private Attributes | |
bool | useAverageTime |
bool | useFivePoleFit |
bool | useParabolaFit |
This is CSCFindPeakTime
Used to provide improved estimate of SCA peak time.
Definition at line 13 of file CSCFindPeakTime.h.
|
explicit |
Definition at line 8 of file CSCFindPeakTime.cc.
References edm::ParameterSet::getParameter(), LogTrace, useAverageTime, useFivePoleFit, and useParabolaFit.
|
inline |
Definition at line 19 of file CSCFindPeakTime.h.
References ecalMGPA::adc(), averageTime(), fivePoleFitCharge(), fivePoleFitTime(), parabolaFitTime(), peakTime(), and tmax.
float CSCFindPeakTime::averageTime | ( | int | tmax, |
const float * | adc | ||
) |
Weighted average of time bins.
Definition at line 34 of file CSCFindPeakTime.cc.
References objects.autophobj::float, and mps_fire::i.
Referenced by peakTime(), and ~CSCFindPeakTime().
void CSCFindPeakTime::fivePoleFitCharge | ( | int | tmax, |
const float * | adc, | ||
const float & | t_zero, | ||
const float & | t_peak, | ||
std::vector< float > & | adcsFit | ||
) |
Integrated charge after fivePoleFitTime
Definition at line 151 of file CSCFindPeakTime.cc.
References JetChargeProducer_cfi::exp, objects.autophobj::float, mps_fire::i, N, protons_cff::t, x, and y.
Referenced by ~CSCFindPeakTime().
float CSCFindPeakTime::fivePoleFitTime | ( | int | tmax, |
const float * | adc, | ||
float | t_peak | ||
) |
Based on RecoLocalMuon/CSCStandAlone/interface/PulseTime.h by S. Durkin, and ported by D. Fortin. Comments updated by Tim Cox Apr 2009.
The SCA pulse shape should be representable by a function
N*(p0^2/256/exp(-4)) * (t-t0)^4 * exp( -p0*(t-t0) )
Rather than do a full fit with varying peak time too, assume the peak time is fixed to 133 nsec w.r.t. start time, t0, and fit for t0. The fit uses a binary search in t0, and at each step calculates the overall normalization factor between the function and the SCA pulse height as a least-squares fit over the 4 time bins tmax -1, tmax, tmax+1, tmax+2
Note: t0peak =4/p0 = 133 nsec, and adc[0] is arbitrarily defined a time of 0.0 nsec.
Definition at line 68 of file CSCFindPeakTime.cc.
References vertices_cff::chi2, constexpr, JetChargeProducer_cfi::exp, f, hcaldqm::quantity::fN, genVertex_cff::t0, protons_cff::time, and x.
Referenced by peakTime(), and ~CSCFindPeakTime().
float CSCFindPeakTime::parabolaFitTime | ( | int | tmax, |
const float * | adc | ||
) |
Parabolic fit to three time bins centered on maximum.
Definition at line 45 of file CSCFindPeakTime.cc.
References f, LogTrace, and tmax.
Referenced by peakTime(), and ~CSCFindPeakTime().
float CSCFindPeakTime::peakTime | ( | int | tmax, |
const float * | adc, | ||
float | t_peak | ||
) |
Basic result of this class.
Definition at line 18 of file CSCFindPeakTime.cc.
References averageTime(), fivePoleFitTime(), parabolaFitTime(), useAverageTime, useFivePoleFit, and useParabolaFit.
Referenced by ~CSCFindPeakTime().
|
private |
Definition at line 56 of file CSCFindPeakTime.h.
Referenced by CSCFindPeakTime(), and peakTime().
|
private |
Definition at line 58 of file CSCFindPeakTime.h.
Referenced by CSCFindPeakTime(), and peakTime().
|
private |
Definition at line 57 of file CSCFindPeakTime.h.
Referenced by CSCFindPeakTime(), and peakTime().