ROOT logo
AliRoot » FMD » AliFMDRawReader

class AliFMDRawReader: public TTask

Function Members (Methods)

public:
AliFMDRawReader(AliRawReader* reader, TTree* array)
virtual~AliFMDRawReader()
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
UShort_tGetL1Phase(UShort_t ddl) const
TList*TTask::GetListOfTasks() const
virtual const char*TNamed::GetName() const
UShort_tGetNErrors(UShort_t ddl) 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_tIsZeroSuppressed(UShort_t ddl) const
Bool_tTObject::IsZombie() const
virtual voidTTask::ls(Option_t* option = "*") constMENU
voidTObject::MayNotUse(const char* method) const
Int_tNextSample(UShort_t& det, Char_t& rng, UShort_t& sec, UShort_t& str, UShort_t& sam, UShort_t& rat, Short_t& adc, Bool_t& zs, UShort_t& fac)
Int_tNextSignal(UShort_t& det, Char_t& rng, UShort_t& sec, UShort_t& str, Short_t& adc, Bool_t& zs, UShort_t& fac)
UShort_tNoiseFactor(UShort_t ddl) 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 Bool_tReadAdcs(TClonesArray* array)
virtual Bool_tReadAdcs(AliFMDUShortMap& map)
virtual Bool_tReadSODevent(AliFMDCalibSampleRate* samplerate, AliFMDCalibStripRange* striprange, TArrayS& pulseSize, TArrayS& pulseLength, Bool_t* detectors = 0)
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 = "")
static Bool_tSelectSample(UShort_t samp, UShort_t rate)
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)
voidSetVerbose(Bool_t verb = kTRUE)
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:
AliFMDRawReader(const AliFMDRawReader& o)
voidAddError(Int_t ddl, Int_t hwaddr)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
UInt_tGet32bitWord(Int_t idx)
Int_tGetHalfringIndex(UShort_t det, Char_t ring, UShort_t board) const
ULong_tGetNwords() const
voidTObject::MakeZombie()
Bool_tNewBunch(const AliAltroRawStreamV3& input, UShort_t& start, UShort_t& length)
Int_tNewChannel(const AliAltroRawStreamV3& input, UShort_t det, Char_t& ring, UShort_t& sec, Short_t& strbase)
Int_tNewDDL(AliAltroRawStreamV3& input, UShort_t& det)
Int_tNewSample(const AliAltroRawStreamV3& input, Int_t i, UShort_t t, UShort_t sec, UShort_t strbase, Short_t& str, UShort_t& samp)
AliFMDRawReader&operator=(const AliFMDRawReader&)
voidReadbackError(const AliAltroRawStreamV3& input, const char* format)

Data Members

public:
enum { kNDDL
kBadSignal
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
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
UChar_t*fDataData pointer
TClonesArrayfErrorsClones array of channels with errors
Bool_tTTask::fHasExecutedTrue if task has executed
UShort_tfL1Phase[3]Number of errors per DDL
UShort_tfMaxStripCurrent maximum strip number (127)
UShort_tfMinStripCurrent minimum strip number (0)
UShort_tfNErrAddressNumber of address errors
UShort_tfNErrChanLenNumber of channel length errors
UShort_tfNErrors[3]Number of errors per DDL
TStringTNamed::fNameobject identifier
ULong_tfNbytesNumber of bytes
UShort_tfNoiseFactor[3]Noise factor
TStringTTask::fOptionOption specified in ExecuteTask
UShort_tfPreSampCurrent number of pre-samples (14+5)
AliRawReader*fReader! Pointer to raw reader
UShort_tfSampleRate[3]The sample rate (if 0,infer from data)
AliFMDUShortMapfSeenSeen strips
TList*TTask::fTasksList of Tasks
TStringTNamed::fTitleobject title
TTree*fTree! Pointer to tree to read into
Bool_tfVerboseWhether to be verbose
Bool_tfZeroSuppress[3]Zero suppression flag
static TTask*TTask::fgBeginTaskpointer to task initiator
static TTask*TTask::fgBreakPointpointer to current break point

Class Charts

Inheritance Chart:
TTask
AliFMDRawReader

Function documentation

AliFMDRawReader(AliRawReader* reader, TTree* array)
 fSampleRate(1),
 Default CTOR
Exec(Option_t* option = "")
 Read the data
AddError(Int_t ddl, Int_t hwaddr)
ReadbackError(const AliAltroRawStreamV3& input, const char* format, ...)
NewDDL(AliAltroRawStreamV3& input, UShort_t& det)
 Process a new DDL.  Sets the internal data members fZeroSuppress,
 fSampleRate, and fNoiseFactor based on information in the RCU trailer.

 Parameters:
   input Input stream
   det   On return, the detector number

 Return value:
   negative value in case of problems, the DDL number otherwise
NewChannel(const AliAltroRawStreamV3& input, UShort_t det, Char_t& ring, UShort_t& sec, Short_t& strbase)
 Processs a new channel.  Sets the internal data members
 fMinStrip, fMaxStrip, and fPreSamp.

 Parameter:
   input   Input stream
   ring    On return, the ring identifier
   sec     On return, the sector number
   strbase On return, the strip base

