ROOT logo
AliRoot » TPC » UTIL » AliTPCAltroEmulator

class AliTPCAltroEmulator: public TNamed

Class for emulation of the ALTRO chip (Altro digital Chain) in C++
Author: Roland Bramm

NOTE: This class has been modified to be conform with the coding conventions of the
ALICE Off-line Project. Keywords for setting the mode of BSC1 were modified
and are shown in the header file ...
Stefan Rossegger, 8th february 2008

Function Members (Methods)

public:
AliTPCAltroEmulator(Int_t timebins = 0, Short_t* Channel = 0)
virtual~AliTPCAltroEmulator()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Float_tCalculateCompression()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
voidConfigAltro(Int_t ONBaselineCorrection1, Int_t ONTailcancellation, Int_t ONBaselineCorrection2, Int_t ONClipping, Int_t ONZerosuppression, Int_t ONDataFormatting)
voidConfigBaselineCorrection1(Int_t mode, Int_t ValuePeDestal, Int_t* PedestalMem, Int_t polarity)
voidConfigBaselineCorrection2(Int_t HighThreshold, Int_t LowThreshold, Int_t Offset, Int_t Presamples, Int_t Postsamples)
voidConfigTailCancellationFilter(Int_t K1, Int_t K2, Int_t K3, Int_t L1, Int_t L2, Int_t L3)
voidConfigTailCancellationFilterForRAWfiles(const Int_t* K1, const Int_t* K2, const Int_t* K3, const Int_t* L1, const Int_t* L2, const Int_t* L3)
voidConfigZerosuppression(Int_t Threshold, Int_t MinSamplesaboveThreshold, Int_t Presamples, Int_t Postsamples)
virtual voidTNamed::Copy(TObject& named) 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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TStringGetDDLFolderName() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TStringGetOutputDateFileName() const
TStringGetOutputRootFileName() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::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 voidTNamed::Print(Option_t* option = "") const
voidPrintParameters()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidRunEmulation(Int_t roc = -1)
voidRunEmulationOnRAWdata(AliRawReader* reader, Int_t plotFlag = 0)
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)
voidSetChannelData(Int_t timebins, Short_t* Channel)
voidSetDDLFolderName(const TString& name)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOutputDateFileName(const TString& name)
voidSetOutputRootFileName(const TString& name)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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()
private:
AliTPCAltroEmulator(const AliTPCAltroEmulator& sig)
Bool_tAddEvent(Int_t dt, Bool_t isFirst)
voidBaselineCorrection1(Int_t mode, Int_t FixedPeDestal, Int_t* PedestalMem, Int_t polarity)
voidBaselineCorrection2RTL(Int_t HighThreshold, Int_t LowThreshold, Int_t Offset, Int_t Presamples, Int_t Postsamples)
voidClipping()
Bool_tConvertDateToRoot()
Bool_tConvertRawFilesToDate(Int_t nevents)
Bool_tCreateEvent(Int_t ievent)
voidDataFormater()
Bool_tGDC2DDLs(AliRawVEvent* gdc, Int_t ievent)
Short_tGetElement(short* Array, Int_t index)
Short_tGetKeepChannel(Int_t i)
Short_tGetShortChannel(Int_t i)
Int_tInBand(Int_t ADC, Int_t bsl, Int_t LowThreshold, Int_t HighThreshold)
voidInitBuffers()
Int_tInRange(Int_t parameter, Int_t Low, Int_t High, const char* Module, const char* ParameterName)
long longMask(long long in, Int_t left, Int_t right)
long longMaskandshift(long long in, Int_t left, Int_t right)
Int_tMultiply36(Int_t P, Int_t N)
AliTPCAltroEmulator&operator=(const AliTPCAltroEmulator& source)
voidSetElement(short* Array, Int_t index, Short_t value)
voidTailCancellationFilterFixedPoint(Int_t K1, Int_t K2, Int_t K3, Int_t L1, Int_t L2, Int_t L3)
Bool_tWriteEvent(Int_t ievent)
voidZerosuppression(Int_t Threshold, Int_t MinSamplesaboveThreshold, Int_t Presamples, Int_t Postsamples)

Data Members

