LCOV - code coverage report
Current view: top level - FMD/FMDbase - AliFMDBoolMap.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 15 20.0 %
Date: 2016-06-14 17:26:59 Functions: 5 21 23.8 %

          Line data    Source code
       1             : #ifndef ALIFMDBOOLMAP_H
       2             : #define ALIFMDBOOLMAP_H
       3             : /* Copyright (c) 2004, ALICE Experiment @ CERN.
       4             :  * All rights reserved
       5             :  * See AliFMDBoolMap.cxx for full copyright notice
       6             :  * 
       7             :  * Created Mon Nov  8 12:51:51 2004 by Christian Holm Christensen
       8             :  */
       9             : /* $Id$ */
      10             : /** @file    AliFMDBoolMap.h
      11             :     @author  Christian Holm Christensen <cholm@nbi.dk>
      12             :     @date    Sun Mar 26 18:28:59 2006
      13             :     @brief   Per strip boolean map
      14             : */
      15             : //__________________________________________________________
      16             : // 
      17             : // Map of Bool_t for each FMD strip
      18             : // Used in calibration and the like classes.
      19             : // Used amoung other things for dead-channel map
      20             : // 
      21             : #ifndef ALIFMDMAP_H
      22             : # include <AliFMDMap.h>
      23             : #endif
      24             : 
      25             : /** @class AliFMDBoolMap 
      26             :     @brief MAp of per strip boolean values. 
      27             :     @ingroup FMD_base
      28             :  */
      29             : class AliFMDBoolMap : public AliFMDMap
      30             : {
      31             : public:
      32             :   /** Copy constructor 
      33             :       @param other Object to copy from. */
      34             :   AliFMDBoolMap(const AliFMDBoolMap& other);
      35             :   /** 
      36             :    * Constructor 
      37             :    */
      38             :   AliFMDBoolMap();
      39             :   /** Constructor 
      40             :       @param maxDet  Number of detectors (3)
      41             :       @param maxRing Number of rings (2)
      42             :       @param maxSec  Number of sectors (40)
      43             :       @param maxStr  Number of strips (20) */
      44             :   AliFMDBoolMap(UShort_t maxDet,
      45             :                 UShort_t maxRing = 0,
      46             :                 UShort_t maxSec  = 0,
      47             :                 UShort_t maxStr  = 0);
      48             :   /** Destructor */
      49          14 :   virtual ~AliFMDBoolMap() { if (fData) delete [] fData; }
      50             :   /** Assignment operator 
      51             :       @param other Object to assign from 
      52             :       @return reference to this object.  */
      53             :   AliFMDBoolMap& operator=(const AliFMDBoolMap& other);
      54             :   /** Reset to value 
      55             :       @param v Value to reset from */
      56             :   virtual void Reset(const Bool_t& v=Bool_t());
      57             :   /** Access operator 
      58             :       @param det   Detector 
      59             :       @param ring  Ring 
      60             :       @param sec   Sector  
      61             :       @param str   Strip
      62             :       @return  reference value stored for the strip */
      63             :   virtual Bool_t& operator()(UShort_t det,
      64             :                              Char_t   ring,
      65             :                              UShort_t sec,
      66             :                              UShort_t str);
      67             :   /** Access operator 
      68             :       @param det   Detector 
      69             :       @param ring  Ring 
      70             :       @param sec   Sector  
      71             :       @param str   Strip
      72             :       @return  value stored for the strip */
      73             :   virtual const Bool_t& operator()(UShort_t det,
      74             :                                    Char_t   ring,
      75             :                                    UShort_t sec,
      76             :                                    UShort_t str) const;
      77           0 :   Bool_t* Data() const { return fData; }
      78           0 :   Int_t   Total() const { return fTotal; }
      79           6 :   void*   Ptr() const { return reinterpret_cast<void*>(fData); }
      80             : protected:
      81           0 :   Int_t     MaxIndex()            const { return fTotal; }
      82           0 :   Bool_t    AtAsBool(Int_t idx)   const { return fData[idx]; }
      83           0 :   Bool_t&   AtAsBool(Int_t idx)         { return fData[idx]; }
      84           0 :   Bool_t    IsBool()              const { return kTRUE; }  
      85           0 :   Int_t     AtAsInt(Int_t idx)    const { return fData[idx] ? 1   : 0;   }
      86           0 :   Float_t   AtAsFloat(Int_t idx)  const { return fData[idx] ? 1.F : 0.F; }
      87           0 :   UShort_t  AtAsUShort(Int_t idx) const { return fData[idx] ? 1   : 0;   }
      88           0 :   Int_t&    AtAsInt(Int_t idx)          { return AliFMDMap::AtAsInt(idx);    }
      89           0 :   Float_t&  AtAsFloat(Int_t idx)        { return AliFMDMap::AtAsFloat(idx);  }
      90           0 :   UShort_t& AtAsUShort(Int_t idx)       { return AliFMDMap::AtAsUShort(idx); }
      91             :   Int_t  fTotal; // Total number of entries 
      92             :   Bool_t* fData;  // [fTotal] The Data
      93          40 :   ClassDef(AliFMDBoolMap,3) // Map of Bool_t data per strip
      94             : };
      95             : 
      96             : #endif
      97             : //__________________________________________________________
      98             : // 
      99             : // Local Variables:
     100             : //   mode: C++
     101             : // End:
     102             : //

Generated by: LCOV version 1.11