Line data Source code
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 0 : 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 0 : Int_t GetClusterIndex() const { return fClusterIndex ; }
40 0 : Double_t GetClusterDist() const { return fClusterDist ; }
41 0 : Double_t GetMass() const { return fMass ; }
42 0 : Int_t GetSeedIndex() const { return fSeedIndex ; }
43 0 : Int_t GetSeedLabel() const { return fSeedLabel ; }
44 0 : Bool_t IsSortable() const { return kTRUE ; }
45 :
46 0 : void SetClusterIndex(Int_t idx) { fClusterIndex = idx ; }
47 0 : void SetClusterDist(Double_t dist) { fClusterDist = dist ; }
48 0 : void SetMass(Double_t mass) { fMass = mass ; }
49 0 : void SetSeedIndex(Int_t index) { fSeedIndex = index ; }
50 0 : void SetSeedLabel(Int_t label) { fSeedLabel = label ; }
51 :
52 0 : static void SetUseOuterParams(Bool_t doit = kTRUE) { fgUseOuterParams = doit ; }
53 0 : static void SetCorrectForEL (Bool_t doit = kTRUE) { fgCorrectForEL = doit ; }
54 0 : 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 72 : ClassDef(AliEMCALTrack, 0) // track implementation for EMCAL matching
72 :
73 : };
74 :
75 : #endif
|