ROOT logo
#ifndef ALIFMDFLOATMAP_H
#define ALIFMDFLOATMAP_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
#ifndef ALIFMDMAP_H
# include "AliFMDMap.h"
#endif
//____________________________________________________________________
//
// Array of floats indexed by strip identifier.
// the floats are indexed by the coordinates 
//     DETECTOR # (1-3)
//     RING ID    ('I' or 'O', any case)
//     SECTOR #   (0-39)
//     STRIP #    (0-511)
//
class AliFMDFloatMap : public AliFMDMap
{
public:
  AliFMDFloatMap();
  AliFMDFloatMap(Int_t  maxDet, 
		 Int_t  maxRing= 0, 
		 Int_t  maxSec = 0, 
		 Int_t  maxStr = 0);
  AliFMDFloatMap(const AliFMDMap& o);
  AliFMDFloatMap(const AliFMDFloatMap& o);
  virtual ~AliFMDFloatMap() { delete [] fData;fData = 0; }
  AliFMDFloatMap& operator=(const AliFMDFloatMap& o);
  virtual void Reset(const Float_t& v=Float_t());
  virtual Float_t& operator()(UShort_t det,
			      Char_t   ring,
			      UShort_t sec,
			      UShort_t str);
  virtual const Float_t& operator()(UShort_t det,
				    Char_t   ring,
				    UShort_t sec,
				    UShort_t str) const;
  Float_t* Data() const { return fData; }
  void Print(Option_t* option="%8.4f") const { AliFMDMap::Print(option); }
  void* Ptr() const { return reinterpret_cast<void*>(fData); }
protected:
  Int_t    MaxIndex() const { return fTotal; }
  Float_t  AtAsFloat(Int_t i) const { return fData[i]; } 
  Float_t& AtAsFloat(Int_t i)       { return fData[i]; } 
  Bool_t   IsFloat() const { return kTRUE; }

  Int_t   fTotal;  // Total number of entries
  Float_t* fData;   //[fTotal]
  ClassDef(AliFMDFloatMap,3) // Map of floats
};

inline AliFMDFloatMap
operator*(const AliFMDMap& lhs, const AliFMDMap& rhs)
{
  AliFMDFloatMap r(lhs);
  r *= rhs;
  return r;
}
inline AliFMDFloatMap
operator/(const AliFMDMap& lhs, const AliFMDMap& rhs)
{
  AliFMDFloatMap r(lhs);
  r /= rhs;
  return r;
}
inline AliFMDFloatMap
operator+(const AliFMDMap& lhs, const AliFMDMap& rhs)
{
  AliFMDFloatMap r(lhs);
  r += rhs;
  return r;
}
inline AliFMDFloatMap
operator-(const AliFMDMap& lhs, const AliFMDMap& rhs)
{
  AliFMDFloatMap r(lhs);
  r -= rhs;
  return r;
}

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

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