ROOT logo
AliRoot » TRD » AliTRDptrgParam

class AliTRDptrgParam: public TObject


  Parameters for Pre-Trigger Simulation

  Author: F. Reidt (Felix.Reidt@cern.ch)

  This class controls the parameters used by the pretrigger simulation.
  A configuration file ca be loaded by calling LoadConfigurationFromFile()
  The generation of look up tables is also done in this class and has to
  be done only once after a configuration file was loaded.
  If no configuration file was loaded, the standard
  configuration in LoadStandardConfiguration() would be used.


Function Members (Methods)

public:
virtual~AliTRDptrgParam()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Int_tCheckVariables() const
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
virtual voidTObject::Copy(TObject& object) const
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
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGenerateLUTs()
Int_t*GetCBLUT(UInt_t CB, Int_t LUTid)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_t*GetFEBT0LUT(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iLUT)
UInt_t*GetFEBT0Thresholds(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition) const
Int_t*GetFEBV0LUT(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iCard, Int_t iLUT)
UInt_t*GetFEBV0Thresholds(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iCard) const
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const AliTRDptrgParam::AliTRDptrgPTmasks*GetPTmasks() const
virtual const char*TObject::GetTitle() const
UInt_t**GetTLMUcmatrices() const
const UInt_t*GetTLMUInputMask() const
UInt_t**GetTLMUmultiplicity() const
Int_t**GetTLMUoutput() const
virtual UInt_tTObject::GetUniqueID() 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
static AliTRDptrgParam*Instance()
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
Bool_tLoadConfigurationFromFile(TString filename)
voidLoadStandardConfiguration()
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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
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)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static voidTerminate()
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:
UInt_tBinaryTStringToInt(TString number) const
voidCheckSignalsInvolved(TArrayI*& results, TArrayI*& signalsInvolved, Int_t inputWidth)
TStringCleanTString(TString string)
voidConvertLogicalEqToBitVectors(TString eq, TArrayI*& results, TArrayI*& signalsInvolved)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_t*GenerateLUTbasedOnEq(TString eq, Int_t inputWidth, Int_t initValue)
UInt_tGetMultiplicity(UInt_t BitVector) const
UInt_tGetMultiplicity(Int_t BitVector) const
Int_tLookUp(TString *const identifier) const
voidTObject::MakeZombie()
voidMergeResults(TArrayI*& partResult1, TArrayI*& partResult2, TArrayI*& results, TArrayI*& signalsInvolved1, TArrayI*& signalsInvolved2, TArrayI*& signalsInvolved, Bool_t useOR)
Bool_tParseCBAC(TString identifier, TString value)
Bool_tParseCBB(TString identifier, TString value)
Bool_tParseFEB(TString identifier, TString value)
Bool_tParseMultiplicityCondition(TString condition, UInt_t* threshold, UInt_t* mask)
Bool_tParseTLMU(TString identifier, TString value)
voidPrepareLine(TString line, TString& identifier, TString& value)
voidSplitUpValues(TString value, TObjArray& arr)

Data Members

public:
enum AliTRDptrgFEBType_t { kUndefined
kTZERO
kVZERO
};
enum AliTRDptrgOperatingMode_t { kHits
kDigits
};
enum AliTRDptrgFEBPosition_t { kB
kA
kC
kUnknown
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringfCBALUTequ[2]logical equations used for LUT generation for CB-A
TStringfCBBLUTequ[3]logical equations used for LUT generation for CB-B
TStringfCBCLUTequ[2]logical equations used for LUT generation for CB-C
Int_t***fCBLUTscontrol box look up tables
Int_t***fFEBT0LUTslook up tables [position][LUT][entry]
UInt_t***fFEBT0Multiplicitiesmultiplicity threshold for T0
UInt_t**fFEBT0Thresholdsthreshold for analog value discrimination
Int_t****fFEBV0LUTslook up tables [position][feb][LUT][entry]
UInt_t****fFEBV0Multiplicitiesmultiplicity threshold for V0
UInt_t***fFEBV0Thresholdsthreshold for analog value discrimation
AliTRDptrgParam::AliTRDptrgPTmasksfPTmasks
UInt_tfTLMUInputMask[18]masks TOF-to-TRD bits
UInt_tfTLMUInputStretchdesignates how long TLMU input is stretched
UInt_t**fTLMUcmatrices[matrix][section] unsigned int values
UInt_t**fTLMUmultiplicity[slice][0 = lower bound, 1 = upper bound]
Int_t**fTLMUoutput[output][0 = cmatrix, 1 = multslice]
static AliTRDptrgParam*fgInstanceinstance pointer

Class Charts

Inheritance Chart:
TObject
AliTRDptrgParam

Function documentation

AliTRDptrgParam()
 ctor
~AliTRDptrgParam()
 dtor
Int_t CheckVariables() const
 checks whether variables are deleted early enough
AliTRDptrgParam* Instance()
 get (or create) the single instance
void Terminate()
 destruct the instance
void LoadStandardConfiguration()
 loads a standard configuration parameters for testing
Bool_t LoadConfigurationFromFile(TString filename)
 Reads pretrigger configuration file and forwards identifiers and values
 to the corresponding parser functions
 This method is only checking for certain keywords at the beginning of a
 line in the config file
Int_t GenerateLUTs()
 generates all LUTs defined inside this object, this schould called only
 once, after configuration is loaded in order to save cpu time
UInt_t GetMultiplicity(UInt_t BitVector) const
 returns the multiplicity of a given bit vector
UInt_t GetMultiplicity(Int_t BitVector) const
 returns the multiplicity of a given bit vector
void PrepareLine(TString line, TString& identifier, TString& value)
 Prepares a line for parsing
 divide identifier and value
 clear identifier and value
TString CleanTString(TString string)
 Removes white spaces and tabs
void SplitUpValues(TString value, TObjArray& arr)
 splits up multiple values into a TObjArray
UInt_t BinaryTStringToInt(TString number) const
 converts a binary TString to an integer
Bool_t ParseMultiplicityCondition(TString condition, UInt_t* threshold, UInt_t* mask)
 converts a string formed like "M(1111_1111)>4" to a input mask and a
 multiplicity threshold
 check whether condition is starting with "M(
Bool_t ParseFEB(TString identifier, TString value)
 Parse FEB configuration
Bool_t ParseCBAC(TString identifier, TString value)
 Parse CB-A and CB-C configuration
Bool_t ParseCBB(TString identifier, TString value)
 Parse CBB configuration
Bool_t ParseTLMU(TString identifier, TString value)
 Parse TLMU configuration
Int_t LookUp(TString *const identifier) const
 Transforms identifier into look up table address bit

