a few modifications to satisty aCC
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegment.h
1 #ifndef ALIPHOSTRACKSEGMENT_H
2 #define ALIPHOSTRACKSEGMENT_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 //  Track segment in PHOS
10 //  Can be : 1 EmcRecPoint
11 //           1 EmcRecPoint + 1 PPSD
12 //           1 EmcRecPoint + 1 PPSD + 1 PPSD     
13 //                  
14 //*-- Author:  Dmitri Peressounko (RRC KI & SUBATECH)
15
16 // --- ROOT system ---
17
18 #include "TObject.h"
19 #include "TVector3.h"
20
21 // --- Standard library ---
22
23 // --- AliRoot header files ---
24
25 #include "AliPHOSEmcRecPoint.h"
26 #include "AliPHOSPpsdRecPoint.h"
27
28 class AliPHOSTrackSegment : public TObject  {
29
30 public:
31
32   AliPHOSTrackSegment() {
33     // default ctor
34   } 
35   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
36                       AliPHOSPpsdRecPoint * PpsdUp, 
37                       AliPHOSPpsdRecPoint * PpsdLow  ) ; // ctor
38   AliPHOSTrackSegment(const AliPHOSTrackSegment & ts) ;  // ctor                   
39   virtual ~AliPHOSTrackSegment() {
40     // dtor
41   } 
42
43   void Copy(TObject & obj) ;  
44   virtual Int_t  DistancetoPrimitive(Int_t px, Int_t py);
45   virtual void   Draw(Option_t * option="") ;
46   virtual void   ExecuteEvent(Int_t event, Int_t px, Int_t py);
47   Float_t GetEnergy() ;   // Returns energy in EMC
48   
49   Float_t GetDistanceInPHOSPlane(void) ;   // Computes in PHOS plane the relative position between EMC and PPSD clusters 
50   virtual Int_t  GetPHOSMod(void) ; 
51   TVector3 GetMomentumDirection() ;        // Returns the momentum direction
52   void    GetPosition( TVector3 & pos ) ;  // Returns positions of hit
53   Int_t * GetPrimariesEmc(Int_t & number) ;
54   Int_t * GetPrimariesPpsdLow(Int_t & number) ;
55   Int_t * GetPrimariesPpsdUp(Int_t & number) ;
56   AliPHOSEmcRecPoint *   GetEmcRecPoint() const ;  
57   Int_t   GetIndexInList() const { 
58     // returns the index of this in the list  
59     return fIndexInList ; 
60   } 
61   Int_t                   GetEmcRecPointIndex() {
62     // return the index of the EMC recpoint at the origine of this 
63     return fEmcRecPoint ; 
64   }
65   AliPHOSPpsdRecPoint *  GetPpsdLowRecPoint() const ;
66   Int_t                  GetPpsdLowRecPointIndex() {
67     // returns the PPSD low recpoint at the origin of this 
68     return fPpsdLowRecPoint ; 
69   }
70   AliPHOSPpsdRecPoint *  GetPpsdUpRecPoint() const ; 
71   Int_t                  GetPpsdUpRecPointIndex() {
72     // returns the PPSD up recpoint at the origin of this 
73     return fPpsdUpRecPoint ; 
74   }
75   virtual void  Paint(Option_t * option="");
76   virtual void  Print(const char *) ;
77   void    SetIndexInList(Int_t val) { 
78     // sets the index value  of this in the list 
79     fIndexInList = val ; 
80   } 
81
82   typedef TClonesArray TrackSegmentsList ; 
83  
84  private:
85   
86   Int_t fEmcRecPoint ;     // The EMC reconstructed point index in array stored in TreeR/PHOSEmcRP
87   Int_t fIndexInList ;     // the index of this TrackSegment in the list stored in TreeR (to be set by analysis)
88   Int_t fPpsdLowRecPoint ; // The PPSD reconstructed point from the lower layer index in array stored in TreeR/PHOSPpsdRP
89   Int_t fPpsdUpRecPoint ;  // The PPSD reconstructed point from the upper layer index in array stored in TreeR/PHOSPpsdRP
90   
91   ClassDef(AliPHOSTrackSegment,1)  // Track segment in PHOS
92
93 };
94
95 #endif // ALIPHOSTRACKSEGMENT_H