]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDRawWriter.h
initializing variables that were declare without a value
[u/mrichter/AliRoot.git] / FMD / AliFMDRawWriter.h
index 94a2a0e83ed707aa2aa22375a7f6babc6233f3f1..b998f6db5969200c01a24e1b12258c2a262d1ad6 100644 (file)
@@ -8,9 +8,16 @@
  * See cxx source for full Copyright notice                               
  */
 /* $Id$ */
+/** @file    AliFMDRawWriter.h
+    @author  Christian Holm Christensen <cholm@nbi.dk>
+    @date    Mon Mar 27 12:45:56 2006
+    @brief   Class to write raw data 
+*/
 //____________________________________________________________________
 // 
 // Class to writer ADC values to a Raw File
+// Uses general ALTRO class - which is wrong
+// Should make it right!
 //
 #ifndef ROOT_TTask
 # include <TTask.h>
 //____________________________________________________________________
 class AliFMD;
 class AliAltroBuffer;
+class AliAltroBufferV3;
 class TArrayI;
-
+class TArrayF;
+class TClonesArray;
 
 //____________________________________________________________________
+/** @class AliFMDRawWriter
+    @brief Class to write ALTRO formated raw data from an array of
+    AliFMDDigit objects.
+    @code 
+    AliFMDRawWriter* fmdWriter = new AliFMDRawWriter(0);
+    TClonesArray*    array     = fmd->DigitArray();
+    fmdWriter->WriteDigits(array);
+    @endcode 
+    @ingroup FMD_sim
+*/
 class AliFMDRawWriter : public TTask 
 {
 public:
+  /** Constructor 
+      @param fmd Pointer to detector object. */
   AliFMDRawWriter(AliFMD* fmd);
+  /** Destructor */
+  virtual ~AliFMDRawWriter() {}
 
+  /** Write the output from AliFMD object. 
+      @param option Not used */
   virtual void Exec(Option_t* option="");
+  /** Write an array of AliFMDDigit objects as raw ALTRO data. 
+      @param digits Array of AliFMDDigit objects to convert to raw
+      ALTRO data. */
+  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:
-  virtual void WriteChannel(AliAltroBuffer* altro, 
-                           UShort_t strip, UShort_t sector, Char_t ring, 
-                           const TArrayI& data);
+  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
 };