]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AOD/AliAODTrdTrack.h
Added possibility to load automatically the field in analysis via AliInputEventHandle...
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODTrdTrack.h
CommitLineData
9aa7ebff 1#ifndef ALIAODTRDTRACK_H
2#define ALIAODTRDTRACK_H
3
4//
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>
8
9#include "TRef.h"
10#include "TClonesArray.h"
11#include "AliVTrack.h"
12#include "AliVTrdTrack.h"
13#include "AliAODTrdTracklet.h"
14
15class AliAODTrdTrack : public AliVTrdTrack {
16 public:
17
18 AliAODTrdTrack();
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;
24
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; }
31
32 virtual Bool_t GetTrackInTime() const { return (fFlagsTiming & 0x1); }
33 virtual UChar_t GetFlagsTiming() const { return fFlagsTiming; }
34
35 virtual Int_t GetLabel() const { return fLabel; }
36
37 virtual Double_t Pt() const { return GetPt() / 128.; }
38
39 Int_t GetNTracklets() const {
40 Int_t count = 0;
41 for (Int_t iLayer = 0; iLayer < 6; ++iLayer)
42 count += (fLayerMask >> iLayer) & 1;
43 return count;
44 }
45 virtual AliAODTrdTracklet* GetTracklet(Int_t idx) const { return (AliAODTrdTracklet*) fTracklets[idx]; }
46
0a91069b 47 virtual AliVTrack* GetTrackMatch() const { return (AliVTrack*) fTrackMatch.GetObject(); }
9aa7ebff 48
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; }
55
56 void AddTracklet(const AliVTrdTracklet& trkl, Int_t layer) { new (fTracklets[layer]) AliAODTrdTracklet(trkl); }
57 void SetTrackMatchReference(AliVTrack *trk) { fTrackMatch = trk; }
58
59 virtual Bool_t IsSortable() const { return kFALSE; }
60 virtual Int_t Compare(const TObject* /* obj */) const { return 0; }
61
62 protected:
63
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
70
71 TClonesArray fTracklets; // array of contributing tracklets
72 TRef fTrackMatch; // reference to matched global track
73
74 Int_t fLabel; // Track label
75
76 ClassDef(AliAODTrdTrack,1)
77};
78
79#endif