ROOT logo
#ifndef ALIFMDBASEDIGIT_H
#define ALIFMDBASEDIGIT_H
/** @file    AliFMDBaseDigit.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:37:41 2006
    @brief   Digits for the FMD 
    @ingroup FMD_base
*/
//___________________________________________________________________
//
//  Digits classes for the FMD
//  AliFMDBaseDigit - base class 
//  AliFMDDigit     - Normal (smeared) digit             
//  AliFMDSDigit    - Summable (non-smeared) digit             
//
#ifndef ALIDIGIT_H
# include <AliDigit.h>
#endif
#ifndef ROOT_TString
# include <TString.h>
#endif

//____________________________________________________________________
/** 
 * @class AliFMDBaseDigit AliFMDDigit.h <FMD/AliFMDDigit.h>
 * 
 * @brief base class for digits 
 * 
 * @ingroup FMD_base
 */
class AliFMDBaseDigit : public AliDigit 
{
public: 
  /** 
   * CTOR 
   */
  AliFMDBaseDigit();
  /** 
   * Constrctor 
   * 
   * @param detector Detector 
   * @param ring     Ring
   * @param sector   Sector
   * @param strip    Strip 
   */
  AliFMDBaseDigit(UShort_t detector, 
		  Char_t   ring='\0', 
		  UShort_t sector=0, 
		  UShort_t strip=0);
  /** 
   * Constrctor 
   *
   * @param tracks   Array of 3 track indicies
   * @param detector Detector 
   * @param ring     Ring
   * @param sector   Sector
   * @param strip    Strip 
   */
  AliFMDBaseDigit(Int_t*   tracks, 
		  UShort_t detector, 
		  Char_t   ring='\0', 
		  UShort_t sector=0, 
		  UShort_t strip=0);  
  /** 
   * DTOR 
   */
  virtual ~AliFMDBaseDigit() {}
  /** 
   * 
   * @return Detector # 
   */
  UShort_t     Detector()	   const { return fDetector; }
  /** 
   * 
   * @return Ring ID 
   */
  Char_t       Ring()	           const { return fRing;     }
  /** 
   * 
   * @return sector # 
   */
  UShort_t     Sector()	           const { return fSector;   }
  /** 
   * 
   * @return strip # 
   */
  UShort_t     Strip()	           const { return fStrip;    }
  /** 
   * Print information 
   *
   * @param opt Not used 
   */
  virtual void Print(Option_t* opt="") const;
  /** 
   * 
   * @return Name 
   */
  const char*  GetName() const;
  /** 
   * @param rhs Other digit to compare to 
   * 
   * @return -1 if this is less than  @a rhs, 0 if the refer to the
   * same, and 1 if @a rhs is larger than this 
   */
  Int_t Compare(const TObject* o) const;
  /** 
   * 
   * @return Always true 
   */ 
  Bool_t IsSortable() const { return kTRUE; }
  
  /** 
   * Add a track referenc
   * 
   * @param trackno The track number
   */  
  void AddTrack(Int_t trackno);
  
  /** 
   * Get the number of track references (max 3)
   * 
   * 
   * @return Number of valid track references. 
   */
  UShort_t GetNTrack() const;
  
  /** 
   * Set the count value 
   * 
   * @param s Sample number 
   * @param c Counts 
   */
  virtual void SetCount(UShort_t s, Short_t c) = 0;
protected:
  /** 
   * Calculate the hash value
   * 
   * 
   * @return Hash value 
   */  
  ULong_t  Hash() const;
  UShort_t fDetector;  // (Sub) Detector # (1,2, or 3)
  Char_t   fRing;      // Ring ID ('I' or 'O')
  UShort_t fSector;    // Sector # (phi division)
  UShort_t fStrip;     // Strip # (radial division)
  mutable TString  fName;      //! Name (cached, but not stored) 
  ClassDef(AliFMDBaseDigit, 3) // Base class for FMD digits 
};