 this function has to be extended/changed when different identifiers for
 other equations and destination LUTs should be used
void MergeResults(TArrayI*& partResult1, TArrayI*& partResult2, TArrayI*& results, TArrayI*& signalsInvolved1, TArrayI*& signalsInvolved2, TArrayI*& signalsInvolved, Bool_t useOR)
 merges result and signal involved arrays
 uses logical OR (or=kTRUE) and AND (or==kFALSE) as merging function
 check whether input data is valid
void ConvertLogicalEqToBitVectors(TString eq, TArrayI*& results, TArrayI*& signalsInvolved)
 converts a logical equation to a LUT

 input string must not contain white spaces or tabs
 only identifiers, ||, &&, (, ) and ! are allowed

 neglected signals are assumed to be zero in this function
 this problem is solved by "void CheckSignalsInvolved(...)"
void CheckSignalsInvolved(TArrayI*& results, TArrayI*& signalsInvolved, Int_t inputWidth)
 checks whether all input signals are taken into account

 this function is needed to be able to write equations which contain not all
 possible signals and which are not mentioned in the equation do not effect
 the result
 X=B&&C=(A||!A)&&B&&C
 this routine is quite inefficient but working O((2^inputWidth)^3)
 generate mask:
Int_t* GenerateLUTbasedOnEq(TString eq, Int_t inputWidth, Int_t initValue)
 Processes the conversion of a logical equation to a look up table
UInt_t* GetFEBT0Thresholds(AliTRDptrgFEBPosition_t FEBposition)
 get T0 FEB Thresholds
Int_t* GetFEBT0LUT(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iLUT)
 get T0 FEB LUTs
UInt_t* GetFEBV0Thresholds(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iCard) const
 get V0 FEB Thresholds
 0 kB, 1= kA, 2, kC => -1 because T0FEBs are only in position kA and kC
Int_t* GetFEBV0LUT(AliTRDptrgParam::AliTRDptrgFEBPosition_t FEBposition, Int_t iCard, Int_t iLUT)
 get V0 FEB LUTs
Int_t* GetCBLUT(UInt_t CB, Int_t LUTid)
 return control box LUT
 iCB: 0 = B, 1 = A, 2 = C
const UInt_t* GetTLMUInputMask() const
 --- GETTER FUNCTIONS -----------------------------------------------------
 -- TLMU --
{ return this->fTLMUInputMask; }
UInt_t** GetTLMUcmatrices() const
 get TLMU input mask
{ return this->fTLMUcmatrices; }
UInt_t** GetTLMUmultiplicity() const
 get TLMU coincidence matrices
{ return this->fTLMUmultiplicity; }
Int_t** GetTLMUoutput() const
 get TLMU multiplicity slices
{ return this->fTLMUoutput; }
const AliTRDptrgPTmasks* GetPTmasks() const
 returns the corresponding LUT (control boxes only)
{ return &fPTmasks; }
AliTRDptrgParam()
 masks usage of internal signals for the pretrigger wake up signal
AliTRDptrgParam& operator=(const AliTRDptrgParam& rhs)