1 #ifndef RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitTimeWeightsAlgo_HH 2 #define RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitTimeWeightsAlgo_HH 34 const std::vector<double> &litudes,
43 double pulsenorm = 0.;
46 ROOT::Math::SVector<double, nsample> pedSubSamples;
47 for (
unsigned int iSample = 0; iSample < nsample; iSample++) {
54 double gainratio = 1.;
82 pulsenorm += fullpulse(iSample);
85 std::vector<double>::const_iterator amplit;
86 for (amplit = amplitudes.begin(); amplit < amplitudes.end(); ++amplit) {
93 pulse.ResizeTo(nsample);
94 for (
unsigned int isample = firstsamplet; isample < nsample; ++isample) {
96 pedSubSamples(isample) =
std::max(0., pedSubSamples(isample) - amplitudes[ipulse] *
pulse(isample) / pulsenorm);
101 double amplitude_(-1.), jitter_(-1.);
102 ROOT::Math::SVector<double, 3> param = (*(
weights[iGainSwitch])) * pedSubSamples;
virtual ~EcalUncalibRecHitTimeWeightsAlgo()
double time(const C &dataFrame, const std::vector< double > &litudes, const EcalPedestals::Item *aped, const EcalMGPAGainRatio *aGain, const FullSampleVector &fullpulse, const EcalWeightSet::EcalWeightMatrix **weights)
Compute time.
Eigen::Matrix< double, FullSampleVectorSize, 1 > FullSampleVector
math::Matrix< 3, 10 >::type EcalWeightMatrix
float gain12Over6() const
constexpr int gainId(sample_type sample)
get the gainId (2 bits)
double pulse(double x, double y, double z, double t)
static constexpr int MAXSAMPLES
EcalUncalibRecHitTimeWeightsAlgo()