More information on this package is here.
#ifndef __TCounter__
#define __TCounter__
#include <iostream>
using namespace std;
#include "TROOT.h"
#include "TSystem.h"
#include "TBrowser.h"
#include "TObject.h"
#include "TString.h"
#include "TMath.h"
class TCounter : public TNamed {
public:
Int_t fNumtrue;
Int_t fNumfalse;
public:
TCounter (){fNumtrue=0;fNumfalse=0;};
TCounter (const char *name){fNumtrue=0;fNumfalse=0; SetName(name);SetTitle();};
virtual ~TCounter(){};
void SetTitle(){
char tmpstr[256];
const char *tmp= &tmpstr[0];
if((fNumtrue + fNumfalse)==0){
sprintf(tmpstr,"%-50s T: %8d (%7.2f%%) F: %8d (%7.2f%%) Tot: %8d",GetName(),
fNumtrue ,-1.,
fNumfalse,-1.,
fNumtrue+fNumfalse);
}else{
sprintf(tmpstr,"%-50s T: %8d (%7.2f%%) F: %8d (%7.2f%%) Tot: %8d",GetName(),
fNumtrue ,100.*Double_t(fNumtrue )/Double_t(fNumtrue+fNumfalse),
fNumfalse,100.*Double_t(fNumfalse)/Double_t(fNumtrue+fNumfalse),
fNumtrue+fNumfalse);
}
TNamed::SetTitle(tmp);
}
const char* GetTitle(){
SetTitle();
return(TNamed::GetTitle());
}
void Reset(){fNumtrue=0;fNumfalse=0;};
Bool_t Test(Bool_t test){
if(test){
fNumtrue++;
}else{
fNumfalse++;
}
return(test);
}
Bool_t True(){
fNumtrue++;
return(1);
}
Bool_t False(){
fNumfalse++;
return(0);
}
Int_t GetTrues(){
return(fNumtrue);
}
Int_t GetFalse(){
return(fNumfalse);
}
void SetTrues(Int_t count){
fNumtrue=count;
}
void SetFalse(Int_t count){
fNumfalse=count;
}
void Browse(TBrowser *b){
this->Print();
}
void Print(){
cout << GetTitle() << endl;
};
Bool_t IsEqual(TObject *obj){
TCounter *cmp= (TCounter *)obj;
return( fName == cmp->fName ); };
ClassDef(TCounter,1)
};
#endif
Author: Maurik Holtrop
Last update: ClasTool/TCounter:$Name: $:$Id: TCounter.cc,v 1.2 2007/03/01 22:27:00 holtrop Exp $
CopyLeft - This code is freely available.
ROOT Home page - ClasTool Class index - Class Hierarchy - Top of the page