ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
RunningStat Class Reference

#include <TileLaserDefaultCalibTool.h>

Collaboration diagram for RunningStat:

Public Member Functions

 RunningStat ()
 
void Clear ()
 
void Push (double x)
 
int NumDataValues () const
 
double Mean () const
 
double Variance () const
 
double StandardDeviation () const
 
int EventsPerSlice ()
 
double Mean (unsigned int iSlice)
 
double Variance (unsigned int iSlice)
 
int GetNSlices ()
 

Private Attributes

int m_n
 
double m_oldM
 
double m_newM
 
double m_oldS
 
double m_newS
 
int m_nTotEntries
 
int m_n_slice
 
double m_oldM_slice
 
double m_newM_slice
 
double m_oldS_slice
 
double m_newS_slice
 
int m_eventsPerSlice
 
std::vector< double > m_vectMean
 
std::vector< double > m_vectVar
 

Detailed Description

Definition at line 232 of file TileLaserDefaultCalibTool.h.

Constructor & Destructor Documentation

◆ RunningStat()

RunningStat::RunningStat ( )
inline

Definition at line 236 of file TileLaserDefaultCalibTool.h.

236  : m_n(0), m_oldM(0), m_newM(0), m_oldS(0), m_newS(0), m_nTotEntries(0),

Member Function Documentation

◆ Clear()

void RunningStat::Clear ( )
inline

Definition at line 239 of file TileLaserDefaultCalibTool.h.

239  {
240  m_n = 0;
241  }

◆ EventsPerSlice()

int RunningStat::EventsPerSlice ( )
inline

Definition at line 283 of file TileLaserDefaultCalibTool.h.

283 { return m_eventsPerSlice;}

◆ GetNSlices()

int RunningStat::GetNSlices ( )
inline

Definition at line 295 of file TileLaserDefaultCalibTool.h.

295  {
296  return m_vectVar.size();
297  }

◆ Mean() [1/2]

double RunningStat::Mean ( ) const
inline

Definition at line 280 of file TileLaserDefaultCalibTool.h.

280 { return (m_n > 0) ? m_newM : 0.0; }

◆ Mean() [2/2]

double RunningStat::Mean ( unsigned int  iSlice)
inline

Definition at line 285 of file TileLaserDefaultCalibTool.h.

285  {
286  if ( iSlice<m_vectMean.size() ) return m_vectMean[iSlice];
287  return 0;
288  }

◆ NumDataValues()

int RunningStat::NumDataValues ( ) const
inline

Definition at line 279 of file TileLaserDefaultCalibTool.h.

279 { return m_nTotEntries;}

◆ Push()

void RunningStat::Push ( double  x)
inline

Definition at line 244 of file TileLaserDefaultCalibTool.h.

244  {
245  m_n++;
246  m_n_slice++;
247  m_nTotEntries++;
248 
249  if (m_n == 1) {
250  m_oldM = m_newM = x;
251  m_oldS = 0.0;
252  } else {
253  m_newM = m_oldM + (x - m_oldM)/m_n;
254  m_newS = m_oldS + (x - m_oldM)*(x - m_newM);
255 
256  // set up for next iteration
257  m_oldM = m_newM;
258  m_oldS = m_newS;
259  }
260 
261  //--- for slicing
262  if (m_n_slice == 1) {
264  m_oldS_slice = 0.0;
265  } else {
270  }
271 
272  if( m_n_slice==m_eventsPerSlice ) {
273  m_vectMean.push_back( (m_n_slice > 0) ? m_newM_slice : 0.0 );
274  m_vectVar.push_back( (m_n_slice > 1) ? m_newS_slice/(m_n_slice - 1) : 0.0 );
275  m_n_slice=0;
276  }
277  }

◆ StandardDeviation()

double RunningStat::StandardDeviation ( ) const
inline

Definition at line 282 of file TileLaserDefaultCalibTool.h.

282 { return sqrt( Variance() ); }

◆ Variance() [1/2]

double RunningStat::Variance ( ) const
inline

Definition at line 281 of file TileLaserDefaultCalibTool.h.

