LCOV - code coverage report
Current view: top level - FMD/FMDbase - AliFMDDigit.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 23 34 67.6 %
Date: 2016-06-14 17:26:59 Functions: 9 19 47.4 %

          Line data    Source code
       1             : #ifndef ALIFMDDIGIT_H
       2             : #define ALIFMDDIGIT_H
       3             : /** @file    AliFMDDigit.h
       4             :     @author  Christian Holm Christensen <cholm@nbi.dk>
       5             :     @date    Mon Mar 27 12:37:41 2006
       6             :     @brief   Digits for the FMD 
       7             : */
       8             : //___________________________________________________________________
       9             : //
      10             : //  Digits classes for the FMD
      11             : //  AliFMDBaseDigit - base class 
      12             : //  AliFMDDigit     - Normal (smeared) digit             
      13             : //  AliFMDSDigit    - Summable (non-smeared) digit             
      14             : //
      15             : #ifndef ALIFMDBASEDIGIT_H
      16             : # include <AliFMDBaseDigit.h>
      17             : #endif
      18             : #ifndef ROOT_TArrayI
      19             : # include <TArrayI.h>
      20             : #endif
      21             : 
      22             : 
      23             : //____________________________________________________________________
      24             : /** @class AliFMDDigit AliFMDDigit.h <FMD/AliFMDDigit.h>
      25             :     @brief class for digits 
      26             :     @ingroup FMD_base
      27             :  */
      28           0 : class AliFMDDigit : public AliFMDBaseDigit
      29             : {
      30             : public:
      31             :   /** CTOR */
      32             :   AliFMDDigit();
      33             :   /** 
      34             :    * Constrctor 
      35             :    *
      36             :    * @param detector Detector 
      37             :    * @param ring     Ring
      38             :    * @param sector   Sector
      39             :    * @param strip    Strip 
      40             :    * @param count    ADC (first sample)
      41             :    * @param count2   ADC (second sample, or -1 if not used)
      42             :    * @param count3   ADC (third sample, or -1 if not used) 
      43             :    * @param refs     Track references
      44             :    */
      45             :   AliFMDDigit(UShort_t       detector, 
      46             :               Char_t         ring='\0', 
      47             :               UShort_t       sector=0, 
      48             :               UShort_t       strip=0, 
      49             :               UShort_t       count=0, 
      50             :               Short_t        count2=-1, 
      51             :               Short_t        count3=-1, 
      52             :               Short_t        count4=-1, 
      53             :               UShort_t       nrefs=0,
      54             :               const Int_t*   refs=0);
      55             :   /** 
      56             :    * DTOR 
      57             :    */
      58      921618 :   virtual ~AliFMDDigit() {}
      59             :   /** 
      60             :    * @param i # of sample to get 
      61             :    * 
      62             :    * @return sample # @a i 
      63             :    */
      64             :   Int_t Count(UShort_t i=0) const;
      65             :   /** 
      66             :    * 
      67             :    * @return ADC count (first sample) 
      68             :    */
      69           0 :   UShort_t Count1() const { return fCount1;   }
      70             :   /** 
      71             :    * 
      72             :    * @return ADC count (second sample, or -1 if not used) 
      73             :    */
      74           0 :   Short_t  Count2() const { return fCount2;   }
      75             :   /** 
      76             :    * 
      77             :    * @return ADC count (third sample, or -1 if not used) 
      78             :    */
      79           0 :   Short_t  Count3() const { return fCount3;   }
      80             :   /** 
      81             :    * 
      82             :    * @return ADC count (third sample, or -1 if not used) 
      83             :    */
      84           0 :   Short_t  Count4() const { return fCount4;   }
      85             :   /** 
      86             :    * 
      87             :    * @return Canonical ADC counts 
      88             :    */
      89             :   UShort_t Counts() const;
      90             :   /** 
      91             :    * Print info 
      92             :    * 
      93             :    * @param opt Not used 
      94             :    */
      95             :   void     Print(Option_t* opt="") const;
      96             :   /** 
      97             :    * 
      98             :    * @return Title 
      99             :    */
     100             :   const char* GetTitle() const;
     101             :   /** 
     102             :    * Set the count value 
     103             :    * 
     104             :    * @param s Sample number 
     105             :    * @param c Counts 
     106             :    */
     107             :   void SetCount(UShort_t s, Short_t c);
     108             :   /**
     109             :    * Initialize all counts to appropriate values for this oversampling
     110             :    * rate.  That is 
     111             :    *
     112             :    * @verbatim
     113             :    *     Rate | Sample 1 | Sample 2 | Sample 3 | Sample 4 
     114             :    *     -----+----------+----------+----------+----------
     115             :    *     1    | 0        | -1       | -1       | -1
     116             :    *     2    | 0        | 0        | -1       | -1
     117             :    *     3    | 0        | 0        | 0        | -1
     118             :    *     4    | 0        | 0        | 0        | 0
     119             :    * @endverbatim
     120             :    *
     121             :    * @param rate Oversampling rate 
     122             :    */
     123             :   void SetDefaultCounts(UShort_t rate);
     124             : protected:
     125             :   UShort_t fCount1;     // Digital signal 
     126             :   Short_t  fCount2;     // Digital signal (-1 if not used)
     127             :   Short_t  fCount3;     // Digital signal (-1 if not used)
     128             :   Short_t  fCount4;     // Digital signal (-1 if not used)
     129          22 :   ClassDef(AliFMDDigit,2)     // Normal FMD digit
     130             : };
     131             : 
     132             : inline void
     133             : AliFMDDigit::SetDefaultCounts(UShort_t rate)
     134             : {
     135     1024000 :   switch (rate) { 
     136      204800 :   case 4: fCount4 = 0; // Fall through 
     137      204800 :   case 3: fCount3 = 0; // Fall through 
     138      204800 :   case 2: fCount2 = 0; // Fall through 
     139      204800 :   case 1: fCount1 = 0;
     140      204800 :     break;
     141             :   default: 
     142           0 :     fCount4 = fCount3 = fCount2 = fCount1 = 0;
     143           0 :     break;
     144             :   }
     145      204800 : }
     146             : inline UShort_t 
     147             : AliFMDDigit::Counts() const 
     148             : {
     149     1843200 :   if (fCount4 >= 0) return fCount3;
     150           0 :   if (fCount3 >= 0) return fCount2;
     151           0 :   if (fCount2 >= 0) return fCount2;
     152           0 :   return fCount1;
     153      614400 : }
     154             : 
     155             : inline Int_t
     156             : AliFMDDigit::Count(UShort_t i) const 
     157             : {
     158     1638400 :   switch (i) {
     159      204800 :   case 0: return fCount1;
     160      204800 :   case 1: return fCount2;
     161      204800 :   case 2: return fCount3;
     162      204800 :   case 3: return fCount4;
     163             :   }
     164           0 :   return -1;
     165      819200 : }
     166             : inline void
     167             : AliFMDDigit::SetCount(UShort_t i, Short_t c)
     168             : {
     169     2457600 :   switch (i) {
     170      204800 :   case 0: fCount1 = c; break;
     171      204800 :   case 1: fCount2 = c; break;
     172      204800 :   case 2: fCount3 = c; break;
     173      204800 :   case 3: fCount4 = c; break;
     174             :   }
     175      819200 : }
     176             : 
     177             : #endif
     178             : //____________________________________________________________________
     179             : //
     180             : // Local Variables:
     181             : //   mode: C++
     182             : // End:
     183             : //
     184             : //
     185             : // EOF
     186             : //

Generated by: LCOV version 1.11