Adding TRD online tracks and trackets to ESD:
[u/mrichter/AliRoot.git] / STEER / AliESDTrdTracklet.h
1 #ifndef ALIESDTRDTRACKLET_H
2 #define ALIESDTRDTRACKLET_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // ESD format for TRD tracklet from FEE used for triggering
8
9 #include "TObject.h"
10
11 class AliESDTrdTracklet : public TObject
12 {
13  public:
14   AliESDTrdTracklet();
15   AliESDTrdTracklet(UInt_t trackletWord, Short_t hcid, Int_t label = -1);
16   AliESDTrdTracklet(const AliESDTrdTracklet &trkl);
17   AliESDTrdTracklet& operator=(const AliESDTrdTracklet &trkl);
18   ~AliESDTrdTracklet();
19
20   void SetTrackletWord(UInt_t trklWord) { fTrackletWord = trklWord; }
21   void SetHCId(Short_t hcid) { fHCId = hcid; }
22
23   // ----- tracklet information -----
24   UInt_t GetTrackletWord() const { return fTrackletWord; }
25   Int_t  GetBinY()  const;
26   Int_t  GetBinDy() const;
27   Int_t  GetBinZ()  const { return ((fTrackletWord >> 20) & 0xf);  }
28   Int_t  GetPID()   const { return ((fTrackletWord >> 24) & 0xff); }
29
30   // ----- position information (chamber-local) -----
31   Float_t GetLocalX() const { return fgkX0; }
32   Float_t GetLocalY() const { return GetBinY() * fgkBinWidthY; }
33   Float_t GetDyDx() const;
34
35   // ----- geometrical information -----
36   Int_t GetHCId() const { return fHCId; }
37   Int_t GetDetector() const { return fHCId / 2; }
38   Int_t GetROB() const { return -1; }
39   Int_t GetMCM() const { return -1; }
40
41   // ----- MC information -----
42   Int_t GetLabel() const { return fLabel; }
43
44  protected:
45   Short_t fHCId;                // half-chamber ID
46
47   UInt_t fTrackletWord;         // tracklet word (as from FEE)
48                                 // pppp : pppp : zzzz : dddd : dddy : yyyy : yyyy : yyyy
49   Int_t  fLabel;                // MC label
50
51   static const Float_t fgkBinWidthY;   // bin width y-position
52   static const Float_t fgkBinWidthDy;  // bin width deflection length
53
54   static const Float_t fgkX0;          // reference position in x-direction
55   static const Float_t fgkDriftLength; // drift length to which the deflection length is scaled
56
57   ClassDef(AliESDTrdTracklet, 1);
58 };
59
60 #endif