1 #ifndef AliPHOSEvalRecPoint_H
2 #define AliPHOSEvalRecPoint_H
8 #include "AliPHOSCpvRecPoint.h"
9 #include "AliPHOSClusterizer.h"
10 #include "AliPHOSRecPoint.h"
11 #include "AliPHOSRecManager.h"
13 class AliPHOSEvalRecPoint : public AliPHOSCpvRecPoint
17 AliPHOSEvalRecPoint();
18 AliPHOSEvalRecPoint(Bool_t cpv,AliPHOSEvalRecPoint* parent);
19 AliPHOSEvalRecPoint(Int_t cluster, Bool_t cpv);
20 virtual ~AliPHOSEvalRecPoint() {}
22 Bool_t TooClose(AliPHOSRecPoint* pt) const ;
23 Bool_t NeedToSplit() const ;
25 void MergeClosePoint();
26 void SplitMergedShowers();
27 Int_t UnfoldLocalMaxima();
28 void EvaluatePosition();
29 Bool_t KillWeakPoint();
31 Bool_t IsEmc(void) const { return fIsEmc; }
32 Bool_t IsCPV(void) const { return fIsCpv; }
34 void SetLocalPosition(TVector3& pos) { fLocPos=pos; }
35 void UpdateWorkingPool();
38 Int_t HasChild(TObjArray& children);
42 AliPHOSClusterizer* GetClusterizer();
43 AliPHOSRecManager* GetReconstructionManager() const;
45 void PrintPoint(Option_t* opt);
47 AliPHOSRecPoint* Parent();
48 Float_t Chi2Dof() const;
50 const TObject* GetWorkingPool();
52 void AddToWorkingPool(TObject* obj);
53 TObject* GetFromWorkingPool(Int_t i);
54 Int_t InWorkingPool();
55 void RemoveFromWorkingPool(TObject* obj);
56 void PrintWorkingPool();
58 enum RecPointType {kEmc,kCpv};
63 void InitTwoGam(Float_t* gamma1, Float_t* gamma2);
64 void TwoGam(Float_t* gamma1, Float_t* gamma2);
65 void UnfoldTwoMergedPoints(Float_t* gamma1, Float_t* gamma2);
69 Bool_t fIsEmc; // true if EMC
70 Bool_t fIsCpv; // true if CPV
71 Int_t fParent; // parent
72 Float_t fChi2Dof; // chi^2 per degree of freedom
74 ClassDef(AliPHOSEvalRecPoint,1)