#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
//
// EOF
//
 AliFMDBaseDigit.h:1
 AliFMDBaseDigit.h:2
 AliFMDBaseDigit.h:3
 AliFMDBaseDigit.h:4
 AliFMDBaseDigit.h:5
 AliFMDBaseDigit.h:6
 AliFMDBaseDigit.h:7
 AliFMDBaseDigit.h:8
 AliFMDBaseDigit.h:9
 AliFMDBaseDigit.h:10
 AliFMDBaseDigit.h:11
 AliFMDBaseDigit.h:12
 AliFMDBaseDigit.h:13
 AliFMDBaseDigit.h:14
 AliFMDBaseDigit.h:15
 AliFMDBaseDigit.h:16
 AliFMDBaseDigit.h:17
 AliFMDBaseDigit.h:18
 AliFMDBaseDigit.h:19
 AliFMDBaseDigit.h:20
 AliFMDBaseDigit.h:21
 AliFMDBaseDigit.h:22
 AliFMDBaseDigit.h:23
 AliFMDBaseDigit.h:24
 AliFMDBaseDigit.h:25
 AliFMDBaseDigit.h:26
 AliFMDBaseDigit.h:27
 AliFMDBaseDigit.h:28
 AliFMDBaseDigit.h:29
 AliFMDBaseDigit.h:30
 AliFMDBaseDigit.h:31
 AliFMDBaseDigit.h:32
 AliFMDBaseDigit.h:33
 AliFMDBaseDigit.h:34
 AliFMDBaseDigit.h:35
 AliFMDBaseDigit.h:36
 AliFMDBaseDigit.h:37
 AliFMDBaseDigit.h:38
 AliFMDBaseDigit.h:39
 AliFMDBaseDigit.h:40
 AliFMDBaseDigit.h:41
 AliFMDBaseDigit.h:42
 AliFMDBaseDigit.h:43
 AliFMDBaseDigit.h:44
 AliFMDBaseDigit.h:45
 AliFMDBaseDigit.h:46
 AliFMDBaseDigit.h:47
 AliFMDBaseDigit.h:48
 AliFMDBaseDigit.h:49
 AliFMDBaseDigit.h:50
 AliFMDBaseDigit.h:51
 AliFMDBaseDigit.h:52
 AliFMDBaseDigit.h:53
 AliFMDBaseDigit.h:54
 AliFMDBaseDigit.h:55
 AliFMDBaseDigit.h:56
 AliFMDBaseDigit.h:57
 AliFMDBaseDigit.h:58
 AliFMDBaseDigit.h:59
 AliFMDBaseDigit.h:60
 AliFMDBaseDigit.h:61
 AliFMDBaseDigit.h:62
 AliFMDBaseDigit.h:63
 AliFMDBaseDigit.h:64
 AliFMDBaseDigit.h:65
 AliFMDBaseDigit.h:66
 AliFMDBaseDigit.h:67
 AliFMDBaseDigit.h:68
 AliFMDBaseDigit.h:69
 AliFMDBaseDigit.h:70
 AliFMDBaseDigit.h:71
 AliFMDBaseDigit.h:72
 AliFMDBaseDigit.h:73
 AliFMDBaseDigit.h:74
 AliFMDBaseDigit.h:75
 AliFMDBaseDigit.h:76
 AliFMDBaseDigit.h:77
 AliFMDBaseDigit.h:78
 AliFMDBaseDigit.h:79
 AliFMDBaseDigit.h:80
 AliFMDBaseDigit.h:81
 AliFMDBaseDigit.h:82
 AliFMDBaseDigit.h:83
 AliFMDBaseDigit.h:84
 AliFMDBaseDigit.h:85
 AliFMDBaseDigit.h:86
 AliFMDBaseDigit.h:87
 AliFMDBaseDigit.h:88
 AliFMDBaseDigit.h:89
 AliFMDBaseDigit.h:90
 AliFMDBaseDigit.h:91
 AliFMDBaseDigit.h:92
 AliFMDBaseDigit.h:93
 AliFMDBaseDigit.h:94
 AliFMDBaseDigit.h:95
 AliFMDBaseDigit.h:96
 AliFMDBaseDigit.h:97
 AliFMDBaseDigit.h:98
 AliFMDBaseDigit.h:99
 AliFMDBaseDigit.h:100
 AliFMDBaseDigit.h:101
 AliFMDBaseDigit.h:102
 AliFMDBaseDigit.h:103
 AliFMDBaseDigit.h:104
 AliFMDBaseDigit.h:105
 AliFMDBaseDigit.h:106
 AliFMDBaseDigit.h:107
 AliFMDBaseDigit.h:108
 AliFMDBaseDigit.h:109
 AliFMDBaseDigit.h:110
 AliFMDBaseDigit.h:111
 AliFMDBaseDigit.h:112
 AliFMDBaseDigit.h:113
 AliFMDBaseDigit.h:114
 AliFMDBaseDigit.h:115
 AliFMDBaseDigit.h:116
 AliFMDBaseDigit.h:117
 AliFMDBaseDigit.h:118
 AliFMDBaseDigit.h:119
 AliFMDBaseDigit.h:120
 AliFMDBaseDigit.h:121
 AliFMDBaseDigit.h:122
 AliFMDBaseDigit.h:123
 AliFMDBaseDigit.h:124
 AliFMDBaseDigit.h:125
 AliFMDBaseDigit.h:126
 AliFMDBaseDigit.h:127
 AliFMDBaseDigit.h:128
 AliFMDBaseDigit.h:129
 AliFMDBaseDigit.h:130
 AliFMDBaseDigit.h:131
 AliFMDBaseDigit.h:132
 AliFMDBaseDigit.h:133
 AliFMDBaseDigit.h:134
 AliFMDBaseDigit.h:135
 AliFMDBaseDigit.h:136
 AliFMDBaseDigit.h:137
 AliFMDBaseDigit.h:138
 AliFMDBaseDigit.h:139
 AliFMDBaseDigit.h:140
 AliFMDBaseDigit.h:141
 AliFMDBaseDigit.h:142
 AliFMDBaseDigit.h:143
 AliFMDBaseDigit.h:144
 AliFMDBaseDigit.h:145
 AliFMDBaseDigit.h:146
 AliFMDBaseDigit.h:147
 AliFMDBaseDigit.h:148
 AliFMDBaseDigit.h:149
 AliFMDBaseDigit.h:150
 AliFMDBaseDigit.h:151
 AliFMDBaseDigit.h:152
 AliFMDBaseDigit.h:153
 AliFMDBaseDigit.h:154
 AliFMDBaseDigit.h:155
 AliFMDBaseDigit.h:156
 AliFMDBaseDigit.h:157
 AliFMDBaseDigit.h:158
 AliFMDBaseDigit.h:159