LCOV - code coverage report
Current view: top level - HLT/global - AliFlatExternalTrackParam.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 10 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #ifndef ALIFLATEXTERNALTRACKPARAM_H
       2             : #define ALIFLATEXTERNALTRACKPARAM_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               *
       6             :  * Primary Authors : Sergey Gorbunov, Jochen Thaeder, Chiara Zampolli     */
       7             : 
       8             : /**
       9             :  * >> Flat structure representing parameters of an external track  <<
      10             :  */
      11             : 
      12             : #include "Rtypes.h"
      13             : #include "AliExternalTrackParam.h"
      14             : 
      15             : class AliFlatExternalTrackParam
      16             : {
      17             :  public:
      18             : 
      19             :   AliFlatExternalTrackParam();
      20             :   ~AliFlatExternalTrackParam() {}
      21             : 
      22             :   // constructor and method for reinitialisation of virtual table
      23             :   AliFlatExternalTrackParam( AliVConstructorReinitialisationFlag );
      24             :   void Reinitialize() { new (this) AliFlatExternalTrackParam( AliVReinitialize ); }
      25             :  
      26             :   void SetAlpha(Float_t alpha)             {fAlpha = alpha;}
      27             :   void SetX(Float_t x)                     {fX = x;}
      28             :   void SetY(Float_t y)                     {fY = y;}
      29             :   void SetZ(Float_t z)                     {fZ = z;}
      30             :   void SetSnp(Float_t snp)                 {fSnp = snp;}
      31             :   void SetTgl(Float_t tgl)                 {fTgl = tgl;}
      32             :   void SetSigned1Pt(Float_t signed1Pt)     {fSigned1Pt = signed1Pt;}
      33             :   void SetCovEntry(Int_t idx, Float_t cov) {(idx >= 0 && idx < 15) ? fC[idx] = cov : 0.;}
      34             : 
      35             :   Float_t  GetAlpha()             const {return fAlpha;}
      36             :   Float_t  GetX()                 const {return fX;}
      37             :   Float_t  GetY()                 const {return fY;}
      38             :   Float_t  GetZ()                 const {return fZ;}
      39             :   Float_t  GetSnp()               const {return fSnp;}
      40             :   Float_t  GetTgl()               const {return fTgl;}
      41             :   Float_t  GetSigned1Pt()         const {return fSigned1Pt;}
      42             :   Float_t* GetCov()               const {return const_cast<Float_t*>(fC);}
      43             :   Float_t  GetCovEntry(Int_t idx) const {return (idx >= 0 && idx < 15) ? fC[idx] : 0.;}
      44             :   Float_t  GetPt()                const {
      45             :     Double_t pt1 = fabs( fSigned1Pt );
      46             :     return (pt1>kAlmost0) ? 1./pt1 : kVeryBig;
      47             :   }
      48             :   void GetExternalTrackParam( AliExternalTrackParam &p ) const;
      49             :   void SetExternalTrackParam( const AliExternalTrackParam *p );
      50             : 
      51             :  private:
      52             : 
      53             :   Float_t fAlpha;     // azimuthal angle of reference frame
      54             :   Float_t fX;         // x: radial distance
      55             :   Float_t fY;         // local Y-coordinate of a track (cm)
      56             :   Float_t fZ;         // local Z-coordinate of a track (cm)
      57             :   Float_t fSnp;       // local sine of the track momentum azimuthal angle
      58             :   Float_t fTgl;       // tangent of the track momentum dip angle
      59             :   Float_t fSigned1Pt; // 1/pt (1/(GeV/c))
      60             :   Float_t fC[15];     // covariance matrix
      61             : };
      62             : 
      63             : inline AliFlatExternalTrackParam::AliFlatExternalTrackParam()
      64             :  :
      65             :  fAlpha(0),  
      66             :  fX(0),                                  
      67             :  fY(0),
      68             :  fZ(0),
      69             :  fSnp(0),
      70             :  fTgl(0),
      71             :  fSigned1Pt(0)
      72             : {
      73             :   for( int i=0; i<15; i++ ) fC[i]=0;
      74             : }
      75             : 
      76             : #pragma GCC diagnostic ignored "-Weffc++" 
      77             : inline AliFlatExternalTrackParam::AliFlatExternalTrackParam( AliVConstructorReinitialisationFlag ){}
      78             : #pragma GCC diagnostic warning "-Weffc++" 
      79             : 
      80             : inline void AliFlatExternalTrackParam::GetExternalTrackParam( AliExternalTrackParam &p ) const
      81             : {
      82             :  // Get external track parameters  
      83             :   Float_t par[5] = { fY, fZ, fSnp, fTgl, fSigned1Pt };
      84             :   p.Set( fX, fAlpha, par, fC );
      85             : }
      86             : 
      87             : inline void AliFlatExternalTrackParam::SetExternalTrackParam( const AliExternalTrackParam *p ) 
      88             : {
      89             :   // Set external track parameters
      90           0 :   if( !p ) return;
      91           0 :   fAlpha = p->GetAlpha();
      92           0 :   fX = p->GetX();
      93           0 :   fY = p->GetY();
      94           0 :   fZ = p->GetZ();
      95           0 :   fSnp = p->GetSnp();
      96           0 :   fTgl = p->GetTgl();
      97           0 :   fSigned1Pt = p->GetSigned1Pt();  
      98           0 :   for (Int_t idx = 0; idx <15; ++idx) fC[idx] = p->GetCovariance()[idx];
      99           0 : }
     100             : 
     101             : #endif

Generated by: LCOV version 1.11