More information on this package is here.
#include "TCounterCol.h"

TCounterCol


class description - header file - source file

class TCounterCol: public TObjArray

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
TCounterCol()
virtual~TCounterCol()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObjArray::Add(TObject* obj)
virtual voidTObjArray::AddAfter(const TObject* after, TObject* obj)
virtual voidTCollection::AddAll(const TCollection* col)
virtual voidTObjArray::AddAt(TObject* obj, Int_t idx)
virtual voidTObjArray::AddAtAndExpand(TObject* obj, Int_t idx)
virtual Int_tTObjArray::AddAtFree(TObject* obj)
virtual voidTObjArray::AddBefore(const TObject* before, TObject* obj)
Int_tAddCounter(TCounter* cc, Int_t loc = -1)
Int_tAddCounter(const char* name, Int_t loc = -1)
virtual voidTObjArray::AddFirst(TObject* obj)
virtual voidTObjArray::AddLast(TObject* obj)
voidTCollection::AddVector(TObject* obj1)
virtual TObject*TObjArray::After(const TObject* obj) const
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tTCollection::AssertClass(TClass* cl) const
virtual TObject*TObjArray::At(Int_t i) const
virtual TObject*TObjArray::Before(const TObject* obj) const
virtual Int_tTObjArray::BinarySearch(TObject* obj, Int_t upto = kMaxInt)
virtual voidBrowse(TBrowser* b)
Int_tTCollection::Capacity() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObjArray::Clear(Option_t* option = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTCollection::Compare(const TObject* obj) const
virtual voidTObjArray::Compress()
Bool_tTCollection::Contains(const char* name) const
Bool_tTCollection::Contains(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObjArray::Delete(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTCollection::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTCollection::Dump() const
static voidTCollection::EmptyGarbageCollection()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObjArray::Expand(Int_t newSize)
Bool_tFalse(Int_t i)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObjArray::FindObject(const char* name) const
virtual TObject*TObjArray::FindObject(const TObject* obj) const
virtual TObject*TObjArray::First() const
static voidTCollection::GarbageCollect(TObject* obj)
static TCollection*TCollection::GetCurrentCollection()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Int_tTObjArray::GetEntries() const
Int_tTObjArray::GetEntriesFast() const
virtual const char*TObject::GetIconName() const
Int_tTObjArray::GetLast() const
virtual const char*TCollection::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
virtual TObject**TObjArray::GetObjectRef(const TObject* obj) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Int_tTCollection::GetSize() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Int_tTCollection::GrowBy(Int_t delta) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTCollection::Hash() const
virtual Int_tTObjArray::IndexOf(const TObject* obj) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTCollection::IsArgNull(const char* where, const TObject* obj) const
virtual Bool_tTObjArray::IsEmpty() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tTCollection::IsOwner() const
virtual Bool_tTCollection::IsSortable() const
virtual Bool_tTSeqCollection::IsSorted() const
Bool_tTObject::IsZombie() const
virtual TObject*TObjArray::Last() const
Int_tTSeqCollection::LastIndex() const
Int_tTObjArray::LowerBound() const
virtual voidTCollection::ls(Option_t* option = "") const
virtual TIterator*TObjArray::MakeIterator(Bool_t dir = kIterForward) const
virtual TIterator*TCollection::MakeReverseIterator() const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static Int_tTSeqCollection::ObjCompare(TObject* a, TObject* b)
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TObject*TCollection::operator()(const char* name) const
TObjArray&TObjArray::operator=(const TObjArray&)
virtual TObject*&TObjArray::operator[](Int_t i)
virtual TObject*TObjArray::operator[](Int_t i) const
virtual voidTCollection::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidPrint()
static voidTSeqCollection::QSort(TObject** a, Int_t first, Int_t last)
static voidTSeqCollection::QSort(TObject** a, TObject** b, Int_t first, Int_t last)
virtual voidTObjArray::Randomize(Int_t ntimes = 1)
virtual Int_tTObject::Read(const char* name)
virtual voidTCollection::RecursiveRemove(TObject* obj)
virtual TObject*TObjArray::Remove(TObject* obj)
virtual voidTSeqCollection::RemoveAfter(TObject* after)
voidTCollection::RemoveAll()
virtual voidTCollection::RemoveAll(TCollection* col)
virtual TObject*TObjArray::RemoveAt(Int_t idx)
virtual voidTSeqCollection::RemoveBefore(TObject* before)
virtual voidTSeqCollection::RemoveFirst()
virtual voidTSeqCollection::RemoveLast()
voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCounterTitles()
voidTCollection::SetCurrentCollection()
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
voidTObjArray::SetLast(Int_t last)
voidTCollection::SetName(const char* name)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTCollection::SetOwner(Bool_t enable = kTRUE)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidTObjArray::Sort(Int_t upto = kMaxInt)
static voidTCollection::StartGarbageCollection()
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTest(Bool_t test, Int_t i)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Bool_tTestInv(Bool_t test, Int_t i)
Bool_tTrue(Int_t i)
TObject*TObjArray::UncheckedAt(Int_t i) const
voidTSeqCollection::UnSort()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tWrite(const char* name = "0", Int_t option = 0, Int_t bufsize = 0)
protected:
Bool_tTObjArray::BoundsOk(const char* where, Int_t at) const
virtual voidTSeqCollection::Changed()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tTObjArray::GetAbsLast() const
voidTObjArray::Init(Int_t s, Int_t lowerBound)
voidTObject::MakeZombie()
Bool_tTObjArray::OutOfBoundsError(const char* where, Int_t i) const

Data Members

public:
enum TCollection::[unnamed] { kIsOwner
kInitCapacity
kInitHashTableCapacity
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TObject**TObjArray::fCont!Array contents
Int_tTObjArray::fLowerBoundLower bound of the array
Int_tTObjArray::fLastLast element in array containing an object
Bool_tTSeqCollection::fSortedtrue if collection has been sorted
TStringTCollection::fNamename of the collection
Int_tTCollection::fSizenumber of elements in collection

Class Description

____________________ 

TCounterCol

Created at UNH by Maurik Holtrop.

This class is derived from TObjArray and extended to conveniently store a set of TCounter objects. This makes it easier to keep track of how many times a particular cut passed or failed in your data analysis. Sure, there are other ways to count, but this class can simplify your code.

The strength of using this class is that you can write out the results to a root file together with your histograms, and thus keep track of your analysis better. The ease of storing the results in this way is what makes this class worth using.

How to use:

In your analysis routine, create a new TCounterCol, and setup the counters:
TCounterCol col;
cGoode=col.AddCounter("Good Electron");
cGoodp=col.AddCounter("Good Proton");
cGoodpi=col.AddCounter("Good Pion");
...
... // Start the event loop.
...
for(iEvent=0;iEvent<AllEvents;iEvent++){  
   if(col.Test(MyGoodElectronTest(),cGoode)){
     ... Do what you wanted to do with a good electron.
   }

   if(MyGoodProtonTest()){
     col.True(cGoodp);
     // Do good proton stuff.
  }else{
     col.False(cGoodp);
     // Do bad proton stuff.
   }
...
...
}
...
col.Print(); // Print out the contents of counters.
col.Write(); // Write the counters to your open histogram file.
f.Close();   // Close the file.

Additional information about this package, including an overview, can be found at the ClasTool Documentation web pages.

 
 
   
void Reset()
 Reset all counters.
void SetCounterTitles(void)
 Set the Titles of each counter to reflect the
 current count.
 This is called before writing this object to file
 so that an "ls" or "browse" on the object reflects
 the correct numbers.

void Print()
 Print the conteds of each counter.
void Browse(TBrowser *b)
 Browse the tables
TCounterCol()
{}
virtual ~TCounterCol()
{}
Int_t AddCounter(TCounter *cc,Int_t loc= -1)
Int_t AddCounter(const char *name,Int_t loc= -1)
Bool_t Test(Bool_t test,Int_t i)
 Count a specific test (true/false), and pass back test.

Bool_t TestInv(Bool_t test,Int_t i)
 Count the opposite of test, and pass back test.
Bool_t True(Int_t i)
Bool_t False(Int_t i)
Bool_t IsFolder()
{ return kTRUE; }
Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)


Author: Maurik Holtrop
Last update: ClasTool/TCounterCol:$Name: $:$Id: TCounterCol.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