]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEMCALClusterParams.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEMCALClusterParams.h
1 #ifndef ALIEMCALCLUSTERPARAMS_H
2 #define ALIEMCALCLUSTERPARAMS_H
3
4 // $Id$
5
6 #include <TObject.h>
7 class AliESDtrack;
8 class AliESDCaloCluster;
9 class AliEMCALGeometry;
10 class AliESDCaloCells;
11 class TObjArray;
12
13 class AliEMCALClusterParams : public TObject 
14 {
15  public: 
16   AliEMCALClusterParams(AliESDtrack       *trackin, 
17                         AliESDCaloCluster *clusin, 
18                         AliEMCALGeometry  *geometryin, 
19                         AliESDCaloCells   *cellsin);
20   virtual ~AliEMCALClusterParams() {;}
21
22   Double_t   GetPe()                  const; 
23   Int_t      IsElectron()             const;  
24   void       LoopThroughCells()       const;
25   void       PrintClusterParameters() const;
26
27   //==========Un-log-weighted parameters============================================================
28   void       GetCentroid(Double_t &xback, Double_t &yback, Double_t &rback) const;
29   Double_t   GetR(Double_t x, Double_t y)                const;                //Uses Centroid
30   Double_t   GetRfactor()                                const;                //Uses GetR,Centroid
31   Double_t   ElectronFraction(Double_t r, Double_t tce)  const;                //Only used locally for K-factor
32   Double_t   GetKfactor()                                const;                //Gets K-factor, uses electronfraction
33   Double_t   GetDispersionX()                            const;                //Gets unweighted dispersionX
34   Double_t   GetDispersionY()                            const;                //Gets unweighted dispersionY
35   Double_t   GetDispersionMax()                          const;                //Gets unweighted dispersionMax
36   void       GetEllipseParameters(Double_t &param1, Double_t &param2) const;   //Gets M02 M20
37   Double_t   GetDispersion()                             const;                //Unweighted Dispersion
38
39   //==========Log-weighted parameters===============================================================
40   void       GetWeightedCentroid(Double_t &xback, Double_t &yback, Double_t &rback) const;
41   Double_t   GetWeightedR(Double_t x, Double_t y)                             const;       //Weighted r, uses WeightedCentriod
42   Double_t   GetWeightedRfactor()                                             const;       //Uses WeightedR
43   Double_t   ElectronfractionWeighted(Double_t r, Double_t tce)               const;       //Used locally for K-factor weighted
44   Double_t   GetWeightedKfactor()                                             const;       //Gets Weighted K-factor
45   Double_t   GetWeightedDispersionX()                                         const;       //Gets Weighted dispersionX
46   Double_t   GetWeightedDispersionY()                                         const;       //Gets Weighted dispersionY
47   Double_t   GetWeightedDispersionMax()                                       const;       //Gets Weighted dispersionMax
48   void       GetWeightedEllipseParameters(Double_t &param1, Double_t &param2) const;       //Gets weighted M02 M20
49   Double_t   GetWeightedDispersion(Double_t &dispersionback)                  const;       //Gets Weighted dispersion
50
51   void     RecalculateClusterShowerShapeParameters(Double_t &m02, Double_t &m20, Double_t &dispersion) const; //from Gustavo's code!
52
53  private:
54   AliESDtrack        *fTrack;       //!
55   AliESDCaloCluster  *fCluster;     //!
56   AliEMCALGeometry   *fGeom;        //!
57   AliESDCaloCells    *fCells;       //!
58         
59   AliEMCALClusterParams(const AliEMCALClusterParams & g);
60   AliEMCALClusterParams & operator = (const AliEMCALClusterParams & g);
61
62   ClassDef(AliEMCALClusterParams,0) 
63 };
64 #endif //ALIEMCALCLUSTERPARAMS_H