LCOV - code coverage report
Current view: top level - FMD/FMDsim - AliFMDRawWriter.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 4 8 50.0 %

          Line data    Source code
       1             : #ifndef ALIFMDRAWWRITER_H
       2             : #define ALIFMDRAWWRITER_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
       4             :  * reserved. 
       5             :  *
       6             :  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
       7             :  *
       8             :  * See cxx source for full Copyright notice                               
       9             :  */
      10             : /* $Id$ */
      11             : /** @file    AliFMDRawWriter.h
      12             :     @author  Christian Holm Christensen <cholm@nbi.dk>
      13             :     @date    Mon Mar 27 12:45:56 2006
      14             :     @brief   Class to write raw data 
      15             : */
      16             : //____________________________________________________________________
      17             : // 
      18             : // Class to writer ADC values to a Raw File
      19             : // Uses general ALTRO class - which is wrong
      20             : // Should make it right!
      21             : //
      22             : #ifndef ROOT_TTask
      23             : # include <TTask.h>
      24             : #endif
      25             : 
      26             : //____________________________________________________________________
      27             : class AliFMD;
      28             : class AliAltroBuffer;
      29             : class AliAltroBufferV3;
      30             : class TArrayI;
      31             : class TArrayF;
      32             : class TClonesArray;
      33             : 
      34             : //____________________________________________________________________
      35             : /** @class AliFMDRawWriter
      36             :     @brief Class to write ALTRO formated raw data from an array of
      37             :     AliFMDDigit objects.
      38             :     @code 
      39             :     AliFMDRawWriter* fmdWriter = new AliFMDRawWriter(0);
      40             :     TClonesArray*    array     = fmd->DigitArray();
      41             :     fmdWriter->WriteDigits(array);
      42             :     @endcode 
      43             :     @ingroup FMD_sim
      44             : */
      45             : class AliFMDRawWriter : public TTask 
      46             : {
      47             : public:
      48             :   /** Constructor 
      49             :       @param fmd Pointer to detector object. */
      50             :   AliFMDRawWriter(AliFMD* fmd);
      51             :   /** Destructor */
      52          16 :   virtual ~AliFMDRawWriter() {}
      53             : 
      54             :   /** Write the output from AliFMD object. 
      55             :       @param option Not used */
      56             :   virtual void Exec(Option_t* option="");
      57             :   /** Write an array of AliFMDDigit objects as raw ALTRO data. 
      58             :       @param digits Array of AliFMDDigit objects to convert to raw
      59             :       ALTRO data. */
      60             :   virtual Long_t WriteDigits(TClonesArray* digits);
      61             :   /** Do zero-suppression of channel data. 
      62             :       @param data      Contain @a nWords of valid data.  On input, it 
      63             :                        contains the full channel data.  On output it
      64             :                        will contain the zero-suppresed data. 
      65             :       @param peds      Contain @a nWords pedestals 
      66             :       @param noise     Contain @a nWords pedestal widths 
      67             :       @param threshold Zero suppression threshold. */
      68             :   void ZeroSuppress(Int_t*& data, Int_t nWords, const Float_t* peds, 
      69             :                     const Float_t* noise, UShort_t threshold) const;
      70             : protected:
      71             :   AliFMDRawWriter(const AliFMDRawWriter& o) 
      72             :     : TTask(o), 
      73             :       fFMD(o.fFMD), 
      74             :       fSampleRate(o.fSampleRate), 
      75             :       fChannelsPerAltro(o.fChannelsPerAltro), 
      76             :       fThreshold(o.fThreshold)
      77             :   {}
      78             :   AliFMDRawWriter& operator=(const AliFMDRawWriter&) { return *this; }
      79             :   void WriteRCUTrailer(AliAltroBufferV3* altro,
      80             :                        UInt_t ddl,
      81             :                        Bool_t zs,
      82             :                        UShort_t factor,
      83             :                        UShort_t rate) const;
      84             :   AliFMD*       fFMD;              //! Pointer to detector description 
      85             :   UShort_t      fSampleRate;       // The sample rate (0 -> inferred from data)
      86             :   UShort_t      fChannelsPerAltro; // Number of pre-amp. channels/adc channel 
      87             :   UShort_t      fThreshold;        // Threshold for zero-suppression
      88             : 
      89     4102556 :   ClassDef(AliFMDRawWriter, 0) // Write FMD raw data to a DDL file
      90             : };
      91             : 
      92             : #endif
      93             : //____________________________________________________________________
      94             : //
      95             : // Local Variables:
      96             : //   mode: C++
      97             : // End:
      98             : //
      99             : // EOF
     100             : //

Generated by: LCOV version 1.11