EMCAL
[u/mrichter/AliRoot.git] / PHOS / PHOSbase / 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 /* History of cvs commits:
9  *
10  * $Log$
11  * Revision 1.23  2006/08/28 10:01:56  kharlov
12  * Effective C++ warnings fixed (Timur Pocheptsov)
13  *
14  * Revision 1.22  2005/05/28 14:19:05  schutz
15  * Compilation warnings fixed by T.P.
16  *
17  */
18
19 //_________________________________________________________________________
20 //  Track segment in PHOS
21 //  Can be : 1 EmcRecPoint
22 //           1 EmcRecPoint + 1 CPV
23 //                  
24 //*-- Author:  Dmitri Peressounko (RRC KI & SUBATECH)
25
26 // --- ROOT system ---
27
28 #include "TObject.h"
29 class TClonesArray ; 
30
31 // --- Standard library ---
32
33 // --- AliRoot header files ---
34 class AliPHOSRecPoint ; 
35 class AliPHOSEmcRecPoint ; 
36 class AliPHOSCpvRecPoint ; 
37 class AliESDtrack ; 
38
39 class AliPHOSTrackSegment : public TObject  {
40
41 public:
42
43   AliPHOSTrackSegment() ;
44   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
45                       AliPHOSRecPoint * Cpv) ;
46   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
47                       AliPHOSRecPoint * Cpv, Int_t track) ;
48   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
49                       AliPHOSRecPoint * Cpv, Int_t track, 
50                       Float_t dx, Float_t dz) ;
51   AliPHOSTrackSegment(const AliPHOSTrackSegment & ts) ;  // ctor                   
52   virtual ~AliPHOSTrackSegment() {  } 
53
54   void    SetCpvDistance(Float_t x,Float_t z){fDcpv[0]=x ; fDcpv[1]=z ; }
55
56   void Copy(TObject & obj) const;  
57
58   Int_t   GetIndexInList() const {  return fIndexInList ;   } 
59   Int_t   GetEmcIndex()    const {  return fEmcRecPoint ;   }
60   Int_t   GetCpvIndex()    const {  return fCpvRecPoint; }
61   Int_t   GetTrackIndex()  const {  return fTrack; }
62   Float_t GetCpvDistance(const Option_t* dr="r") const ;
63
64   virtual void  Print(const Option_t * = "") const;
65   void    SetIndexInList(Int_t val){ fIndexInList = val ;     } 
66   void    SetCpvRecPoint(AliPHOSRecPoint * CpvRecPoint ); //sets CPV Rec Point
67
68   typedef TClonesArray TrackSegmentsList ; 
69  
70 private:
71   AliPHOSTrackSegment & operator = (const AliPHOSTrackSegment & /*ts*/);
72  private:
73   
74   Int_t fEmcRecPoint ;     // The EMC reconstructed point index in array stored in TreeR/PHOSEmcRP
75   Int_t fIndexInList ;     // the index of this TrackSegment in the list stored in TreeR (to be set by analysis)
76   Int_t fCpvRecPoint ;     // The CPV reconstructed point in array stored in TreeR/PHOSCpvRP
77   Int_t fTrack ;           // The charged track index (from global tracking) in ESD file 
78   Float_t fDcpv[2] ;       // Distance to projection of CPV cluster
79
80  ClassDef(AliPHOSTrackSegment,1)  // Track segment in PHOS
81
82 };
83
84 #endif // ALIPHOSTRACKSEGMENT_H