1 #ifndef ALIAODTRDTRACK_H
2 #define ALIAODTRDTRACK_H
5 // 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>
10 #include "TClonesArray.h"
11 #include "AliVTrack.h"
12 #include "AliVTrdTrack.h"
13 #include "AliAODTrdTracklet.h"
15 class AliAODTrdTrack : public AliVTrdTrack {
19 AliAODTrdTrack(const AliVTrdTrack &rhs);
20 virtual ~AliAODTrdTrack() {};
21 AliAODTrdTrack(const AliAODTrdTrack& track);
22 AliAODTrdTrack& operator=(const AliAODTrdTrack& track);
23 virtual void Copy(TObject &obj) const;
25 virtual Int_t GetA() const { return fA; }
26 virtual Int_t GetLayerMask() const { return fLayerMask; }
27 virtual Int_t GetPID() const { return fPID; }
28 virtual Int_t GetPt() const;
29 virtual Int_t GetStack() const { return fGlobalStack%5; }
30 virtual Int_t GetSector() const { return fGlobalStack/5; }
32 virtual Bool_t GetTrackInTime() const { return (fFlagsTiming & 0x1); }
33 virtual UChar_t GetFlagsTiming() const { return fFlagsTiming; }
35 virtual Int_t GetLabel() const { return fLabel; }
37 virtual Double_t Pt() const { return GetPt() / 128.; }
39 Int_t GetNTracklets() const {
41 for (Int_t iLayer = 0; iLayer < 6; ++iLayer)
42 count += (fLayerMask >> iLayer) & 1;
45 virtual AliAODTrdTracklet* GetTracklet(Int_t idx) const { return (AliAODTrdTracklet*) fTracklets[idx]; }
47 virtual AliVTrack* GetTrackMatch() const { return (AliVTrack*) fTrackMatch.GetObject(); }
49 virtual void SetA(Int_t a) { fA = a; }
50 virtual void SetLayerMask(Int_t mask) { fLayerMask = mask; }
51 virtual void SetPID(Int_t pid) { fPID = pid; }
52 virtual void SetLabel(Int_t label) { fLabel = label; }
53 virtual void SetSector(Int_t sector) { fGlobalStack = 5*sector + (fGlobalStack%5); }
54 virtual void SetStack(Int_t stack) { fGlobalStack = 5*(fGlobalStack%5) + stack; }
56 void AddTracklet(const AliVTrdTracklet& trkl, Int_t layer) { new (fTracklets[layer]) AliAODTrdTracklet(trkl); }
57 void SetTrackMatchReference(AliVTrack *trk) { fTrackMatch = trk; }
59 virtual Bool_t IsSortable() const { return kFALSE; }
60 virtual Int_t Compare(const TObject* /* obj */) const { return 0; }
64 Char_t fGlobalStack; // stack (0-89) in which the track was found
65 // (unique because of stack-wise tracking)
66 UChar_t fPID; // electron PID for this track
67 UChar_t fLayerMask; // mask of contributing tracklets
68 Int_t fA; // transverse offset from nominal primary vertex
69 UChar_t fFlagsTiming; // timing flags
71 TClonesArray fTracklets; // array of contributing tracklets
72 TRef fTrackMatch; // reference to matched global track
74 Int_t fLabel; // Track label
76 ClassDef(AliAODTrdTrack,1)