public:
enum { kDINxFPD
kDINxFT
kDINxFDIN
kDINxFDINxVPD
kDINxVPDxFPD
kDINxVPDxFT
kDINxVPDxFDIN
kDINxVPDxFDINxVPD
kFDINxFPD
kFDINxVPDxFPD
kFTxFPD
kFTxFT
kFDINxFDIN
kFDINxVPDxFDINxVPD
kDINxFPD1
kDINxFPD2
kDINxMPD
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Short_t*fADCkeepADCkeep
Short_t*fADCs! field of ADC counts
Int_t*fBSL1PedestalMemBSL1PedestalMem
Int_tfBSL1ValuePeDestalBSL1ValuePeDestal
Int_tfBSL1modeBSL1mode
Int_tfBSL1polarityBSL1polarity
Int_tfBSL2HighThresholdBSL2HighThreshold
Int_tfBSL2LowThresholdBSL2LowThreshold
Int_tfBSL2OffsetBSL2Offset
Int_tfBSL2PostsamplesBSL2Postsamples
Int_tfBSL2PresamplesBSL2Presamples;
UInt_t*fCDHs! CDHs
Short_t*fChannelShortincoming signal in Short_t format
Bool_t*fChannels! field of active channels
Int_tfConfiguredAltroConfiguredAltro
Int_tfConfiguredBSL1ConfiguredBSL1
Int_tfConfiguredBSL2ConfiguredBSL2
Int_tfConfiguredTCFConfiguredTCF
Int_tfConfiguredTCFrawConfiguredTCF for RAW data files
Int_tfConfiguredZSUConfiguredZSU
TStringfDDLFolderNamefolder name for ddl files
AliTPCRawStreamV3*fDecoderALTRO decoder
Bool_tfIsRandomIndicates if fP are treated as probabilities (in terms of Possionian statistics), or fixed numbers
Int_tfOnBSL1Baseline correction and substraction 1 on
Int_tfOnBSL2Baseline correction and substraction 2 (MAF) on
Int_tfOnClipClipping on (to reverse the signal for ZSU if BSL2 is on)
Int_tfOnTCFTail Cancelation Filter on
Int_tfOnZSUZero Suppression on
TStringfOutputDateFileNamefilename for date output
TStringfOutputRootFileNamefilename for root output
UInt_t*fRawData! Raw Data
AliRawReader*fReaderRAW reader
Int_tfRunNumberRun Number
Float_tfTCFK1K1
Int_tfTCFK1IntK1Int
Int_tfTCFK1IntROC[2]K1Int (IROC/OROC)
Float_tfTCFK2K2
Int_tfTCFK2IntK2Int
Int_tfTCFK2IntROC[2]K2Int (IROC/OROC)
Float_tfTCFK3K3
Int_tfTCFK3IntK3Int
Int_tfTCFK3IntROC[2]K3Int (IROC/OROC)
Float_tfTCFL1L1
Int_tfTCFL1IntL1Int
Int_tfTCFL1IntROC[2]L1Int (IROC/OROC)
Float_tfTCFL2L2
Int_tfTCFL2IntL2Int
Int_tfTCFL2IntROC[2]L2Int (IROC/OROC)
Float_tfTCFL3L3
Int_tfTCFL3IntL3Int
Int_tfTCFL3IntROC[2]L3Int (IROC/OROC)
UInt_t*fTrailers! RCU trailers
Int_tfZSUMinSamplesaboveThresholdZSUMinSamplesaboveThreshold
Int_tfZSUPostsamplesZSUPostsamples
Int_tfZSUPresamplesZSUPresamples
Int_tfZSUThresholdZSUThreshold
Int_tftimebinstimebins

Class Charts

Inheritance Chart:
TNamed
AliTPCAltroEmulator

Function documentation

AliTPCAltroEmulator(Int_t timebins = 0, Short_t* Channel = 0)
  fChannelIn(Channel),

 Constructor of Altro Class

~AliTPCAltroEmulator()
 Destructor of Altro Class

void ConfigAltro(Int_t ONBaselineCorrection1, Int_t ONTailcancellation, Int_t ONBaselineCorrection2, Int_t ONClipping, Int_t ONZerosuppression, Int_t ONDataFormatting)
 Configures which modules of the Altro should be on

void ConfigBaselineCorrection1(Int_t mode, Int_t ValuePeDestal, Int_t* PedestalMem, Int_t polarity)
 Configures the Base Line Correction 1 (BSL1) Module

void ConfigTailCancellationFilter(Int_t K1, Int_t K2, Int_t K3, Int_t L1, Int_t L2, Int_t L3)
 Configures the Tail Cancellation Filter (TCF) Module

