]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSDigit.h
Runloader is updated when moving to next file (quick fix).
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDigit.h
index 9df7e2df34de44b54f8e35912b8eac40cc636bae..37c88a2f67fd9ee23f0769f14d679786a1a0ac14 100644 (file)
@@ -5,17 +5,30 @@
 
 /* $Id$ */
 
-////////////////////////////////////////////////
-//  The digit  class: a list of abs Id, energy//
-//  Version SUBATECH                          //
-//  Author Laurent Aphecetche     SUBATECH    //
-//      comment: added sortable YS            //  
-//                                            //
-////////////////////////////////////////////////
+/* 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" 
+//#include "TObject.h" 
 
 // --- Standard library ---
 
 #include "AliDigitNew.h"
 
 class AliPHOSDigit : public AliDigitNew {
-  
-public:
-  AliPHOSDigit() {}
-  AliPHOSDigit(Int_t id, Int_t DigEnergy) ;
-  virtual ~AliPHOSDigit() {} 
 
-  Bool_t operator==(AliPHOSDigit const &rValue) const;
-  AliPHOSDigit& operator+(AliPHOSDigit const &rValue) ;
-  
   friend ostream& operator << ( ostream& , const AliPHOSDigit&) ;
+
+ public:
   
-  Int_t   Compare(TObject * obj) ;  
-  Int_t   GetId()     { return fId ; }     
-  Int_t   GetAmp() {  return fAmp  ; } 
-  Bool_t  IsSortable() const{ return kTRUE ; }
-  
-private:
-  Int_t fId ;                // absolute id
-  Int_t fAmp ;               // digitalized energy
-  
-  ClassDef(AliPHOSDigit,1)   // Digit in PHOS, version 1 
+  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() ;
+
+  Bool_t operator==(const AliPHOSDigit &rValue) const;
+
+  AliPHOSDigit& operator += (AliPHOSDigit const &rValue) ;
+  AliPHOSDigit& operator *= (Float_t factor) ; 
+
+public:
+
+  AliPHOSDigit& operator=(const AliPHOSDigit) {
+    Fatal("operator = ", "not implemented") ; return *this ; } 
+  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 ;}
+  Bool_t  IsSortable()            const { return kTRUE ; }
+  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    ShiftPrimary(Int_t shift); // shift to separate different TreeK in merging
+
+ private:
+
+  Int_t   fNprimary ;      // Number of primaries
+  Int_t * fPrimary ;       //[fNprimary] Array of primaries      
+  Float_t fEnergy ;        // Deposited energy in GeV
+  Float_t fTime ;          // Calculcated time 
+  Float_t fTimeR ;         // Earliest time: to be used by Digits2Raw
+    
+  ClassDef(AliPHOSDigit,4) // Digit in PHOS 
 
 } ;