]>
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 | |
ad8cfaf4 | 44 | Int_t Compare(const TObject * obj) const; // method for sorting |
45 | void EvalAll( void ) ; | |
46 | void EvalLocalPosition(void ) ; // computes the position in the PHOS module | |
47 | Float_t GetDelta () const { return fDelta ; } // gets the fDelta data member | |
48 | Float_t GetDispersion() const ; // computes the dispersion of the shower | |
49 | void GetElipsAxis(Float_t * lambda) const; // computes the axis of shower ellipsoide | |
50 | Float_t * GetEnergiesList()const {return fEnergyList ;} // gets the list of energies making this recpoint | |
458282ff | 51 | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ; |
ad8cfaf4 | 52 | Float_t GetLocMaxCut () const {return fLocMaxCut ; } // gets the cut of the local maximum search |
53 | Float_t GetLogWeightCut ()const {return fW0 ; } // gets the logarythmic weight for the | |
54 | // center of gravity calculation | |
55 | Float_t GetMaximalEnergy(void) const ; // get the highest energy in the cluster | |
56 | Int_t GetMaximumMultiplicity() const {return fMaxDigit ;} // gets the maximum number of digits allowed | |
57 | Int_t GetMultiplicity(void) const {return fMulDigit ; } // gets the number of digits making this recpoint | |
58 | Int_t GetMultiplicityAtLevel(const Float_t level) const; // computes multiplicity of digits with energy | |
59 | // above relative level | |
60 | Int_t GetNumberOfLocalMax(Int_t * maxAt, Float_t * maxAtEnergy) const ; // searches for the local maxima | |
458282ff | 61 | |
ad8cfaf4 | 62 | void GetClusterLengths(Int_t &lengX, Int_t &lengZ); // cluster lengths along x and z |
63 | Bool_t IsEmc(void) const {return kFALSE ; } // tells that this is not a EMC | |
64 | Bool_t IsCPV(void) const {return (fPHOSMod <= ((AliPHOSGeometry*) fGeom)->GetNCPVModules()) ; } | |
65 | // true if the recpoint is in CPV | |
66 | Bool_t IsSortable() const { return kTRUE ; } // says that emcrecpoints are sortable objects | |
458282ff | 67 | void Print(Option_t * opt = "void") ; |
68 | ||
69 | AliPHOSCpvRecPoint & operator = (const AliPHOSCpvRecPoint & rvalue) { | |
a3dfe79c | 70 | // assignement operator requested by coding convention but not needed |
458282ff | 71 | assert(0==1) ; |
72 | return *this ; | |
73 | } | |
74 | ||
75 | private: | |
76 | ||
ad8cfaf4 | 77 | Bool_t AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) const ; |
458282ff | 78 | |
79 | Float_t fDelta ; // parameter used to sort the clusters | |
80 | Float_t *fEnergyList ; //[fMulDigit] energy of digits | |
81 | Float_t fLocMaxCut ; // minimum energy difference to distinguish two maxima | |
82 | Float_t fW0 ; // logarithmic weight factor for center of gravity calculation | |
83 | Int_t fLengX ; // cluster length along x | |
84 | Int_t fLengZ ; // cluster length along z | |
85 | ||
86 | ClassDef(AliPHOSCpvRecPoint,1) // CPV RecPoint (cluster) | |
87 | ||
88 | }; | |
89 | ||
90 | #endif // AliPHOSCPVRECPOINT_H |