16 const std::vector<uint64_t>& sampleSum_value,
17 const std::vector< uint64_t >& sampleSquare_value,
18 uint32_t nTrigger_value) :
21 const size_t nS=sampleSum_value.size();
23 for (
size_t i=0;i<nS;++i)
27 const size_t nSS=sampleSquare_value.size();
29 for (
size_t i=0;i<nSS;++i)
46 if(n_min>0 && (
unsigned)n_min<nS) imin=n_min;
48 if(n_max>0 && n_max>n_min && (
unsigned)n_max<nS)
imax=n_max;
53 for(
size_t i=imin;i<=
imax;i++) {
69 if(n_min>0 && (
unsigned)n_min<nS) imin=n_min;
71 if(n_max>0 && n_max>n_min && (
unsigned)n_max<nS)
imax=n_max;
78 for(
size_t i=imin;i<=
imax;i++)
80 const double inv_n = 1. / n;
81 double mean2 =
x * inv_n;
88 float rms = sqrt(rms2);
93 const size_t nS=digit.size();
102 for (
size_t i=0;i<nS;++i) {
104 for (
size_t j=i;j<nS;++j)
152 std::vector<uint64_t> tmpSum;
153 std::vector<uint64_t> tmpSquare;
177 tmpSquare.resize(n,0);
193 std::vector<uint64_t> tmpSum;
194 std::vector<uint64_t> tmpSquare;
214 tmpSum[i] = (uint64_t) (
sampleSum[i]+tmpBase);
218 tmpBase =
static_cast<int64_t
>(
base)*
base;
219 tmpSquare.resize(n,0);
240 std::vector<double> mean2;
242 for(
size_t i=1;i<nS;i++) {
243 for(
size_t j=i;j<nS;j++) {
246 mean2[i]/=n*n*(nS-i);
248 uint64_t temp_mean = 0;
250 for(uint32_t i=0;i<nS;i++)
252 mean = temp_mean/((double) n*nS);
255 for(
size_t i=1;i<nS;i++)
265 cov.assign(nS-1,0.0);
267 const double inv_norm = 1. / norm;
268 for(uint32_t i=1;i<nS;i++) {
269 cov.push_back((
m_sampleSquare[i]/(n*(nS-i)) - mean2[i])*inv_norm);
CaloGain::CaloGain m_gain
gain
const std::vector< uint64_t > & sampleSum() const
return the sample-sums
const std::vector< uint64_t > & sampleSquare() const
return a reference to a stl vector containing the sum of the squares of the sample
float RMS(int n_min=-1, int n_max=-1) const
Calculates and returns the RMS value of ADC samples.
std::vector< uint64_t > m_sampleSquare
vector(index: j from s_i*s_{i+j})
HWIdentifier m_hardwareID
Online Identifier.
float mean(int n_min=-1, int n_max=-1) const
Calculates and returns the Mean value of ADC samples.
LArAccumulatedDigit()
default constructor for persistency
bool setAddDigit(const std::vector< short > &digit)
Accumulate single digit.
uint32_t m_nTrigger
number of total triggers
unsigned nTrigger() const
return the number of triggers
std::vector< uint64_t > m_sampleSum
sampleSum over ntrigger*nsamples
void getCov(std::vector< float > &cov, int normalize) const
Compute the autocorrelation elements.
bool setAddSubStep(const CaloGain::CaloGain gain_value, const HWIdentifier chid, const std::vector< uint64_t > &sampleSum, const std::vector< uint64_t > &sampleSquare, const unsigned nTrigger)
Accumulate new values.