LCOV - code coverage report
Current view: top level - HLT/TPCLib/tracking-ca - AliHLTTPCCAMerger.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 21 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 21 0.0 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // ************************************************************************
       3             : // This file is property of and copyright by the ALICE HLT Project        *
       4             : // ALICE Experiment at CERN, All rights reserved.                         *
       5             : // See cxx source for full Copyright notice                               *
       6             : //                                                                        *
       7             : //*************************************************************************
       8             : 
       9             : #ifndef ALIHLTTPCCAMERGER_H
      10             : #define ALIHLTTPCCAMERGER_H
      11             : 
      12             : #include "AliHLTTPCCADef.h"
      13             : #include "AliHLTTPCCAParam.h"
      14             : #include "AliHLTTPCCATrackParam.h"
      15             : 
      16             : #if !defined(HLTCA_GPUCODE)
      17             : #include <iostream>
      18             : #endif //HLTCA_GPUCODE
      19             : 
      20             : class AliHLTTPCCASliceTrack;
      21             : class AliHLTTPCCASliceOutput;
      22             : class AliHLTTPCCAMergedTrack;
      23             : class AliHLTTPCCAMergerOutput;
      24             : 
      25             : /**
      26             :  * @class AliHLTTPCCAMerger
      27             :  *
      28             :  */
      29             : class AliHLTTPCCAMerger
      30             : {
      31             : 
      32             :   public:
      33             : 
      34             :     class AliHLTTPCCAClusterInfo
      35             :     {
      36             : 
      37             :       public:
      38             : 
      39           0 :         unsigned char  ISlice()    const { return fISlice;    }
      40           0 :         unsigned char  RowType()    const { return fRowType;    }
      41           0 :         int  Id()      const { return fId;      }
      42           0 :         UChar_t PackedAmp() const { return fPackedAmp; }
      43           0 :         float X()         const { return fX;         }
      44           0 :         float Y()         const { return fY;         }
      45           0 :         float Z()         const { return fZ;         }
      46           0 :         float Err2Y()     const { return fErr2Y;     }
      47           0 :         float Err2Z()     const { return fErr2Z;     }
      48             : 
      49           0 :         void SetISlice    ( unsigned char v  ) { fISlice    = v; }
      50           0 :         void SetRowType    ( unsigned char v  ) { fRowType    = v; }
      51           0 :         void SetId      (  int v  ) { fId      = v; }
      52           0 :         void SetPackedAmp ( UChar_t v ) { fPackedAmp = v; }
      53           0 :         void SetX         ( float v ) { fX         = v; }
      54           0 :         void SetY         ( float v ) { fY         = v; }
      55           0 :         void SetZ         ( float v ) { fZ         = v; }
      56           0 :         void SetErr2Y     ( float v ) { fErr2Y     = v; }
      57           0 :         void SetErr2Z     ( float v ) { fErr2Z     = v; }
      58             : 
      59             :       private:
      60             : 
      61             :         unsigned char fISlice;            // slice number
      62             :         unsigned char fRowType;            // row type
      63             :         int fId;                 // cluster hlt number
      64             :         UChar_t fPackedAmp; // packed cluster amplitude
      65             :         float fX;                // x position (slice coord.system)
      66             :         float fY;                // y position (slice coord.system)
      67             :         float fZ;                // z position (slice coord.system)
      68             :         float fErr2Y;            // Squared measurement error of y position
      69             :         float fErr2Z;            // Squared measurement error of z position
      70             :     };
      71             : 
      72             :     AliHLTTPCCAMerger();
      73             :     ~AliHLTTPCCAMerger();
      74             : 
      75           0 :     void SetSliceParam( const AliHLTTPCCAParam &v ) { fSliceParam = v; }
      76             : 
      77             :     void Clear();
      78             :     void SetSliceData( int index, const AliHLTTPCCASliceOutput *SliceData );
      79             :     void Reconstruct();
      80             : 
      81           0 :     const AliHLTTPCCAMergerOutput * Output() const { return fOutput; }
      82             : 
      83             :     bool FitTrack( AliHLTTPCCATrackParam &T, float &Alpha,
      84             :                    AliHLTTPCCATrackParam t0, float Alpha0, int hits[], int &NHits,  bool dir,
      85             :                    bool final = 0, 
      86             :                    AliHLTTPCCAClusterInfo *infoArray = 0 );
      87             : 
      88           0 :     const AliHLTTPCCAParam &SliceParam() const { return fSliceParam; }
      89             : 
      90             :     static float GetChi2( float x1, float y1, float a00, float a10, float a11,
      91             :                           float x2, float y2, float b00, float b10, float b11  );
      92             : 
      93             : 
      94             :   private:
      95             : 
      96             :     AliHLTTPCCAMerger( const AliHLTTPCCAMerger& );
      97             :   AliHLTTPCCAMerger &operator=( const AliHLTTPCCAMerger& );
      98             : 
      99             :     class AliHLTTPCCASliceTrackInfo;
     100             :     class AliHLTTPCCABorderTrack;
     101             : 
     102             :     void MakeBorderTracks( int iSlice, int iBorder, AliHLTTPCCABorderTrack B[], int &nB );
     103             :     void MergeBorderTracks( int iSlice1, AliHLTTPCCABorderTrack B1[], int N1,
     104             :                             int iSlice2, AliHLTTPCCABorderTrack B2[], int N2 );
     105             : 
     106             : 
     107             :     void UnpackSlices();
     108             :     void Merging();
     109             : 
     110             : 
     111             : 
     112             :     static const int fgkNSlices = 36;       //* N slices
     113             :     AliHLTTPCCAParam fSliceParam;           //* slice parameters (geometry, calibr, etc.)
     114             :     const AliHLTTPCCASliceOutput *fkSlices[fgkNSlices]; //* array of input slice tracks
     115             :     AliHLTTPCCAMergerOutput *fOutput;       //* array of output merged tracks
     116             :     AliHLTTPCCASliceTrackInfo *fTrackInfos; //* additional information for slice tracks
     117             :     int fMaxTrackInfos;                   //* booked size of fTrackInfos array
     118             :     AliHLTTPCCAClusterInfo *fClusterInfos;  //* information about track clusters
     119             :     int fMaxClusterInfos;                 //* booked size of fClusterInfos array
     120             :     int fSliceTrackInfoStart[fgkNSlices];   //* slice starting index in fTrackInfos array;
     121             :     int fSliceNTrackInfos[fgkNSlices];                //* N of slice track infos in fTrackInfos array;
     122             : };
     123             : 
     124             : #endif //ALIHLTTPCCAMERGER_H

Generated by: LCOV version 1.11