LCOV - code coverage report
Current view: top level - STEER/ESD - AliESDTrdTrack.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 26 40 65.0 %
Date: 2016-06-14 17:26:59 Functions: 29 44 65.9 %

          Line data    Source code
       1             : #ifndef ALIESDTRDTRACK_H
       2             : #define ALIESDTRDTRACK_H
       3             : 
       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             : 
       9             : #include "TRef.h"
      10             : 
      11             : #include "AliVTrdTrack.h"
      12             : #include "AliESDTrdTracklet.h"
      13             : #include "AliESDtrack.h"
      14             : 
      15             : class AliESDTrdTrack : public AliVTrdTrack {
      16             : 
      17             :  public:
      18             : 
      19             :   AliESDTrdTrack();
      20       75452 :   virtual ~AliESDTrdTrack() {};
      21             :   AliESDTrdTrack(const AliESDTrdTrack& track);
      22             :   AliESDTrdTrack& operator=(const AliESDTrdTrack& track);
      23             :   virtual void Copy(TObject &obj) const;
      24             : 
      25             :   ULong64_t GetTrackWord(Int_t rev) const;
      26             :   ULong64_t GetExtendedTrackWord(Int_t rev) const;
      27             : 
      28        9336 :   Int_t GetA()         const { return fA; }
      29           0 :   Int_t GetB()         const { return fB; }
      30           0 :   Int_t GetC()         const { return fC; }
      31           0 :   Int_t GetY()         const { return fY; }
      32       77202 :   Int_t GetLayerMask() const { return fLayerMask; }
      33        4638 :   Int_t GetPID()       const { return fPID; }
      34             :   Int_t GetPt()        const;
      35       27828 :   Int_t GetStack()     const { return fStack; }
      36       47110 :   Int_t GetSector()    const { return fSector; }
      37           0 :   UChar_t GetFlags()   const { return fFlags; }
      38        4638 :   UChar_t GetFlagsTiming() const { return fFlagsTiming; }
      39           0 :   Bool_t GetTrackInTime() const { return (fFlagsTiming & 0x1); }
      40        4638 :   Int_t GetLabel()     const { return fLabel; }
      41         146 :   Int_t GetTrackletIndex(const Int_t iLayer) const { return fTrackletIndex[iLayer]; }
      42             : 
      43        4638 :   Double_t Pt()        const { return GetPt() / 128.; }
      44           0 :   Double_t Phi()       const { return 0.; };
      45           0 :   Double_t Eta()       const { return 0.; };
      46             : 
      47             :   Int_t GetNTracklets() const {
      48             :     Int_t count = 0;
      49           0 :     for (Int_t iLayer = 0; iLayer < 6; ++iLayer)
      50           0 :       count += (fLayerMask >> iLayer) & 1;
      51           0 :     return count;
      52             :   }
      53             :   AliESDTrdTracklet* GetTracklet(Int_t idx) const
      54      102282 :     { return (GetLayerMask() & (1<<idx)) ? (AliESDTrdTracklet*) ((fTrackletRefs[idx]).GetObject()) : 0x0; }
      55        9276 :   AliVTrack* GetTrackMatch() const { return (AliVTrack*) fTrackMatch.GetObject(); }
      56             : 
      57        4638 :   void SetA(Int_t a)            { fA = a; }
      58        4638 :   void SetB(Int_t b)            { fB = b; }
      59          30 :   void SetC(Int_t c)            { fC = c; }
      60           0 :   void SetY(Int_t y)            { fY = y; }
      61        4638 :   void SetLayerMask(Int_t mask) { fLayerMask = mask; }
      62        4638 :   void SetPID(Int_t pid)        { fPID = pid; }
      63        4638 :   void SetLabel(Int_t label)    { fLabel = label; }
      64        4638 :   void SetSector(Int_t sector)  { fSector = sector; }
      65        4638 :   void SetStack(Int_t stack)    { fStack = stack; }
      66        4616 :   void SetFlags(Int_t flags)    { fFlags = flags; }
      67           0 :   void SetFlagsTiming(Int_t flags) { fFlagsTiming = flags; }
      68        4608 :   void SetReserved(Int_t res)   { fReserved = res; }
      69       27794 :   void SetTrackletIndex(const Char_t idx, const Int_t layer) { fTrackletIndex[layer] = idx; }
      70             : 
      71         146 :   void AddTrackletReference(AliESDTrdTracklet* trkl, Int_t layer) { fTrackletRefs[layer] = trkl; }
      72        4638 :   void SetTrackMatchReference(AliVTrack *trk) { fTrackMatch = trk; }
      73             : 
      74           0 :   Bool_t IsSortable() const  { return kTRUE; }
      75             :   Int_t Compare(const TObject* obj) const;
      76             : 
      77             :  protected:
      78             : 
      79           0 :   void AppendBits(ULong64_t &word, Int_t nBits, Int_t val) const { word = (word << nBits) | (val & ~(~0 << nBits)); }
      80             : 
      81             :   Int_t    fSector;                       // sector in which the track was found
      82             :   Char_t   fStack;                        // stack in which the track was found
      83             :                                           // (unique because of stack-wise tracking)
      84             :   Int_t    fA;                            // transverse offset from nominal primary vertex
      85             :   Int_t    fB;                            // slope in transverse plane
      86             :   Short_t  fC;                            // slope in r-z plane
      87             :   Short_t  fY;                            // y position of the track
      88             :   UChar_t  fPID;                          // electron PID for this track
      89             :   Char_t   fLayerMask;                    // mask of contributing tracklets
      90             :   Char_t   fTrackletIndex[fgkNlayers];    //[fgkNlayers] index to tracklets
      91             :   UShort_t fFlags;                        // flags (high-pt, electron, positron)
      92             :   UChar_t  fFlagsTiming;                  // timing flags (track in-time, ...)
      93             :   UChar_t  fReserved;                     // reserved for future use
      94             : 
      95             :   TRef fTrackletRefs[fgkNlayers];         // references to contributing tracklets
      96             : 
      97             :   TRef fTrackMatch;                       // reference to matched global track
      98             :                                           // to reject TRD tracks from late conversions
      99             : 
     100             :   Int_t fLabel;                           // Track label
     101             : 
     102         184 :   ClassDef(AliESDTrdTrack,7)
     103             : };
     104             : 
     105             : #endif

Generated by: LCOV version 1.11