ROOT logo
AliRoot » FMD » AliFMDRawWriter

class AliFMDRawWriter: public TTask

Function Members (Methods)

public:
AliFMDRawWriter(AliFMD* fmd)
virtual~AliFMDRawWriter()
virtual voidTTask::Abort()MENU
voidTObject::AbstractMethod(const char* method) const
virtual voidTTask::Add(TTask* task)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTTask::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTTask::CleanTasks()
virtual voidTTask::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTTask::Continue()MENU
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 voidExec(Option_t* option = "")
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 voidTTask::ExecuteTask(Option_t* option = "0")MENU
virtual voidTTask::ExecuteTasks(Option_t* option)
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
Int_tTTask::GetBreakin() const
Int_tTTask::GetBreakout() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TList*TTask::GetListOfTasks() 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
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
Bool_tTTask::IsActive() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTTask::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTTask::ls(Option_t* option = "*") constMENU
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
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 = "")
voidTTask::SetActive(Bool_t active = kTRUE)TOGGLE
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTTask::SetBreakin(Int_t breakin = 1)TOGGLE
voidTTask::SetBreakout(Int_t breakout = 1)TOGGLE
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)
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
virtual Long_tWriteDigits(TClonesArray* digits)
voidZeroSuppress(Int_t*& data, Int_t nWords, const Float_t* peds, const Float_t* noise, UShort_t threshold) const
protected:
AliFMDRawWriter(const AliFMDRawWriter& o)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
AliFMDRawWriter&operator=(const AliFMDRawWriter&)
voidWriteRCUTrailer(AliAltroBufferV3* altro, UInt_t ddl, Bool_t zs, UShort_t factor, UShort_t rate) const

Data Members

protected:
Bool_tTTask::fActivetrue if task is active
Int_tTTask::fBreakin=1 if a break point set at task extry
Int_tTTask::fBreakout=1 if a break point set at task exit
UShort_tfChannelsPerAltroNumber of pre-amp. channels/adc channel
AliFMD*fFMD! Pointer to detector description
Bool_tTTask::fHasExecutedTrue if task has executed
TStringTNamed::fNameobject identifier
TStringTTask::fOptionOption specified in ExecuteTask
UShort_tfSampleRateThe sample rate (0 -> inferred from data)
TList*TTask::fTasksList of Tasks
UShort_tfThresholdThreshold for zero-suppression
TStringTNamed::fTitleobject title
static TTask*TTask::fgBeginTaskpointer to task initiator
static TTask*TTask::fgBreakPointpointer to current break point

Class Charts

Inheritance Chart:
TTask
AliFMDRawWriter

Function documentation

AliFMDRawWriter(AliFMD* fmd)
 CTOR
Exec(Option_t* option = "")
 Turn digits into raw data.

 Digits are read from the Digit branch, and processed to make
 three DDL files, one for each of the sub-detectors FMD1, FMD2,
 and FMD3.

 The raw data files consists of a header, followed by ALTRO
 formatted blocks.

          +-------------+
          | Header      |
          +-------------+
          | ALTRO Block |
          | ...         |
          +-------------+
          DDL file

 An ALTRO formatted block, in the FMD context, consists of a
 number of counts followed by a trailer.

          +------------------+
          | Count            |
          | ...              |
          | possible fillers |
          +------------------+
          | Trailer          |
          +------------------+
          ALTRO block

 The counts are listed backwards, that is, starting with the
 latest count, and ending in the first.

 Each count consist of 1 or more ADC samples of the VA1_ALICE
 pre-amp. signal.  Just how many samples are used depends on
 whether the ALTRO over samples the pre-amp.  Each sample is a
 10-bit word, and the samples are grouped into 40-bit blocks

          +------------------------------------+
          |  S(1)   | S(2)   | S(3)   | S(4)   |
          |  ...    | ...    | ...    | ...    |
          |  S(n)   | T(n)   | n+2    | 2AA    |
          +------------------------------------+
          Counts + possible filler

 The trailer of the number of words of signales, the starting
 strip number, the sector number, and the ring ID; each 10-bit
 words,  packed into 40-bits.

          +------------------------------------+
          |   2AAA   |  Len   |  A |  Address  |
          +------------------------------------+
          Trailer

 Note, that this method assumes that the digits are ordered.

WriteDigits(TClonesArray* digits)
 WRite an array of digits to disk file
WriteRCUTrailer(AliAltroBufferV3* altro, UInt_t ddl, Bool_t zs, UShort_t factor, UShort_t rate) const
 Flush and write the data header
ZeroSuppress(Int_t*& data, Int_t nWords, const Float_t* peds, const Float_t* noise, UShort_t threshold) const
 Simulate the ALTRO zero-suppression filter.  The data passed in
 the first array is modified, such that all suppressed channels
 are set to some value below threshold.

 If threshold == 0 zero suppression is considered disabled, and no
 action is taken.
AliFMDRawWriter(AliFMD* fmd)
 Constructor
@param fmd Pointer to detector object. 
virtual ~AliFMDRawWriter()
 Destructor 
{}
AliFMDRawWriter& operator=(const AliFMDRawWriter& )
{ return *this; }