// $Id: AliHLTTPCCAFitter.cxx,v 1.9 2010/08/26 15:05:50 ikulakov Exp $ // ************************************************************************** // This file is property of and copyright by the ALICE HLT Project * // ALICE Experiment at CERN, All rights reserved. * // * // Primary Authors: Sergey Gorbunov * // Ivan Kisel * // for The ALICE HLT Project. * // * // Developed by: Igor Kulakov * // Maksym Zyzak * // * // Permission to use, copy, modify and distribute this software and its * // documentation strictly for non-commercial purposes is hereby granted * // without fee, provided that the above copyright notice appears in all * // copies and that both the copyright notice and this permission notice * // appear in the supporting documentation. The authors make no claims * // about the suitability of this software for any purpose. It is * // provided "as is" without express or implied warranty. * // * //*************************************************************************** #include "arbb.hpp" #include #include #include #include "AliHLTTPCCAFitter.h" #include "AliHLTTPCCATrackParamArBB.h" #include "TStopwatch.h" #include "AliHLTTPCCATrackLinearisationArBB.h" using namespace std; using arbb::u8; using arbb::u16; using arbb::u32; using arbb::i8; using arbb::i16; using arbb::i32; using arbb::f32; using arbb::boolean; using arbb::dense; using arbb::range; using arbb::const_range; using arbb::fill; AliHLTTPCCAFitter::AliHLTTPCCAFitter() { //* constructor fTrInfo.fNSectors = static_cast(fgkNSectors); } AliHLTTPCCAFitter::~AliHLTTPCCAFitter() { } void AliHLTTPCCAFitter::ReadData(fstream &InputTraks, const int &NTracks, const int &NClusters) { if(!(InputTraks.is_open())) { std::cout << "Error: input file is not opened."< wClustersXRange = fClusters.fX.write_only_range(); range wClustersYRange = fClusters.fY.write_only_range(); range wClustersZRange = fClusters.fZ.write_only_range(); range wClustersISectorRange = fClusters.fISector.write_only_range(); range wClustersIRowRange = fClusters.fIRow.write_only_range(); range wClustersICluRange = fClusters.fIClu.write_only_range(); range wInnerParamXRange = fTrInfo.fInnerParam.fX.write_only_range(); // x position range wInnerParamSignRange = fTrInfo.fInnerParam.fSignCosPhi.write_only_range(); // sign of cosPhi // phi = arctg (Dy/Dx) range wInnerParamPRange[5]; range wInnerParamCRange[15]; for(int i=0; i<5; i++) wInnerParamPRange[i] = fTrInfo.fInnerParam.fP[i].write_only_range(); for(int i=0; i<15; i++) wInnerParamCRange[i] = fTrInfo.fInnerParam.fC[i].write_only_range(); range wInnerParamChiRange = fTrInfo.fInnerParam.fChi2.write_only_range(); range wInnerParamNDFRange = fTrInfo.fInnerParam.fNDF.write_only_range(); range wInnerAlphaRange = fTrInfo.fInnerAlpha.write_only_range(); range wNClustersRange = fTrInfo.fNClusters.write_only_range(); range wSectorRange = fTrInfo.fSector.write_only_range(); int TrackCur = 0, NClustCur=0, NClustTrack=0, TmpSector=0, tmpInt = 0; // Read the tracks data from file for(int iTr = 0; iTr> tmpstring >> TrackCur; if(iTr != TrackCur) { std::cout << "Input Error: track number is corrupted. iTr = "< forward direction (from the most inner (first) hit to the most outer (last) hit) // dir = 1 -> backward direction (from the most outer (last) hit to the most inner (first) hit) boolean Dir(dir); call(FitArBB)(Dir,fClusters,fTrInfo,fSectorAlpha, fSectorParamArBB); }