]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliESDTrdTrack.h
Matching with a TPC track for clean-up (Jochen)
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDTrdTrack.h
CommitLineData
0ee00e25 1#ifndef ALIESDTRDTRACK_H
2#define ALIESDTRDTRACK_H
3
52cd0cc0 4//
5// ESD format for the TRD tracks calculated in the
6// Global Tracking Unit, used for the TRD L1 trigger
7// Author: Jochen Klein <jochen.klein@cern.ch>
8
0ee00e25 9
10#include "TObject.h"
52cd0cc0 11#include "TRef.h"
12
13#include "AliESDTrdTracklet.h"
f01d9069 14#include "AliESDtrack.h"
0ee00e25 15
16class AliESDTrdTrack : public TObject {
17
18 public:
19
20 AliESDTrdTrack();
52cd0cc0 21 virtual ~AliESDTrdTrack() {};
0ee00e25 22 AliESDTrdTrack(const AliESDTrdTrack& track);
23 AliESDTrdTrack& operator=(const AliESDTrdTrack& track);
732a24fe 24 virtual void Copy(TObject &obj) const;
0ee00e25 25
52cd0cc0 26 ULong64_t GetTrackWord(Int_t rev) const;
27 ULong64_t GetExtendedTrackWord(Int_t rev) const;
28
29 Int_t GetA() const { return fA; }
30 Int_t GetB() const { return fB; }
31 Int_t GetC() const { return fC; }
32 Int_t GetY() const { return fY; }
33 Int_t GetLayerMask() const { return fLayerMask; }
34 Int_t GetPID() const { return fPID; }
35 Int_t GetPt() const;
36 Int_t GetStack() const { return fStack; }
37 Int_t GetSector() const { return fSector; }
92115562 38 UChar_t GetFlags() const { return fFlags; }
39 UChar_t GetFlagsTiming() const { return fFlagsTiming; }
40 Bool_t GetTrackInTime() const { return (fFlagsTiming & 0x1); }
52cd0cc0 41 Int_t GetLabel() const { return fLabel; }
42 Int_t GetTrackletIndex(const Int_t iLayer) const { return fTrackletIndex[iLayer]; }
43
44 Double_t Pt() const { return GetPt() / 128.; }
45 Double_t Phi() const { return 0.; };
46 Double_t Eta() const { return 0.; };
47
48 AliESDTrdTracklet* GetTracklet(Int_t idx) const
49 { return (GetLayerMask() & (1<<idx)) ? (AliESDTrdTracklet*) ((fTrackletRefs[idx]).GetObject()) : 0x0; }
f01d9069 50 AliESDtrack* GetTrackMatch() const { return (AliESDtrack*) fTrackMatch.GetObject(); }
52cd0cc0 51
52 void SetA(Int_t a) { fA = a; }
53 void SetB(Int_t b) { fB = b; }
54 void SetC(Int_t c) { fC = c; }
55 void SetY(Int_t y) { fY = y; }
56 void SetLayerMask(Int_t mask) { fLayerMask = mask; }
57 void SetPID(Int_t pid) { fPID = pid; }
58 void SetLabel(Int_t label) { fLabel = label; }
59 void SetSector(Int_t sector) { fSector = sector; }
60 void SetStack(Int_t stack) { fStack = stack; }
61 void SetFlags(Int_t flags) { fFlags = flags; }
92115562 62 void SetFlagsTiming(Int_t flags) { fFlagsTiming = flags; }
52cd0cc0 63 void SetReserved(Int_t res) { fReserved = res; }
64 void SetTrackletIndex(const Char_t idx, const Int_t layer) { fTrackletIndex[layer] = idx; }
65
66 void AddTrackletReference(AliESDTrdTracklet* trkl, Int_t layer) { fTrackletRefs[layer] = trkl; }
f01d9069 67 void SetTrackMatchReference(AliESDtrack *trk) { fTrackMatch = trk; }
0ee00e25 68
3d1168d4 69 Bool_t IsSortable() const { return kTRUE; }
70 Int_t Compare(const TObject* obj) const;
71
0ee00e25 72 protected:
73
52cd0cc0 74 void AppendBits(ULong64_t &word, Int_t nBits, Int_t val) const { word = (word << nBits) | (val & ~(~0 << nBits)); }
75
76 static const Int_t fgkNlayers = 6; // number of TRD layers
0ee00e25 77
52cd0cc0 78 Int_t fSector; // sector in which the track was found
79 Char_t fStack; // stack in which the track was found
80 // (unique because of stack-wise tracking)
81 Int_t fA; // transverse offset from nominal primary vertex
82 Int_t fB; // slope in transverse plane
83 Short_t fC; // slope in r-z plane
84 Short_t fY; // y position of the track
85 UChar_t fPID; // electron PID for this track
86 Char_t fLayerMask; // mask of contributing tracklets
87 Char_t fTrackletIndex[fgkNlayers]; //[fgkNlayers] index to tracklets
88 UShort_t fFlags; // flags (high-pt, electron, positron)
92115562 89 UChar_t fFlagsTiming; // timing flags (track in-time, ...)
52cd0cc0 90 UChar_t fReserved; // reserved for future use
cd888a89 91
52cd0cc0 92 TRef fTrackletRefs[fgkNlayers]; // references to contributing tracklets
cd888a89 93
f01d9069 94 TRef fTrackMatch; // reference to matched global track
95 // to reject TRD tracks from late conversions
96
52cd0cc0 97 Int_t fLabel; // Track label
0ee00e25 98
f01d9069 99 ClassDef(AliESDTrdTrack,6)
0ee00e25 100};
101
102#endif