/* This file is property of and copyright by the ALICE HLT Project * ALICE Experiment at CERN, All rights reserved. * See cxx source for full Copyright notice * */ #ifndef ALIHLTTPCCANEIGHBOURSFINDER_H #define ALIHLTTPCCANEIGHBOURSFINDER_H #include "AliHLTTPCCATracker.h" #ifdef USE_TBB namespace tbb { template class blocked_range; } // namespace tbb #endif //USE_TBB /** * @class AliHLTTPCCANeighboursFinder */ class AliHLTTPCCATracker::NeighboursFinder { public: class ExecuteOnRow; NeighboursFinder( int iIter, nested_my& rows_ArBB, const dense& rowsX ) : fRows_ArBB(rows_ArBB), fRowsX(rowsX), fIter(iIter) {} void execute(); #ifdef USE_TBB void operator()( const tbb::blocked_range &r ) const; #endif //USE_TBB private: // for use ArBB nested_my& fRows_ArBB; const dense& fRowsX; struct FindNeighboursOnRowParam { // param to use in FindNeighboursOnRow_ArBB f32 neighbourAreaSizeTgY; f32 neighbourAreaSizeTgZ; f32 neighbourChiCut; }; static void FindNeighboursOnRow_ArBB( nested_my& rows, const dense& rowsX, const u8 rowIndex, const FindNeighboursOnRowParam& param ); // end for use ArBB void executeOnRow( TRowI_ArBB rowIndex ); // AliHLTTPCCATracker *fTracker; // SliceData &fData; int fIter; // current iteration of finding }; #endif