ROOT logo
#ifndef ALIFMDUSHORTMAP_H
#define ALIFMDUSHORTMAP_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
/** @file    AliFMDUShortMap.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:48:18 2006
    @brief   Per strip of unisgned shorts (16 bit) data 
*/
// Map of an integer per strip
// This class stores one short unsigned integer (16 bits) per strip in
// the FMD detectors. 
#ifndef ALIFMDMAP_H
# include "AliFMDMap.h"
#endif 
//____________________________________________________________________
/** @class AliFMDUShortMap 
    @brief Map of an integer per strip
    @ingroup FMD_base
 */
class AliFMDUShortMap : public AliFMDMap
{
public:
  /** Copy constructor 
      @param other Object to copy from.  */
  AliFMDUShortMap(const AliFMDUShortMap& other);
  /** Constructor */
  AliFMDUShortMap();
  /** 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) */
  AliFMDUShortMap(UShort_t maxDet,
		  UShort_t maxRing= kMaxRings, 
		  UShort_t maxSec = kMaxSectors, 
		  UShort_t maxStr = kMaxStrips);
  /** Destructor */
  virtual ~AliFMDUShortMap() { delete [] fData; }
  /** Assignment operator 
      @param other Object to assign from 
      @return reference to this object.  */
  AliFMDUShortMap& operator=(const AliFMDUShortMap& other);
  /** Reset to value 
      @param val Value to reset from */
  virtual void Reset(const UShort_t& val=UShort_t());
  /** Access operator 
      @param detector Detector 
      @param ring     Ring 
      @param sector   Sector  
      @param strip    Strip
      @return  reference value stored for the strip */
  virtual UShort_t& operator()(UShort_t detector, 
			       Char_t   ring, 
			       UShort_t sector, 
			       UShort_t strip);
  /** Access operator 
      @param detector Detector 
      @param ring     Ring 
      @param sector   Sector  
      @param strip    Strip
      @return  value stored for the strip */
  virtual const UShort_t& operator()(UShort_t detector, 
				     Char_t   ring, 
				     UShort_t sector, 
				     UShort_t strip) const;
  /** 
   * Get the raw data pointer. 
   * 
   * @return Pointer to the data 
   */
  UShort_t* Data() const { return fData; }
  /** 
   * The total number of entries in the data array 
   * 
   * @return Total number of entries in the data array 
   */
  Int_t     Total() const { return fTotal; }
  void*     Ptr() const { return reinterpret_cast<void*>(fData); }
  Int_t     MaxIndex()            const { return fTotal; }
 protected:
  UShort_t  AtAsUShort(Int_t idx) const { return fData[idx]; }
  UShort_t& AtAsUShort(Int_t idx)       { return fData[idx]; }
  Int_t     AtAsInt(Int_t idx)    const { return fData[idx]; }
  Float_t   AtAsFloat(Int_t idx)  const { return fData[idx]; }
  Bool_t    AtAsBool(Int_t idx)   const { return fData[idx]!=0?kTRUE:kFALSE; }
  Int_t&    AtAsInt(Int_t idx)          { return AliFMDMap::AtAsInt(idx);    }
  Float_t&  AtAsFloat(Int_t idx)        { return AliFMDMap::AtAsFloat(idx);  }
  Bool_t&   AtAsBool(Int_t idx)         { return AliFMDMap::AtAsBool(idx); }
  Bool_t    IsUShort()            const { return kTRUE; }  
  Int_t     fTotal; // Total number of entries 
  UShort_t* fData;  // [fTotal] The data 
  ClassDef(AliFMDUShortMap, 3) // Cache of edep,hit information per strip
};

