ROOT logo
#ifndef ALIFMDEDEPMAP_H
#define ALIFMDEDEPMAP_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
/** @file    AliFMDEdepMap.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:39:50 2006
    @brief   Per strip map of energy deposited and number of hits 
    @ingroup FMD_sim
*/
//
// Contains a pair of energy deposited @c fEdep and number of hits @c
// fN, @c fEdep is the summed energy deposition, and @c fN is the
// number of hits  
#ifndef ALIFMDMAP_H
# include "AliFMDMap.h"
#endif 
#ifndef ALIFMDEDEPHITPAIR_H
# include <AliFMDEdepHitPair.h>
#endif


//____________________________________________________________________
/** @brief Map of Energy deposited, hit information per strip.
    Contains a pair of energy deposited @c fEdep and 
    number of hits @c fN, @c fEdep is the summed energy deposition,
    and @c fN is the number of hits 
    @ingroup FMD_sim
*/
class AliFMDEdepMap : public AliFMDMap
{
public:
  /** Copy constructor 
      @param other Object to copy from. 
      @return  */
  AliFMDEdepMap(const AliFMDEdepMap& other);
  /** Constructor */
  AliFMDEdepMap();
  /** 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) */
  AliFMDEdepMap(UShort_t maxDet, 
		UShort_t maxRing= 0, 
		UShort_t maxSec = 0, 
		UShort_t maxStr = 0);
  /** DTOR */
  virtual ~AliFMDEdepMap() { delete [] fData; }
  AliFMDEdepMap& operator=(const AliFMDEdepMap& other);
  /** Reset to default */
  virtual void Reset();
  /** Reset to value 
      @param val Value to reset from */
  virtual void Reset(const AliFMDEdepHitPair& val);
  /** Access operator 
      @param detector Detector 
      @param ring     Ring 
      @param sector   Sector  
      @param strip    Strip
      @return  reference value stored for the strip */
  virtual AliFMDEdepHitPair& 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 AliFMDEdepHitPair& operator()(UShort_t detector, 
					      Char_t   ring, 
					      UShort_t sector, 
					      UShort_t strip) const;
  void*     Ptr() const { return reinterpret_cast<void*>(fData); }
protected:
  Int_t     MaxIndex()            const { return fTotal; }
  Int_t     AtAsInt(Int_t idx)    const { return fData[idx].fN; }
  Int_t&    AtAsInt(Int_t idx)          { return AliFMDMap::AtAsInt(idx); }
  Bool_t    AtAsBool(Int_t idx)   const { return fData[idx].fEdep > 0; }
  Bool_t&   AtAsBool(Int_t idx)         { return AliFMDMap::AtAsBool(idx); }
  Float_t   AtAsFloat(Int_t idx)  const { return fData[idx].fEdep; }
  Float_t&  AtAsFloat(Int_t idx)        { return fData[idx].fEdep; }
  UShort_t  AtAsUShort(Int_t idx) const { return fData[idx].fN; }
  UShort_t& AtAsUShort(Int_t idx)       { return fData[idx].fN; }
  Bool_t    IsUShort()            const { return kTRUE; }  
  Bool_t    IsFloat()             const { return kTRUE; }  
  Int_t              fTotal; //  Total number of entries
  AliFMDEdepHitPair* fData;  //[fTotal] The data 
  ClassDef(AliFMDEdepMap, 3) // Cache of edep,hit information per strip
};

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


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