1 //========================================================================
2 // Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
3 // See cxx source for full Copyright notice
4 //========================================================================
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.
13 // ------------------------------------------------------------------------
14 // author: A. Pulvirenti (alberto.pulvirenti@ct.infn.it)
15 //=========================================================================
17 #ifndef AliEMCALTRACK_H
18 #define AliEMCALTRACK_H
20 #include "AliExternalTrackParam.h"
24 class AliEMCALTrack : public AliExternalTrackParam
29 AliEMCALTrack(const AliESDtrack& t);
30 AliEMCALTrack(const AliEMCALTrack& t);
31 AliEMCALTrack& operator=(const AliEMCALTrack &t);
33 Int_t Compare(const TObject *o) const;
35 Double_t GetBz() const;
36 Int_t GetClusterIndex() const {return fClusterIndex;}
37 Double_t GetClusterDist() const {return fClusterDist;}
38 Double_t GetMass() const {return fMass;}
39 Int_t GetSeedIndex() const {return fSeedIndex;}
40 Int_t GetSeedLabel() const {return fSeedLabel;}
42 Bool_t IsSortable() const {return kTRUE;}
43 Bool_t PropagateTo(Double_t xr, Double_t d = 0.0, Double_t x0 = 21.82);
44 Double_t StraightPropagateTo(Double_t xk, Double_t &x, Double_t &y, Double_t &z);
45 Bool_t PropagateToGlobal(Double_t x, Double_t y, Double_t z, Double_t d = 0.0, Double_t x0 = 21.82);
47 void SetClusterIndex(Int_t idx) {fClusterIndex = idx;}
48 void SetClusterDist(Double_t dist) {fClusterDist = dist;}
49 void SetMass(Double_t mass) {fMass = mass;}
50 void SetSeedIndex(Int_t index) {fSeedIndex = index;}
51 void SetSeedLabel(Int_t label) {fSeedLabel = label;}
53 static void SetUseOuterParams(Bool_t doit = kTRUE) {fgUseOuterParams = doit;}
54 static void SetCorrectForEL(Bool_t doit = kTRUE) {fgCorrectForEL = doit;}
55 static void SetSortByPt(Bool_t doit = kTRUE) {fgSortByPt = doit;}
59 Bool_t SimplePropagation(Double_t xk, Double_t d = 0.0, Double_t x0 = 0.0);
61 static Bool_t fgUseOuterParams; // use outer parameters from AliESDtrack?
62 static Bool_t fgCorrectForEL; // apply corrections for energy loss?
63 static Bool_t fgSortByPt; // true --> sort by pt, false --> sort by track-cluster distance
64 Int_t fClusterIndex; // index of matched cluster (if any)
65 Double_t fClusterDist; // distance between track propagation and matched cluster
66 Double_t fMass; // mass hypothesis (in GeV/c2)
67 Int_t fSeedIndex; // index of imported ESD track in its owner AliESD
68 Int_t fSeedLabel; // GEANT label of imported ESD track
72 ClassDef(AliEMCALTrack, 0) // track implementation for EMCAL matching