Added static AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface function that operates...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTrack.h
CommitLineData
fe17d4cb 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
22class AliESDtrack;
23
24class AliEMCALTrack : public AliExternalTrackParam
25{
da25bc37 26
fe17d4cb 27public:
28
29 AliEMCALTrack();
fe17d4cb 30 AliEMCALTrack(const AliESDtrack& t);
c61f0e70 31 AliEMCALTrack(const AliEMCALTrack& t);
fe17d4cb 32 AliEMCALTrack& operator=(const AliEMCALTrack &t);
33
da25bc37 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 ; }
fe17d4cb 51
da25bc37 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 ; }
fe17d4cb 55
56protected:
57
da25bc37 58 Bool_t SimplePropagation(Double_t xk, Double_t d = 0.0, Double_t x0 = 0.0);
c61f0e70 59
fe17d4cb 60 static Bool_t fgUseOuterParams; // use outer parameters from AliESDtrack?
c61f0e70 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
fe17d4cb 63 Int_t fClusterIndex; // index of matched cluster (if any)
64 Double_t fClusterDist; // distance between track propagation and matched cluster
c61f0e70 65 Double_t fMass; // mass hypothesis (in GeV/c2)
fe17d4cb 66 Int_t fSeedIndex; // index of imported ESD track in its owner AliESD
c61f0e70 67 Int_t fSeedLabel; // GEANT label of imported ESD track
68
fe17d4cb 69private:
70
71 ClassDef(AliEMCALTrack, 0) // track implementation for EMCAL matching
72
c61f0e70 73};
fe17d4cb 74
75#endif