#ifndef __TMrbStatistics_h__
#define __TMrbStatistics_h__
namespace std {} using namespace std;
#include <iostream>
#include <iomanip>
#include "TROOT.h"
#include "Rtypes.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TKey.h"
#include "TList.h"
#include "TNamed.h"
#include "TDirectory.h"
class TMrbStatEntry: public TNamed {
public:
TMrbStatEntry();
TMrbStatEntry(TH1*, const char *, const char *);
~TMrbStatEntry(){};
void Set(const Stat_t ent, const Stat_t sofw, const Stat_t mx,
const Stat_t sx);
void Set(const Stat_t ent, const Stat_t sofw);
Int_t Get(Stat_t *ent, Stat_t *sofw, Stat_t *mx, Stat_t *sx) const;
Int_t Get(Stat_t *ent, Stat_t *sofw) const;
inline Stat_t GetEntries() const {return fEntries;}
inline Stat_t GetSumofw() const {return fSumofw;}
inline Stat_t GetMean() const {return fMean;}
inline Stat_t GetSigma() const {return fSigma;}
TH1* GetHist() const {return fHist;}
Int_t GetDimension() const {return fDim;};
void SetCycle(Int_t cycle) {fCycle = cycle;};
Int_t GetCycle() const {return fCycle;};
void Print(Option_t * Option) const { TObject::Print(Option); }
Int_t Print(ostream & ostr) const;
protected:
TH1 * fHist;
Int_t fDim;
Int_t fNofUpdates;
Int_t fCycle;
Int_t fNbinsX;
Int_t fNbinsY;
Int_t fNbinsZ;
Int_t fBytesPerCell;
Axis_t fLowX;
Axis_t fHighX;
Axis_t fLowY;
Axis_t fHighY;
Axis_t fLowZ;
Axis_t fHighZ;
Stat_t fEntries;
Stat_t fSumofw;
Stat_t fMean;
Stat_t fSigma;
ClassDef(TMrbStatEntry, 1)
};
class TMrbStatCheck: public TNamed {
public:
TMrbStatCheck();
TMrbStatCheck(const char *, const char *);
~TMrbStatCheck(){};
Bool_t InsideMean(Stat_t val);
Bool_t InsideSigma(Stat_t val);
public:
Bool_t fAnyCheck;
Stat_t fEntriesLow;
Stat_t fSumofwLow;
Stat_t fMeanLow;
Stat_t fSigmaLow;
Stat_t fEntriesUp;
Stat_t fSumofwUp;
Stat_t fMeanUp;
Stat_t fSigmaUp;
ClassDef(TMrbStatCheck, 1)
};
class TMrbStatistics: public TNamed {
public:
TMrbStatistics(){fStatEntries=new TList(this);};
TMrbStatistics(const char *);
~TMrbStatistics();
Int_t Init();
Int_t Update();
Int_t Fill();
Int_t Fill(TDirectory *);
TList * GetListOfEntries(){return fStatEntries;};
void Print(Option_t * Option) const { TObject::Print(Option); }
void Print(ostream & ostr = cout) const;
protected:
TList *fStatEntries;
ClassDef(TMrbStatistics, 1)
};
#endif