new non linearity function and parameters for latest simulations with better agreemen...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTrack.h
1 //========================================================================  
2 // Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.  
3 // See cxx source for full Copyright notice                                
4 //========================================================================  
5 //                       
6 //                       Class AliEMCALTrack 
7 //                      ---------------------
8 // Implementation of a track to be used for EMCAL track matching.
9 // This object is used to find track intersection with EMCAL surface
10 // in order to find the most well matched EMCAL cluster to associate to it.              
11 // NO Kalman-like parameter updating is done.
12 //
13 // ------------------------------------------------------------------------
14 // author: A. Pulvirenti (alberto.pulvirenti@ct.infn.it)
15 //=========================================================================
16
17 #ifndef AliEMCALTRACK_H
18 #define AliEMCALTRACK_H
19
20 #include "AliExternalTrackParam.h"
21
22 class AliESDtrack;
23
24 class AliEMCALTrack : public AliExternalTrackParam
25 {
26   
27 public:
28
29         AliEMCALTrack();
30         AliEMCALTrack(const AliESDtrack& t);
31         AliEMCALTrack(const AliEMCALTrack& t);
32         AliEMCALTrack& operator=(const AliEMCALTrack &t);
33         
34   Bool_t      PropagateTo(Double_t xr, Double_t d = 0.0, Double_t x0 = 21.82);
35         Double_t    StraightPropagateTo(Double_t xk, Double_t &x, Double_t &y, Double_t &z);
36         Bool_t      PropagateToGlobal(Double_t x, Double_t y, Double_t z, Double_t d = 0.0, Double_t x0 = 21.82);  
37   
38         Int_t       Compare(const TObject *o)        const ;
39         Int_t       GetClusterIndex()                const { return fClusterIndex     ; }
40         Double_t    GetClusterDist()                 const { return fClusterDist      ; }
41         Double_t    GetMass()                        const { return fMass             ; }
42         Int_t       GetSeedIndex()                   const { return fSeedIndex        ; }
43         Int_t       GetSeedLabel()                   const { return fSeedLabel        ; }
44         Bool_t      IsSortable()                     const { return kTRUE             ; }
45                         
46         void        SetClusterIndex(Int_t idx)             { fClusterIndex    = idx   ; }
47         void        SetClusterDist(Double_t dist)          { fClusterDist     = dist  ; }
48         void        SetMass(Double_t mass)                 { fMass            = mass  ; }
49         void        SetSeedIndex(Int_t index)              { fSeedIndex       = index ; }
50         void        SetSeedLabel(Int_t label)              { fSeedLabel       = label ; }
51                 
52         static void SetUseOuterParams(Bool_t doit = kTRUE) { fgUseOuterParams = doit  ; }
53         static void SetCorrectForEL  (Bool_t doit = kTRUE) { fgCorrectForEL   = doit  ; }
54         static void SetSortByPt      (Bool_t doit = kTRUE) { fgSortByPt       = doit  ; }
55
56 protected:
57         
58         Bool_t      SimplePropagation(Double_t xk, Double_t d = 0.0, Double_t x0 = 0.0);
59         
60         static  Bool_t    fgUseOuterParams;    // use outer parameters from AliESDtrack?
61         static  Bool_t    fgCorrectForEL;      // apply corrections for energy loss?
62         static  Bool_t    fgSortByPt;          // true --> sort by pt, false --> sort by track-cluster distance
63                 Int_t     fClusterIndex;       // index of matched cluster (if any)
64                 Double_t  fClusterDist;        // distance between track propagation and matched cluster
65                 Double_t  fMass;               // mass hypothesis (in GeV/c2)
66                 Int_t     fSeedIndex;          // index of imported ESD track in its owner AliESD
67                 Int_t     fSeedLabel;          // GEANT label of imported ESD track
68
69 private:
70         
71         ClassDef(AliEMCALTrack, 0) // track implementation for EMCAL matching
72
73 };
74
75 #endif