 conf from Int_t to fp:  (int)*(pow(2,-16)-1)
             backway:  (Float_t)*(pow(2,16)-1)
void ConfigTailCancellationFilterForRAWfiles(const Int_t* K1, const Int_t* K2, const Int_t* K3, const Int_t* L1, const Int_t* L2, const Int_t* L3)
 Configures the Tail Cancellation Filter (TCF) Module - Different settings for IROC and OROC

 conf from Int_t to fp:  (int)*(pow(2,-16)-1)
             backway:  (Float_t)*(pow(2,16)-1)
 IROC
void ConfigBaselineCorrection2(Int_t HighThreshold, Int_t LowThreshold, Int_t Offset, Int_t Presamples, Int_t Postsamples)
 Configures the Moving Average Filter (BSL2) Module

void ConfigZerosuppression(Int_t Threshold, Int_t MinSamplesaboveThreshold, Int_t Presamples, Int_t Postsamples)
 Configures the Zero Suppression Module (ZSU)

void PrintParameters()
 Prints the set Parameters, if module is configured

void SetChannelData(Int_t timebins, Short_t* Channel)
 Set channel data, for example a new channel

void RunEmulation(Int_t roc = -1)
 Runs the emulation of all configured Modules.

void BaselineCorrection1(Int_t mode, Int_t FixedPeDestal, Int_t* PedestalMem, Int_t polarity)
Int_t Multiply36(Int_t P, Int_t N)
 multiply function to emulate the 36 bit fixed point multiplication of the Altro.

long long Mask(long long in, Int_t left, Int_t right)
 mask

long long Maskandshift(long long in, Int_t left, Int_t right)
 maskandshift

void TailCancellationFilterFixedPoint(Int_t K1, Int_t K2, Int_t K3, Int_t L1, Int_t L2, Int_t L3)
void BaselineCorrection2RTL(Int_t HighThreshold, Int_t LowThreshold, Int_t Offset, Int_t Presamples, Int_t Postsamples)
void Clipping()
 implement if no BC2 clipping has to run

void Zerosuppression(Int_t Threshold, Int_t MinSamplesaboveThreshold, Int_t Presamples, Int_t Postsamples)
 add again altro feature

void DataFormater()
 formats the data like the ALTRO. Result is a 64 bit array

Float_t CalculateCompression()
 calculates the compression out of the bitmask

Short_t GetElement(short* Array, Int_t index)
 GetElement of array

void SetElement(short* Array, Int_t index, Short_t value)
 SetElement of array

Int_t InBand(Int_t ADC, Int_t bsl, Int_t LowThreshold, Int_t HighThreshold)
 check if it's within the band of search

Int_t InRange(Int_t parameter, Int_t Low, Int_t High, const char* Module, const char* ParameterName)
 checks it it's within the range

Short_t GetShortChannel(Int_t i)
 GetElement of channel

Short_t GetKeepChannel(Int_t i)
 GetElement of Keep Channel

Bool_t WriteEvent(Int_t ievent)
 Write event to the DDL data folders

Bool_t GDC2DDLs(AliRawVEvent* gdc, Int_t ievent)
 Converte GDC data to DDL format

Bool_t ConvertRawFilesToDate(Int_t nevents)
  Convertes Raw files to Date format

void InitBuffers()
 Initialization of the Buffers

Bool_t ConvertDateToRoot()
 convert a DATE file to a root file with the program "alimdc"

void RunEmulationOnRAWdata(AliRawReader* reader, Int_t plotFlag = 0)
 Run the Altro Emulation on a full Raw data set (AliRawReader)
 plus write the outcome in a RAW data format

AliTPCAltroEmulator(Int_t timebins = 0, Short_t* Channel = 0)
TString GetDDLFolderName() const
{return fDDLFolderName ;}
TString GetOutputDateFileName() const
TString GetOutputRootFileName() const
void SetDDLFolderName(const TString& name)
void SetOutputDateFileName(const TString& name)
void SetOutputRootFileName(const TString& name)
Bool_t AddEvent(Int_t dt, Bool_t isFirst)
Bool_t CreateEvent(Int_t ievent)