 Return value
   negative value in case of problems, hardware address otherwise
NewBunch(const AliAltroRawStreamV3& input, UShort_t& start, UShort_t& length)
 Do some checks on the bunch data

NewSample(const AliAltroRawStreamV3& input, Int_t i, UShort_t t, UShort_t sec, UShort_t strbase, Short_t& str, UShort_t& samp)
 Process a new timebin

 Parameters:
   input   Input stream
   i       Index into bunch data
   t       Time
   strbase Base of strip numbers for this channel
   str     On return, the strip number
   samp    On return, the sample number

 Return value
   negative value in case of problems, ADC value otherwise
NextSample(UShort_t& det, Char_t& rng, UShort_t& sec, UShort_t& str, UShort_t& sam, UShort_t& rat, Short_t& adc, Bool_t& zs, UShort_t& fac)
 Scan current event for next signal.   It returns kFALSE when
 there's no more data in the event.

 Note, that this member function is in principle very fast, but
 contains less error checking.  In particular, channels that have
 bad bunches cannot be checked here.  Seeing a bad bunch will only
 skip the remainder of the channel and not reset the already read
 digits.   This is potentially dangerous.

 Parameters:
    det         On return, contain the detector number
    rng         On return, contain the ring identifier
    sec         On return, contain the sector number
    str         On return, contain the strip number
    sam         On return, contain the sample number
    rat         On return, contain the sample rate
    adc         On return, contain the ADC counts
    zs          On return, contain the zero-supp. flag
    fac         On return, contain the zero-supp. noise factor

 Return values:
    0    No more data
    -1   Read sample belongs to a bad bunch
    >0   Good status - contains bit mask of values
       Bit 1    New DDL
       Bit 2    New Channel
       Bit 3    New Bunch
       Bit 4    New Sample
NextSignal(UShort_t& det, Char_t& rng, UShort_t& sec, UShort_t& str, Short_t& adc, Bool_t& zs, UShort_t& fac)
 Get the next signal

 Parameters:
    det  On return, the detector
    rng  On return, the ring
    sec  On return, the sector
    str  On return, the strip
    adc  On return, the ADC value
    zs   On return, whether zero-supp. is enabled
    fac  On return, the usd noise factor

 Return:
    true if valid data is returned

SelectSample(UShort_t samp, UShort_t rate)
 Check if the passed sample is the one we need
ReadAdcs(TClonesArray* array)
 Read ADC values from raw input into passed TClonesArray of AliFMDDigit
 objects.
ReadAdcs(AliFMDUShortMap& map)
 Read ADC values from raw input into passed TClonesArray of AliFMDDigit
 objects.
Bool_t ReadSODevent(AliFMDCalibSampleRate* samplerate, AliFMDCalibStripRange* striprange, TArrayS& pulseSize, TArrayS& pulseLength, Bool_t* detectors = 0)
 Read SOD event into passed objects.

 Parameters:
    samplerate   The sample rate object to fill
    striprange   The strip range object to fill
    pulseSize    The pulse size object to fill
    pulseLength  The pulse length (in events) object to fill

 Return:
    @c true on success

UInt_t Get32bitWord(Int_t idx)
 This method returns the 32 bit word at a given
 position inside the raw data payload.
 The 'index' points to the beginning of the next word.
 The method is supposed to be endian (platform)
 independent.
Int_t GetHalfringIndex(UShort_t det, Char_t ring, UShort_t board) const
 Get short index for a given half-ring

 Parameters:
    det   Detector number
    ring  Ring identifer
    board Board number

 Return:


AliFMDRawReader(AliRawReader* reader, TTree* array)
   * CTOR
   *
   * @param reader Raw reader
   * @param array  Output tree

virtual ~AliFMDRawReader()
   * DTOR

{}
void SetVerbose(Bool_t verb = kTRUE)
   * Read in, and store in output tree
   *
   * @param option Not used

{ fVerbose = verb; }
Bool_t IsZeroSuppressed(UShort_t ddl) const
   * Check of the data from DDL @a ddl is zero-suppressed
   *
   * @param ddl DDL number (0-2)
   *
   * @return @c true if the data from this DDL is zero-suppressed.

{ return fZeroSuppress[ddl]; }
UShort_t NoiseFactor(UShort_t ddl) const
   * The factor used to multiply the noise when making on-line
   * pedestal subtraction.
   *
   * @param ddl DDL number (0-2)
   *
   * @return The factor used.

{ return fNoiseFactor[ddl]; }
UShort_t GetNErrors(UShort_t ddl) const
   * Get number of read-out errors.  Note, that a channel marked as
   * bad counts as 10 errors
   *
   * @param ddl DDL off set ([0,kNDDL-1])
   *
   * @return Number of seen errors

{return (ddl >= kNDDL ? 0 : fNErrors[ddl]);}
UShort_t GetL1Phase(UShort_t ddl) const
   * Get the phase of the L1 signal
   *
   * @param ddl DDL number ([0,kNDDL-1])
   *
   * @return Phase of the L1 signal in steps of 25ns.

{return (ddl >= kNDDL ? -1 : fL1Phase[ddl]);}
AliFMDRawReader& operator=(const AliFMDRawReader& )
   * Assignment operator
   *
   * @return Reference to this object

{ return *this; }
ULong_t GetNwords() const
   *
   * Get the number of words
   *
   * @return Number of 32bit words

{return fNbytes / 4;}