1323117ef15c22d4b4925b8d7e56794f2e02b788
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegment.h
1 #ifndef ALIPHOSSUBTRACK_H
2 #define ALIPHOSSUBTRACK_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 //  Short description                          //
10 //  Version SUBATECH                           //
11 //  Author Dmitri Peressounko RRC KI           //
12 //      comment: contains pairs (triplets) of  //  
13 //               EMC+PPSD(+PPSD) clusters, and //
14 //               evaluates particle type,      // 
15 //               energy, etc                   //
16 /////////////////////////////////////////////////
17
18 // --- ROOT system ---
19
20 #include "TObject.h"
21 #include "TVector3.h"
22
23 // --- Standard library ---
24
25 // --- AliRoot header files ---
26
27 #include "AliPHOSEmcRecPoint.h"
28 #include "AliPHOSPpsdRecPoint.h"
29
30 const static Int_t kGAMMA         = 0 ; 
31 const static Int_t kELECTRON      = 1 ;
32 const static Int_t kNEUTRAL       = 2 ;  
33 const static Int_t kCHARGEDHADRON = 3 ;  
34
35 class AliPHOSTrackSegment : public TObject  {
36
37 public:
38
39   AliPHOSTrackSegment() {} ;       // ctor 
40   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , AliPHOSPpsdRecPoint * PpsdUp, 
41                       AliPHOSPpsdRecPoint * PpsdLow  ) ; // ctor
42   AliPHOSTrackSegment(const AliPHOSTrackSegment & ts) ;  // ctor                   
43   virtual ~AliPHOSTrackSegment() ; // dtor 
44
45   void Copy(TObject & obj) ;  
46   virtual Int_t  DistancetoPrimitive(Int_t px, Int_t py);
47   virtual void   Draw(Option_t * option="") ;
48   virtual void   ExecuteEvent(Int_t event, Int_t px, Int_t py);
49   Int_t GetPartType() ;                    // Returns 0 - gamma, 1 - e+, e- ;  2 - neutral hadron ; 3 - charged hadron
50   Float_t GetEnergy(){ return fEmcRecPoint->GetTotalEnergy() ;}   // Returns energy in EMC
51   
52   Float_t GetDistanceInPHOSPlane(void) ;   // Computes in PHOS plane the relative position between EMC and PPSD clusters 
53   virtual Int_t  GetPHOSMod(void) {return fEmcRecPoint->GetPHOSMod();  }
54   TVector3 GetMomentumDirection() ;        // Returns the momentum direction
55   void GetPosition( TVector3 & pos ) ;     // Returns positions of hit
56   virtual  void  Paint(Option_t * option="");
57   void Print() ;
58   void SetDispersionCutOff(Float_t Dcut) {fCutOnDispersion = Dcut ; }    
59   
60   
61 private:
62   
63   AliPHOSEmcRecPoint  * fEmcRecPoint ;
64   AliPHOSPpsdRecPoint * fPpsdLow ;
65   AliPHOSPpsdRecPoint * fPpsdUp ;
66   
67   Float_t fCutOnDispersion ;   
68
69   ClassDef(AliPHOSTrackSegment,1)  // description , version 1
70
71 };
72
73 #endif // AliPHOSSUBTRACK_H