1de5c39b0036a0619b71583878a29b42e7c3ac7c
[u/mrichter/AliRoot.git] / PHOS / AliPHOSCpvRecPoint.h
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   
11 //*-- Author: Yuri Kharlov
12 //  (after Dmitri Peressounko (RRC KI & SUBATECH))
13 //  30 October 2000 
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 "AliPHOSEmcRecPoint.h"
25
26 class AliPHOSCpvRecPoint : public AliPHOSEmcRecPoint  {
27
28 public:
29
30   AliPHOSCpvRecPoint() ;
31   AliPHOSCpvRecPoint(const AliPHOSCpvRecPoint & rp) {
32     // cpy ctor requested by Coding Convention 
33     // but not yet needed
34     assert(0==1) ; 
35   } 
36  
37   virtual ~AliPHOSCpvRecPoint() ;  
38
39   Int_t  Compare(const TObject * obj) const;                 // method for sorting  
40   void   EvalAll(Float_t logWeight,TClonesArray * digits) ;
41   void   EvalLocalPosition(Float_t logWeight,TClonesArray * digits ) ;  
42   void   EvalClusterLengths(TClonesArray * digits) ;
43
44   virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) const ; 
45
46   void   GetClusterLengths(Int_t &lengX, Int_t &lengZ) const {lengX = fLengX ;lengZ = fLengZ ;}
47   Bool_t IsEmc(void) const {return kFALSE ;   }              // tells that this is not a EMC
48   Bool_t IsCPV(void) const {return (fPHOSMod <= ((AliPHOSGeometry*) fGeom)->GetNCPVModules()) ; }     
49                                                                   // true if the recpoint is in CPV
50   Bool_t IsSortable() const { return kTRUE ; }    // tells that this is a sortable object
51   void        Print(Option_t * opt = "void") ; 
52
53   AliPHOSCpvRecPoint & operator = (const AliPHOSCpvRecPoint & rvalue)  {
54     // assignement operator requested by coding convention but not needed
55     assert(0==1) ;
56     return *this ; 
57   }
58
59  protected:
60
61   Bool_t AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) const ;
62
63   Int_t    fLengX ;          // cluster length along x
64   Int_t    fLengZ ;          // cluster length along z
65   
66   ClassDef(AliPHOSCpvRecPoint,1)  // CPV RecPoint (cluster)
67
68 };
69
70 #endif // AliPHOSCPVRECPOINT_H