ROOT logo
AliRoot » STEER » STEER » AliTriggerRunScalers

class AliTriggerRunScalers: public TObject


 Class to define the ALICE Trigger Scalers Record per Run.
 ReadScalers(): read the txt file (rXXXX.cnt) provided by CTP and creates array of records.
 ConsistencyCheck(): checks if the last scaler added to record is consistent,
 i.e. time increases and valued are not decreasing in time.



Function Members (Methods)

public:
AliTriggerRunScalers()
AliTriggerRunScalers(const AliTriggerRunScalers& run)
virtual~AliTriggerRunScalers()
voidTObject::AbstractMethod(const char* method) const
voidAddTriggerScalers(AliTriggerScalersRecord* scal)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static Bool_tCalculateMu(Double_t& mu, Double_t& errmu, ULong64_t countsB, ULong64_t countsAC, UShort_t nB, UShort_t nAC, UInt_t orbits, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
static Bool_tCalculateMu(Double_t& mu, Double_t& errmu, ULong64_t countsB, ULong64_t countsAC, ULong64_t beamB, UShort_t nB, UShort_t nAC, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
Int_tCheckRunScalers()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
Int_tConsistencyCheck(Int_t position, Bool_t correctOverflow, UInt_t** overflow)
virtual voidTObject::Copy(TObject& object) const
Int_tCorrectScalersOverflow()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
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 voidTObject::Fatal(const char* method, const char* msgfmt) const
Int_tFindNearestScalersRecord(const AliTimeStamp* stamp) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Char_tGetClass(Int_t i) const
static Bool_tGetClassL2L0(Double_t& l2l0, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex)
Bool_tGetClassL2L0ForRun(Double_t& l2l0, Double_t& error, Int_t classIndex)
static UInt_tGetDeltaOrbits(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2)
static ULong64_tGetDeltaScaler(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, TString level)
ULong64_tGetDeltaScalerForRun(Int_t classIndex, TString level)
static Double_tGetDeltaTime(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TGraphErrors*GetGraphMu(AliTriggerConfiguration* cfg, const char* className, Bool_t colBCsFromFillScheme = kTRUE, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
TGraphErrors*GetGraphScalerL2L0Ratio(const char* className, AliTriggerConfiguration* cfg)
TGraphErrors*GetGraphScalerRate(const char* className, TString level, AliTriggerConfiguration* cfg)
virtual const char*TObject::GetIconName() const
static Bool_tGetMuFromClassScaler(Double_t& mu, Double_t& errmu, const char* className, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme = kTRUE, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
virtual const char*TObject::GetName() const
UChar_tGetNumClasses() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
ULong_tGetRunNumber() const
static Bool_tGetScalerRate(Double_t& rate, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, TString level)
Bool_tGetScalerRateForRun(Double_t& rate, Double_t& error, Int_t classIndex, TString level)
static Bool_tGetScalerRatePerBC(Double_t& rate, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, AliTriggerConfiguration* cfg, Int_t classIndex, TString level)
const AliTriggerScalersRecordESD*GetScalersDeltaForEvent(const AliTimeStamp* stamp) const
const AliTriggerScalersRecordESD*GetScalersDeltaForRun() const
AliTriggerScalersESD*GetScalersForEventClass(const AliTimeStamp* stamp, const Int_t classIndex) const
AliTriggerScalersRecord*GetScalersRecord(Int_t index) const
const TObjArray*GetScalersRecords() const
const TObjArray*GetScalersRecordsESD() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Short_tGetVersion() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() 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() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
AliTriggerRunScalers&operator=(const AliTriggerRunScalers& run)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
static AliTriggerRunScalers*ReadScalers(TString& filename)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetClass(UChar_t i, UChar_t index)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetNumClasses(UChar_t nclass)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRunNumber(ULong_t run)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetVersion(Short_t ver)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
TArrayCfClassIndexlist of classes used in this partition
ULong_tfRunNumberRun number
TObjArrayfScalersRecordArray of records (AliTriggerScalersRecord)
TObjArrayfScalersRecordESDArray of records with 64bit scalers (AliTriggerScalersRecordESD)
Short_tfVersionVersion
UChar_tfnClassesNumber of trigger classes

Class Charts

Inheritance Chart:
TObject
AliTriggerRunScalers

Function documentation

AliTriggerRunScalers()
 Default constructor
~AliTriggerRunScalers()
 Destructor
void AddTriggerScalers(AliTriggerScalersRecord* scal)
 Add scaler and check consistency
AliTriggerRunScalers(const AliTriggerRunScalers& run)
 copy constructor
AliTriggerRunScalers & operator=(const AliTriggerRunScalers& run)
 assignment operator
AliTriggerRunScalers* ReadScalers(TString& filename)
 Read scalers from text file(.cnt) provided by CTP
 for given run and convert it to root format
Int_t FindNearestScalersRecord(const AliTimeStamp* stamp) const
 Find Trigger scaler record with the closest timestamp <= "stamp"
 using a binary search.
 return the index in the array of records, if the timestamp
 is out of range return -1
Int_t ConsistencyCheck(Int_t position, Bool_t correctOverflow, UInt_t** overflow)
Check if counters are consistent(increase). Example: lOCB(n) < lOCB(n+1) and lOCB > lOCA
 scalers coding 0,1,2,3,4,5=0b,0a,1b,1a,2b,2a
 returns:
         1 = decresing time
         2 = too big jump in scalers, looks like some readings are missing
         3 = (level+1) > (level)
Int_t CorrectScalersOverflow()
 Run over fScalersRecord, check overflow using CheckConsistency methos
 and save corrected result in fScalersRecordESD.
AliTriggerScalersESD* GetScalersForEventClass(const AliTimeStamp* stamp, const Int_t classIndex) const
 Find scalers for event for class in fScalersRecordESD
 Assumes that fScalerRecord = fScalerRecordESD
const AliTriggerScalersRecordESD* GetScalersDeltaForEvent(const AliTimeStamp* stamp) const
 Find scalers for event for class in fScalersRecordESD
 Assumes that fScalerRecord = fScalerRecordESD
const AliTriggerScalersRecordESD* GetScalersDeltaForRun() const
 Find scalers for event for class in fScalersRecordESD
 Assumes that fScalerRecord = fScalerRecordESD
Bool_t CalculateMu(Double_t& mu, Double_t& errmu, ULong64_t countsB, ULong64_t countsAC, UShort_t nB, UShort_t nAC, UInt_t orbits, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
Bool_t CalculateMu(Double_t& mu, Double_t& errmu, ULong64_t countsB, ULong64_t countsAC, ULong64_t beamB, UShort_t nB, UShort_t nAC, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
ULong64_t GetDeltaScaler(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, TString level)
Double_t GetDeltaTime(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2)
UInt_t GetDeltaOrbits(const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2)
Bool_t GetScalerRate(Double_t& rate, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex, TString level)
Bool_t GetScalerRatePerBC(Double_t& rate, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, AliTriggerConfiguration* cfg, Int_t classIndex, TString level)
Bool_t GetClassL2L0(Double_t& l2l0, Double_t& error, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, Int_t classIndex)
Bool_t GetMuFromClassScaler(Double_t& mu, Double_t& errmu, const char* className, const AliTriggerScalersRecordESD* scalRec1, const AliTriggerScalersRecordESD* scalRec2, AliTriggerConfiguration* cfg, Bool_t colBCsFromFillScheme = kTRUE, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
 className = the first part of the class name. For example CINT1 for the class CINT1-B-NOPF-ALL
 colBCsFromFillScheme=kTRUE - use filling scheme and orbit counter
 colBCsFromFillScheme=kFALSE - use cbeamb scaler to get number of colliding BCs
 One can also switch background correction ON or OFF with bkgCorr
ULong64_t GetDeltaScalerForRun(Int_t classIndex, TString level)
Bool_t GetScalerRateForRun(Double_t& rate, Double_t& error, Int_t classIndex, TString level)
Bool_t GetClassL2L0ForRun(Double_t& l2l0, Double_t& error, Int_t classIndex)
TGraphErrors* GetGraphScalerRate(const char* className, TString level, AliTriggerConfiguration* cfg)
TGraphErrors* GetGraphScalerL2L0Ratio(const char* className, AliTriggerConfiguration* cfg)
TGraphErrors* GetGraphMu(AliTriggerConfiguration* cfg, const char* className, Bool_t colBCsFromFillScheme = kTRUE, Bool_t bkgCorr = kTRUE, Double_t triggerEff = 1., Double_t errorEff = 0.)
void Print(Option_t* opt = "") const
Short_t GetVersion() const
  Getters
{ return fVersion; }
ULong_t GetRunNumber() const
{ return fRunNumber; }
UChar_t GetNumClasses() const
{ return fnClasses; }
Char_t GetClass(Int_t i) const
{ return fClassIndex[i]; }
const TObjArray* GetScalersRecords() const
{ return &fScalersRecord; }
const TObjArray* GetScalersRecordsESD() const
{ return &fScalersRecordESD; }
AliTriggerScalersRecord* GetScalersRecord(Int_t index) const
{ return (AliTriggerScalersRecord*)fScalersRecord.At(index); }
Int_t CheckRunScalers()
  Setters
{return (fScalersRecord.GetEntriesFast()==fScalersRecordESD.GetEntriesFast());}
void SetVersion(Short_t ver)
{ fVersion = ver; }
void SetRunNumber(ULong_t run)
{ fRunNumber = run; }
void SetNumClasses(UChar_t nclass)
{ fnClasses = nclass; fClassIndex.Set(nclass); }
void SetClass(UChar_t i, UChar_t index)
{ fClassIndex[i]=index; }