]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALRecPoint.h
Adding TestSuite
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecPoint.h
1 #ifndef ALIEMCALRECPOINT_H
2 #define ALIEMCALRECPOINT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 //_________________________________________________________________________
6 //  Base Class for EMCAL Reconstructed Points  
7 //  A recpoint being equivalent to a cluster in encal terminology                 
8 //*-- Author: Yves Schutz (SUBATECH)
9
10 // --- ROOT system ---
11
12 // --- Standard library ---
13
14 // --- AliRoot header files ---
15
16 #include "AliRecPoint.h"
17 #include "AliEMCALDigit.h"
18
19 class AliEMCALRecPoint : public AliRecPoint {
20
21  public:
22   
23   typedef TObjArray RecPointsList ; 
24
25   AliEMCALRecPoint() ;                   // ctor         
26   AliEMCALRecPoint(const char * opt) ;   // ctor 
27   AliEMCALRecPoint(const AliEMCALRecPoint & rp):AliRecPoint(rp) { Fatal("cpy ctor", "not implemented") ; } 
28   
29   virtual ~AliEMCALRecPoint(){
30     // dtor
31   }
32   virtual  void   AddDigit(AliDigitNew &){ Fatal("AddDigit", "use AddDigit(AliEMCALDigit & digit, Float_t Energy )") ; }
33   virtual  void   AddDigit(AliEMCALDigit & digit, Float_t Energy) = 0 ; 
34   virtual Int_t   Compare(const TObject * obj) const = 0 ;   
35   virtual Int_t   DistancetoPrimitive(Int_t px, Int_t py);
36   virtual void    Draw(Option_t * option="") ;
37   virtual void    ExecuteEvent(Int_t event, Int_t, Int_t) ;
38   virtual void    EvalAll(Float_t /*logWeight*/,TClonesArray * digits) ;  
39   virtual void    EvalEMCALArm(AliEMCALDigit * digit) ;  
40   virtual void    EvalPrimaries(TClonesArray * digits) ;  
41   virtual Int_t   GetEMCALArm(void) const {return fEMCALArm ; }
42   virtual void    GetGlobalPosition(TVector3 & /*gpos*/, TMatrix & /*gmat*/) const {;} // return global position in ALICE
43   virtual void    GetGlobalPosition(TVector3 & gpos) const ; // return global position (r, theta, phi) in ALICE
44   virtual void    GetLocalPosition(TVector3 & lpos) const ; // return loca position (x, y, z) in EMCAL
45   //  virtual Int_t   GetEMCALMod(void) const {return fEMCALMod ; }
46   virtual Int_t * GetPrimaries(Int_t & number) const {number = fMulTrack ; 
47                                                       return fTracksList ; }
48   virtual Bool_t  IsEmc(void)const { return kTRUE ;  }
49   const Bool_t IsInECA(void) const { return fECASection ; } 
50   const Bool_t IsInHCA(void) const { return fHCASection ; } 
51   const Bool_t IsInPRE(void) const { return fPRESection ; } 
52   virtual Bool_t  IsSortable() const { 
53     // tells that this is a sortable object
54     return kTRUE ; 
55   }  
56   virtual void    Paint(Option_t * option="");
57   virtual void    Print(Option_t * /*opt = "void"*/) const {
58     // Print prototype
59   } 
60   
61   void SetECA() { fECASection = kTRUE ; } 
62   void SetHCA() { fHCASection = kTRUE ; } 
63   void SetPRE()  { fPRESection  = kTRUE ; } 
64   AliEMCALRecPoint & operator = (const AliEMCALRecPoint & )  {
65     Fatal("operator =", "not implemented") ;
66     return *this ; 
67   }
68
69 protected:
70   
71   Int_t fEMCALArm ; // EMCAM Arm number
72   Float_t fTheta ; // theta angle in Alice
73   Float_t fPhi ;   // phi angle in Alice
74   Bool_t  fECASection ; // tells if the recpoint is in ECAL section 
75   Bool_t  fHCASection ; // tells if the recpoint is in HCAL section 
76   Bool_t  fPRESection ;  // tells if the recpoint is in PRE section 
77
78   ClassDef(AliEMCALRecPoint,3) // RecPoint for EMCAL (Base Class)
79  
80 };
81
82 #endif // AliEMCALRECPOINT_H