281 { return ( (m_n > 1) ? m_newS/(m_n - 1) : 0.0 ); }

◆ Variance() [2/2]

double RunningStat::Variance ( unsigned int  iSlice)
inline

Definition at line 290 of file TileLaserDefaultCalibTool.h.

290  {
291  if (iSlice<m_vectVar.size()) return m_vectVar[iSlice];
292  return 0;
293  }

Member Data Documentation

◆ m_eventsPerSlice

int RunningStat::m_eventsPerSlice
private

Definition at line 306 of file TileLaserDefaultCalibTool.h.

◆ m_n

int RunningStat::m_n
private

Definition at line 301 of file TileLaserDefaultCalibTool.h.

◆ m_n_slice

int RunningStat::m_n_slice
private

Definition at line 304 of file TileLaserDefaultCalibTool.h.

◆ m_newM

double RunningStat::m_newM
private

Definition at line 302 of file TileLaserDefaultCalibTool.h.

◆ m_newM_slice

double RunningStat::m_newM_slice
private

Definition at line 305 of file TileLaserDefaultCalibTool.h.

◆ m_newS

double RunningStat::m_newS
private

Definition at line 302 of file TileLaserDefaultCalibTool.h.

◆ m_newS_slice

double RunningStat::m_newS_slice
private

Definition at line 305 of file TileLaserDefaultCalibTool.h.

◆ m_nTotEntries

int RunningStat::m_nTotEntries
private

Definition at line 303 of file TileLaserDefaultCalibTool.h.

◆ m_oldM

double RunningStat::m_oldM
private

Definition at line 302 of file TileLaserDefaultCalibTool.h.

◆ m_oldM_slice

double RunningStat::m_oldM_slice
private

Definition at line 305 of file TileLaserDefaultCalibTool.h.

◆ m_oldS

double RunningStat::m_oldS
private

Definition at line 302 of file TileLaserDefaultCalibTool.h.

◆ m_oldS_slice

double RunningStat::m_oldS_slice
private

Definition at line 305 of file TileLaserDefaultCalibTool.h.

◆ m_vectMean

std::vector<double> RunningStat::m_vectMean
private

Definition at line 307 of file TileLaserDefaultCalibTool.h.

◆ m_vectVar

std::vector<double> RunningStat::m_vectVar
private

Definition at line 307 of file TileLaserDefaultCalibTool.h.


The documentation for this class was generated from the following file:
RunningStat::m_oldS
double m_oldS
Definition: TileLaserDefaultCalibTool.h:302
x
#define x
RunningStat::m_newS_slice
double m_newS_slice
Definition: TileLaserDefaultCalibTool.h:305
RunningStat::m_newM
double m_newM
Definition: TileLaserDefaultCalibTool.h:302
RunningStat::Variance
double Variance() const
Definition: TileLaserDefaultCalibTool.h:281
RunningStat::m_newS
double m_newS
Definition: TileLaserDefaultCalibTool.h:302
RunningStat::m_vectVar
std::vector< double > m_vectVar
Definition: TileLaserDefaultCalibTool.h:307
RunningStat::m_n_slice
int m_n_slice
Definition: TileLaserDefaultCalibTool.h:304
RunningStat::m_oldM_slice
double m_oldM_slice
Definition: TileLaserDefaultCalibTool.h:305
RunningStat::m_vectMean
std::vector< double > m_vectMean
Definition: TileLaserDefaultCalibTool.h:307
RunningStat::m_oldS_slice
double m_oldS_slice
Definition: TileLaserDefaultCalibTool.h:305
RunningStat::m_oldM
double m_oldM
Definition: TileLaserDefaultCalibTool.h:302
RunningStat::m_n
int m_n
Definition: TileLaserDefaultCalibTool.h:301
RunningStat::m_nTotEntries
int m_nTotEntries
Definition: TileLaserDefaultCalibTool.h:303
RunningStat::m_eventsPerSlice
int m_eventsPerSlice
Definition: TileLaserDefaultCalibTool.h:306
RunningStat::m_newM_slice
double m_newM_slice
Definition: TileLaserDefaultCalibTool.h:305