LCOV - code coverage report
Current view: top level - STEER/AOD - AliAODTrdTrack.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 29 73 39.7 %
Date: 2016-06-14 17:26:59 Functions: 4 9 44.4 %

          Line data    Source code
       1             : #include "AliAODTrdTrack.h"
       2             : 
       3             : AliAODTrdTrack::AliAODTrdTrack() :
       4           2 :   AliVTrdTrack(),
       5           2 :   fGlobalStack(-1),
       6           2 :   fPID(0),
       7           2 :   fLayerMask(0),
       8           2 :   fA(0),
       9           2 :   fFlagsTiming(0),
      10           2 :   fTracklets(),
      11           2 :   fTrackMatch(0x0),
      12           2 :   fLabel(-1)
      13          10 : {
      14             :   // default constructor
      15             : 
      16           2 :   fTracklets.SetClass("AliAODTrdTracklet", 6);
      17           4 : }
      18             : 
      19             : AliAODTrdTrack::AliAODTrdTrack(const AliVTrdTrack &rhs) :
      20        2319 :   AliVTrdTrack(rhs),
      21        6957 :   fGlobalStack(5*rhs.GetSector() + rhs.GetStack()),
      22        4638 :   fPID(rhs.GetPID()),
      23        4638 :   fLayerMask(rhs.GetLayerMask()),
      24        4638 :   fA(rhs.GetA()),
      25        4638 :   fFlagsTiming(rhs.GetFlagsTiming()),
      26        2319 :   fTracklets(),
      27        4638 :   fTrackMatch(rhs.GetTrackMatch()),
      28        4638 :   fLabel(rhs.GetLabel())
      29       11595 : {
      30             :   // constructor from abstract base class
      31             : 
      32        2319 :   fTracklets.SetClass("AliAODTrdTracklet", 6);
      33             : 
      34             :   // copy the contributing tracklets
      35       32466 :   for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
      36       13914 :     const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
      37       13914 :     if (trkl)
      38         219 :       new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
      39             :     else
      40       41523 :       new (fTracklets[iTracklet]) AliAODTrdTracklet();
      41             :   }
      42        4638 : }
      43             : 
      44             : AliAODTrdTrack::AliAODTrdTrack(const AliAODTrdTrack& rhs) :
      45           0 :   AliVTrdTrack(rhs),
      46           0 :   fGlobalStack(rhs.fGlobalStack),
      47           0 :   fPID(rhs.fPID),
      48           0 :   fLayerMask(rhs.fLayerMask),
      49           0 :   fA(rhs.fA),
      50           0 :   fFlagsTiming(rhs.fFlagsTiming),
      51           0 :   fTracklets(),
      52           0 :   fTrackMatch(rhs.fTrackMatch),
      53           0 :   fLabel(rhs.fLabel)
      54           0 : {
      55             :   // copy constructor
      56             : 
      57           0 :   fTracklets.SetClass("AliAODTrdTracklet", 6);
      58             : 
      59             :   // copy the contributing tracklets
      60           0 :   for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
      61           0 :     const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
      62           0 :     if (trkl)
      63           0 :       new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
      64             :     else
      65           0 :       new (fTracklets[iTracklet]) AliAODTrdTracklet();
      66             :   }
      67           0 : }
      68             : 
      69             : AliAODTrdTrack& AliAODTrdTrack::operator=(const AliAODTrdTrack& rhs)
      70             : {
      71             :   // assignment operator
      72             : 
      73           0 :   if (&rhs != this)
      74           0 :     AliVTrdTrack::operator=(rhs);
      75             : 
      76           0 :   fGlobalStack = rhs.fGlobalStack;
      77           0 :   fPID         = rhs.fPID;
      78           0 :   fLayerMask   = rhs.fLayerMask;
      79           0 :   fA           = rhs.fA;
      80           0 :   fFlagsTiming = rhs.fFlagsTiming;
      81           0 :   fTrackMatch  = rhs.fTrackMatch;
      82           0 :   fLabel       = rhs.fLabel;
      83             : 
      84             :   // assign the contributing tracklets
      85           0 :   for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
      86           0 :     const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
      87           0 :     if (trkl)
      88           0 :       new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
      89             :     else
      90           0 :       new (fTracklets[iTracklet]) AliAODTrdTracklet();
      91             :   }
      92             : 
      93           0 :   return *this;
      94           0 : }
      95             : 
      96             : void AliAODTrdTrack::Copy(TObject &rhs) const
      97             : {
      98             :   // copy
      99             : 
     100           0 :   AliVTrdTrack::Copy(rhs);
     101           0 : }
     102             : 
     103             : Int_t AliAODTrdTrack::GetPt() const
     104             : {
     105             :   // calculate pt from a as done in hardware
     106             : 
     107             :   const Int_t maskIdLut[64] = {
     108             :     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,
     109             :     -1, -1, -1, -1, -1, -1, -1,  1, -1, -1, -1,  2, -1,  3,  4,  5,
     110             :     -1, -1, -1, -1, -1, -1, -1,  6, -1, -1, -1,  7, -1,  8,  9, 10,
     111             :     -1, -1, -1, 11, -1, 12, 13, 14, -1, 15, 16, 17, 18, 19, 20, 21
     112             :   };
     113             : 
     114             :   const Int_t c1Lut[32] = {
     115             :     -2371, -2474, -2474, -2474, -2563, -2448, -2578, -2578,
     116             :     -2578, -2670, -2557, -2578, -2578, -2670, -2557, -2578,
     117             :     -2670, -2557, -2763, -2557, -2644, -2523,    -1,    -1,
     118             :     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
     119             :   };
     120             : 
     121           0 :   if (this->GetA() != 0) {
     122           0 :     Int_t layerMaskId = maskIdLut[this->GetLayerMask()];
     123           0 :     Int_t c1 = c1Lut[layerMaskId];
     124           0 :     Int_t c1Ext = c1 << 8;
     125           0 :     Int_t ptRawStage4 = c1Ext / ((this->GetA() >> 2) != 0 ? (this->GetA() >> 2) : 1 );
     126             :     Int_t ptRawComb4 = ptRawStage4;
     127           0 :     Int_t ptExtComb4 = (ptRawComb4 > 0) ? ptRawComb4 + 33 : ptRawComb4 - 30;
     128             : 
     129           0 :     return -ptExtComb4/2;
     130             :   }
     131             :   else
     132           0 :     return 0;
     133           0 : }

Generated by: LCOV version 1.11