]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDBoolMap.h
Whoops - stupid mistake - sorry
[u/mrichter/AliRoot.git] / FMD / AliFMDBoolMap.h
index 4cd8cddab82beab1f0795c0b0f3249ef69ea1039..aee4000197bbf3e10bbd9a5885052dbc8519aca8 100644 (file)
@@ -32,17 +32,21 @@ public:
   /** Copy constructor 
       @param other Object to copy from. */
   AliFMDBoolMap(const AliFMDBoolMap& other);
+  /** 
+   * Constructor 
+   */
+  AliFMDBoolMap();
   /** Constructor 
       @param maxDet  Number of detectors (3)
       @param maxRing Number of rings (2)
       @param maxSec  Number of sectors (40)
       @param maxStr  Number of strips (20) */
-  AliFMDBoolMap(size_t maxDet  = kMaxDetectors,
-               size_t maxRing = kMaxRings,
-               size_t maxSec  = kMaxSectors,
-               size_t maxStr  = kMaxStrips);
+  AliFMDBoolMap(UShort_t maxDet,
+               UShort_t maxRing = 0,
+               UShort_t maxSec  = 0,
+               UShort_t maxStr  = 0);
   /** Destructor */
-  virtual ~AliFMDBoolMap() { delete [] fData; }
+  virtual ~AliFMDBoolMap() { if (fData) delete [] fData; }
   /** Assignment operator 
       @param other Object to assign from 
       @return reference to this object.  */
@@ -70,10 +74,23 @@ public:
                                   Char_t   ring,
                                   UShort_t sec,
                                   UShort_t str) const;
+  Bool_t* Data() const { return fData; }
+  Int_t   Total() const { return fTotal; }
+  void*   Ptr() const { return reinterpret_cast<void*>(fData); }
 protected:
-  size_t  fTotal; // Total number of entries 
+  Int_t     MaxIndex()            const { return fTotal; }
+  Bool_t    AtAsBool(Int_t idx)   const { return fData[idx]; }
+  Bool_t&   AtAsBool(Int_t idx)         { return fData[idx]; }
+  Bool_t    IsBool()              const { return kTRUE; }  
+  Int_t     AtAsInt(Int_t idx)    const { return fData[idx] ? 1   : 0;   }
+  Float_t   AtAsFloat(Int_t idx)  const { return fData[idx] ? 1.F : 0.F; }
+  UShort_t  AtAsUShort(Int_t idx) const { return fData[idx] ? 1   : 0;   }
+  Int_t&    AtAsInt(Int_t idx)          { return AliFMDMap::AtAsInt(idx);    }
+  Float_t&  AtAsFloat(Int_t idx)        { return AliFMDMap::AtAsFloat(idx);  }
+  UShort_t& AtAsUShort(Int_t idx)       { return AliFMDMap::AtAsUShort(idx); }
+  Int_t  fTotal; // Total number of entries 
   Bool_t* fData;  // [fTotal] The Data
-  ClassDef(AliFMDBoolMap,2) // Map of Bool_t data per strip
+  ClassDef(AliFMDBoolMap,3) // Map of Bool_t data per strip
 };
 
 #endif