93ab206f3505a543425ef551c36ddaee5f516a2e
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEmcRecPoint.h
1 #ifndef ALIPHOSEMCRECPOINT_H
2 #define ALIPHOSEMCRECPOINT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //////////////////////////////////////////////////
7 //  Rec Point in the EM calorimeter of PHOS     //
8 //                                              //
9 //  Author Dmitri Peressounko RRC KI            //
10 //   comment: contains list of AliPHOSDigit's * //  
11 //     and evaluates a few average values       //
12 //////////////////////////////////////////////////
13
14 // --- ROOT system ---
15
16 #include "TObject.h"
17
18 // --- Standard library ---
19
20 // --- AliRoot header files ---
21
22 #include "AliPHOSDigit.h"
23 #include "AliPHOSRecPoint.h"
24
25 class AliPHOSEmcRecPoint : public AliPHOSRecPoint  {
26
27 public:
28
29   AliPHOSEmcRecPoint() ;                    
30   AliPHOSEmcRecPoint(Float_t W0, Float_t LocMaxCut) ;
31   //  virtual ~AliPHOSEmcRecPoint() ; 
32   void        AddDigit(AliDigitNew & digit, Float_t Energy) ;  // add a digit to the digits list  
33   Int_t       Compare(TObject * obj) ;                      // method for sorting  
34   
35   Float_t     GetDelta (){ return fDelta ; }    
36   Float_t     GetDispersion() ;                             // computes the dispersion of the shower
37   void        GetElipsAxis(Float_t * lambda) ;              // computes the axis of shower ellipsoide
38   Float_t *   GetEnergiesList(){return fEnergyList ;} 
39   Float_t     GetLocMaxCut () {return fLocMaxCut ; }
40   Float_t     GetLogWeightCut (){return fW0 ; }
41   Float_t     GetMaximalEnergy(void) ;                      // get the highest energy in the cluster
42   Int_t       GetMaximumMultiplicity() { return   fMaxDigit ; } 
43   Int_t       GetMultiplicity(void) const { return fMulDigit ; } 
44   Int_t       GetMultiplicityAtLevel(const Float_t level) ; // computes multiplicity of digits with energy above relative level
45   Int_t       GetNumberOfLocalMax(int *  maxAt, Float_t * maxAtEnergy) ;     // searches for the local maxima 
46  
47   Float_t     GetTotalEnergy(void) const { return fAmp ; } // in EMC RecPoint Amp = Energy
48   void        GetLocalPosition(TVector3 &Lpos) ;            // computes the position in the PHOS module 
49   Bool_t      IsEmc(void) {return kTRUE ; } 
50   Bool_t IsSortable() const { return kTRUE ; } 
51   void Print(Option_t * opt = "void") ; 
52
53 private:
54
55   Bool_t AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) ;
56
57 public:
58
59   //  AliPHOSEmcRecPoint& operator = (AliPHOSEmcRecPoint clu) ;  
60   
61 private:
62   Float_t        fDelta ;        // parameter used to sort the clusters   
63   Float_t        fLocMaxCut ;    // parameter used for local maximum searc
64   Float_t    *   fEnergyList ;   //energy of digits
65   Float_t        fW0 ;           // logarithmic weight factor for center of gravity calculation
66
67 public: 
68
69 ClassDef(AliPHOSEmcRecPoint,1)  // EMC cluster, version 1
70
71 };
72
73 #endif // AliPHOSEMCRECPOINT_H