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