EMCAL
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEvalRecPoint.h
1 #ifndef AliPHOSEvalRecPoint_H
2 #define AliPHOSEvalRecPoint_H
3
4 // --- ROOT system ---
5 #include "TObjArray.h"
6
7
8 #include "AliPHOSCpvRecPoint.h"
9 class AliPHOSClusterizer;
10 class AliPHOSRecPoint;
11 class AliPHOSRecManager;
12 class TString;
13
14 class AliPHOSEvalRecPoint : public AliPHOSCpvRecPoint
15 {
16 public:
17
18   AliPHOSEvalRecPoint();
19   AliPHOSEvalRecPoint(Bool_t cpv,AliPHOSEvalRecPoint* parent);
20   AliPHOSEvalRecPoint(Int_t cluster, Bool_t cpv);
21   virtual ~AliPHOSEvalRecPoint() {}
22
23   Bool_t TooClose(AliPHOSRecPoint* pt) const ;
24   Bool_t NeedToSplit() const ;
25
26   void MergeClosePoint();
27   void SplitMergedShowers();
28   Int_t UnfoldLocalMaxima();
29   void EvaluatePosition();
30   Bool_t KillWeakPoint();
31
32   Bool_t IsEmc(void) const { return fIsEmc; }
33   Bool_t IsCPV(void) const { return fIsCpv; }
34
35   void SetLocalPosition(TVector3& pos) { fLocPos=pos; }
36   void UpdateWorkingPool();
37   void DeleteParent();
38
39   Int_t HasChild(TObjArray& children);
40
41   void MakeJob();
42
43   AliPHOSClusterizer* GetClusterizer();
44   AliPHOSRecManager* GetReconstructionManager() const;
45   
46   void PrintPoint();
47
48   AliPHOSRecPoint* Parent();
49   Float_t Chi2Dof() const;
50
51   const TObject* GetWorkingPool();
52
53   void AddToWorkingPool(TObject* obj);
54   TObject* GetFromWorkingPool(Int_t i);
55   Int_t InWorkingPool();
56   void RemoveFromWorkingPool(TObject* obj);
57   void PrintWorkingPool();
58
59   enum RecPointType {kEmc,kCpv};
60
61 private:
62
63   void Init();
64   void InitTwoGam(Float_t* gamma1, Float_t* gamma2);
65   void TwoGam(Float_t* gamma1, Float_t* gamma2);
66   void UnfoldTwoMergedPoints(Float_t* gamma1, Float_t* gamma2);
67
68 private:
69
70   Bool_t fIsEmc;    // true if EMC
71   Bool_t fIsCpv;    // true if CPV
72   Int_t fParent;    // parent
73   Float_t fChi2Dof; // chi^2 per degree of freedom
74   TString fEventFolderName; // Folder name
75
76   ClassDef(AliPHOSEvalRecPoint,1)
77
78 };
79
80 #endif