]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/UserTasks/AliCaloClusterInfo.h
0b9c0672a3d23b67b04ff434536cc1ecddabc1c7
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / UserTasks / AliCaloClusterInfo.h
1 #ifndef ALICALOCLUSTERINFO_H
2 #define ALICALOCLUSTERINFO_H
3
4 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //***********************************************************
8 // Class AliCaloClusterInfo
9 // class used to extract and store reco info of calo cluster
10 // Author: H-S. Zhu, hongsheng.zhu@cern.ch
11 //                   hszhu@iopp.ccnu.edu.cn
12 //***********************************************************
13
14 #include <TObject.h>
15 #include <TString.h>
16 #include <TLorentzVector.h>
17
18 class AliESDEvent;
19 class AliVCluster;
20 class AliPHOSGeoUtils;
21
22 class AliCaloClusterInfo : public TObject{
23  public:
24   
25   AliCaloClusterInfo();
26   AliCaloClusterInfo(AliVCluster* const clust, AliESDEvent* const esd, AliPHOSGeoUtils* const phosGeo, Double_t vtx[3]);
27   AliCaloClusterInfo(const AliCaloClusterInfo &src);
28   AliCaloClusterInfo& operator=(const AliCaloClusterInfo &src);
29   virtual ~AliCaloClusterInfo();
30
31   TLorentzVector LorentzVector() const{ return fLorentzVector; }
32
33   Int_t    GetModule()         const { return fModule;          }
34   Int_t    GetNCells()         const { return fNCells;          }
35   Int_t    GetTRUNumber()      const { return fTRUNumber;       }
36   Int_t    GetNTracksMatched() const { return fNTracksMatched;  }
37   Short_t  GetTrackCharge()    const { return fTrackCharge;     }
38   UInt_t   GetPIDBit()         const { return fPIDBit;          }
39   Double_t GetDistToBad()      const { return fDistToBad;       }
40   Double_t GetEmcCpvDistance() const { return fEmcCpvDistance;  }
41   Double_t GetM02()            const { return fM02;             }
42   Double_t GetM20()            const { return fM20;             }
43   Double_t GetTOF()            const { return fTOF;             }
44   Double_t GetTrackDz()        const { return fTrackDz;         }
45   Double_t GetTrackDx()        const { return fTrackDx;         }
46   Double_t GetTrackPt()        const { return fTrackPt;         }
47
48   void SetPIDBit(UInt_t bit)         { fPIDBit    |= bit;       }
49
50   Bool_t TestCPV(Double_t mf);
51
52   static void SetLogWeight(Float_t logWeight=0.05) { fgLogWeight = logWeight; }
53
54  private:
55
56   void FillCaloClusterInfo(AliVCluster* const clust, AliESDEvent* const esd, AliPHOSGeoUtils* const phosGeo, Double_t vtx[3]);
57   void Reclusterize(AliVCluster *clust, AliPHOSGeoUtils* const phosGeo);
58
59   Bool_t TestDisp();
60   Bool_t AreNeighbors(Int_t id1,Int_t id2, AliPHOSGeoUtils* const phosGeo);
61   Bool_t IsInFiducialRegion(/*Int_t cellX, Int_t cellZ*/);
62   Int_t  GetTRUNumber(Int_t cellX, Int_t cellZ);
63
64   static Float_t fgLogWeight; 
65
66   TLorentzVector fLorentzVector;
67
68   Int_t    fModule;
69   Int_t    fNCells;                      // Number of cells in cluster
70   Int_t    fTRUNumber;                   // TRU Number
71   Int_t    fNTracksMatched;
72   Short_t  fTrackCharge;
73   UInt_t   fPIDBit;                      // PID Bit
74   Double_t fDistToBad ;                  // Distance to nearest bad channel
75   Double_t fEmcCpvDistance;              // Distance from PHOS EMC rec.point to the closest CPV rec.point
76   Double_t fM02;                         // lambda0
77   Double_t fM20;                         // lambda1
78   Double_t fTOF;
79   Double_t fTrackDz;
80   Double_t fTrackDx;
81   Double_t fTrackPt;
82
83   ClassDef(AliCaloClusterInfo,1);
84 };
85
86 #endif // #ifdef ALICALOCLUSTERINFO_H