1 #ifndef AliPHOSEvalRecPoint_H
2 #define AliPHOSEvalRecPoint_H
8 #include "AliPHOSCpvRecPoint.h"
9 class AliPHOSClusterizer;
10 class AliPHOSRecPoint;
11 class AliPHOSRecManager;
14 class AliPHOSEvalRecPoint : public AliPHOSCpvRecPoint
18 AliPHOSEvalRecPoint();
19 AliPHOSEvalRecPoint(Bool_t cpv,AliPHOSEvalRecPoint* parent);
20 AliPHOSEvalRecPoint(Int_t cluster, Bool_t cpv);
21 virtual ~AliPHOSEvalRecPoint() {}
23 Bool_t TooClose(AliPHOSRecPoint* pt) const ;
24 Bool_t NeedToSplit() const ;
26 void MergeClosePoint();
27 void SplitMergedShowers();
28 Int_t UnfoldLocalMaxima();
29 void EvaluatePosition();
30 Bool_t KillWeakPoint();
32 Bool_t IsEmc(void) const { return fIsEmc; }
33 Bool_t IsCPV(void) const { return fIsCpv; }
35 void SetLocalPosition(TVector3& pos) { fLocPos=pos; }
36 void UpdateWorkingPool();
39 Int_t HasChild(TObjArray& children);
43 AliPHOSClusterizer* GetClusterizer();
44 AliPHOSRecManager* GetReconstructionManager() const;
48 AliPHOSRecPoint* Parent();
49 Float_t Chi2Dof() const;
51 const TObject* GetWorkingPool();
53 void AddToWorkingPool(TObject* obj);
54 TObject* GetFromWorkingPool(Int_t i);
55 Int_t InWorkingPool();
56 void RemoveFromWorkingPool(TObject* obj);
57 void PrintWorkingPool();
59 enum RecPointType {kEmc,kCpv};
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);
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
76 ClassDef(AliPHOSEvalRecPoint,1)