final geometry and cleanup
[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   virtual Bool_t  IsSortable() const { 
51     // tells that this is a sortable object
52     return kTRUE ; 
53   }  
54   virtual void    Paint(Option_t * option="");
55   virtual void    Print(Option_t * /*opt = "void"*/) const {
56     // Print prototype
57   } 
58   
59   void SetECA() { fECASection = kTRUE ; } 
60   AliEMCALRecPoint & operator = (const AliEMCALRecPoint & )  {
61     Fatal("operator =", "not implemented") ;
62     return *this ; 
63   }
64
65 protected:
66   
67   Int_t fEMCALArm ; // EMCAM Arm number
68   Float_t fTheta ; // theta angle in Alice
69   Float_t fPhi ;   // phi angle in Alice
70   Bool_t  fECASection ; // tells if the recpoint is in ECAL section 
71
72   ClassDef(AliEMCALRecPoint,3) // RecPoint for EMCAL (Base Class)
73  
74 };
75
76 #endif // AliEMCALRECPOINT_H