]>
Commit | Line | Data |
---|---|---|
458282ff | 1 | #ifndef ALIPHOSCPVRECPOINT_H |
2 | #define ALIPHOSCPVRECPOINT_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //_________________________________________________________________________ | |
9 | // RecPoint implementation for PHOS-CPV | |
10 | // An CpvRecPoint is a cluster of digits | |
a3dfe79c | 11 | //*-- Author: Yuri Kharlov |
12 | // (after Dmitri Peressounko (RRC KI & SUBATECH)) | |
13 | // 30 October 2000 | |
458282ff | 14 | // --- ROOT system --- |
15 | ||
16 | #include "TObject.h" | |
17 | #include "TArrayI.h" | |
18 | ||
19 | // --- Standard library --- | |
20 | ||
21 | // --- AliRoot header files --- | |
22 | ||
23 | #include "AliPHOSDigit.h" | |
24 | #include "AliPHOSRecPoint.h" | |
25 | ||
26 | class AliPHOSCpvRecPoint : public AliPHOSRecPoint { | |
27 | ||
28 | public: | |
29 | ||
30 | AliPHOSCpvRecPoint(){ | |
31 | // default ctor | |
32 | fEnergyList = 0; | |
33 | } ; | |
34 | AliPHOSCpvRecPoint(Float_t W0, Float_t LocMaxCut) ; | |
35 | AliPHOSCpvRecPoint(const AliPHOSCpvRecPoint & rp) { | |
36 | // cpy ctor requested by Coding Convention | |
37 | // but not yet needed | |
38 | assert(0==1) ; | |
39 | } | |
40 | ||
41 | virtual ~AliPHOSCpvRecPoint() ; | |
42 | ||
43 | virtual void AddDigit(AliPHOSDigit & digit, Float_t Energy) ; // add a digit to the digits list | |
44 | Int_t Compare(TObject * obj) ; // method for sorting | |
45 | ||
46 | Float_t GetDelta (){ | |
47 | // gets the fDelta data member | |
48 | return fDelta ; } | |
49 | Float_t GetDispersion() ; // computes the dispersion of the shower | |
50 | void GetElipsAxis(Float_t * lambda) ; // computes the axis of shower ellipsoide | |
51 | Float_t * GetEnergiesList(){ | |
52 | // gets the list of energies makink this recpoint | |
53 | return fEnergyList ;} | |
54 | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ; | |
55 | Float_t GetLocMaxCut () { | |
56 | // gets the cut of the local maximum search | |
57 | return fLocMaxCut ; } | |
58 | Float_t GetLogWeightCut (){ | |
59 | // gets the logarythmic weight for the center of gravity calculation | |
60 | return fW0 ; } | |
61 | Float_t GetMaximalEnergy(void) ; // get the highest energy in the cluster | |
62 | Int_t GetMaximumMultiplicity() { | |
63 | // gets the maximum number of digits allowed | |
64 | return fMaxDigit ; } | |
65 | Int_t GetMultiplicity(void) const { | |
66 | // gets the number of digits making this recpoint | |
67 | return fMulDigit ; } | |
68 | Int_t GetMultiplicityAtLevel(const Float_t level) ; // computes multiplicity of digits with energy above relative level | |
69 | Int_t GetNumberOfLocalMax(Int_t * maxAt, Float_t * maxAtEnergy) ; // searches for the local maxima | |
70 | ||
71 | Float_t GetTotalEnergy(void) const { | |
72 | // gets the total amplitude of this recpoint (in EMC RecPoint Amp = Energy) | |
73 | return fAmp ; } | |
74 | void GetLocalPosition(TVector3 &Lpos) ; // computes the position in the PHOS module | |
75 | void GetClusterLengths(Int_t &lengX, Int_t &lengZ); // cluster lengths along x and z | |
76 | Bool_t IsCPV(void) { | |
77 | // true if the recpoint is in CPV | |
b73f246d | 78 | return (fPHOSMod <= ((AliPHOSGeometry*) fGeom)->GetNCPVModules()) ; } |
458282ff | 79 | Bool_t IsSortable() const { |
80 | // says that emcrecpoints are sortable objects | |
81 | return kTRUE ; } | |
82 | void Print(Option_t * opt = "void") ; | |
83 | ||
84 | AliPHOSCpvRecPoint & operator = (const AliPHOSCpvRecPoint & rvalue) { | |
a3dfe79c | 85 | // assignement operator requested by coding convention but not needed |
458282ff | 86 | assert(0==1) ; |
87 | return *this ; | |
88 | } | |
89 | ||
90 | private: | |
91 | ||
92 | Bool_t AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) ; | |
93 | ||
94 | Float_t fDelta ; // parameter used to sort the clusters | |
95 | Float_t *fEnergyList ; //[fMulDigit] energy of digits | |
96 | Float_t fLocMaxCut ; // minimum energy difference to distinguish two maxima | |
97 | Float_t fW0 ; // logarithmic weight factor for center of gravity calculation | |
98 | Int_t fLengX ; // cluster length along x | |
99 | Int_t fLengZ ; // cluster length along z | |
100 | ||
101 | ClassDef(AliPHOSCpvRecPoint,1) // CPV RecPoint (cluster) | |
102 | ||
103 | }; | |
104 | ||
105 | #endif // AliPHOSCPVRECPOINT_H |