#endif 
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
// EOF
//


 AliFMDUShortMap.h:1
 AliFMDUShortMap.h:2
 AliFMDUShortMap.h:3
 AliFMDUShortMap.h:4
 AliFMDUShortMap.h:5
 AliFMDUShortMap.h:6
 AliFMDUShortMap.h:7
 AliFMDUShortMap.h:8
 AliFMDUShortMap.h:9
 AliFMDUShortMap.h:10
 AliFMDUShortMap.h:11
 AliFMDUShortMap.h:12
 AliFMDUShortMap.h:13
 AliFMDUShortMap.h:14
 AliFMDUShortMap.h:15
 AliFMDUShortMap.h:16
 AliFMDUShortMap.h:17
 AliFMDUShortMap.h:18
 AliFMDUShortMap.h:19
 AliFMDUShortMap.h:20
 AliFMDUShortMap.h:21
 AliFMDUShortMap.h:22
 AliFMDUShortMap.h:23
 AliFMDUShortMap.h:24
 AliFMDUShortMap.h:25
 AliFMDUShortMap.h:26
 AliFMDUShortMap.h:27
 AliFMDUShortMap.h:28
 AliFMDUShortMap.h:29
 AliFMDUShortMap.h:30
 AliFMDUShortMap.h:31
 AliFMDUShortMap.h:32
 AliFMDUShortMap.h:33
 AliFMDUShortMap.h:34
 AliFMDUShortMap.h:35
 AliFMDUShortMap.h:36
 AliFMDUShortMap.h:37
 AliFMDUShortMap.h:38
 AliFMDUShortMap.h:39
 AliFMDUShortMap.h:40
 AliFMDUShortMap.h:41
 AliFMDUShortMap.h:42
 AliFMDUShortMap.h:43
 AliFMDUShortMap.h:44
 AliFMDUShortMap.h:45
 AliFMDUShortMap.h:46
 AliFMDUShortMap.h:47
 AliFMDUShortMap.h:48
 AliFMDUShortMap.h:49
 AliFMDUShortMap.h:50
 AliFMDUShortMap.h:51
 AliFMDUShortMap.h:52
 AliFMDUShortMap.h:53
 AliFMDUShortMap.h:54
 AliFMDUShortMap.h:55
 AliFMDUShortMap.h:56
 AliFMDUShortMap.h:57
 AliFMDUShortMap.h:58
 AliFMDUShortMap.h:59
 AliFMDUShortMap.h:60
 AliFMDUShortMap.h:61
 AliFMDUShortMap.h:62
 AliFMDUShortMap.h:63
 AliFMDUShortMap.h:64
 AliFMDUShortMap.h:65
 AliFMDUShortMap.h:66
 AliFMDUShortMap.h:67
 AliFMDUShortMap.h:68
 AliFMDUShortMap.h:69
 AliFMDUShortMap.h:70
 AliFMDUShortMap.h:71
 AliFMDUShortMap.h:72
 AliFMDUShortMap.h:73
 AliFMDUShortMap.h:74
 AliFMDUShortMap.h:75
 AliFMDUShortMap.h:76
 AliFMDUShortMap.h:77
 AliFMDUShortMap.h:78
 AliFMDUShortMap.h:79
 AliFMDUShortMap.h:80
 AliFMDUShortMap.h:81
 AliFMDUShortMap.h:82
 AliFMDUShortMap.h:83
 AliFMDUShortMap.h:84
 AliFMDUShortMap.h:85
 AliFMDUShortMap.h:86
 AliFMDUShortMap.h:87
 AliFMDUShortMap.h:88
 AliFMDUShortMap.h:89
 AliFMDUShortMap.h:90
 AliFMDUShortMap.h:91
 AliFMDUShortMap.h:92
 AliFMDUShortMap.h:93
 AliFMDUShortMap.h:94
 AliFMDUShortMap.h:95
 AliFMDUShortMap.h:96
 AliFMDUShortMap.h:97
 AliFMDUShortMap.h:98
 AliFMDUShortMap.h:99
 AliFMDUShortMap.h:100
 AliFMDUShortMap.h:101
 AliFMDUShortMap.h:102
 AliFMDUShortMap.h:103
 AliFMDUShortMap.h:104
 AliFMDUShortMap.h:105
 AliFMDUShortMap.h:106
 AliFMDUShortMap.h:107
 AliFMDUShortMap.h:108
 AliFMDUShortMap.h:109