//____________________________________________________________________
class AliFMD;
class AliAltroBuffer;
+class AliAltroBufferV3;
class TArrayI;
+class TArrayF;
class TClonesArray;
//____________________________________________________________________
/** Write an array of AliFMDDigit objects as raw ALTRO data.
@param digits Array of AliFMDDigit objects to convert to raw
ALTRO data. */
- virtual void WriteDigits(TClonesArray* digits);
+ virtual Long_t WriteDigits(TClonesArray* digits);
+ /** Do zero-suppression of channel data.
+ @param data Contain @a nWords of valid data. On input, it
+ contains the full channel data. On output it
+ will contain the zero-suppresed data.
+ @param peds Contain @a nWords pedestals
+ @param noise Contain @a nWords pedestal widths
+ @param threshold Zero suppression threshold. */
+ void ZeroSuppress(Int_t*& data, Int_t nWords, const Float_t* peds,
+ const Float_t* noise, UShort_t threshold) const;
protected:
- AliFMDRawWriter(const AliFMDRawWriter& o) : TTask(o) {}
+ AliFMDRawWriter(const AliFMDRawWriter& o)
+ : TTask(o),
+ fFMD(o.fFMD),
+ fSampleRate(o.fSampleRate),
+ fChannelsPerAltro(o.fChannelsPerAltro),
+ fThreshold(o.fThreshold)
+ {}
AliFMDRawWriter& operator=(const AliFMDRawWriter&) { return *this; }
+ void WriteRCUTrailer(AliAltroBufferV3* altro,
+ UInt_t ddl,
+ Bool_t zs,
+ UShort_t factor,
+ UShort_t rate) const;
AliFMD* fFMD; //! Pointer to detector description
UShort_t fSampleRate; // The sample rate (0 -> inferred from data)
UShort_t fChannelsPerAltro; // Number of pre-amp. channels/adc channel
UShort_t fThreshold; // Threshold for zero-suppression
-
+
ClassDef(AliFMDRawWriter, 0) // Write FMD raw data to a DDL file
};