ROOT logo
#ifndef ALIPHOSDIGIT_H
#define ALIPHOSDIGIT_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.34  2006/04/22 10:30:17  hristov
 * Add fEnergy to AliPHOSDigit and operate with EMC amplitude in energy units (Yu.Kharlov)
 *
 * Revision 1.33  2005/05/28 14:19:04  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
//  PHOS digit: Id
//              energy
//              3 identifiers for the primary particle(s) at the origine of the digit
//  The digits are made in FinishEvent() by summing all the hits in a single PHOS crystal or PPSD gas cell
//  It would be nice to replace the 3 identifiers by an array, but, because digits are kept in a TClonesArray,
//   it is not possible to stream such an array... (beyond my understqnding!)
//
//*-- Author: Laurent Aphecetche & Yves Schutz (SUBATECH)

// --- ROOT system ---

//#include "TObject.h" 

// --- Standard library ---

// --- AliRoot header files ---

#include "AliDigitNew.h"
using std::ostream;

class AliPHOSDigit : public AliDigitNew {

  friend ostream& operator << ( ostream& , const AliPHOSDigit&) ;

 public:
  
  AliPHOSDigit() ;
  AliPHOSDigit(Int_t primary, Int_t id, Int_t DigEnergy, Float_t Time, Int_t index = -1) ;
  AliPHOSDigit(Int_t primary, Int_t id, Float_t energy , Float_t Time, Int_t index = -1) ;
  AliPHOSDigit(const AliPHOSDigit & digit) ;
  virtual ~AliPHOSDigit() ;
  void   Clear(const Option_t*);
  Bool_t operator==(const AliPHOSDigit &rValue) const;

  AliPHOSDigit& operator += (AliPHOSDigit const &rValue) ;
  AliPHOSDigit& operator *= (Float_t factor) ; 

public:

  Int_t     Compare(const TObject * obj) const ;  
  Int_t     GetNprimary()           const { return fNprimary ; }
  Int_t     GetPrimary(Int_t index) const ; 
  Float_t   GetEnergy(void)         const {return fEnergy ;}
  Float_t   GetTime(void)           const {return fTime ;}
  Float_t   GetTimeR(void)          const {return fTimeR ;}
  Int_t     GetNSamplesHG()         const {return fNSamplesHG;}
  Int_t     GetNSamplesLG()         const {return fNSamplesLG;}
  UShort_t *GetSamplesHG()          const {return fSamplesHG;}
  UShort_t *GetSamplesLG()          const {return fSamplesLG;}
  Bool_t    IsSortable()            const { return kTRUE ; }
  Bool_t    IsLG()                  const {return fIsLG ;}
  void      Print(const Option_t * = "") const;
  void      SetAmp(Int_t Amp)      {fAmp   = Amp  ;} 
  void      SetEnergy(Float_t E)   {fEnergy= E    ;} 
  void      SetTime(Float_t time)  {fTime  = time ;}
  void      SetTimeR(Float_t time) {fTimeR = time ;}
  void      SetALTROSamplesHG(Int_t nSamplesHG, Int_t *samplesHG);
  void      SetALTROSamplesLG(Int_t nSamplesLG, Int_t *samplesLG);
  void      ShiftPrimary(Int_t shift); // shift to separate different TreeK in merging
  void      SetLG(Bool_t inLG){fIsLG=inLG;} //mark digits produced from LG when HG in overflow
private:
  AliPHOSDigit & operator = (const AliPHOSDigit & /*digit*/);

private:
  Bool_t      fIsLG;       //If this digit created from HG or LG channels
  Int_t       fNprimary ;  // Number of primaries
  Int_t *     fPrimary ;   //[fNprimary] Array of primaries      
  Float_t     fEnergy ;    // Deposited energy in ADC counts
  Float_t     fTime ;      // Calculcated time 
  Float_t     fTimeR ;     // Earliest time: to be used by Digits2Raw
  Int_t       fNSamplesHG; // Number of high-gain ALTRO samples
  Int_t       fNSamplesLG; // Number of low-gain  ALTRO samples
  UShort_t   *fSamplesHG;  //[fNSamplesHG] Array of high-gain ALTRO samples
  UShort_t   *fSamplesLG;  //[fNSamplesLG] Array of low-gain  ALTRO samples

  ClassDef(AliPHOSDigit,7) // Digit in PHOS 

} ;

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