From 4aa418779d51071508882a601fae75aefe126321 Mon Sep 17 00:00:00 2001 From: hristov Date: Thu, 30 Nov 2006 17:45:45 +0000 Subject: [PATCH] L3 becomes HLT --- ALIROOT/binaliroot.pkg | 4 +- ANALYSIS/binaliengui.pkg | 4 +- EVE/binalieve.pkg | 4 +- EVE/macros/alieve_loadlibs.C | 10 +- HLT/BASE/AliHLTStdIncludes.h | 2 +- HLT/ChangeLog | 112 +-- HLT/ITS/AliHLTITSLinkDef.h | 15 + ...TSVertexerZ.cxx => AliHLTITSVertexerZ.cxx} | 12 +- ...iL3ITSVertexerZ.h => AliHLTITSVertexerZ.h} | 10 +- ...TSclusterer.cxx => AliHLTITSclusterer.cxx} | 8 +- ...iL3ITSclusterer.h => AliHLTITSclusterer.h} | 10 +- .../{AliL3ITStrack.cxx => AliHLTITStrack.cxx} | 14 +- HLT/ITS/{AliL3ITStrack.h => AliHLTITStrack.h} | 12 +- ...iL3ITStracker.cxx => AliHLTITStracker.cxx} | 18 +- .../{AliL3ITStracker.h => AliHLTITStracker.h} | 12 +- HLT/ITS/AliL3ITSLinkDef.h | 15 - HLT/ITS/RunHLTITS.C | 12 +- HLT/Makefile.rules | 2 +- HLT/TPCLib/AliHLTTPCBenchmark.h | 2 +- HLT/TPCLib/AliHLTTPCClustFinderNew.cxx | 2 +- HLT/TPCLib/AliHLTTPCClustFinderNew.h | 2 +- HLT/TPCLib/AliHLTTPCClusterFinder.cxx | 2 +- HLT/TPCLib/AliHLTTPCClusterFinder.h | 2 +- HLT/TPCLib/AliHLTTPCConfMapFit.cxx | 2 +- HLT/TPCLib/AliHLTTPCConfMapFit.h | 2 +- HLT/TPCLib/AliHLTTPCConfMapPoint.cxx | 2 +- HLT/TPCLib/AliHLTTPCConfMapPoint.h | 2 +- HLT/TPCLib/AliHLTTPCConfMapTrack.cxx | 2 +- HLT/TPCLib/AliHLTTPCConfMapTrack.h | 2 +- HLT/TPCLib/AliHLTTPCConfMapper.cxx | 2 +- HLT/TPCLib/AliHLTTPCConfMapper.h | 2 +- HLT/TPCLib/AliHLTTPCDataCompressorHelper.cxx | 2 +- HLT/TPCLib/AliHLTTPCDataCompressorHelper.h | 2 +- HLT/TPCLib/AliHLTTPCDigitData.h | 2 +- HLT/TPCLib/AliHLTTPCFileHandler.cxx | 2 +- HLT/TPCLib/AliHLTTPCFileHandler.h | 2 +- HLT/TPCLib/AliHLTTPCFitter.cxx | 2 +- HLT/TPCLib/AliHLTTPCFitter.h | 2 +- HLT/TPCLib/AliHLTTPCGlobalMerger.cxx | 2 +- HLT/TPCLib/AliHLTTPCGlobalMerger.h | 2 +- HLT/TPCLib/AliHLTTPCInterMerger.cxx | 2 +- HLT/TPCLib/AliHLTTPCInterMerger.h | 2 +- HLT/TPCLib/AliHLTTPCLog.cxx | 2 +- HLT/TPCLib/AliHLTTPCLog.h | 2 +- HLT/TPCLib/AliHLTTPCLogging.h | 2 +- HLT/TPCLib/AliHLTTPCMemHandler.cxx | 2 +- HLT/TPCLib/AliHLTTPCMemHandler.h | 2 +- HLT/TPCLib/AliHLTTPCMerger.cxx | 2 +- HLT/TPCLib/AliHLTTPCMerger.h | 2 +- HLT/TPCLib/AliHLTTPCModelTrack.cxx | 2 +- HLT/TPCLib/AliHLTTPCModelTrack.h | 2 +- HLT/TPCLib/AliHLTTPCModels.h | 2 +- HLT/TPCLib/AliHLTTPCRootTypes.h | 2 +- HLT/TPCLib/AliHLTTPCSpacePointData.h | 2 +- HLT/TPCLib/AliHLTTPCTrack.cxx | 2 +- HLT/TPCLib/AliHLTTPCTrack.h | 2 +- HLT/TPCLib/AliHLTTPCTrackArray.cxx | 2 +- HLT/TPCLib/AliHLTTPCTrackArray.h | 2 +- HLT/TPCLib/AliHLTTPCTrackMerger.cxx | 2 +- HLT/TPCLib/AliHLTTPCTrackMerger.h | 2 +- HLT/TPCLib/AliHLTTPCTrackSegmentData.h | 2 +- HLT/TPCLib/AliHLTTPCTransform.cxx | 2 +- HLT/TPCLib/AliHLTTPCTransform.h | 2 +- HLT/TPCLib/AliHLTTPCVertex.cxx | 2 +- HLT/TPCLib/AliHLTTPCVertex.h | 2 +- HLT/TPCLib/AliHLTTPCVertexArray.cxx | 2 +- HLT/TPCLib/AliHLTTPCVertexArray.h | 2 +- HLT/TPCLib/AliHLTTPCVertexData.h | 2 +- HLT/TPCLib/AliHLTTPCVertexFinder.cxx | 2 +- HLT/TPCLib/AliHLTTPCVertexFinder.h | 2 +- HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.cxx | 2 +- HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.h | 2 +- HLT/bin/sethlt.sh | 6 +- ...sterFitter.cxx => AliHLTClusterFitter.cxx} | 300 +++--- ...3ClusterFitter.h => AliHLTClusterFitter.h} | 48 +- HLT/comp/AliHLTCompLinkDef.h | 42 + .../{AliL3Compress.cxx => AliHLTCompress.cxx} | 236 ++--- HLT/comp/AliHLTCompress.h | 43 + ...iL3CompressAC.cxx => AliHLTCompressAC.cxx} | 142 +-- .../{AliL3CompressAC.h => AliHLTCompressAC.h} | 18 +- ...ompressor.cxx => AliHLTDataCompressor.cxx} | 318 +++---- ...ataCompressor.h => AliHLTDataCompressor.h} | 34 +- HLT/comp/AliHLTDataCompressorHelper.cxx | 170 ++++ ...rHelper.h => AliHLTDataCompressorHelper.h} | 14 +- ...iL3FitUtilities.c => AliHLTFitUtilities.c} | 2 +- ...iL3FitUtilities.h => AliHLTFitUtilities.h} | 4 +- HLT/comp/AliHLTModelTrack.cxx | 683 ++++++++++++++ .../{AliL3ModelTrack.h => AliHLTModelTrack.h} | 30 +- .../{AliL3Modeller.cxx => AliHLTModeller.cxx} | 210 ++--- .../{AliL3Modeller.h => AliHLTModeller.h} | 42 +- HLT/comp/{AliL3Models.h => AliHLTModels.h} | 30 +- ...or.cxx => AliHLTOfflineDataCompressor.cxx} | 106 +-- HLT/comp/AliHLTOfflineDataCompressor.h | 37 + HLT/comp/AliL3CompLinkDef.h | 26 - HLT/comp/AliL3Compress.h | 41 - HLT/comp/AliL3DataCompressorHelper.cxx | 170 ---- HLT/comp/AliL3ModelTrack.cxx | 683 -------------- HLT/comp/AliL3OfflineDataCompressor.h | 35 - HLT/comp/Makefile | 20 +- HLT/comp/rootlogon.C | 6 +- HLT/doc/README | 8 +- HLT/doc/changelog.bin | 2 +- HLT/doc/changelog.comp | 242 ++--- HLT/doc/changelog.doc | 2 +- HLT/doc/changelog.exa | 26 +- HLT/doc/changelog.hough | 444 ++++----- HLT/doc/changelog.kalman | 34 +- HLT/doc/changelog.misc | 120 +-- HLT/doc/changelog.programs | 12 +- HLT/doc/changelog.src | 860 +++++++++--------- HLT/doc/changelog.top | 4 +- HLT/doc/changelog.trigger | 12 +- HLT/doc/l3transform-062003.config | 2 +- HLT/doc/l3transform-cosmic-022003.config | 2 +- HLT/exa/MakePileup.C | 64 +- HLT/exa/SetFitParameters.C | 2 +- HLT/exa/SetHoughParameters.C | 2 +- HLT/exa/SetTrackingParameters_2000bf02.C | 2 +- HLT/exa/SetTrackingParameters_2000bf04.C | 2 +- HLT/exa/SetTrackingParameters_4000bf02.C | 2 +- HLT/exa/SetTrackingParameters_4000bf04.C | 2 +- HLT/exa/SetTrackingParameters_8000bf02.C | 2 +- HLT/exa/SetTrackingParameters_8000bf04.C | 2 +- HLT/exa/SetTrackingParameters_pp.C | 2 +- HLT/exa/binary.C | 12 +- HLT/exa/convert.C | 16 +- HLT/exa/ddl2binary.C | 4 +- HLT/exa/deconvclusters.C | 52 +- HLT/exa/display.C | 6 +- HLT/exa/evalrowhough.C | 16 +- HLT/exa/evaltracker.C | 22 +- HLT/exa/fill_pp.C | 56 +- HLT/exa/read.C | 38 +- HLT/exa/rootlogon-old.C | 20 +- HLT/exa/rootlogon.C | 8 +- HLT/exa/runcf.C | 18 +- HLT/exa/runhough.C | 30 +- HLT/exa/runkalman.C | 4 +- HLT/exa/runrowhough.C | 48 +- HLT/exa/runtracker.C | 12 +- HLT/exa/runtracker_pp.C | 8 +- HLT/exa/trigger_pp.C | 18 +- ...AliL3Histogram.cxx => AliHLTHistogram.cxx} | 92 +- .../{AliL3Histogram.h => AliHLTHistogram.h} | 30 +- ...3Histogram1D.cxx => AliHLTHistogram1D.cxx} | 40 +- ...AliL3Histogram1D.h => AliHLTHistogram1D.h} | 14 +- ...aptive.cxx => AliHLTHistogramAdaptive.cxx} | 52 +- ...amAdaptive.h => AliHLTHistogramAdaptive.h} | 22 +- HLT/hough/{AliL3Hough.cxx => AliHLTHough.cxx} | 394 ++++---- HLT/hough/{AliL3Hough.h => AliHLTHough.h} | 72 +- ...mer.cxx => AliHLTHoughBaseTransformer.cxx} | 26 +- ...sformer.h => AliHLTHoughBaseTransformer.h} | 37 +- ....cxx => AliHLTHoughClusterTransformer.cxx} | 112 +-- ...rmer.h => AliHLTHoughClusterTransformer.h} | 36 +- ...oughDisplay.cxx => AliHLTHoughDisplay.cxx} | 64 +- HLT/hough/AliHLTHoughDisplay.h | 48 + ...AliL3HoughEval.cxx => AliHLTHoughEval.cxx} | 130 +-- HLT/hough/AliHLTHoughEval.h | 65 ++ HLT/hough/AliHLTHoughGlobalMerger.cxx | 72 ++ HLT/hough/AliHLTHoughGlobalMerger.h | 30 + ...IntMerger.cxx => AliHLTHoughIntMerger.cxx} | 76 +- HLT/hough/AliHLTHoughIntMerger.h | 42 + ...anTrack.cxx => AliHLTHoughKalmanTrack.cxx} | 34 +- ...KalmanTrack.h => AliHLTHoughKalmanTrack.h} | 14 +- HLT/hough/AliHLTHoughLinkDef.h | 67 ++ ...MaxFinder.cxx => AliHLTHoughMaxFinder.cxx} | 144 +-- ...oughMaxFinder.h => AliHLTHoughMaxFinder.h} | 58 +- ...3HoughMerger.cxx => AliHLTHoughMerger.cxx} | 120 +-- HLT/hough/AliHLTHoughMerger.h | 49 + ...AliL3HoughTest.cxx => AliHLTHoughTest.cxx} | 222 ++--- HLT/hough/AliHLTHoughTest.h | 57 ++ ...iL3HoughTrack.cxx => AliHLTHoughTrack.cxx} | 86 +- .../{AliL3HoughTrack.h => AliHLTHoughTrack.h} | 16 +- ...sformer.cxx => AliHLTHoughTransformer.cxx} | 304 +++---- ...Transformer.h => AliHLTHoughTransformer.h} | 28 +- ...l.cxx => AliHLTHoughTransformerGlobal.cxx} | 204 ++--- ...lobal.h => AliHLTHoughTransformerGlobal.h} | 50 +- ...rLUT.cxx => AliHLTHoughTransformerLUT.cxx} | 118 +-- ...ormerLUT.h => AliHLTHoughTransformerLUT.h} | 40 +- ...rNew.cxx => AliHLTHoughTransformerNew.cxx} | 128 +-- ...ormerNew.h => AliHLTHoughTransformerNew.h} | 30 +- ...rRow.cxx => AliHLTHoughTransformerRow.cxx} | 268 +++--- ...ormerRow.h => AliHLTHoughTransformerRow.h} | 46 +- ...hdl.cxx => AliHLTHoughTransformerVhdl.cxx} | 70 +- ...merVhdl.h => AliHLTHoughTransformerVhdl.h} | 22 +- HLT/hough/AliL3HoughDisplay.h | 46 - HLT/hough/AliL3HoughEval.h | 63 -- HLT/hough/AliL3HoughGlobalMerger.cxx | 72 -- HLT/hough/AliL3HoughGlobalMerger.h | 28 - HLT/hough/AliL3HoughIntMerger.h | 40 - HLT/hough/AliL3HoughLinkDef.h | 38 - HLT/hough/AliL3HoughMerger.h | 47 - HLT/hough/AliL3HoughTest.h | 55 -- HLT/hough/Makefile | 18 +- .../{AliL3Kalman.cxx => AliHLTKalman.cxx} | 106 +-- HLT/kalman/AliHLTKalman.h | 52 ++ HLT/kalman/AliHLTKalmanLinkDef.h | 13 + ...3KalmanTrack.cxx => AliHLTKalmanTrack.cxx} | 82 +- ...AliL3KalmanTrack.h => AliHLTKalmanTrack.h} | 30 +- HLT/kalman/AliL3Kalman.h | 50 - HLT/kalman/AliL3KalmanLinkDef.h | 10 - HLT/kalman/Makefile | 4 +- HLT/libAliL3Comp.pkg | 28 - HLT/libAliL3Hough.pkg | 38 - HLT/libAliL3ITS.pkg | 16 - HLT/libAliL3MUON.pkg | 46 - HLT/libAliL3Misc.pkg | 27 - HLT/libAliL3Src.pkg | 44 - ...mHandler.cxx => AliHLTAltroMemHandler.cxx} | 62 +- ...roMemHandler.h => AliHLTAltroMemHandler.h} | 12 +- ...ndler.cxx => AliHLTDDLDataFileHandler.cxx} | 152 ++-- ...leHandler.h => AliHLTDDLDataFileHandler.h} | 29 +- ...DLRawReader.cxx => AliHLTDDLRawReader.cxx} | 46 +- ...iL3DDLRawReader.h => AliHLTDDLRawReader.h} | 16 +- ...derFile.cxx => AliHLTDDLRawReaderFile.cxx} | 40 +- ...wReaderFile.h => AliHLTDDLRawReaderFile.h} | 14 +- ...awStream.cxx => AliHLTDDLTPCRawStream.cxx} | 40 +- ...TPCRawStream.h => AliHLTDDLTPCRawStream.h} | 16 +- ...3DataHandler.cxx => AliHLTDataHandler.cxx} | 128 +-- HLT/misc/AliHLTDataHandler.h | 39 + .../{AliL3FFloat.cxx => AliHLTFFloat.cxx} | 164 ++-- HLT/misc/AliHLTFFloat.h | 200 ++++ HLT/misc/AliHLTMiscLinkDef.h | 50 + ...AliL3Stopwatch.cxx => AliHLTStopwatch.cxx} | 44 +- .../{AliL3Stopwatch.h => AliHLTStopwatch.h} | 12 +- HLT/misc/AliHLTTPCMapping-iroc.generated | 8 + HLT/misc/AliHLTTPCMapping-oroc.generated | 8 + ...iL3TPCMapping.cxx => AliHLTTPCMapping.cxx} | 42 +- .../{AliL3TPCMapping.h => AliHLTTPCMapping.h} | 13 +- .../{AliL3TransBit.cxx => AliHLTTransBit.cxx} | 26 +- .../{AliL3TransBit.h => AliHLTTransBit.h} | 32 +- ...Finder.cxx => AliHLTVHDLClusterFinder.cxx} | 74 +- ...sterFinder.h => AliHLTVHDLClusterFinder.h} | 18 +- HLT/misc/AliL3DataHandler.h | 37 - HLT/misc/AliL3FFloat.h | 197 ---- HLT/misc/AliL3MiscLinkDef.h | 30 - HLT/misc/AliL3TPCMapping-iroc.generated | 8 - HLT/misc/AliL3TPCMapping-oroc.generated | 8 - HLT/misc/Makefile | 12 +- HLT/programs/Makefile | 4 +- HLT/programs/ali2raw.cxx | 28 +- HLT/programs/convcosmicsfile.cxx | 4 +- HLT/programs/gettransform.cxx | 24 +- HLT/programs/read.cxx | 30 +- HLT/programs/runhough.cxx | 68 +- HLT/programs/runit.cxx | 34 +- HLT/programs/runtracker.cxx | 4 +- HLT/programs/runvhdlcf.cxx | 24 +- HLT/programs/runvhdlhough.cxx | 22 +- HLT/programs/speedtest.cxx | 10 +- HLT/programs/speedtest.h | 4 +- HLT/programs/tpcbeamtestdisplay.cxx | 44 +- HLT/programs/tpcbeamtesttracker.cxx | 34 +- ...AliL3Generator.cxx => AliHLTGenerator.cxx} | 10 +- HLT/sim/AliHLTGenerator.h | 27 + HLT/sim/AliL3Generator.h | 25 - ...AliL3Benchmark.cxx => AliHLTBenchmark.cxx} | 32 +- .../{AliL3Benchmark.h => AliHLTBenchmark.h} | 20 +- ...FinderNew.cxx => AliHLTClustFinderNew.cxx} | 108 +-- ...lustFinderNew.h => AliHLTClustFinderNew.h} | 29 +- ...iL3ConfMapFit.cxx => AliHLTConfMapFit.cxx} | 86 +- HLT/src/AliHLTConfMapFit.h | 28 + ...onfMapPoint.cxx => AliHLTConfMapPoint.cxx} | 42 +- ...iL3ConfMapPoint.h => AliHLTConfMapPoint.h} | 42 +- ...onfMapTrack.cxx => AliHLTConfMapTrack.cxx} | 68 +- ...iL3ConfMapTrack.h => AliHLTConfMapTrack.h} | 36 +- ...iL3ConfMapper.cxx => AliHLTConfMapper.cxx} | 196 ++-- .../{AliL3ConfMapper.h => AliHLTConfMapper.h} | 54 +- HLT/src/AliHLTDigitData.h | 45 + .../{AliL3Display.cxx => AliHLTDisplay.cxx} | 94 +- HLT/src/{AliL3Display.h => AliHLTDisplay.h} | 30 +- .../{AliL3Evaluate.cxx => AliHLTEvaluate.cxx} | 238 ++--- HLT/src/{AliL3Evaluate.h => AliHLTEvaluate.h} | 32 +- ...3FileHandler.cxx => AliHLTFileHandler.cxx} | 358 ++++---- ...AliL3FileHandler.h => AliHLTFileHandler.h} | 28 +- HLT/src/{AliL3Fitter.cxx => AliHLTFitter.cxx} | 88 +- HLT/src/AliHLTFitter.h | 43 + ...lobalMerger.cxx => AliHLTGlobalMerger.cxx} | 98 +- HLT/src/AliHLTGlobalMerger.h | 35 + ...3InterMerger.cxx => AliHLTInterMerger.cxx} | 62 +- ...AliL3InterMerger.h => AliHLTInterMerger.h} | 14 +- HLT/src/AliHLTLog.cxx | 10 + HLT/src/{AliL3Log.h => AliHLTLog.h} | 9 +- HLT/src/{AliL3Logger.cxx => AliHLTLogger.cxx} | 90 +- HLT/src/{AliL3Logger.h => AliHLTLogger.h} | 14 +- HLT/src/AliHLTLogging.h | 24 + ...iL3MemHandler.cxx => AliHLTMemHandler.cxx} | 432 ++++----- .../{AliL3MemHandler.h => AliHLTMemHandler.h} | 101 +- HLT/src/{AliL3Merger.cxx => AliHLTMerger.cxx} | 154 ++-- HLT/src/AliHLTMerger.h | 75 ++ ...ndler.cxx => AliHLTRawDataFileHandler.cxx} | 258 +++--- ...leHandler.h => AliHLTRawDataFileHandler.h} | 17 +- HLT/src/AliHLTReconstructor.cxx | 62 +- HLT/src/AliHLTReconstructor.h | 2 + .../{AliL3RootTypes.h => AliHLTRootTypes.h} | 6 +- ...pacePointData.h => AliHLTSpacePointData.h} | 7 +- HLT/src/AliHLTSrcLinkDef.h | 82 ++ ...ardIncludes.h => AliHLTStandardIncludes.h} | 0 ...er.cxx => AliHLTTPCBeamTestMemHandler.cxx} | 98 +- ...andler.h => AliHLTTPCBeamTestMemHandler.h} | 19 +- ...iL3TPCtracker.cxx => AliHLTTPCtracker.cxx} | 20 +- .../{AliL3TPCtracker.h => AliHLTTPCtracker.h} | 10 +- HLT/src/{AliL3Track.cxx => AliHLTTrack.cxx} | 162 ++-- HLT/src/{AliL3Track.h => AliHLTTrack.h} | 21 +- ...iL3TrackArray.cxx => AliHLTTrackArray.cxx} | 200 ++-- HLT/src/AliHLTTrackArray.h | 65 ++ ...3TrackMerger.cxx => AliHLTTrackMerger.cxx} | 112 +-- ...AliL3TrackMerger.h => AliHLTTrackMerger.h} | 24 +- ...SegmentData.h => AliHLTTrackSegmentData.h} | 6 +- ...AliL3Transform.cxx => AliHLTTransform.cxx} | 356 ++++---- .../{AliL3Transform.h => AliHLTTransform.h} | 11 +- HLT/src/{AliL3Vertex.cxx => AliHLTVertex.cxx} | 26 +- HLT/src/{AliL3Vertex.h => AliHLTVertex.h} | 19 +- ...3VertexArray.cxx => AliHLTVertexArray.cxx} | 22 +- ...AliL3VertexArray.h => AliHLTVertexArray.h} | 34 +- .../{AliL3VertexData.h => AliHLTVertexData.h} | 6 +- ...ertexFinder.cxx => AliHLTVertexFinder.cxx} | 50 +- ...iL3VertexFinder.h => AliHLTVertexFinder.h} | 31 +- HLT/src/AliL3ConfMapFit.h | 26 - HLT/src/AliL3DigitData.h | 42 - HLT/src/AliL3Fitter.h | 41 - HLT/src/AliL3GlobalMerger.h | 33 - HLT/src/AliL3Log.cxx | 10 - HLT/src/AliL3Logging.h | 24 - HLT/src/AliL3Merger.h | 73 -- HLT/src/AliL3SrcLinkDef.h | 46 - HLT/src/AliL3TrackArray.h | 63 -- HLT/src/AliLevel3.cxx | 186 ++-- HLT/src/AliLevel3.h | 60 +- HLT/src/Makefile | 34 +- HLT/src/l3transform.config | 2 +- HLT/trigger/AliD0Trigger.cxx | 10 +- HLT/trigger/AliD0Trigger.h | 2 +- .../{AliL3Trigger.cxx => AliHLTTrigger.cxx} | 76 +- HLT/trigger/AliHLTTrigger.h | 50 + ...riggerLinkDef.h => AliHLTTriggerLinkDef.h} | 0 HLT/trigger/AliL3Trigger.h | 48 - HLT/trigger/Makefile | 2 +- JETAN/jetan2004/AliJetParticlesReaderHLT.cxx | 8 +- JETAN/jetan2004/rootlogon.C | 2 +- MONITOR/AliMonitorHLT.cxx | 32 +- MONITOR/AliMonitorHLTHough.cxx | 28 +- MONITOR/AliMonitorProcess.cxx | 42 +- MONITOR/AliMonitorProcess.h | 4 +- MONITOR/binmonitorCheck.pkg | 2 +- MONITOR/binmonitorGDC.pkg | 2 +- MONITOR/client.C | 8 +- MONITOR/monitor.C | 8 +- MONITOR/monitorGDC.cxx | 54 +- RAW/AliHoughFilter.cxx | 40 +- RAW/Makefile | 2 +- RAW/binalimdc.pkg | 2 +- RAW/bindateStream.pkg | 2 +- STEER/AliReconstruction.cxx | 8 +- build/module.dep | 2 +- macros/loadlibs.C | 10 +- macros/loadlibsrec.C | 10 +- 357 files changed, 9193 insertions(+), 9117 deletions(-) create mode 100644 HLT/ITS/AliHLTITSLinkDef.h rename HLT/ITS/{AliL3ITSVertexerZ.cxx => AliHLTITSVertexerZ.cxx} (96%) rename HLT/ITS/{AliL3ITSVertexerZ.h => AliHLTITSVertexerZ.h} (79%) rename HLT/ITS/{AliL3ITSclusterer.cxx => AliHLTITSclusterer.cxx} (92%) rename HLT/ITS/{AliL3ITSclusterer.h => AliHLTITSclusterer.h} (77%) rename HLT/ITS/{AliL3ITStrack.cxx => AliHLTITStrack.cxx} (90%) rename HLT/ITS/{AliL3ITStrack.h => AliHLTITStrack.h} (77%) rename HLT/ITS/{AliL3ITStracker.cxx => AliHLTITStracker.cxx} (93%) rename HLT/ITS/{AliL3ITStracker.h => AliHLTITStracker.h} (77%) delete mode 100644 HLT/ITS/AliL3ITSLinkDef.h rename HLT/comp/{AliL3ClusterFitter.cxx => AliHLTClusterFitter.cxx} (74%) rename HLT/comp/{AliL3ClusterFitter.h => AliHLTClusterFitter.h} (57%) create mode 100644 HLT/comp/AliHLTCompLinkDef.h rename HLT/comp/{AliL3Compress.cxx => AliHLTCompress.cxx} (63%) create mode 100644 HLT/comp/AliHLTCompress.h rename HLT/comp/{AliL3CompressAC.cxx => AliHLTCompressAC.cxx} (76%) rename HLT/comp/{AliL3CompressAC.h => AliHLTCompressAC.h} (72%) rename HLT/comp/{AliL3DataCompressor.cxx => AliHLTDataCompressor.cxx} (68%) rename HLT/comp/{AliL3DataCompressor.h => AliHLTDataCompressor.h} (74%) create mode 100644 HLT/comp/AliHLTDataCompressorHelper.cxx rename HLT/comp/{AliL3DataCompressorHelper.h => AliHLTDataCompressorHelper.h} (88%) rename HLT/comp/{AliL3FitUtilities.c => AliHLTFitUtilities.c} (99%) rename HLT/comp/{AliL3FitUtilities.h => AliHLTFitUtilities.h} (96%) create mode 100644 HLT/comp/AliHLTModelTrack.cxx rename HLT/comp/{AliL3ModelTrack.h => AliHLTModelTrack.h} (78%) rename HLT/comp/{AliL3Modeller.cxx => AliHLTModeller.cxx} (68%) rename HLT/comp/{AliL3Modeller.h => AliHLTModeller.h} (70%) rename HLT/comp/{AliL3Models.h => AliHLTModels.h} (50%) rename HLT/comp/{AliL3OfflineDataCompressor.cxx => AliHLTOfflineDataCompressor.cxx} (76%) create mode 100644 HLT/comp/AliHLTOfflineDataCompressor.h delete mode 100644 HLT/comp/AliL3CompLinkDef.h delete mode 100644 HLT/comp/AliL3Compress.h delete mode 100644 HLT/comp/AliL3DataCompressorHelper.cxx delete mode 100644 HLT/comp/AliL3ModelTrack.cxx delete mode 100644 HLT/comp/AliL3OfflineDataCompressor.h rename HLT/hough/{AliL3Histogram.cxx => AliHLTHistogram.cxx} (71%) rename HLT/hough/{AliL3Histogram.h => AliHLTHistogram.h} (77%) rename HLT/hough/{AliL3Histogram1D.cxx => AliHLTHistogram1D.cxx} (69%) rename HLT/hough/{AliL3Histogram1D.h => AliHLTHistogram1D.h} (75%) rename HLT/hough/{AliL3HistogramAdaptive.cxx => AliHLTHistogramAdaptive.cxx} (73%) rename HLT/hough/{AliL3HistogramAdaptive.h => AliHLTHistogramAdaptive.h} (60%) rename HLT/hough/{AliL3Hough.cxx => AliHLTHough.cxx} (70%) rename HLT/hough/{AliL3Hough.h => AliHLTHough.h} (73%) rename HLT/hough/{AliL3HoughBaseTransformer.cxx => AliHLTHoughBaseTransformer.cxx} (62%) rename HLT/hough/{AliL3HoughBaseTransformer.h => AliHLTHoughBaseTransformer.h} (76%) rename HLT/hough/{AliL3HoughClusterTransformer.cxx => AliHLTHoughClusterTransformer.cxx} (65%) rename HLT/hough/{AliL3HoughClusterTransformer.h => AliHLTHoughClusterTransformer.h} (51%) rename HLT/hough/{AliL3HoughDisplay.cxx => AliHLTHoughDisplay.cxx} (63%) create mode 100644 HLT/hough/AliHLTHoughDisplay.h rename HLT/hough/{AliL3HoughEval.cxx => AliHLTHoughEval.cxx} (67%) create mode 100644 HLT/hough/AliHLTHoughEval.h create mode 100644 HLT/hough/AliHLTHoughGlobalMerger.cxx create mode 100644 HLT/hough/AliHLTHoughGlobalMerger.h rename HLT/hough/{AliL3HoughIntMerger.cxx => AliHLTHoughIntMerger.cxx} (57%) create mode 100644 HLT/hough/AliHLTHoughIntMerger.h rename HLT/hough/{AliL3HoughKalmanTrack.cxx => AliHLTHoughKalmanTrack.cxx} (79%) rename HLT/hough/{AliL3HoughKalmanTrack.h => AliHLTHoughKalmanTrack.h} (69%) create mode 100644 HLT/hough/AliHLTHoughLinkDef.h rename HLT/hough/{AliL3HoughMaxFinder.cxx => AliHLTHoughMaxFinder.cxx} (89%) rename HLT/hough/{AliL3HoughMaxFinder.h => AliHLTHoughMaxFinder.h} (66%) rename HLT/hough/{AliL3HoughMerger.cxx => AliHLTHoughMerger.cxx} (67%) create mode 100644 HLT/hough/AliHLTHoughMerger.h rename HLT/hough/{AliL3HoughTest.cxx => AliHLTHoughTest.cxx} (64%) create mode 100644 HLT/hough/AliHLTHoughTest.h rename HLT/hough/{AliL3HoughTrack.cxx => AliHLTHoughTrack.cxx} (68%) rename HLT/hough/{AliL3HoughTrack.h => AliHLTHoughTrack.h} (84%) rename HLT/hough/{AliL3HoughTransformer.cxx => AliHLTHoughTransformer.cxx} (56%) rename HLT/hough/{AliL3HoughTransformer.h => AliHLTHoughTransformer.h} (64%) rename HLT/hough/{AliL3HoughTransformerGlobal.cxx => AliHLTHoughTransformerGlobal.cxx} (60%) rename HLT/hough/{AliL3HoughTransformerGlobal.h => AliHLTHoughTransformerGlobal.h} (54%) rename HLT/hough/{AliL3HoughTransformerLUT.cxx => AliHLTHoughTransformerLUT.cxx} (71%) rename HLT/hough/{AliL3HoughTransformerLUT.h => AliHLTHoughTransformerLUT.h} (73%) rename HLT/hough/{AliL3HoughTransformerNew.cxx => AliHLTHoughTransformerNew.cxx} (50%) rename HLT/hough/{AliL3HoughTransformerNew.h => AliHLTHoughTransformerNew.h} (50%) rename HLT/hough/{AliL3HoughTransformerRow.cxx => AliHLTHoughTransformerRow.cxx} (76%) rename HLT/hough/{AliL3HoughTransformerRow.h => AliHLTHoughTransformerRow.h} (74%) rename HLT/hough/{AliL3HoughTransformerVhdl.cxx => AliHLTHoughTransformerVhdl.cxx} (79%) rename HLT/hough/{AliL3HoughTransformerVhdl.h => AliHLTHoughTransformerVhdl.h} (61%) delete mode 100644 HLT/hough/AliL3HoughDisplay.h delete mode 100644 HLT/hough/AliL3HoughEval.h delete mode 100644 HLT/hough/AliL3HoughGlobalMerger.cxx delete mode 100644 HLT/hough/AliL3HoughGlobalMerger.h delete mode 100644 HLT/hough/AliL3HoughIntMerger.h delete mode 100644 HLT/hough/AliL3HoughLinkDef.h delete mode 100644 HLT/hough/AliL3HoughMerger.h delete mode 100644 HLT/hough/AliL3HoughTest.h rename HLT/kalman/{AliL3Kalman.cxx => AliHLTKalman.cxx} (73%) create mode 100644 HLT/kalman/AliHLTKalman.h create mode 100644 HLT/kalman/AliHLTKalmanLinkDef.h rename HLT/kalman/{AliL3KalmanTrack.cxx => AliHLTKalmanTrack.cxx} (89%) rename HLT/kalman/{AliL3KalmanTrack.h => AliHLTKalmanTrack.h} (83%) delete mode 100644 HLT/kalman/AliL3Kalman.h delete mode 100644 HLT/kalman/AliL3KalmanLinkDef.h delete mode 100644 HLT/libAliL3Comp.pkg delete mode 100644 HLT/libAliL3Hough.pkg delete mode 100644 HLT/libAliL3ITS.pkg delete mode 100644 HLT/libAliL3MUON.pkg delete mode 100644 HLT/libAliL3Misc.pkg delete mode 100644 HLT/libAliL3Src.pkg rename HLT/misc/{AliL3AltroMemHandler.cxx => AliHLTAltroMemHandler.cxx} (72%) rename HLT/misc/{AliL3AltroMemHandler.h => AliHLTAltroMemHandler.h} (86%) rename HLT/misc/{AliL3DDLDataFileHandler.cxx => AliHLTDDLDataFileHandler.cxx} (61%) rename HLT/misc/{AliL3DDLDataFileHandler.h => AliHLTDDLDataFileHandler.h} (50%) rename HLT/misc/{AliL3DDLRawReader.cxx => AliHLTDDLRawReader.cxx} (74%) rename HLT/misc/{AliL3DDLRawReader.h => AliHLTDDLRawReader.h} (83%) rename HLT/misc/{AliL3DDLRawReaderFile.cxx => AliHLTDDLRawReaderFile.cxx} (83%) rename HLT/misc/{AliL3DDLRawReaderFile.h => AliHLTDDLRawReaderFile.h} (63%) rename HLT/misc/{AliL3DDLTPCRawStream.cxx => AliHLTDDLTPCRawStream.cxx} (82%) rename HLT/misc/{AliL3DDLTPCRawStream.h => AliHLTDDLTPCRawStream.h} (83%) rename HLT/misc/{AliL3DataHandler.cxx => AliHLTDataHandler.cxx} (75%) create mode 100644 HLT/misc/AliHLTDataHandler.h rename HLT/misc/{AliL3FFloat.cxx => AliHLTFFloat.cxx} (62%) create mode 100644 HLT/misc/AliHLTFFloat.h create mode 100644 HLT/misc/AliHLTMiscLinkDef.h rename HLT/misc/{AliL3Stopwatch.cxx => AliHLTStopwatch.cxx} (75%) rename HLT/misc/{AliL3Stopwatch.h => AliHLTStopwatch.h} (86%) create mode 100644 HLT/misc/AliHLTTPCMapping-iroc.generated create mode 100644 HLT/misc/AliHLTTPCMapping-oroc.generated rename HLT/misc/{AliL3TPCMapping.cxx => AliHLTTPCMapping.cxx} (88%) rename HLT/misc/{AliL3TPCMapping.h => AliHLTTPCMapping.h} (93%) rename HLT/misc/{AliL3TransBit.cxx => AliHLTTransBit.cxx} (92%) rename HLT/misc/{AliL3TransBit.h => AliHLTTransBit.h} (57%) rename HLT/misc/{AliL3VHDLClusterFinder.cxx => AliHLTVHDLClusterFinder.cxx} (83%) rename HLT/misc/{AliL3VHDLClusterFinder.h => AliHLTVHDLClusterFinder.h} (88%) delete mode 100644 HLT/misc/AliL3DataHandler.h delete mode 100644 HLT/misc/AliL3FFloat.h delete mode 100644 HLT/misc/AliL3MiscLinkDef.h delete mode 100644 HLT/misc/AliL3TPCMapping-iroc.generated delete mode 100644 HLT/misc/AliL3TPCMapping-oroc.generated rename HLT/sim/{AliL3Generator.cxx => AliHLTGenerator.cxx} (57%) create mode 100644 HLT/sim/AliHLTGenerator.h delete mode 100644 HLT/sim/AliL3Generator.h rename HLT/src/{AliL3Benchmark.cxx => AliHLTBenchmark.cxx} (86%) rename HLT/src/{AliL3Benchmark.h => AliHLTBenchmark.h} (72%) rename HLT/src/{AliL3ClustFinderNew.cxx => AliHLTClustFinderNew.cxx} (78%) rename HLT/src/{AliL3ClustFinderNew.h => AliHLTClustFinderNew.h} (78%) rename HLT/src/{AliL3ConfMapFit.cxx => AliHLTConfMapFit.cxx} (81%) create mode 100644 HLT/src/AliHLTConfMapFit.h rename HLT/src/{AliL3ConfMapPoint.cxx => AliHLTConfMapPoint.cxx} (84%) rename HLT/src/{AliL3ConfMapPoint.h => AliHLTConfMapPoint.h} (83%) rename HLT/src/{AliL3ConfMapTrack.cxx => AliHLTConfMapTrack.cxx} (73%) rename HLT/src/{AliL3ConfMapTrack.h => AliHLTConfMapTrack.h} (68%) rename HLT/src/{AliL3ConfMapper.cxx => AliHLTConfMapper.cxx} (73%) rename HLT/src/{AliL3ConfMapper.h => AliHLTConfMapper.h} (76%) create mode 100644 HLT/src/AliHLTDigitData.h rename HLT/src/{AliL3Display.cxx => AliHLTDisplay.cxx} (80%) rename HLT/src/{AliL3Display.h => AliHLTDisplay.h} (56%) rename HLT/src/{AliL3Evaluate.cxx => AliHLTEvaluate.cxx} (78%) rename HLT/src/{AliL3Evaluate.h => AliHLTEvaluate.h} (82%) rename HLT/src/{AliL3FileHandler.cxx => AliHLTFileHandler.cxx} (73%) rename HLT/src/{AliL3FileHandler.h => AliHLTFileHandler.h} (69%) rename HLT/src/{AliL3Fitter.cxx => AliHLTFitter.cxx} (86%) create mode 100644 HLT/src/AliHLTFitter.h rename HLT/src/{AliL3GlobalMerger.cxx => AliHLTGlobalMerger.cxx} (77%) create mode 100644 HLT/src/AliHLTGlobalMerger.h rename HLT/src/{AliL3InterMerger.cxx => AliHLTInterMerger.cxx} (67%) rename HLT/src/{AliL3InterMerger.h => AliHLTInterMerger.h} (55%) create mode 100644 HLT/src/AliHLTLog.cxx rename HLT/src/{AliL3Log.h => AliHLTLog.h} (68%) rename HLT/src/{AliL3Logger.cxx => AliHLTLogger.cxx} (51%) rename HLT/src/{AliL3Logger.h => AliHLTLogger.h} (78%) create mode 100644 HLT/src/AliHLTLogging.h rename HLT/src/{AliL3MemHandler.cxx => AliHLTMemHandler.cxx} (62%) rename HLT/src/{AliL3MemHandler.h => AliHLTMemHandler.h} (65%) rename HLT/src/{AliL3Merger.cxx => AliHLTMerger.cxx} (70%) create mode 100644 HLT/src/AliHLTMerger.h rename HLT/src/{AliL3RawDataFileHandler.cxx => AliHLTRawDataFileHandler.cxx} (63%) rename HLT/src/{AliL3RawDataFileHandler.h => AliHLTRawDataFileHandler.h} (83%) rename HLT/src/{AliL3RootTypes.h => AliHLTRootTypes.h} (96%) rename HLT/src/{AliL3SpacePointData.h => AliHLTSpacePointData.h} (71%) create mode 100644 HLT/src/AliHLTSrcLinkDef.h rename HLT/src/{AliL3StandardIncludes.h => AliHLTStandardIncludes.h} (100%) rename HLT/src/{AliL3TPCBeamTestMemHandler.cxx => AliHLTTPCBeamTestMemHandler.cxx} (64%) rename HLT/src/{AliL3TPCBeamTestMemHandler.h => AliHLTTPCBeamTestMemHandler.h} (74%) rename HLT/src/{AliL3TPCtracker.cxx => AliHLTTPCtracker.cxx} (84%) rename HLT/src/{AliL3TPCtracker.h => AliHLTTPCtracker.h} (84%) rename HLT/src/{AliL3Track.cxx => AliHLTTrack.cxx} (75%) rename HLT/src/{AliL3Track.h => AliHLTTrack.h} (92%) rename HLT/src/{AliL3TrackArray.cxx => AliHLTTrackArray.cxx} (65%) create mode 100644 HLT/src/AliHLTTrackArray.h rename HLT/src/{AliL3TrackMerger.cxx => AliHLTTrackMerger.cxx} (67%) rename HLT/src/{AliL3TrackMerger.h => AliHLTTrackMerger.h} (56%) rename HLT/src/{AliL3TrackSegmentData.h => AliHLTTrackSegmentData.h} (87%) rename HLT/src/{AliL3Transform.cxx => AliHLTTransform.cxx} (82%) rename HLT/src/{AliL3Transform.h => AliHLTTransform.h} (98%) rename HLT/src/{AliL3Vertex.cxx => AliHLTVertex.cxx} (60%) rename HLT/src/{AliL3Vertex.h => AliHLTVertex.h} (73%) rename HLT/src/{AliL3VertexArray.cxx => AliHLTVertexArray.cxx} (83%) rename HLT/src/{AliL3VertexArray.h => AliHLTVertexArray.h} (73%) rename HLT/src/{AliL3VertexData.h => AliHLTVertexData.h} (65%) rename HLT/src/{AliL3VertexFinder.cxx => AliHLTVertexFinder.cxx} (59%) rename HLT/src/{AliL3VertexFinder.h => AliHLTVertexFinder.h} (60%) delete mode 100644 HLT/src/AliL3ConfMapFit.h delete mode 100644 HLT/src/AliL3DigitData.h delete mode 100644 HLT/src/AliL3Fitter.h delete mode 100644 HLT/src/AliL3GlobalMerger.h delete mode 100644 HLT/src/AliL3Log.cxx delete mode 100644 HLT/src/AliL3Logging.h delete mode 100644 HLT/src/AliL3Merger.h delete mode 100644 HLT/src/AliL3SrcLinkDef.h delete mode 100644 HLT/src/AliL3TrackArray.h rename HLT/trigger/{AliL3Trigger.cxx => AliHLTTrigger.cxx} (59%) create mode 100644 HLT/trigger/AliHLTTrigger.h rename HLT/trigger/{AliL3TriggerLinkDef.h => AliHLTTriggerLinkDef.h} (100%) delete mode 100644 HLT/trigger/AliL3Trigger.h diff --git a/ALIROOT/binaliroot.pkg b/ALIROOT/binaliroot.pkg index 7e2d484c89e..c29f98e2077 100644 --- a/ALIROOT/binaliroot.pkg +++ b/ALIROOT/binaliroot.pkg @@ -18,8 +18,8 @@ ELIBS:= MUONgeometry MUONrec MUONsim MUONbase MUONraw MUONmapping \ hijing TMEVSIM mevsim THbtp HBTP TEPEMGEN EPEMGEN \ FASTSIM microcern \ RAWDatabase RAWDatarec RAWDatasim \ - AliL3Src AliL3Comp AliL3Misc AliL3MUON \ - AliL3Hough AliL3ITS \ + AliHLTSrc AliHLTComp AliHLTMisc AliHLTMUON \ + AliHLTHough AliHLTITS \ # THerwig herwig TPHIC ifeq (macosx,$(ALICE_TARGET)) diff --git a/ANALYSIS/binaliengui.pkg b/ANALYSIS/binaliengui.pkg index df1442c43c8..ce2dd76c269 100644 --- a/ANALYSIS/binaliengui.pkg +++ b/ANALYSIS/binaliengui.pkg @@ -16,8 +16,8 @@ ELIBS := Aliengui MUONgeometry MUONrec MUONsim MUONbase MUONraw MUONmapping \ hijing TMEVSIM mevsim THbtp HBTP TEPEMGEN EPEMGEN \ FASTSIM microcern \ RAWDatabase RAWDatarec RAWDatasim \ - AliL3Src AliL3Comp AliL3Misc AliL3MUON \ - AliL3Hough AliL3ITS + AliHLTSrc AliHLTComp AliHLTMisc AliHLTMUON \ + AliHLTHough AliHLTITS PACKBLIBS := -L$(ROOTSYS)/lib $(ROOTCLIBS) $(ROOTPLIBS) $(SYSLIBS) diff --git a/EVE/binalieve.pkg b/EVE/binalieve.pkg index 59bbd03a427..178c60d550b 100644 --- a/EVE/binalieve.pkg +++ b/EVE/binalieve.pkg @@ -17,8 +17,8 @@ ELIBS := Reve Alieve \ hijing TMEVSIM mevsim THbtp HBTP TEPEMGEN EPEMGEN \ FASTSIM microcern \ RAWDatabase RAWDatarec RAWDatasim \ - AliL3Src AliL3Comp AliL3Misc AliL3MUON \ - AliL3Hough AliL3ITS \ + AliHLTSrc AliHLTComp AliHLTMisc AliHLTMUON \ + AliHLTHough AliHLTITS \ # THerwig herwig TPHIC PACKBLIBS := $(ROOTCLIBS) $(ROOTPLIBS) -lTreePlayer -lGeomPainter -lGed -lRGL $(SYSLIBS) diff --git a/EVE/macros/alieve_loadlibs.C b/EVE/macros/alieve_loadlibs.C index 1d8bd68561f..8ba5488c530 100644 --- a/EVE/macros/alieve_loadlibs.C +++ b/EVE/macros/alieve_loadlibs.C @@ -93,12 +93,12 @@ void alieve_loadlibs () gSystem->Load("libTOFsim"); gSystem->Load("libTOFrec"); - gSystem->Load("libAliL3ITS"); - gSystem->Load("libAliL3Src"); - gSystem->Load("libAliL3Misc"); - gSystem->Load("libAliL3Comp"); + gSystem->Load("libAliHLTITS"); + gSystem->Load("libAliHLTSrc"); + gSystem->Load("libAliHLTMisc"); + gSystem->Load("libAliHLTComp"); gSystem->Load("libThread"); - gSystem->Load("libAliL3Hough"); + gSystem->Load("libAliHLTHough"); gSystem->Load("libANALYSIS"); gSystem->Load("libAlieve.so"); diff --git a/HLT/BASE/AliHLTStdIncludes.h b/HLT/BASE/AliHLTStdIncludes.h index 47acaea8c53..2e447841659 100644 --- a/HLT/BASE/AliHLTStdIncludes.h +++ b/HLT/BASE/AliHLTStdIncludes.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original file : src/AliL3StandardIncludes.h,v 1.5 +// Original file : src/AliHLTStandardIncludes.h,v 1.5 #ifndef ALIHLTSTDINCLUDESH #define ALIHLTSTDINCLUDESH diff --git a/HLT/ChangeLog b/HLT/ChangeLog index f6b90627be1..6220e8c8cef 100644 --- a/HLT/ChangeLog +++ b/HLT/ChangeLog @@ -71,69 +71,69 @@ 2005-09-07 Files imported from src comp and kalman into new TPCLib a short history of files ... - AliHLTTPCBenchmark.cxx AliL3Benchmark.cxx,v 1.10 2005/06/14 10:55:21 cvetan Exp - AliHLTTPCBenchmark.h AliL3Benchmark.h,v 1.6 2004/06/26 11:39:40 loizides - AliHLTTPCClusterFinder.cxx original AliL3ClustFinderNew.cxx - AliHLTTPCClusterFinder.h original AliL3ClustFinderNew.h - AliHLTTPCClustFinderNew.cxx AliL3ClustFinderNew.cxx,v 1.29 2005/06/14 10:55:21 cvetan Exp - AliHLTTPCClustFinderNew.h AliL3ClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides Exp - AliHLTTPCConfMapFit.cxx AliL3ConfMapFit.cxx,v 1.14 2005/06/14 10:55:21 cvetan Exp - AliHLTTPCConfMapFit.h AliL3ConfMapFit.h,v 1.5 2004/07/05 09:03:11 loizides Exp - AliHLTTPCConfMapper.cxx AliL3ConfMapper.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCConfMapper.h AliL3ConfMapper.h,v 1.11 2004/07/05 09:03:11 loizides Exp $ - AliHLTTPCConfMapPoint.cxx AliL3ConfMapPoint.cxx,v 1.10 2005/06/23 17:46:55 hristov Exp $ - AliHLTTPCConfMapPoint.h AliL3ConfMapPoint.h,v 1.8 2005/06/23 17:46:55 hristov Exp $ - AliHLTTPCConfMapTrack.cxx AliL3ConfMapTrack.cxx,v 1.16 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCConfMapTrack.h AliL3ConfMapTrack.h,v 1.4 2004/06/16 11:25:06 loizides Exp $ + AliHLTTPCBenchmark.cxx AliHLTBenchmark.cxx,v 1.10 2005/06/14 10:55:21 cvetan Exp + AliHLTTPCBenchmark.h AliHLTBenchmark.h,v 1.6 2004/06/26 11:39:40 loizides + AliHLTTPCClusterFinder.cxx original AliHLTClustFinderNew.cxx + AliHLTTPCClusterFinder.h original AliHLTClustFinderNew.h + AliHLTTPCClustFinderNew.cxx AliHLTClustFinderNew.cxx,v 1.29 2005/06/14 10:55:21 cvetan Exp + AliHLTTPCClustFinderNew.h AliHLTClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides Exp + AliHLTTPCConfMapFit.cxx AliHLTConfMapFit.cxx,v 1.14 2005/06/14 10:55:21 cvetan Exp + AliHLTTPCConfMapFit.h AliHLTConfMapFit.h,v 1.5 2004/07/05 09:03:11 loizides Exp + AliHLTTPCConfMapper.cxx AliHLTConfMapper.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCConfMapper.h AliHLTConfMapper.h,v 1.11 2004/07/05 09:03:11 loizides Exp $ + AliHLTTPCConfMapPoint.cxx AliHLTConfMapPoint.cxx,v 1.10 2005/06/23 17:46:55 hristov Exp $ + AliHLTTPCConfMapPoint.h AliHLTConfMapPoint.h,v 1.8 2005/06/23 17:46:55 hristov Exp $ + AliHLTTPCConfMapTrack.cxx AliHLTConfMapTrack.cxx,v 1.16 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCConfMapTrack.h AliHLTConfMapTrack.h,v 1.4 2004/06/16 11:25:06 loizides Exp $ AliHLTTPC.cxx AliLevel3.cxx,v 1.42 2004/06/11 16:06:33 loizides Exp $ Mod: Digits-thing - AliHLTTPCDigitData.h AliL3DigitData.h,v 1.5 2004/05/12 11:51:27 loizides Exp $ - AliHLTTPCDisplay.cxx AliL3Display.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCDigitData.h AliHLTDigitData.h,v 1.5 2004/05/12 11:51:27 loizides Exp $ + AliHLTTPCDisplay.cxx AliHLTDisplay.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ Mod. - AliHLTTPCDisplay.h AliL3Display.h,v 1.14 2004/06/30 08:30:14 loizides Exp $ + AliHLTTPCDisplay.h AliHLTDisplay.h,v 1.14 2004/06/30 08:30:14 loizides Exp $ Mod. - AliHLTTPCFileHandler.cxx AliL3FileHandler.cxx,v 1.49 2005/06/23 17:46:55 hristov Exp $ - AliHLTTPCFileHandler.h AliL3FileHandler.h,v 1.19 2004/06/11 16:06:33 loizides Exp $ - AliHLTTPCFitter.cxx AliL3Fitter.cxx,v 1.14 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCFitter.h AliL3Fitter.h,v 1.7 2004/07/05 09:02:18 loizides Exp $ - AliHLTTPCGlobalMerger.cxx AliL3GlobalMerger.cxx,v 1.13 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCGlobalMerger.h AliL3GlobalMerger.h,v 1.6 2004/02/02 15:00:34 loizides Exp $ + AliHLTTPCFileHandler.cxx AliHLTFileHandler.cxx,v 1.49 2005/06/23 17:46:55 hristov Exp $ + AliHLTTPCFileHandler.h AliHLTFileHandler.h,v 1.19 2004/06/11 16:06:33 loizides Exp $ + AliHLTTPCFitter.cxx AliHLTFitter.cxx,v 1.14 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCFitter.h AliHLTFitter.h,v 1.7 2004/07/05 09:02:18 loizides Exp $ + AliHLTTPCGlobalMerger.cxx AliHLTGlobalMerger.cxx,v 1.13 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCGlobalMerger.h AliHLTGlobalMerger.h,v 1.6 2004/02/02 15:00:34 loizides Exp $ AliHLTTPC.h AliLevel3.h,v 1.24 2004/06/11 16:06:33 loizides Added AliHLTDigitReaderUnpacked - AliHLTTPCInterMerger.cxx AliL3InterMerger.cxx,v 1.8 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCInterMerger.h AliL3InterMerger.h,v 1.4 2004/02/02 15:00:34 loizides Exp $ - AliHLTTPCLog.cxx AliL3Log.cxx,v 1.1 2004/05/14 09:37:22 loizides Exp $ - AliHLTTPCLogging.h AliL3Logging.h,v 1.11 2004/10/09 11:28:31 loizides Exp $ - AliHLTTPCLog.h AliL3Log.h,v 1.2 2004/06/11 16:06:33 loizides Exp $ - AliHLTTPCMemHandler.cxx AliL3MemHandler.cxx,v 1.52 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCMemHandler.h AliL3MemHandler.h,v 1.30 2004/10/06 08:51:20 cvetan Exp $ - AliHLTTPCMerger.cxx AliL3Merger.cxx,v 1.16 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCMerger.h AliL3Merger.h,v 1.8 2004/06/11 16:06:33 loizides Exp $ - AliHLTTPCRootTypes.h AliL3RootTypes.h,v 1.12 2004/06/15 14:02:38 loizides Exp $ - AliHLTTPCSpacePointData.h AliL3SpacePointData.h,v1.4 2003/07/27 21:02:09 loizides Exp $ + AliHLTTPCInterMerger.cxx AliHLTInterMerger.cxx,v 1.8 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCInterMerger.h AliHLTInterMerger.h,v 1.4 2004/02/02 15:00:34 loizides Exp $ + AliHLTTPCLog.cxx AliHLTLog.cxx,v 1.1 2004/05/14 09:37:22 loizides Exp $ + AliHLTTPCLogging.h AliHLTLogging.h,v 1.11 2004/10/09 11:28:31 loizides Exp $ + AliHLTTPCLog.h AliHLTLog.h,v 1.2 2004/06/11 16:06:33 loizides Exp $ + AliHLTTPCMemHandler.cxx AliHLTMemHandler.cxx,v 1.52 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCMemHandler.h AliHLTMemHandler.h,v 1.30 2004/10/06 08:51:20 cvetan Exp $ + AliHLTTPCMerger.cxx AliHLTMerger.cxx,v 1.16 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCMerger.h AliHLTMerger.h,v 1.8 2004/06/11 16:06:33 loizides Exp $ + AliHLTTPCRootTypes.h AliHLTRootTypes.h,v 1.12 2004/06/15 14:02:38 loizides Exp $ + AliHLTTPCSpacePointData.h AliHLTSpacePointData.h,v1.4 2003/07/27 21:02:09 loizides Exp $ Added: Bool_t fUsed; - AliHLTTPCStandardIncludes.h AliL3StandardIncludes.h,v 1.5 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCTrackArray.cxx AliL3TrackArray.cxx,v 1.21 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCTrackArray.h AliL3TrackArray.h,v 1.7 2004/06/11 16:06:33 loizides Exp $ - AliHLTTPCTrack.cxx AliL3Track.cxx,v 1.322005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCTrack.h AliL3Track.h,v 1.18 2005/03/31 04:48:58 cvetan Exp $ - AliHLTTPCTrackMerger.cxx AliL3TrackMerger.cxx,v 1.12 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCTrackMerger.h AliL3TrackMerger.h,v 1.6 2005/04/19 04:29:01 cvetan Exp $ - AliHLTTPCTrackSegmentData.h AliL3TrackSegmentData.h,v 1.7 2005/03/31 04:48:59 cvetan Exp $ - AliHLTTPCTransform.cxx AliL3Transform.cxx,v 1.53 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCTransform.h AliL3Transform.h,v 1.37 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCVertexArray.cxx AliL3VertexArray.cxx,v 1.7 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCVertexArray.h AliL3VertexArray.h,v 1.4 2004/06/11 16:06:33 loizides Exp $ - AliHLTTPCVertex.cxx AliL3Vertex.cxx,v 1.5 2004/07/02 11:41:18 loizides Exp $ - AliHLTTPCVertexData.h AliL3VertexData.h,v 1.2 2003/07/27 21:02:09 loizides Exp $ - AliHLTTPCVertexFinder.cxx AliL3VertexFinder.cxx,v 1.9 2005/06/14 10:55:21 cvetan Exp $ - AliHLTTPCVertexFinder.h AliL3VertexFinder.h,v 1.7 2004/06/18 10:55:26 loizides Exp $ - AliHLTTPCVertex.h AliL3Vertex.h,v 1.4 2004/07/02 11:41:18 loizides Exp $ - AliHLTTPCDataCompressorHelper.cxx From comp: AliL3DataCompressorHelper.cxx,v 1.5 2004/06/15 10:26:57 hristov Exp $ - AliHLTTPCDataCompressorHelper.h From comp: AliL3DataCompressorHelper.h,v 1.4 2004/06/15 10:26:57 hristov Exp $ - AliHLTTPCModels.h From comp: AliL3Models.h,v 1.11 2004/05/17 16:37:19 hristov Exp $ - AliHLTTPCModelTrack.h From comp: AliL3ModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov Exp $ - AliHLTTPCModelTrack.cxx From comp: AliL3ModelTrack.cxx,v 1.18 2005/02/14 11:50:11 hristov Exp $ + AliHLTTPCStandardIncludes.h AliHLTStandardIncludes.h,v 1.5 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCTrackArray.cxx AliHLTTrackArray.cxx,v 1.21 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCTrackArray.h AliHLTTrackArray.h,v 1.7 2004/06/11 16:06:33 loizides Exp $ + AliHLTTPCTrack.cxx AliHLTTrack.cxx,v 1.322005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCTrack.h AliHLTTrack.h,v 1.18 2005/03/31 04:48:58 cvetan Exp $ + AliHLTTPCTrackMerger.cxx AliHLTTrackMerger.cxx,v 1.12 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCTrackMerger.h AliHLTTrackMerger.h,v 1.6 2005/04/19 04:29:01 cvetan Exp $ + AliHLTTPCTrackSegmentData.h AliHLTTrackSegmentData.h,v 1.7 2005/03/31 04:48:59 cvetan Exp $ + AliHLTTPCTransform.cxx AliHLTTransform.cxx,v 1.53 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCTransform.h AliHLTTransform.h,v 1.37 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCVertexArray.cxx AliHLTVertexArray.cxx,v 1.7 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCVertexArray.h AliHLTVertexArray.h,v 1.4 2004/06/11 16:06:33 loizides Exp $ + AliHLTTPCVertex.cxx AliHLTVertex.cxx,v 1.5 2004/07/02 11:41:18 loizides Exp $ + AliHLTTPCVertexData.h AliHLTVertexData.h,v 1.2 2003/07/27 21:02:09 loizides Exp $ + AliHLTTPCVertexFinder.cxx AliHLTVertexFinder.cxx,v 1.9 2005/06/14 10:55:21 cvetan Exp $ + AliHLTTPCVertexFinder.h AliHLTVertexFinder.h,v 1.7 2004/06/18 10:55:26 loizides Exp $ + AliHLTTPCVertex.h AliHLTVertex.h,v 1.4 2004/07/02 11:41:18 loizides Exp $ + AliHLTTPCDataCompressorHelper.cxx From comp: AliHLTDataCompressorHelper.cxx,v 1.5 2004/06/15 10:26:57 hristov Exp $ + AliHLTTPCDataCompressorHelper.h From comp: AliHLTDataCompressorHelper.h,v 1.4 2004/06/15 10:26:57 hristov Exp $ + AliHLTTPCModels.h From comp: AliHLTModels.h,v 1.11 2004/05/17 16:37:19 hristov Exp $ + AliHLTTPCModelTrack.h From comp: AliHLTModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov Exp $ + AliHLTTPCModelTrack.cxx From comp: AliHLTModelTrack.cxx,v 1.18 2005/02/14 11:50:11 hristov Exp $ AliHLTTPCRawDataFormat.h from online Pub/Sub framework AliHLTTPCClusterDataFormat.h from online Pub/Sub framework AliHLTTPCTrackletDataFormat.h from online Pub/Sub framework diff --git a/HLT/ITS/AliHLTITSLinkDef.h b/HLT/ITS/AliHLTITSLinkDef.h new file mode 100644 index 00000000000..26b0ba952e7 --- /dev/null +++ b/HLT/ITS/AliHLTITSLinkDef.h @@ -0,0 +1,15 @@ + +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#ifdef use_aliroot +#pragma link C++ class AliHLTITStrack; +#pragma link C++ class AliHLTITStracker; +#pragma link C++ class AliHLTITSVertexerZ; +#pragma link C++ class AliHLTITSclusterer; +#endif + +#endif diff --git a/HLT/ITS/AliL3ITSVertexerZ.cxx b/HLT/ITS/AliHLTITSVertexerZ.cxx similarity index 96% rename from HLT/ITS/AliL3ITSVertexerZ.cxx rename to HLT/ITS/AliHLTITSVertexerZ.cxx index c61ba897d29..3e3716aaffd 100644 --- a/HLT/ITS/AliL3ITSVertexerZ.cxx +++ b/HLT/ITS/AliHLTITSVertexerZ.cxx @@ -12,7 +12,7 @@ * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ -#include "AliL3ITSVertexerZ.h" +#include "AliHLTITSVertexerZ.h" #include #include #include @@ -29,9 +29,9 @@ // Origin: Cvetan Cheshkov, CERN, Cvetan.Cheshkov@cern.ch //------------------------------------------------------------------------- -ClassImp(AliL3ITSVertexerZ) +ClassImp(AliHLTITSVertexerZ) -AliL3ITSVertexerZ::AliL3ITSVertexerZ():AliITSVertexerZ(){ +AliHLTITSVertexerZ::AliHLTITSVertexerZ():AliITSVertexerZ(){ // Constructor in case that there is no runloader SetDiffPhiMax(); @@ -52,13 +52,13 @@ AliL3ITSVertexerZ::AliL3ITSVertexerZ():AliITSVertexerZ(){ SetDebug(); } -AliL3ITSVertexerZ::AliL3ITSVertexerZ(TString filename,Float_t x0, Float_t y0):AliITSVertexerZ(filename,x0,y0) +AliHLTITSVertexerZ::AliHLTITSVertexerZ(TString filename,Float_t x0, Float_t y0):AliITSVertexerZ(filename,x0,y0) { // Standard Constructor } //______________________________________________________________________ -AliESDVertex* AliL3ITSVertexerZ::FindVertexForCurrentEvent(Int_t evnumber){ +AliESDVertex* AliHLTITSVertexerZ::FindVertexForCurrentEvent(Int_t evnumber){ // Defines the AliESDVertex for the current event fCurrentVertex = 0; @@ -87,7 +87,7 @@ AliESDVertex* AliL3ITSVertexerZ::FindVertexForCurrentEvent(Int_t evnumber){ } //______________________________________________________________________ -AliESDVertex* AliL3ITSVertexerZ::FindVertexForCurrentEvent(AliITSgeom *geom,TTree *tR){ +AliESDVertex* AliHLTITSVertexerZ::FindVertexForCurrentEvent(AliITSgeom *geom,TTree *tR){ // Defines the AliESDVertex for the current event fCurrentVertex = 0; diff --git a/HLT/ITS/AliL3ITSVertexerZ.h b/HLT/ITS/AliHLTITSVertexerZ.h similarity index 79% rename from HLT/ITS/AliL3ITSVertexerZ.h rename to HLT/ITS/AliHLTITSVertexerZ.h index c265a33b16d..b258cf75925 100644 --- a/HLT/ITS/AliL3ITSVertexerZ.h +++ b/HLT/ITS/AliHLTITSVertexerZ.h @@ -20,15 +20,17 @@ class TTree; class AliITSgeom; //------------------------------------------------------------------------- -class AliL3ITSVertexerZ : public AliITSVertexerZ { +class AliHLTITSVertexerZ : public AliITSVertexerZ { public: - AliL3ITSVertexerZ(); - AliL3ITSVertexerZ(TString filename,Float_t x0=0., Float_t y0=0.); + AliHLTITSVertexerZ(); + AliHLTITSVertexerZ(TString filename,Float_t x0=0., Float_t y0=0.); AliESDVertex* FindVertexForCurrentEvent(Int_t evnumb); AliESDVertex* FindVertexForCurrentEvent(AliITSgeom *geom,TTree *tR); - ClassDef(AliL3ITSVertexerZ,1) //HLT ITS vertexer + ClassDef(AliHLTITSVertexerZ,1) //HLT ITS vertexer }; +typedef AliHLTITSVertexerZ AliL3ITSVertexerZ; // for backward compatibility + #endif diff --git a/HLT/ITS/AliL3ITSclusterer.cxx b/HLT/ITS/AliHLTITSclusterer.cxx similarity index 92% rename from HLT/ITS/AliL3ITSclusterer.cxx rename to HLT/ITS/AliHLTITSclusterer.cxx index 1b7108a6659..79ebc6b35ea 100644 --- a/HLT/ITS/AliL3ITSclusterer.cxx +++ b/HLT/ITS/AliHLTITSclusterer.cxx @@ -22,7 +22,7 @@ // Origin: Cvetan Cheshkov, CERN, Cvetan.Cheshkov@cern.ch //------------------------------------------------------------------------- -#include "AliL3ITSclusterer.h" +#include "AliHLTITSclusterer.h" #include "AliRawReader.h" #include "AliITSgeom.h" #include "AliITSRawStreamSPD.h" @@ -31,14 +31,14 @@ #include #include -ClassImp(AliL3ITSclusterer) +ClassImp(AliHLTITSclusterer) -AliL3ITSclusterer::AliL3ITSclusterer(const AliITSgeom *geom):AliITSclustererV2(geom) +AliHLTITSclusterer::AliHLTITSclusterer(const AliITSgeom *geom):AliITSclustererV2(geom) { fNModule = geom->GetIndexMax(); } -void AliL3ITSclusterer::Digits2Clusters(AliRawReader* rawReader,TTree *cTree) +void AliHLTITSclusterer::Digits2Clusters(AliRawReader* rawReader,TTree *cTree) { TClonesArray *array=new TClonesArray("AliITSclusterV2",1000); diff --git a/HLT/ITS/AliL3ITSclusterer.h b/HLT/ITS/AliHLTITSclusterer.h similarity index 77% rename from HLT/ITS/AliL3ITSclusterer.h rename to HLT/ITS/AliHLTITSclusterer.h index 254a4c8e4fc..ba8e3fd206c 100644 --- a/HLT/ITS/AliL3ITSclusterer.h +++ b/HLT/ITS/AliHLTITSclusterer.h @@ -19,17 +19,19 @@ class AliITSgeom; class AliRawReader; //------------------------------------------------------------------------- -class AliL3ITSclusterer : public AliITSclustererV2 { +class AliHLTITSclusterer : public AliITSclustererV2 { public: - AliL3ITSclusterer():AliITSclustererV2(){fNModule = 0;} - AliL3ITSclusterer(const AliITSgeom *geom); + AliHLTITSclusterer():AliITSclustererV2(){fNModule = 0;} + AliHLTITSclusterer(const AliITSgeom *geom); void Digits2Clusters(AliRawReader* rawReader,TTree *cTree); private: Int_t fNModule; // total number of modules - ClassDef(AliL3ITSclusterer,1) //HLT ITS clusterer + ClassDef(AliHLTITSclusterer,1) //HLT ITS clusterer }; +typedef AliHLTITSclusterer AliL3ITSclusterer; // for backward compatibility + #endif diff --git a/HLT/ITS/AliL3ITStrack.cxx b/HLT/ITS/AliHLTITStrack.cxx similarity index 90% rename from HLT/ITS/AliL3ITStrack.cxx rename to HLT/ITS/AliHLTITStrack.cxx index 5fe23392f1b..d4842575b73 100644 --- a/HLT/ITS/AliL3ITStrack.cxx +++ b/HLT/ITS/AliHLTITStrack.cxx @@ -21,12 +21,12 @@ #include -#include "AliL3ITStrack.h" +#include "AliHLTITStrack.h" -ClassImp(AliL3ITStrack) +ClassImp(AliHLTITStrack) //____________________________________________________________________________ -AliL3ITStrack::AliL3ITStrack() +AliHLTITStrack::AliHLTITStrack() :AliITStrackV2() { //------------------------------------------------------------------ @@ -35,7 +35,7 @@ AliL3ITStrack::AliL3ITStrack() } //____________________________________________________________________________ -AliL3ITStrack::AliL3ITStrack(AliESDtrack& t) +AliHLTITStrack::AliHLTITStrack(AliESDtrack& t) :AliITStrackV2(t) { //------------------------------------------------------------------ @@ -44,7 +44,7 @@ AliL3ITStrack::AliL3ITStrack(AliESDtrack& t) } //____________________________________________________________________________ -AliL3ITStrack::AliL3ITStrack(const AliL3ITStrack& t) +AliHLTITStrack::AliHLTITStrack(const AliHLTITStrack& t) : AliITStrackV2(t) { //------------------------------------------------------------------ @@ -53,11 +53,11 @@ AliL3ITStrack::AliL3ITStrack(const AliL3ITStrack& t) } //_____________________________________________________________________________ -Int_t AliL3ITStrack::Compare(const TObject *o) const { +Int_t AliHLTITStrack::Compare(const TObject *o) const { //----------------------------------------------------------------- // This function compares tracks according to the their curvature //----------------------------------------------------------------- - AliL3ITStrack *t=(AliL3ITStrack*)o; + AliHLTITStrack *t=(AliHLTITStrack*)o; Double_t co=TMath::Abs(t->Get1Pt()); Double_t c =TMath::Abs(Get1Pt()); // Double_t co=t->GetSigmaY2()*t->GetSigmaZ2(); diff --git a/HLT/ITS/AliL3ITStrack.h b/HLT/ITS/AliHLTITStrack.h similarity index 77% rename from HLT/ITS/AliL3ITStrack.h rename to HLT/ITS/AliHLTITStrack.h index 6e7621c02d0..2a29c728273 100644 --- a/HLT/ITS/AliL3ITStrack.h +++ b/HLT/ITS/AliHLTITStrack.h @@ -18,15 +18,17 @@ #include -class AliL3ITStrack : public AliITStrackV2 { +class AliHLTITStrack : public AliITStrackV2 { public: - AliL3ITStrack(); - AliL3ITStrack(AliESDtrack& t); - AliL3ITStrack(const AliL3ITStrack& t); + AliHLTITStrack(); + AliHLTITStrack(AliESDtrack& t); + AliHLTITStrack(const AliHLTITStrack& t); Int_t Compare(const TObject *o) const; - ClassDef(AliL3ITStrack,2) //HLT ITS reconstructed track + ClassDef(AliHLTITStrack,2) //HLT ITS reconstructed track }; +typedef AliHLTITStrack AliL3ITStrack; // for backward compatibility + #endif diff --git a/HLT/ITS/AliL3ITStracker.cxx b/HLT/ITS/AliHLTITStracker.cxx similarity index 93% rename from HLT/ITS/AliL3ITStracker.cxx rename to HLT/ITS/AliHLTITStracker.cxx index 8a9ba3738c9..ed125f21068 100644 --- a/HLT/ITS/AliL3ITStracker.cxx +++ b/HLT/ITS/AliHLTITStracker.cxx @@ -21,10 +21,10 @@ //------------------------------------------------------------------------- #include "AliESD.h" -#include "AliL3ITStrack.h" -#include "AliL3ITStracker.h" +#include "AliHLTITStrack.h" +#include "AliHLTITStracker.h" -ClassImp(AliL3ITStracker) +ClassImp(AliHLTITStracker) static Int_t CorrectForDeadZoneMaterial(AliITStrackV2 *t) { //-------------------------------------------------------------------- @@ -60,7 +60,7 @@ static Int_t CorrectForDeadZoneMaterial(AliITStrackV2 *t) { return 0; } -Int_t AliL3ITStracker::Clusters2Tracks(AliESD *event) { +Int_t AliHLTITStracker::Clusters2Tracks(AliESD *event) { //-------------------------------------------------------------------- // This functions reconstructs HLT ITS tracks //-------------------------------------------------------------------- @@ -74,9 +74,9 @@ Int_t AliL3ITStracker::Clusters2Tracks(AliESD *event) { AliESDtrack *esd=event->GetTrack(nentr); - AliL3ITStrack *t=0; + AliHLTITStrack *t=0; try { - t=new AliL3ITStrack(*esd); + t=new AliHLTITStrack(*esd); } catch (const Char_t *msg) { Warning("Clusters2Tracks",msg); delete t; @@ -105,7 +105,7 @@ Int_t AliL3ITStracker::Clusters2Tracks(AliESD *event) { for (fPass=0; fPass<2; fPass++) { Int_t &constraint=fConstraint[fPass]; if (constraint<0) continue; for (Int_t i=0; iGetLabel(); //save the TPC track label ResetTrackToFollow(*t); @@ -142,7 +142,7 @@ Int_t AliL3ITStracker::Clusters2Tracks(AliESD *event) { return 0; } -Int_t AliL3ITStracker::PropagateBack(AliESD *event) { +Int_t AliHLTITStracker::PropagateBack(AliESD *event) { //-------------------------------------------------------------------- // This functions propagates reconstructed ITS tracks back //-------------------------------------------------------------------- @@ -151,7 +151,7 @@ Int_t AliL3ITStracker::PropagateBack(AliESD *event) { return 0; } -Int_t AliL3ITStracker::RefitInward(AliESD *event) { +Int_t AliHLTITStracker::RefitInward(AliESD *event) { //-------------------------------------------------------------------- // This functions refits ITS tracks using the // "inward propagated" TPC tracks diff --git a/HLT/ITS/AliL3ITStracker.h b/HLT/ITS/AliHLTITStracker.h similarity index 77% rename from HLT/ITS/AliL3ITStracker.h rename to HLT/ITS/AliHLTITStracker.h index a7efbd88860..581ea41faab 100644 --- a/HLT/ITS/AliL3ITStracker.h +++ b/HLT/ITS/AliHLTITStracker.h @@ -21,19 +21,21 @@ class AliESD; class AliITSgeom; -class AliL3ITStrack; +class AliHLTITStrack; //------------------------------------------------------------------------- -class AliL3ITStracker : public AliITStrackerV2 { +class AliHLTITStracker : public AliITStrackerV2 { public: - AliL3ITStracker():AliITStrackerV2(){ fConstraint[0]=1; fConstraint[1]=0; } - AliL3ITStracker(const AliITSgeom *geom) : AliITStrackerV2(geom){ fConstraint[0]=1; fConstraint[1]=0; } + AliHLTITStracker():AliITStrackerV2(){ fConstraint[0]=1; fConstraint[1]=0; } + AliHLTITStracker(const AliITSgeom *geom) : AliITStrackerV2(geom){ fConstraint[0]=1; fConstraint[1]=0; } Int_t Clusters2Tracks(AliESD *event); Int_t PropagateBack(AliESD *event); Int_t RefitInward(AliESD *event); - ClassDef(AliL3ITStracker,1) //HLT ITS tracker + ClassDef(AliHLTITStracker,1) //HLT ITS tracker }; +typedef AliHLTITStracker AliL3ITStracker; // for backward compatibility + #endif diff --git a/HLT/ITS/AliL3ITSLinkDef.h b/HLT/ITS/AliL3ITSLinkDef.h deleted file mode 100644 index ed3665e9117..00000000000 --- a/HLT/ITS/AliL3ITSLinkDef.h +++ /dev/null @@ -1,15 +0,0 @@ - -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#ifdef use_aliroot -#pragma link C++ class AliL3ITStrack; -#pragma link C++ class AliL3ITStracker; -#pragma link C++ class AliL3ITSVertexerZ; -#pragma link C++ class AliL3ITSclusterer; -#endif - -#endif diff --git a/HLT/ITS/RunHLTITS.C b/HLT/ITS/RunHLTITS.C index bcb12f84b45..e79c75d8e9c 100644 --- a/HLT/ITS/RunHLTITS.C +++ b/HLT/ITS/RunHLTITS.C @@ -33,16 +33,16 @@ #include "AliMagF.h" #include "AliGenEventHeader.h" - #include "AliL3ITStrack.h" - #include "AliL3ITStracker.h" - #include "AliL3ITSVertexerZ.h" + #include "AliHLTITStrack.h" + #include "AliHLTITStracker.h" + #include "AliHLTITSVertexerZ.h" #endif //extern TSystem *gSystem; Int_t RunHLTITS(Int_t nev=1,Int_t run=0) { - // gSystem->Load("libAliL3ITS.so"); + // gSystem->Load("libAliHLTITS.so"); TStopwatch timer; timer.Start(); @@ -91,7 +91,7 @@ Int_t RunHLTITS(Int_t nev=1,Int_t run=0) { geom->ReadNewFile("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymmFMD.det"); //An instance of the HLT ITS tracker - AliL3ITStracker itsTracker(geom); + AliHLTITStracker itsTracker(geom); TFile *ef=TFile::Open("AliESDs.root"); if (!ef || !ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;} @@ -120,7 +120,7 @@ Int_t RunHLTITS(Int_t nev=1,Int_t run=0) { Double_t cvtx[3]={0.005,0.005,0.010}; cout<<"MC vertex position: "<, Constantin Loizides //*-- Copyright © ALICE HLT Group diff --git a/HLT/TPCLib/AliHLTTPCClustFinderNew.h b/HLT/TPCLib/AliHLTTPCClustFinderNew.h index 10b69fc9e63..6a85c138016 100644 --- a/HLT/TPCLib/AliHLTTPCClustFinderNew.h +++ b/HLT/TPCLib/AliHLTTPCClustFinderNew.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides +// Original: AliHLTClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides #ifndef AliHLTTPC_ClustFinderNew #define AliHLTTPC_ClustFinderNew diff --git a/HLT/TPCLib/AliHLTTPCClusterFinder.cxx b/HLT/TPCLib/AliHLTTPCClusterFinder.cxx index 162036448a6..daaad6aa5fd 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinder.cxx +++ b/HLT/TPCLib/AliHLTTPCClusterFinder.cxx @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ClustFinderNew.cxx,v 1.29 2005/06/14 10:55:21 cvetan Exp +// Original: AliHLTClustFinderNew.cxx,v 1.29 2005/06/14 10:55:21 cvetan Exp /************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * diff --git a/HLT/TPCLib/AliHLTTPCClusterFinder.h b/HLT/TPCLib/AliHLTTPCClusterFinder.h index c7494def705..65e6584c02b 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinder.h +++ b/HLT/TPCLib/AliHLTTPCClusterFinder.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides +// Original: AliHLTClustFinderNew.h,v 1.13 2004/06/18 10:55:26 loizides #ifndef AliHLTTPC_ClusterFinder #define AliHLTTPC_ClusterFinder diff --git a/HLT/TPCLib/AliHLTTPCConfMapFit.cxx b/HLT/TPCLib/AliHLTTPCConfMapFit.cxx index 441233d4da3..c97e8a00afa 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapFit.cxx +++ b/HLT/TPCLib/AliHLTTPCConfMapFit.cxx @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapFit.cxx,v 1.14 2005/06/14 10:55:21 cvetan +// Original: AliHLTConfMapFit.cxx,v 1.14 2005/06/14 10:55:21 cvetan // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group diff --git a/HLT/TPCLib/AliHLTTPCConfMapFit.h b/HLT/TPCLib/AliHLTTPCConfMapFit.h index b68a483a2d9..447848a180b 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapFit.h +++ b/HLT/TPCLib/AliHLTTPCConfMapFit.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapFit.h,v 1.5 2004/07/05 09:03:11 loizides +// Original: AliHLTConfMapFit.h,v 1.5 2004/07/05 09:03:11 loizides #ifndef ALIHLTTPC_ConfMapFit #define ALIHLTTPC_ConfMapFit diff --git a/HLT/TPCLib/AliHLTTPCConfMapPoint.cxx b/HLT/TPCLib/AliHLTTPCConfMapPoint.cxx index 3ed2a9c3e5b..91ae732629b 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapPoint.cxx +++ b/HLT/TPCLib/AliHLTTPCConfMapPoint.cxx @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapPoint.cxx,v 1.10 2005/06/23 17:46:55 hristov +// Original: AliHLTConfMapPoint.cxx,v 1.10 2005/06/23 17:46:55 hristov // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group diff --git a/HLT/TPCLib/AliHLTTPCConfMapPoint.h b/HLT/TPCLib/AliHLTTPCConfMapPoint.h index 99dcbfeed13..4e9d7e8e572 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapPoint.h +++ b/HLT/TPCLib/AliHLTTPCConfMapPoint.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapPoint.h,v 1.8 2005/06/23 17:46:55 hristov +// Original: AliHLTConfMapPoint.h,v 1.8 2005/06/23 17:46:55 hristov #ifndef ALIHLTTPCConfMapPointH #define ALIHLTTPCConfMapPointH diff --git a/HLT/TPCLib/AliHLTTPCConfMapTrack.cxx b/HLT/TPCLib/AliHLTTPCConfMapTrack.cxx index 27d07f26a19..3959ff9e5bf 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapTrack.cxx +++ b/HLT/TPCLib/AliHLTTPCConfMapTrack.cxx @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapTrack.cxx,v 1.16 2005/06/14 10:55:21 cvetan +// Original: AliHLTConfMapTrack.cxx,v 1.16 2005/06/14 10:55:21 cvetan // Author: Anders Vestbo , Uli Frankenfeld //*-- Copyright © ALICE HLT Group diff --git a/HLT/TPCLib/AliHLTTPCConfMapTrack.h b/HLT/TPCLib/AliHLTTPCConfMapTrack.h index 19eb646d04b..0f8d4fcb55c 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapTrack.h +++ b/HLT/TPCLib/AliHLTTPCConfMapTrack.h @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapTrack.h,v 1.4 2004/06/16 11:25:06 loizides +// Original: AliHLTConfMapTrack.h,v 1.4 2004/06/16 11:25:06 loizides #ifndef ALIHLTTPC_ConfMapTrack #define ALIHLTTPC_ConfMapTrack diff --git a/HLT/TPCLib/AliHLTTPCConfMapper.cxx b/HLT/TPCLib/AliHLTTPCConfMapper.cxx index 736e0405c95..a47ecfcc76f 100644 --- a/HLT/TPCLib/AliHLTTPCConfMapper.cxx +++ b/HLT/TPCLib/AliHLTTPCConfMapper.cxx @@ -1,5 +1,5 @@ // @(#) $Id$ -// Original: AliL3ConfMapper.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ +// Original: AliHLTConfMapper.cxx,v 1.26 2005/06/14 10:55:21 cvetan Exp $ /** \class AliHLTTPCConfMapper
diff --git a/HLT/TPCLib/AliHLTTPCConfMapper.h b/HLT/TPCLib/AliHLTTPCConfMapper.h
index da0f3922a3d..8f04c73f14b 100644
--- a/HLT/TPCLib/AliHLTTPCConfMapper.h
+++ b/HLT/TPCLib/AliHLTTPCConfMapper.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3ConfMapper.h,v 1.11 2004/07/05 09:03:11 loizides 
+// Original: AliHLTConfMapper.h,v 1.11 2004/07/05 09:03:11 loizides 
 
 #ifndef ALIHLTTPCCONFMAPPER_H
 #define ALIHLTTPCCONFMAPPER_H
diff --git a/HLT/TPCLib/AliHLTTPCDataCompressorHelper.cxx b/HLT/TPCLib/AliHLTTPCDataCompressorHelper.cxx
index 6c733e45513..b54cfb7c5f5 100644
--- a/HLT/TPCLib/AliHLTTPCDataCompressorHelper.cxx
+++ b/HLT/TPCLib/AliHLTTPCDataCompressorHelper.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3DataCompressorHelper.cxx,v 1.5 2004/06/15 10:26:57 hristov Exp $
+// Original: AliHLTDataCompressorHelper.cxx,v 1.5 2004/06/15 10:26:57 hristov Exp $
 
 // Author: Anders Vestbo 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCDataCompressorHelper.h b/HLT/TPCLib/AliHLTTPCDataCompressorHelper.h
index 3adf71662bf..d079a3b7cee 100644
--- a/HLT/TPCLib/AliHLTTPCDataCompressorHelper.h
+++ b/HLT/TPCLib/AliHLTTPCDataCompressorHelper.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3DataCompressorHelper.h,v 1.4 2004/06/15 10:26:57 hristov Exp $
+// Original: AliHLTDataCompressorHelper.h,v 1.4 2004/06/15 10:26:57 hristov Exp $
 
 #ifndef AliHLTTPC_DataCompressorHelper
 #define AliHLTTPC_DataCompressorHelper
diff --git a/HLT/TPCLib/AliHLTTPCDigitData.h b/HLT/TPCLib/AliHLTTPCDigitData.h
index d7700aa336a..0f2a99f90ef 100644
--- a/HLT/TPCLib/AliHLTTPCDigitData.h
+++ b/HLT/TPCLib/AliHLTTPCDigitData.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3DigitData.h,v 1.5 2004/05/12 11:51:27 loizides 
+// Original: AliHLTDigitData.h,v 1.5 2004/05/12 11:51:27 loizides 
 
 #ifndef _ALIHLTTPCDIGITDATA_H_
 #define _ALIHLTTPCDIGITDATA_H_
diff --git a/HLT/TPCLib/AliHLTTPCFileHandler.cxx b/HLT/TPCLib/AliHLTTPCFileHandler.cxx
index 3ae48ae6b23..cbb70c9fa33 100644
--- a/HLT/TPCLib/AliHLTTPCFileHandler.cxx
+++ b/HLT/TPCLib/AliHLTTPCFileHandler.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3FileHandler.cxx,v 1.49 2005/06/23 17:46:55 hristov 
+// Original: AliHLTFileHandler.cxx,v 1.49 2005/06/23 17:46:55 hristov 
 
 // Author: Uli Frankenfeld , Anders Vestbo , C. Loizides 
 //*-- Copyright © ALICE HLT Group 
diff --git a/HLT/TPCLib/AliHLTTPCFileHandler.h b/HLT/TPCLib/AliHLTTPCFileHandler.h
index 2a200d3cc39..02f009a3b9f 100644
--- a/HLT/TPCLib/AliHLTTPCFileHandler.h
+++ b/HLT/TPCLib/AliHLTTPCFileHandler.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3FileHandler.h,v 1.19 2004/06/11 16:06:33 loizides 
+// Original: AliHLTFileHandler.h,v 1.19 2004/06/11 16:06:33 loizides 
 
 #ifndef ALIHLTTPCFILEHANDLER_H
 #define ALIHLTTPCFILEHANDLER_H
diff --git a/HLT/TPCLib/AliHLTTPCFitter.cxx b/HLT/TPCLib/AliHLTTPCFitter.cxx
index 56589496280..b697aa81cad 100644
--- a/HLT/TPCLib/AliHLTTPCFitter.cxx
+++ b/HLT/TPCLib/AliHLTTPCFitter.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Fitter.cxx,v 1.14 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTFitter.cxx,v 1.14 2005/06/14 10:55:21 cvetan 
 
 // Author: Anders Vestbo 
 //*-- Copyright © ALICE HLT Group 
diff --git a/HLT/TPCLib/AliHLTTPCFitter.h b/HLT/TPCLib/AliHLTTPCFitter.h
index dab28a6d17e..bcc93e55034 100644
--- a/HLT/TPCLib/AliHLTTPCFitter.h
+++ b/HLT/TPCLib/AliHLTTPCFitter.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Fitter.h,v 1.7 2004/07/05 09:02:18 loizides 
+// Original: AliHLTFitter.h,v 1.7 2004/07/05 09:02:18 loizides 
 
 #ifndef ALIHLTTPCFITTER_H
 #define ALIHLTTPCFITTER_H
diff --git a/HLT/TPCLib/AliHLTTPCGlobalMerger.cxx b/HLT/TPCLib/AliHLTTPCGlobalMerger.cxx
index cbe02e24dff..817f33d28ba 100644
--- a/HLT/TPCLib/AliHLTTPCGlobalMerger.cxx
+++ b/HLT/TPCLib/AliHLTTPCGlobalMerger.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3GlobalMerger.cxx,v 1.13 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTGlobalMerger.cxx,v 1.13 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group 
diff --git a/HLT/TPCLib/AliHLTTPCGlobalMerger.h b/HLT/TPCLib/AliHLTTPCGlobalMerger.h
index 03bfdb795bf..a9c9323afa7 100644
--- a/HLT/TPCLib/AliHLTTPCGlobalMerger.h
+++ b/HLT/TPCLib/AliHLTTPCGlobalMerger.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3GlobalMerger.h,v 1.6 2004/02/02 15:00:34 loizides 
+// Original: AliHLTGlobalMerger.h,v 1.6 2004/02/02 15:00:34 loizides 
 
 #ifndef ALIHLTTPC_GLOBALMERGER_H
 #define ALIHLTTPC_GLOBALMERGER_H
diff --git a/HLT/TPCLib/AliHLTTPCInterMerger.cxx b/HLT/TPCLib/AliHLTTPCInterMerger.cxx
index dcc9b150498..9a8f4db1cde 100644
--- a/HLT/TPCLib/AliHLTTPCInterMerger.cxx
+++ b/HLT/TPCLib/AliHLTTPCInterMerger.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3InterMerger.cxx,v 1.8 2005/06/14 10:55:21 cvetan
+// Original: AliHLTInterMerger.cxx,v 1.8 2005/06/14 10:55:21 cvetan
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCInterMerger.h b/HLT/TPCLib/AliHLTTPCInterMerger.h
index 897fabf7cd4..7a6bea31bde 100644
--- a/HLT/TPCLib/AliHLTTPCInterMerger.h
+++ b/HLT/TPCLib/AliHLTTPCInterMerger.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3InterMerger.h,v 1.4 2004/02/02 15:00:34 loizides Exp $
+// Original: AliHLTInterMerger.h,v 1.4 2004/02/02 15:00:34 loizides Exp $
 
 #ifndef ALIHLTTPCINTERMERGER_H
 #define ALIHLTTPCINTERMERGER_H
diff --git a/HLT/TPCLib/AliHLTTPCLog.cxx b/HLT/TPCLib/AliHLTTPCLog.cxx
index ceba38cade0..d6b73fd7dda 100644
--- a/HLT/TPCLib/AliHLTTPCLog.cxx
+++ b/HLT/TPCLib/AliHLTTPCLog.cxx
@@ -1,5 +1,5 @@
 // $Id$
-// Original: AliL3Log.cxx,v 1.1 2004/05/14 09:37:22 loizides 
+// Original: AliHLTLog.cxx,v 1.1 2004/05/14 09:37:22 loizides 
 
 #ifndef use_logging
 
diff --git a/HLT/TPCLib/AliHLTTPCLog.h b/HLT/TPCLib/AliHLTTPCLog.h
index 05aadcb9217..1535302bca1 100644
--- a/HLT/TPCLib/AliHLTTPCLog.h
+++ b/HLT/TPCLib/AliHLTTPCLog.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Log.h,v 1.2 2004/06/11 16:06:33 loizides Exp $
+// Original: AliHLTLog.h,v 1.2 2004/06/11 16:06:33 loizides Exp $
 
 #ifndef ALIHLTTPCLOG_H
 #define ALIHLTTPCLOG_H
diff --git a/HLT/TPCLib/AliHLTTPCLogging.h b/HLT/TPCLib/AliHLTTPCLogging.h
index e95137046c5..b06dded73d1 100644
--- a/HLT/TPCLib/AliHLTTPCLogging.h
+++ b/HLT/TPCLib/AliHLTTPCLogging.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Logging.h,v 1.11 2004/10/09 11:28:31 loizides 
+// Original: AliHLTLogging.h,v 1.11 2004/10/09 11:28:31 loizides 
 
 #ifndef ALIHLTTPCLOGGING_H
 #define ALIHLTTPCLOGGING_H
diff --git a/HLT/TPCLib/AliHLTTPCMemHandler.cxx b/HLT/TPCLib/AliHLTTPCMemHandler.cxx
index 4a4d8b5925c..f631238f91b 100644
--- a/HLT/TPCLib/AliHLTTPCMemHandler.cxx
+++ b/HLT/TPCLib/AliHLTTPCMemHandler.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3MemHandler.cxx,v 1.52 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTMemHandler.cxx,v 1.52 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld , Anders Vestbo , Constantin Loizides 
 //*-- Copyright © ALICE HLT Group 
diff --git a/HLT/TPCLib/AliHLTTPCMemHandler.h b/HLT/TPCLib/AliHLTTPCMemHandler.h
index d9bc0d5764c..407cbb2254c 100644
--- a/HLT/TPCLib/AliHLTTPCMemHandler.h
+++ b/HLT/TPCLib/AliHLTTPCMemHandler.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3MemHandler.h,v 1.30 2004/10/06 08:51:20 cvetan 
+// Original: AliHLTMemHandler.h,v 1.30 2004/10/06 08:51:20 cvetan 
 #ifndef ALIHLTTPC_MEMHANDLER_H
 #define ALIHLTTPC_MEMHANDLER_H
 
diff --git a/HLT/TPCLib/AliHLTTPCMerger.cxx b/HLT/TPCLib/AliHLTTPCMerger.cxx
index cfab694cab5..7f4bcafdbfd 100644
--- a/HLT/TPCLib/AliHLTTPCMerger.cxx
+++ b/HLT/TPCLib/AliHLTTPCMerger.cxx
@@ -1,5 +1,5 @@
 //$Id$
-// Original: AliL3Merger.cxx,v 1.16 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTMerger.cxx,v 1.16 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © Uli 
diff --git a/HLT/TPCLib/AliHLTTPCMerger.h b/HLT/TPCLib/AliHLTTPCMerger.h
index a74ea792edf..ba03ef353d6 100644
--- a/HLT/TPCLib/AliHLTTPCMerger.h
+++ b/HLT/TPCLib/AliHLTTPCMerger.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Merger.h,v 1.8 2004/06/11 16:06:33 loizides 
+// Original: AliHLTMerger.h,v 1.8 2004/06/11 16:06:33 loizides 
 #ifndef ALIHLTTPCMERGER_H
 #define ALIHLTTPCMERGER_H
 //#define PI 3.14159265358979312
diff --git a/HLT/TPCLib/AliHLTTPCModelTrack.cxx b/HLT/TPCLib/AliHLTTPCModelTrack.cxx
index 374f8273c8a..35dcb306187 100644
--- a/HLT/TPCLib/AliHLTTPCModelTrack.cxx
+++ b/HLT/TPCLib/AliHLTTPCModelTrack.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3ModelTrack.cxx,v 1.18 2005/02/14 11:50:11 hristov 
+// Original: AliHLTModelTrack.cxx,v 1.18 2005/02/14 11:50:11 hristov 
 // Author: Anders Vestbo 
 //*-- Copyright © ALICE HLT Group
 //_____________________________________________________________
diff --git a/HLT/TPCLib/AliHLTTPCModelTrack.h b/HLT/TPCLib/AliHLTTPCModelTrack.h
index 9169bc64dcc..ec87706c1f2 100644
--- a/HLT/TPCLib/AliHLTTPCModelTrack.h
+++ b/HLT/TPCLib/AliHLTTPCModelTrack.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3ModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov 
+// Original: AliHLTModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov 
 
 #ifndef AliHLTTPCModel_Track
 #define AliHLTTPCModel_Track
diff --git a/HLT/TPCLib/AliHLTTPCModels.h b/HLT/TPCLib/AliHLTTPCModels.h
index 72569438d74..0b4562fbbd9 100644
--- a/HLT/TPCLib/AliHLTTPCModels.h
+++ b/HLT/TPCLib/AliHLTTPCModels.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Models.h,v 1.11 2004/05/17 16:37:19 hristov 
+// Original: AliHLTModels.h,v 1.11 2004/05/17 16:37:19 hristov 
 
 #ifndef AliHLTTPCModels_H
 #define AliHLTTPCModels_H
diff --git a/HLT/TPCLib/AliHLTTPCRootTypes.h b/HLT/TPCLib/AliHLTTPCRootTypes.h
index a32f13b0618..75ff8532874 100644
--- a/HLT/TPCLib/AliHLTTPCRootTypes.h
+++ b/HLT/TPCLib/AliHLTTPCRootTypes.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3RootTypes.h,v 1.12 2004/06/15 14:02:38 loizides 
+// Original: AliHLTRootTypes.h,v 1.12 2004/06/15 14:02:38 loizides 
 #ifndef ALIHLTTPCROOTTYPES_H
 #define ALIHLTTPCROOTTYPES_H
 
diff --git a/HLT/TPCLib/AliHLTTPCSpacePointData.h b/HLT/TPCLib/AliHLTTPCSpacePointData.h
index eb97c444004..8b6b1d0e254 100644
--- a/HLT/TPCLib/AliHLTTPCSpacePointData.h
+++ b/HLT/TPCLib/AliHLTTPCSpacePointData.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3SpacePointData.h,v 1.4 2003/07/27 21:02:09 loizides 
+// Original: AliHLTSpacePointData.h,v 1.4 2003/07/27 21:02:09 loizides 
 
 #ifndef SPACEPOINTDATA_H
 #define SPACEPOINTDATA_H
diff --git a/HLT/TPCLib/AliHLTTPCTrack.cxx b/HLT/TPCLib/AliHLTTPCTrack.cxx
index 11a4fcfbc39..ddea52d63ff 100644
--- a/HLT/TPCLib/AliHLTTPCTrack.cxx
+++ b/HLT/TPCLib/AliHLTTPCTrack.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Track.cxx,v 1.32 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTTrack.cxx,v 1.32 2005/06/14 10:55:21 cvetan 
 
 // Author: Anders Vestbo , Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCTrack.h b/HLT/TPCLib/AliHLTTPCTrack.h
index 40b8ac5385b..bc766a8f764 100644
--- a/HLT/TPCLib/AliHLTTPCTrack.h
+++ b/HLT/TPCLib/AliHLTTPCTrack.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Track.h,v 1.18 2005/03/31 04:48:58 cvetan 
+// Original: AliHLTTrack.h,v 1.18 2005/03/31 04:48:58 cvetan 
 #ifndef ALIHLTTPCTRACK_H
 #define ALIHLTTPCTRACK_H
 
diff --git a/HLT/TPCLib/AliHLTTPCTrackArray.cxx b/HLT/TPCLib/AliHLTTPCTrackArray.cxx
index 06aa48a6e5b..4e8d79a4f9b 100644
--- a/HLT/TPCLib/AliHLTTPCTrackArray.cxx
+++ b/HLT/TPCLib/AliHLTTPCTrackArray.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3TrackArray.cxx,v 1.21 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTTrackArray.cxx,v 1.21 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCTrackArray.h b/HLT/TPCLib/AliHLTTPCTrackArray.h
index d90d0d522d0..8d5a5e125c2 100644
--- a/HLT/TPCLib/AliHLTTPCTrackArray.h
+++ b/HLT/TPCLib/AliHLTTPCTrackArray.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3TrackArray.h,v 1.7 2004/06/11 16:06:33 loizides 
+// Original: AliHLTTrackArray.h,v 1.7 2004/06/11 16:06:33 loizides 
 #ifndef ALIHLTTPCTRACKARRAY_H
 #define ALIHLTTPCTRACKARRAY_H
 
diff --git a/HLT/TPCLib/AliHLTTPCTrackMerger.cxx b/HLT/TPCLib/AliHLTTPCTrackMerger.cxx
index 3971f41c982..d395e684a76 100644
--- a/HLT/TPCLib/AliHLTTPCTrackMerger.cxx
+++ b/HLT/TPCLib/AliHLTTPCTrackMerger.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3TrackMerger.cxx,v 1.12 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTTrackMerger.cxx,v 1.12 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCTrackMerger.h b/HLT/TPCLib/AliHLTTPCTrackMerger.h
index 7706ea3f290..1f979550910 100644
--- a/HLT/TPCLib/AliHLTTPCTrackMerger.h
+++ b/HLT/TPCLib/AliHLTTPCTrackMerger.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3TrackMerger.h,v 1.6 2005/04/19 04:29:01 cvetan 
+// Original: AliHLTTrackMerger.h,v 1.6 2005/04/19 04:29:01 cvetan 
 #ifndef ALIHLTTPCTRACKMERGER_H
 #define ALIHLTTPCTRACKMERGER_H
 
diff --git a/HLT/TPCLib/AliHLTTPCTrackSegmentData.h b/HLT/TPCLib/AliHLTTPCTrackSegmentData.h
index db5d878ce68..87c610add63 100644
--- a/HLT/TPCLib/AliHLTTPCTrackSegmentData.h
+++ b/HLT/TPCLib/AliHLTTPCTrackSegmentData.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3TrackSegmentData.h,v 1.7 2005/03/31 04:48:59 cvetan 
+// Original: AliHLTTrackSegmentData.h,v 1.7 2005/03/31 04:48:59 cvetan 
 #ifndef _ALIHLTTPCTRACKSEGMENTDATA_H_
 #define _ALIHLTTPCTRACKSEGMENTDATA_H_
 
diff --git a/HLT/TPCLib/AliHLTTPCTransform.cxx b/HLT/TPCLib/AliHLTTPCTransform.cxx
index 534aaf4591e..5c98b126f30 100644
--- a/HLT/TPCLib/AliHLTTPCTransform.cxx
+++ b/HLT/TPCLib/AliHLTTPCTransform.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Transform.cxx,v 1.53 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTTransform.cxx,v 1.53 2005/06/14 10:55:21 cvetan 
 
 // Author: Anders Vestbo , Uli Frankenfeld , Constantin Loizides 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCTransform.h b/HLT/TPCLib/AliHLTTPCTransform.h
index dbcd62abeda..d7ecd2c0abd 100644
--- a/HLT/TPCLib/AliHLTTPCTransform.h
+++ b/HLT/TPCLib/AliHLTTPCTransform.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Transform.h,v 1.37 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTTransform.h,v 1.37 2005/06/14 10:55:21 cvetan 
 
 #ifndef ALIHLTTPCTRANSFORM_H
 #define ALIHLTTPCTRANSFORM_H
diff --git a/HLT/TPCLib/AliHLTTPCVertex.cxx b/HLT/TPCLib/AliHLTTPCVertex.cxx
index 0d674733506..9da716807cb 100644
--- a/HLT/TPCLib/AliHLTTPCVertex.cxx
+++ b/HLT/TPCLib/AliHLTTPCVertex.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Vertex.cxx,v 1.5 2004/07/02 11:41:18 loizides Exp $
+// Original: AliHLTVertex.cxx,v 1.5 2004/07/02 11:41:18 loizides Exp $
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCVertex.h b/HLT/TPCLib/AliHLTTPCVertex.h
index 05f73b17541..d4ac331ebd5 100644
--- a/HLT/TPCLib/AliHLTTPCVertex.h
+++ b/HLT/TPCLib/AliHLTTPCVertex.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Vertex.h,v 1.4 2004/07/02 11:41:18 loizides 
+// Original: AliHLTVertex.h,v 1.4 2004/07/02 11:41:18 loizides 
 
 #ifndef ALIHLTTPCVERTEX_H
 #define ALIHLTTPCVERTEX_H
diff --git a/HLT/TPCLib/AliHLTTPCVertexArray.cxx b/HLT/TPCLib/AliHLTTPCVertexArray.cxx
index 9f08be1e65e..a5e38eb7240 100644
--- a/HLT/TPCLib/AliHLTTPCVertexArray.cxx
+++ b/HLT/TPCLib/AliHLTTPCVertexArray.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3VertexArray.cxx,v 1.7 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTVertexArray.cxx,v 1.7 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCVertexArray.h b/HLT/TPCLib/AliHLTTPCVertexArray.h
index 1ba1d38d1db..8860e5e2400 100644
--- a/HLT/TPCLib/AliHLTTPCVertexArray.h
+++ b/HLT/TPCLib/AliHLTTPCVertexArray.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3VertexArray.h,v 1.4 2004/06/11 16:06:33 loizides 
+// Original: AliHLTVertexArray.h,v 1.4 2004/06/11 16:06:33 loizides 
 
 #ifndef AliHLTTPCVERTEXARRAY_H
 #define AliHLTTPCVERTEXARRAY_H
diff --git a/HLT/TPCLib/AliHLTTPCVertexData.h b/HLT/TPCLib/AliHLTTPCVertexData.h
index 24111012c01..80a3872fdaf 100644
--- a/HLT/TPCLib/AliHLTTPCVertexData.h
+++ b/HLT/TPCLib/AliHLTTPCVertexData.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3VertexData.h,v 1.2 2003/07/27 21:02:09 loizides 
+// Original: AliHLTVertexData.h,v 1.2 2003/07/27 21:02:09 loizides 
 
 #ifndef VERTEXDATA_H
 #define VERTEXDATA_H
diff --git a/HLT/TPCLib/AliHLTTPCVertexFinder.cxx b/HLT/TPCLib/AliHLTTPCVertexFinder.cxx
index 977433d701d..28eeaa679d0 100644
--- a/HLT/TPCLib/AliHLTTPCVertexFinder.cxx
+++ b/HLT/TPCLib/AliHLTTPCVertexFinder.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3VertexFinder.cxx,v 1.9 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTVertexFinder.cxx,v 1.9 2005/06/14 10:55:21 cvetan 
 
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
diff --git a/HLT/TPCLib/AliHLTTPCVertexFinder.h b/HLT/TPCLib/AliHLTTPCVertexFinder.h
index 6d61723f69b..9174d06ff77 100644
--- a/HLT/TPCLib/AliHLTTPCVertexFinder.h
+++ b/HLT/TPCLib/AliHLTTPCVertexFinder.h
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3VertexFinder.h,v 1.7 2004/06/18 10:55:26 loizides 
+// Original: AliHLTVertexFinder.h,v 1.7 2004/06/18 10:55:26 loizides 
 
 #ifndef AliHLTTPCVERTEXFINDER_H
 #define AliHLTTPCVERTEXFINDER_H
diff --git a/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.cxx b/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.cxx
index 3e87898c5ff..27de97d4de2 100644
--- a/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.cxx
+++ b/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.cxx
@@ -1,5 +1,5 @@
 // @(#) $Id$
-// Original: AliL3Display.cxx,v 1.26 2005/06/14 10:55:21 cvetan 
+// Original: AliHLTDisplay.cxx,v 1.26 2005/06/14 10:55:21 cvetan 
 
 /** \class AliHLTTPCDisplay
 
diff --git a/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.h b/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.h
index 376ea8c0e26..ec0189c8492 100644
--- a/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.h
+++ b/HLT/TPCLib/OnlineDisplay/AliHLTTPCDisplay.h
@@ -1,6 +1,6 @@
 // XEmacs -*-C++-*-
 // @(#) $Id$
-// Original: AliL3Display.h,v 1.14 2004/06/30 08:30:14 loizides 
+// Original: AliHLTDisplay.h,v 1.14 2004/06/30 08:30:14 loizides 
 
 #ifndef ALIHLTTPCDISPLAY_H
 #define ALIHLTTPCDISPLAY_H
diff --git a/HLT/bin/sethlt.sh b/HLT/bin/sethlt.sh
index c8c50a9e559..e2d4edc1986 100755
--- a/HLT/bin/sethlt.sh
+++ b/HLT/bin/sethlt.sh
@@ -5,9 +5,9 @@
 export CVS_RSH=ssh
 export CVSROOT=$USER@kjekspc1.fi.uib.no:/cvs/hltcvs
 #export CVSIGNORE="lib src hough comp exa programs misc trigger sim 
-#AliL3CompCint.h AliL3CompCint.cxx AliL3HoughCint.h 
-#AliL3HoughCint.cxx AliL3Cint.cxx AliL3Cint.h lib_ROOT lib_ALIROOT
-#AliL3MiscCint.cxx AliL3MiscCint.h"
+#AliHLTCompCint.h AliHLTCompCint.cxx AliHLTHoughCint.h 
+#AliHLTHoughCint.cxx AliHLTCint.cxx AliHLTCint.h lib_ROOT lib_ALIROOT
+#AliHLTMiscCint.cxx AliHLTMiscCint.h"
 
 export ALIHLT_USEPACKAGE=ALIROOT
 #export ALIHLT_USEPACKAGE=ROOT
diff --git a/HLT/comp/AliL3ClusterFitter.cxx b/HLT/comp/AliHLTClusterFitter.cxx
similarity index 74%
rename from HLT/comp/AliL3ClusterFitter.cxx
rename to HLT/comp/AliHLTClusterFitter.cxx
index a18846de3fe..3dd1e418e35 100644
--- a/HLT/comp/AliL3ClusterFitter.cxx
+++ b/HLT/comp/AliHLTClusterFitter.cxx
@@ -2,39 +2,39 @@
 
 // Author: Anders Vestbo 
 //*-- Copyright © ALICE HLT Group
-/** /class AliL3ClusterFitter
+/** /class AliHLTClusterFitter
 //
 //_____________________________________________________________
 //
-//  AliL3ClusterFitter
+//  AliHLTClusterFitter
 //
 
*/ -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3ClusterFitter.h" -#include "AliL3FitUtilities.h" -#include "AliL3DigitData.h" -#include "AliL3ModelTrack.h" -#include "AliL3TrackArray.h" -#include "AliL3MemHandler.h" -#include "AliL3HoughTrack.h" -#include "AliL3SpacePointData.h" +#include "AliHLTClusterFitter.h" +#include "AliHLTFitUtilities.h" +#include "AliHLTDigitData.h" +#include "AliHLTModelTrack.h" +#include "AliHLTTrackArray.h" +#include "AliHLTMemHandler.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTSpacePointData.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3ClusterFitter) +ClassImp(AliHLTClusterFitter) -Int_t AliL3ClusterFitter::fgBadFitError=0; -Int_t AliL3ClusterFitter::fgFitError=0; -Int_t AliL3ClusterFitter::fgResultError=0; -Int_t AliL3ClusterFitter::fgFitRangeError=0; +Int_t AliHLTClusterFitter::fgBadFitError=0; +Int_t AliHLTClusterFitter::fgFitError=0; +Int_t AliHLTClusterFitter::fgResultError=0; +Int_t AliHLTClusterFitter::fgFitRangeError=0; -AliL3ClusterFitter::AliL3ClusterFitter() +AliHLTClusterFitter::AliHLTClusterFitter() { // default constructor plane=0; @@ -56,7 +56,7 @@ AliL3ClusterFitter::AliL3ClusterFitter() fEvent=0; } -AliL3ClusterFitter::AliL3ClusterFitter(Char_t *path) +AliHLTClusterFitter::AliHLTClusterFitter(Char_t *path) { // constructor strcpy(fPath,path); @@ -79,7 +79,7 @@ AliL3ClusterFitter::AliL3ClusterFitter(Char_t *path) fEvent=0; } -AliL3ClusterFitter::~AliL3ClusterFitter() +AliHLTClusterFitter::~AliHLTClusterFitter() { // destructor if(fSeeds) @@ -88,27 +88,27 @@ AliL3ClusterFitter::~AliL3ClusterFitter() delete [] fClusters; } -void AliL3ClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3TrackArray *tracks) +void AliHLTClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliHLTTrackArray *tracks) { //Assuming tracklets found by the line transform fSlice=slice; fPatch=patch; - if(rowrange[0] > AliL3Transform::GetLastRow(patch) || rowrange[1] < AliL3Transform::GetFirstRow(patch)) - cerr<<"AliL3ClusterFitter::Init : Wrong rows "< AliHLTTransform::GetLastRow(patch) || rowrange[1] < AliHLTTransform::GetFirstRow(patch)) + cerr<<"AliHLTClusterFitter::Init : Wrong rows "< AliL3Transform::GetLastRow(fPatch)) - fRowMax = AliL3Transform::GetLastRow(fPatch); + if(fRowMax > AliHLTTransform::GetLastRow(fPatch)) + fRowMax = AliHLTTransform::GetLastRow(fPatch); fFitted=fFailed=0; - Int_t ntimes = AliL3Transform::GetNTimeBins()+1; - Int_t npads = AliL3Transform::GetNPads(AliL3Transform::GetLastRow(fPatch))+1;//Max num of pads. + Int_t ntimes = AliHLTTransform::GetNTimeBins()+1; + Int_t npads = AliHLTTransform::GetNPads(AliHLTTransform::GetLastRow(fPatch))+1;//Max num of pads. Int_t bounds = ntimes*npads; if(fRow) delete [] fRow; @@ -116,13 +116,13 @@ void AliL3ClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3Track if(fTracks) delete fTracks; - fTracks = new AliL3TrackArray("AliL3ModelTrack"); + fTracks = new AliHLTTrackArray("AliHLTModelTrack"); for(Int_t i=0; iGetNTracks(); i++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!track) continue; - AliL3ModelTrack *mtrack = (AliL3ModelTrack*)fTracks->NextTrack(); + AliHLTModelTrack *mtrack = (AliHLTModelTrack*)fTracks->NextTrack(); mtrack->Init(slice,patch); mtrack->SetTgl(track->GetTgl()); mtrack->SetRowRange(rowrange[0],rowrange[1]); @@ -130,13 +130,13 @@ void AliL3ClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3Track { Float_t hit[3]; track->GetLineCrossingPoint(j,hit); - hit[0] += AliL3Transform::Row2X(track->GetFirstRow()); + hit[0] += AliHLTTransform::Row2X(track->GetFirstRow()); Float_t r = sqrt(hit[0]*hit[0] + hit[1]*hit[1]); hit[2] = r*track->GetTgl(); Int_t se,ro; - AliL3Transform::Slice2Sector(slice,j,se,ro); - AliL3Transform::Local2Raw(hit,se,ro); - if(hit[1]<0 || hit[1]>=AliL3Transform::GetNPads(j) || hit[2]<0 || hit[2]>=AliL3Transform::GetNTimeBins()) + AliHLTTransform::Slice2Sector(slice,j,se,ro); + AliHLTTransform::Local2Raw(hit,se,ro); + if(hit[1]<0 || hit[1]>=AliHLTTransform::GetNPads(j) || hit[2]<0 || hit[2]>=AliHLTTransform::GetNTimeBins()) { mtrack->SetPadHit(j,-1); mtrack->SetTimeHit(j,-1); @@ -144,8 +144,8 @@ void AliL3ClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3Track } mtrack->SetPadHit(j,hit[1]); mtrack->SetTimeHit(j,hit[2]); - mtrack->SetCrossingAngleLUT(j,fabs(track->GetPsiLine() - AliL3Transform::Pi()/2)); - //if(mtrack->GetCrossingAngleLUT(j) > AliL3Transform::Deg2Rad(20)) + mtrack->SetCrossingAngleLUT(j,fabs(track->GetPsiLine() - AliHLTTransform::Pi()/2)); + //if(mtrack->GetCrossingAngleLUT(j) > AliHLTTransform::Deg2Rad(20)) // cout<<"Angle "<GetCrossingAngleLUT(j)<<" psiline "<GetPsiLine()*180/3.1415<CalculateClusterWidths(j); } @@ -153,42 +153,42 @@ void AliL3ClusterFitter::Init(Int_t slice,Int_t patch,Int_t *rowrange,AliL3Track // cout<<"Copied "<GetNTracks()<<" tracks "<GetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track) continue; track->CalculateHelix(); @@ -204,11 +204,11 @@ void AliL3ClusterFitter::LoadLocalSegments() continue; Int_t sector,row; - AliL3Transform::Slice2Sector(fSlice,j,sector,row); - AliL3Transform::Local2Raw(xyzCross,sector,row); + AliHLTTransform::Slice2Sector(fSlice,j,sector,row); + AliHLTTransform::Local2Raw(xyzCross,sector,row); - if(xyzCross[1] < 0 || xyzCross[1] >= AliL3Transform::GetNPads(j) || - xyzCross[2] < 0 || xyzCross[2] >= AliL3Transform::GetNTimeBins()) //track goes out of range + if(xyzCross[1] < 0 || xyzCross[1] >= AliHLTTransform::GetNPads(j) || + xyzCross[2] < 0 || xyzCross[2] >= AliHLTTransform::GetNTimeBins()) //track goes out of range continue; track->SetPadHit(j,xyzCross[1]); @@ -223,7 +223,7 @@ void AliL3ClusterFitter::LoadLocalSegments() } } -void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr,Float_t zvertex) +void AliHLTClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr,Float_t zvertex) { //Function assumes _global_ tracks written to a single file. cout<<"Loading the seeds"<GetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fSeeds->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fSeeds->GetCheckedTrack(i); if(!track) continue; if(!offline) { - if(i==0) cerr<<"AliL3ClusterFitter::LoadSeeds : Cutting on pt of 4 GeV!!"<GetPt() > 4.) { fSeeds->Remove(i); @@ -289,8 +289,8 @@ void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr, //Calculate the crossing point between track and padrow Float_t angle = 0; //Perpendicular to padrow in local coordinates - AliL3Transform::Local2GlobalAngle(&angle,slice); - if(!track->CalculateReferencePoint(angle,AliL3Transform::Row2X(j))) + AliHLTTransform::Local2GlobalAngle(&angle,slice); + if(!track->CalculateReferencePoint(angle,AliHLTTransform::Row2X(j))) { //cerr<<"No crossing in slice "<= AliL3Transform::GetNPads(j)) //Track leaves the slice + if(xyzCross[1] < 0 || xyzCross[1] >= AliHLTTransform::GetNPads(j)) //Track leaves the slice { newslice: @@ -335,8 +335,8 @@ void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr, } //cout<<"Track leaving, trying slice "<CalculateReferencePoint(angle,AliL3Transform::Row2X(j))) + AliHLTTransform::Local2GlobalAngle(&angle,slice); + if(!track->CalculateReferencePoint(angle,AliHLTTransform::Row2X(j))) { cerr<<"No crossing in slice "<GetPointZ(); xyzCross[2] += zvertex; Int_t sector,row; - AliL3Transform::Slice2Sector(slice,j,sector,row); - AliL3Transform::Global2Raw(xyzCross,sector,row); - if(xyzCross[1] < 0 || xyzCross[1] >= AliL3Transform::GetNPads(j)) //track is in the borderline + AliHLTTransform::Slice2Sector(slice,j,sector,row); + AliHLTTransform::Global2Raw(xyzCross,sector,row); + if(xyzCross[1] < 0 || xyzCross[1] >= AliHLTTransform::GetNPads(j)) //track is in the borderline { if(xyzCross[1] > 0 && lastcross > 0 || xyzCross[1] < 0 && lastcross < 0) goto newslice; @@ -362,10 +362,10 @@ void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr, } } - if(xyzCross[2] < 0 || xyzCross[2] >= AliL3Transform::GetNTimeBins())//track goes out of range + if(xyzCross[2] < 0 || xyzCross[2] >= AliHLTTransform::GetNTimeBins())//track goes out of range continue; - if(xyzCross[1] < 0 || xyzCross[1] >= AliL3Transform::GetNPads(j)) + if(xyzCross[1] < 0 || xyzCross[1] >= AliHLTTransform::GetNPads(j)) { cerr<<"Slice "<Print(); @@ -375,7 +375,7 @@ void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr, track->SetPadHit(j,xyzCross[1]); track->SetTimeHit(j,xyzCross[2]); angle=0; - AliL3Transform::Local2GlobalAngle(&angle,slice); + AliHLTTransform::Local2GlobalAngle(&angle,slice); Float_t crossingangle = track->GetCrossingAngle(j,slice); track->SetCrossingAngleLUT(j,crossingangle); @@ -392,56 +392,56 @@ void AliL3ClusterFitter::LoadSeeds(Int_t *rowrange,Bool_t offline,Int_t eventnr, cout<<"Loaded "<GetNTracks()<<" seeds and "<fRow < fRowMin) { - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); continue; } else if((Int_t)rowPt->fRow > fRowMax) break; else if((Int_t)rowPt->fRow != i) { - cerr<<"AliL3ClusterFitter::FindClusters : Mismatching row numbering "<fRow<fRow<fDigitData; + memset((void*)fRow,0,(AliHLTTransform::GetNTimeBins()+1)*(AliHLTTransform::GetNPads(i)+1)*sizeof(Digit)); + digPt = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { pad = digPt[j].fPad; time = digPt[j].fTime; charge = digPt[j].fCharge; - fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fCharge = charge; - fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fUsed = kFALSE; + fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fCharge = charge; + fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fUsed = kFALSE; //cout<<"Row "<GetNTracks(); k++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(k); + AliHLTModelTrack *track = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(k); if(!track) continue; if(fSeeding) if(track->GetClusterModel(i)->fSlice != fSlice) continue; - if(track->GetPadHit(i) < 0 || track->GetPadHit(i) > AliL3Transform::GetNPads(i)-1 || - track->GetTimeHit(i) < 0 || track->GetTimeHit(i) > AliL3Transform::GetNTimeBins()-1) + if(track->GetPadHit(i) < 0 || track->GetPadHit(i) > AliHLTTransform::GetNPads(i)-1 || + track->GetTimeHit(i) < 0 || track->GetTimeHit(i) > AliHLTTransform::GetNTimeBins()-1) { track->SetCluster(i,0,0,0,0,0,0); continue; @@ -479,7 +479,7 @@ void AliL3ClusterFitter::FindClusters() fFailed++; } } - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); } fSeeding = kTRUE; @@ -496,11 +496,11 @@ void AliL3ClusterFitter::FindClusters() } -Bool_t AliL3ClusterFitter::CheckCluster(Int_t trackindex) +Bool_t AliHLTClusterFitter::CheckCluster(Int_t trackindex) { //Check if this is a single or overlapping cluster - AliL3ModelTrack *track = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(trackindex); + AliHLTModelTrack *track = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(trackindex); Int_t row = fCurrentPadRow; @@ -518,7 +518,7 @@ Bool_t AliL3ClusterFitter::CheckCluster(Int_t trackindex) if(fDebug) cout<<"Failed to fit cluster at row "<GetPadHit(row))<<" time " <<(Int_t)rint(track->GetTimeHit(row))<<" hitcharge " - <GetPadHit(row))+(Int_t)rint(track->GetTimeHit(row))].fCharge<GetPadHit(row))+(Int_t)rint(track->GetTimeHit(row))].fCharge<GetNTracks(); t++) { - AliL3ModelTrack *tr = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(t); + AliHLTModelTrack *tr = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(t); if(!tr) continue; if(fSeeding) if(tr->GetClusterModel(row)->fSlice != fSlice) continue; @@ -572,16 +572,16 @@ Bool_t AliL3ClusterFitter::CheckCluster(Int_t trackindex) return kTRUE; } -Bool_t AliL3ClusterFitter::SetFitRange(AliL3ModelTrack *track,Int_t *padrange,Int_t *timerange) +Bool_t AliHLTClusterFitter::SetFitRange(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange) { // sets the fit range Int_t row = fCurrentPadRow; - Int_t nt = AliL3Transform::GetNTimeBins()+1; + Int_t nt = AliHLTTransform::GetNTimeBins()+1; Int_t nsearchbins=0; - if(row < AliL3Transform::GetNRowLow()) + if(row < AliHLTTransform::GetNRowLow()) nsearchbins=25; - else if(row < AliL3Transform::GetNRowLow() + AliL3Transform::GetNRowUp1()) + else if(row < AliHLTTransform::GetNRowLow() + AliHLTTransform::GetNRowUp1()) nsearchbins=25; else nsearchbins=25; @@ -648,7 +648,7 @@ Bool_t AliL3ClusterFitter::SetFitRange(AliL3ModelTrack *track,Int_t *padrange,In j=timemax; while(abs(timemax-j) < zw) { - if(i<0 || i>=AliL3Transform::GetNPads(row) || j<0 || j>=AliL3Transform::GetNTimeBins()) break; + if(i<0 || i>=AliHLTTransform::GetNPads(row) || j<0 || j>=AliHLTTransform::GetNTimeBins()) break; if(fRow[nt*i+j].fCharge) { if(i < padrange[0]) padrange[0]=i; @@ -672,7 +672,7 @@ Bool_t AliL3ClusterFitter::SetFitRange(AliL3ModelTrack *track,Int_t *padrange,In { for(Int_t j=timemax-zw; j<=timemax+zw; j++) { - if(i<0 || i>=AliL3Transform::GetNPads(row) || j<0 || j>=AliL3Transform::GetNTimeBins()) continue; + if(i<0 || i>=AliHLTTransform::GetNPads(row) || j<0 || j>=AliHLTTransform::GetNTimeBins()) continue; if(fRow[nt*i+j].fCharge) { if(i < padrange[0]) padrange[0]=i; @@ -691,13 +691,13 @@ Bool_t AliL3ClusterFitter::SetFitRange(AliL3ModelTrack *track,Int_t *padrange,In return kFALSE; } -Bool_t AliL3ClusterFitter::IsMaximum(Int_t pad,Int_t time) +Bool_t AliHLTClusterFitter::IsMaximum(Int_t pad,Int_t time) { // checks the maximum - if(pad<0 || pad >= AliL3Transform::GetNPads(fCurrentPadRow) || - time<0 || time >= AliL3Transform::GetNTimeBins()) + if(pad<0 || pad >= AliHLTTransform::GetNPads(fCurrentPadRow) || + time<0 || time >= AliHLTTransform::GetNTimeBins()) return kFALSE; - Int_t nt = AliL3Transform::GetNTimeBins()+1; + Int_t nt = AliHLTTransform::GetNTimeBins()+1; if(fRow[nt*pad+time].fUsed == kTRUE) return kFALSE; //Peak has been assigned before Int_t charge = fRow[nt*pad+time].fCharge; if(charge == 1024 || charge==0) return kFALSE; @@ -718,13 +718,13 @@ Bool_t AliL3ClusterFitter::IsMaximum(Int_t pad,Int_t time) return kTRUE; } -void AliL3ClusterFitter::CalculateWeightedMean(AliL3ModelTrack *track,Int_t *padrange,Int_t *timerange) +void AliHLTClusterFitter::CalculateWeightedMean(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange) { // calculates weighted mean Float_t sum=0; Int_t npads=0; Float_t pad=0,time=0; - Int_t nt = AliL3Transform::GetNTimeBins()+1; + Int_t nt = AliHLTTransform::GetNTimeBins()+1; for(Int_t i=padrange[0]; i<=padrange[1]; i++) { Int_t lsum=0; @@ -747,15 +747,15 @@ void AliL3ClusterFitter::CalculateWeightedMean(AliL3ModelTrack *track,Int_t *pad track->SetCluster(fCurrentPadRow,0,0,0,0,0,0); } -void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_t *timerange) +void AliHLTClusterFitter::FitClusters(AliHLTModelTrack *track,Int_t *padrange,Int_t *timerange) { //Handle single and overlapping clusters /* if( (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDPad) <= 1 || - (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDPad) >= AliL3Transform::GetNPads(fCurrentPadRow)-2 || + (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDPad) >= AliHLTTransform::GetNPads(fCurrentPadRow)-2 || (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDTime) <= 1 || - (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDTime) >= AliL3Transform::GetNTimeBins()-2) + (Int_t)rint(track->GetClusterModel(fCurrentPadRow)->fDTime) >= AliHLTTransform::GetNTimeBins()-2) { CalculateWeightedMean(track,padrange,timerange); return; @@ -765,7 +765,7 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ Int_t maxTracks = FIT_MAXPAR/NUM_PARS; if(track->GetNOverlaps(fCurrentPadRow) > maxTracks) { - cerr<<"AliL3ClusterFitter::FitOverlappingClusters : Too many overlapping tracks"<GetOverlaps(fCurrentPadRow); @@ -776,11 +776,11 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ Int_t k=-1; while(k < track->GetNOverlaps(fCurrentPadRow)) { - AliL3ModelTrack *tr=0; + AliHLTModelTrack *tr=0; if(k==-1) tr = track; else - tr = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); + tr = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); k++; if(!tr) continue; if(!tr->IsSet(fCurrentPadRow) && !tr->IsPresent(fCurrentPadRow))//cluster has not been set and is not present @@ -815,11 +815,11 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ //Fill the overlapping tracks: while(k < track->GetNOverlaps(fCurrentPadRow)) { - AliL3ModelTrack *tr=0; + AliHLTModelTrack *tr=0; if(k==-1) tr = track; else - tr = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); + tr = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); k++; if(!tr) continue; @@ -829,7 +829,7 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ //The local maxima is temporary stored in the cluster model: Int_t hitpad = (Int_t)rint(tr->GetClusterModel(fCurrentPadRow)->fDPad); Int_t hittime = (Int_t)rint(tr->GetClusterModel(fCurrentPadRow)->fDTime); - Int_t charge = fRow[(AliL3Transform::GetNTimeBins()+1)*hitpad + hittime].fCharge; + Int_t charge = fRow[(AliHLTTransform::GetNTimeBins()+1)*hitpad + hittime].fCharge; if(fDebug) cout<<"Fitting track cluster, pad "<GetPadHit(fCurrentPadRow)<<" time " @@ -864,7 +864,7 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ { if(!tr->IsPresent(fCurrentPadRow)) { - cerr<<"AliL3ClusterFitter::FindClusters : Cluster not present; there is a bug here"<GetNOverlaps(fCurrentPadRow)) { - AliL3ModelTrack *tr=0; + AliHLTModelTrack *tr=0; if(k==-1) tr = track; else - tr = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); + tr = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[k]); k++; if(!tr) continue; if(!tr->IsPresent(fCurrentPadRow)) @@ -995,9 +995,9 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ if(tr->IsSet(fCurrentPadRow)) continue;//This cluster has been set before Int_t lpatch; - if(fCurrentPadRow < AliL3Transform::GetNRowLow()) + if(fCurrentPadRow < AliHLTTransform::GetNRowLow()) lpatch=0; - else if(fCurrentPadRow < AliL3Transform::GetNRowLow() + AliL3Transform::GetNRowUp1()) + else if(fCurrentPadRow < AliHLTTransform::GetNRowLow() + AliHLTTransform::GetNRowUp1()) lpatch=1; else lpatch=2; @@ -1005,14 +1005,14 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ //if(chisqF < fChiSqMax[(Int_t)overlapping])//cluster fit is good enough if(chisqF < fChiSqMax[lpatch])//cluster fit is good enough { - totCharge = (Int_t)(2*AliL3Transform::Pi() * a[nOverlaps*NUM_PARS+1] * a[nOverlaps*NUM_PARS+3] * a[nOverlaps*NUM_PARS+5]); + totCharge = (Int_t)(2*AliHLTTransform::Pi() * a[nOverlaps*NUM_PARS+1] * a[nOverlaps*NUM_PARS+3] * a[nOverlaps*NUM_PARS+5]); Float_t fpad = a[nOverlaps*NUM_PARS+2]; Float_t ftime = a[nOverlaps*NUM_PARS+4]; - if(totCharge < 0 || fpad < -1 || fpad > AliL3Transform::GetNPads(fCurrentPadRow) || - ftime < -1 || ftime > AliL3Transform::GetNTimeBins()) + if(totCharge < 0 || fpad < -1 || fpad > AliHLTTransform::GetNPads(fCurrentPadRow) || + ftime < -1 || ftime > AliHLTTransform::GetNTimeBins()) { if(fDebug) - cout<<"AliL3ClusterFitter::Fatal result(s) in fit; in slice "<SetCluster(fCurrentPadRow,0,0,0,0,0,0); @@ -1037,7 +1037,7 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ //Set the digits to used: for(Int_t i=padrange[0]; i<=padrange[1]; i++) for(Int_t j=timerange[0]; j<=timerange[1]; j++) - fRow[(AliL3Transform::GetNTimeBins()+1)*i + j].fUsed = kTRUE; + fRow[(AliHLTTransform::GetNTimeBins()+1)*i + j].fUsed = kTRUE; */ fFitted++; } @@ -1056,7 +1056,7 @@ void AliL3ClusterFitter::FitClusters(AliL3ModelTrack *track,Int_t *padrange,Int_ delete [] plane; } -void AliL3ClusterFitter::SetClusterfitFalse(AliL3ModelTrack *track) +void AliHLTClusterFitter::SetClusterfitFalse(AliHLTModelTrack *track) { //Cluster fit failed, so set the clusters to all the participating //tracks to zero. @@ -1065,18 +1065,18 @@ void AliL3ClusterFitter::SetClusterfitFalse(AliL3ModelTrack *track) Int_t *overlaps = track->GetOverlaps(fCurrentPadRow); while(i < track->GetNOverlaps(fCurrentPadRow)) { - AliL3ModelTrack *tr=0; + AliHLTModelTrack *tr=0; if(i==-1) tr = track; else - tr = (AliL3ModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[i]); + tr = (AliHLTModelTrack*)fProcessTracks->GetCheckedTrack(overlaps[i]); i++; if(!tr) continue; //Set the digit data to unused, so it can be fitted to another bastard: Int_t hitpad = (Int_t)rint(tr->GetClusterModel(fCurrentPadRow)->fDPad); Int_t hittime = (Int_t)rint(tr->GetClusterModel(fCurrentPadRow)->fDTime); - fRow[(AliL3Transform::GetNTimeBins()+1)*hitpad + hittime].fUsed = kFALSE; + fRow[(AliHLTTransform::GetNTimeBins()+1)*hitpad + hittime].fUsed = kFALSE; tr->SetCluster(fCurrentPadRow,0,0,0,0,0,0); } @@ -1084,19 +1084,19 @@ void AliL3ClusterFitter::SetClusterfitFalse(AliL3ModelTrack *track) } -void AliL3ClusterFitter::AddClusters() +void AliHLTClusterFitter::AddClusters() { // adds clusters if(!fClusters) { - fClusters = new AliL3SpacePointData[fNMaxClusters]; + fClusters = new AliHLTSpacePointData[fNMaxClusters]; fNClusters=0; } if(fDebug) cout<<"Writing cluster in slice "<GetNTracks(); i++) { - AliL3ModelTrack *tr = (AliL3ModelTrack*)tracks->GetCheckedTrack(i); + AliHLTModelTrack *tr = (AliHLTModelTrack*)tracks->GetCheckedTrack(i); if(!tr) continue; UInt_t *hitids = tr->GetHitNumbers(); @@ -1124,8 +1124,8 @@ void AliL3ClusterFitter::AddClusters() tr->GetTime(i,time); tr->GetClusterCharge(i,charge); - if(pad < -1 || pad >= AliL3Transform::GetNPads(i) || - time < -1 || time >= AliL3Transform::GetNTimeBins()) + if(pad < -1 || pad >= AliHLTTransform::GetNPads(i) || + time < -1 || time >= AliHLTTransform::GetNTimeBins()) { continue; // cout<<"slice "<GetSigmaZ2(i,zwidth); Float_t xyz[3]; Int_t sector,row; - AliL3Transform::Slice2Sector(fSlice,i,sector,row); + AliHLTTransform::Slice2Sector(fSlice,i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); if(fNClusters >= fNMaxClusters) { - cerr<<"AliL3ClusterFitter::AddClusters : Too many clusters "<0) - fClusters[fNClusters].fSigmaY2 = xywidth*pow(AliL3Transform::GetPadPitchWidth(pa),2); + fClusters[fNClusters].fSigmaY2 = xywidth*pow(AliHLTTransform::GetPadPitchWidth(pa),2); else fClusters[fNClusters].fSigmaY2 = 1; if(zwidth>0) - fClusters[fNClusters].fSigmaZ2 = zwidth*pow(AliL3Transform::GetZWidth(),2); + fClusters[fNClusters].fSigmaZ2 = zwidth*pow(AliHLTTransform::GetZWidth(),2); else fClusters[fNClusters].fSigmaZ2 = 1; Int_t pat=fPatch; @@ -1170,9 +1170,9 @@ void AliL3ClusterFitter::AddClusters() pat=0; fClusters[fNClusters].fID = fNClusters + ((fSlice&0x7f)<<25)+((pat&0x7)<<22); - if(nhits >= AliL3Transform::GetNRows()) + if(nhits >= AliHLTTransform::GetNRows()) { - cerr<<"AliL3ClusterFitter::AddClusters : Cluster counter of out range "<= AliL3Transform::GetNPads(i)) - fpad = AliL3Transform::GetNPads(i)-1; + if(fpad >= AliHLTTransform::GetNPads(i)) + fpad = AliHLTTransform::GetNPads(i)-1; if(ftime<0) ftime=0; - if(ftime >= AliL3Transform::GetNTimeBins()) - ftime = AliL3Transform::GetNTimeBins()-1; + if(ftime >= AliHLTTransform::GetNTimeBins()) + ftime = AliHLTTransform::GetNTimeBins()-1; GetTrackID(fpad,ftime,trackID); fClusters[fNClusters].fTrackID[0] = trackID[0]; fClusters[fNClusters].fTrackID[1] = trackID[1]; @@ -1204,18 +1204,18 @@ void AliL3ClusterFitter::AddClusters() } } -void AliL3ClusterFitter::WriteTracks(Int_t minHits) +void AliHLTClusterFitter::WriteTracks(Int_t minHits) { // writes tracks if(!fSeeds) return; - AliL3TrackArray *fakes = new AliL3TrackArray(); + AliHLTTrackArray *fakes = new AliHLTTrackArray(); Int_t clustercount=0; for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *tr = (AliL3ModelTrack*)fSeeds->GetCheckedTrack(i); + AliHLTModelTrack *tr = (AliHLTModelTrack*)fSeeds->GetCheckedTrack(i); if(!tr) continue; if(tr->GetNHits() < minHits) { @@ -1227,7 +1227,7 @@ void AliL3ClusterFitter::WriteTracks(Int_t minHits) cout<<"Writing "<Compress(); - AliL3MemHandler mem; + AliHLTMemHandler mem; Char_t filename[1024]; sprintf(filename,"%s/fitter/tracks_%d.raw",fPath,fEvent); mem.SetBinaryOutput(filename); @@ -1243,10 +1243,10 @@ void AliL3ClusterFitter::WriteTracks(Int_t minHits) delete fakes; } -void AliL3ClusterFitter::WriteClusters(Bool_t global) +void AliHLTClusterFitter::WriteClusters(Bool_t global) { // writes clusters - AliL3MemHandler mem; + AliHLTMemHandler mem; if(fDebug) cout<<"Write "< #endif #ifdef use_aliroot -#include "AliL3FileHandler.h" +#include "AliHLTFileHandler.h" #endif #endif -#include "AliL3Compress.h" +#include "AliHLTCompress.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3Compress) +ClassImp(AliHLTCompress) -AliL3Compress::AliL3Compress() +AliHLTCompress::AliHLTCompress() { // default constructor fTracks=0; @@ -53,7 +53,7 @@ AliL3Compress::AliL3Compress() fEvent=-1; } -AliL3Compress::AliL3Compress(Int_t slice,Int_t patch,Char_t *path,Bool_t writeshape,Int_t event) +AliHLTCompress::AliHLTCompress(Int_t slice,Int_t patch,Char_t *path,Bool_t writeshape,Int_t event) { // constructor fEvent=event; @@ -64,14 +64,14 @@ AliL3Compress::AliL3Compress(Int_t slice,Int_t patch,Char_t *path,Bool_t writesh fWriteShape=writeshape; } -AliL3Compress::~AliL3Compress() +AliHLTCompress::~AliHLTCompress() { // destructor if(fTracks) delete fTracks; } -Bool_t AliL3Compress::WriteFile(AliL3TrackArray *tracks,Char_t *filename) +Bool_t AliHLTCompress::WriteFile(AliHLTTrackArray *tracks,Char_t *filename) { // writes file Char_t fname[1024]; @@ -85,17 +85,17 @@ Bool_t AliL3Compress::WriteFile(AliL3TrackArray *tracks,Char_t *filename) FILE *file = fopen(fname,"w"); if(!file) { - cerr<<"AliL3Compress::WriteFile : Error opening file "<GetNTracks(); Int_t count=0; - AliL3ClusterModel *clusters=0; - AliL3TrackModel *model=0; + AliHLTClusterModel *clusters=0; + AliHLTTrackModel *model=0; for(Int_t i=0; iGetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)tracks->GetCheckedTrack(i); if(!track) continue; //Do not save useless tracks or clusters: @@ -106,9 +106,9 @@ Bool_t AliL3Compress::WriteFile(AliL3TrackArray *tracks,Char_t *filename) model = track->GetModel(); //if(model->fNClusters==0) continue; clusters = track->GetClusters(); - if(fwrite(model,sizeof(AliL3TrackModel),1,file)!=1) break; - //if(fwrite(clusters,model->fNClusters*sizeof(AliL3ClusterModel),1,file)!=1) break; - if(fwrite(clusters,AliL3Transform::GetNRows(fPatch)*sizeof(AliL3ClusterModel),1,file)!=1) break; + if(fwrite(model,sizeof(AliHLTTrackModel),1,file)!=1) break; + //if(fwrite(clusters,model->fNClusters*sizeof(AliHLTClusterModel),1,file)!=1) break; + if(fwrite(clusters,AliHLTTransform::GetNRows(fPatch)*sizeof(AliHLTClusterModel),1,file)!=1) break; count++; } @@ -116,7 +116,7 @@ Bool_t AliL3Compress::WriteFile(AliL3TrackArray *tracks,Char_t *filename) return kTRUE; } -Bool_t AliL3Compress::ReadFile(Char_t which,Char_t *filename) +Bool_t AliHLTCompress::ReadFile(Char_t which,Char_t *filename) { //Read the trackfile. @@ -141,7 +141,7 @@ Bool_t AliL3Compress::ReadFile(Char_t which,Char_t *filename) } else { - cerr<<"AliL3Compress::ReadFile() : Wrong option"<NextTrack(); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->NextTrack(); track->Init(fSlice,fPatch); - AliL3TrackModel *model = track->GetModel(); - AliL3ClusterModel *clusters = track->GetClusters(); - if(fread(model,sizeof(AliL3TrackModel),1,file)!=1) break; - //if(fread(clusters,model->fNClusters*sizeof(AliL3ClusterModel),1,file)!=1) break; - if(fread(clusters,AliL3Transform::GetNRows(fPatch)*sizeof(AliL3ClusterModel),1,file)!=1) break; + AliHLTTrackModel *model = track->GetModel(); + AliHLTClusterModel *clusters = track->GetClusters(); + if(fread(model,sizeof(AliHLTTrackModel),1,file)!=1) break; + //if(fread(clusters,model->fNClusters*sizeof(AliHLTClusterModel),1,file)!=1) break; + if(fread(clusters,AliHLTTransform::GetNRows(fPatch)*sizeof(AliHLTClusterModel),1,file)!=1) break; track->FillTrack(); } @@ -174,7 +174,7 @@ Bool_t AliL3Compress::ReadFile(Char_t which,Char_t *filename) return kTRUE; } -Bool_t AliL3Compress::CompressFile() +Bool_t AliHLTCompress::CompressFile() { // compresses file Char_t fname[100]; @@ -192,12 +192,12 @@ Bool_t AliL3Compress::CompressFile() FILE *input = fopen(fname,"r"); if(!input) { - cerr<<"AliL3Compress::CompressFile() : Error opening file: "<mask != 0x80) //Write the current byte to file. { - //cerr<<"\nAliL3Compress::CompressFile() : Writing overhead bits!!!"<rack,output->file )!=output->rack) - cerr<<"AliL3Compress::ComressFile : Error writing to bitfile"<mask=0x80; output->rack=0; } //Write track parameters: - fwrite(&track,sizeof(AliL3TrackModel),1,output->file); + fwrite(&track,sizeof(AliHLTTrackModel),1,output->file); Int_t origslice=-1,slice,clustercount=0; - for(Int_t i=0; i35) { - cerr<<"AliL3DataCompress::CompressFile : Fucked up slice number :"<=power) { //cout<=power) { pado++; temp=power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNPadBits()-1)); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNPadBits()-1)); //Write charge information: temp = (Int_t)cluster.fDCharge; - power = 1<<(AliL3DataCompressorHelper::GetNChargeBits()); + power = 1<<(AliHLTDataCompressorHelper::GetNChargeBits()); if(abs(temp)>=power) { chargeo++; temp=power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNChargeBits())); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNChargeBits())); if(fWriteShape) { @@ -301,26 +301,26 @@ Bool_t AliL3Compress::CompressFile() OutputBit(output,0); else OutputBit(output,1); - power = 1<<(AliL3DataCompressorHelper::GetNShapeBits()-1); + power = 1<<(AliHLTDataCompressorHelper::GetNShapeBits()-1); if(abs(temp) >= power) { padshapeo++; temp = power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNShapeBits()-1)); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNShapeBits()-1)); temp = (Int_t)rint(cluster.fDSigmaZ); if(temp<0) OutputBit(output,0); else OutputBit(output,1); - power = 1<<(AliL3DataCompressorHelper::GetNShapeBits()-1); + power = 1<<(AliHLTDataCompressorHelper::GetNShapeBits()-1); if(abs(temp) >= power) { timeshapeo++; temp=power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNShapeBits()-1)); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNShapeBits()-1)); } clustercount++; @@ -341,7 +341,7 @@ Bool_t AliL3Compress::CompressFile() return kTRUE; } -Bool_t AliL3Compress::ExpandFile() +Bool_t AliHLTCompress::ExpandFile() { // expands file Char_t fname[100]; @@ -358,26 +358,26 @@ Bool_t AliL3Compress::ExpandFile() FILE *output = fopen(fname,"w"); if(!output) { - cerr<<"AliL3Compress::ExpandFile() : Error opening file: "<file)) { input->mask=0x80;//make sure we read a new byte from file. //Read and write track: - if(fread(&trackmodel,sizeof(AliL3TrackModel),1,input->file)!=1) break; - fwrite(&trackmodel,sizeof(AliL3TrackModel),1,output); + if(fread(&trackmodel,sizeof(AliHLTTrackModel),1,input->file)!=1) break; + fwrite(&trackmodel,sizeof(AliHLTTrackModel),1,output); - memset(clusters,0,AliL3Transform::GetNRows(fPatch)*sizeof(AliL3ClusterModel)); + memset(clusters,0,AliHLTTransform::GetNRows(fPatch)*sizeof(AliHLTClusterModel)); Int_t origslice=-1,clustercount=0; - for(Int_t i=0; i= 1<<10) { - cerr<<"AliL3Compress::CompressRemaining : Too many remaining clusters "<= (1<= (1<= (1<= (1<= 1<<(AliL3DataCompressorHelper::GetNChargeBits())) - buff = (1<<(AliL3DataCompressorHelper::GetNChargeBits()))-1; - OutputBits(output,buff,AliL3DataCompressorHelper::GetNChargeBits()); + if(buff >= 1<<(AliHLTDataCompressorHelper::GetNChargeBits())) + buff = (1<<(AliHLTDataCompressorHelper::GetNChargeBits()))-1; + OutputBits(output,buff,AliHLTDataCompressorHelper::GetNChargeBits()); } CloseOutputBitFile(output); @@ -563,7 +563,7 @@ void AliL3Compress::CompressRemaining(AliL3SpacePointData *clusters[36][6],UInt_ delete [] npoints; } -void AliL3Compress::ExpandRemaining(TempCluster **clusters,Int_t *ncl, Int_t /*maxpoints*/) +void AliHLTCompress::ExpandRemaining(TempCluster **clusters,Int_t *ncl, Int_t /*maxpoints*/) { //Expand the remaining clusters stored using function CompressRemaining @@ -595,21 +595,21 @@ void AliL3Compress::ExpandRemaining(TempCluster **clusters,Int_t *ncl, Int_t /*m clusters[slice][ncl[slice]].fPadrow = padrow; //Read pad - buff = InputBits(input,AliL3DataCompressorHelper::GetNPadBitsRemaining()); - clusters[slice][ncl[slice]].fPad = (Float_t)buff/AliL3DataCompressorHelper::GetPadPrecisionFactor(); + buff = InputBits(input,AliHLTDataCompressorHelper::GetNPadBitsRemaining()); + clusters[slice][ncl[slice]].fPad = (Float_t)buff/AliHLTDataCompressorHelper::GetPadPrecisionFactor(); //Read time - buff = InputBits(input,AliL3DataCompressorHelper::GetNTimeBitsRemaining()); - clusters[slice][ncl[slice]].fTime = (Float_t)buff/AliL3DataCompressorHelper::GetTimePrecisionFactor(); + buff = InputBits(input,AliHLTDataCompressorHelper::GetNTimeBitsRemaining()); + clusters[slice][ncl[slice]].fTime = (Float_t)buff/AliHLTDataCompressorHelper::GetTimePrecisionFactor(); //Read widths - buff = InputBits(input,AliL3DataCompressorHelper::GetNShapeBitsRemaining()); - clusters[slice][ncl[slice]].fSigmaY2 = pow((Float_t)buff/AliL3DataCompressorHelper::GetPadPrecisionFactor(),2); - buff = InputBits(input,AliL3DataCompressorHelper::GetNShapeBitsRemaining()); - clusters[slice][ncl[slice]].fSigmaZ2 = pow((Float_t)buff/AliL3DataCompressorHelper::GetPadPrecisionFactor(),2); + buff = InputBits(input,AliHLTDataCompressorHelper::GetNShapeBitsRemaining()); + clusters[slice][ncl[slice]].fSigmaY2 = pow((Float_t)buff/AliHLTDataCompressorHelper::GetPadPrecisionFactor(),2); + buff = InputBits(input,AliHLTDataCompressorHelper::GetNShapeBitsRemaining()); + clusters[slice][ncl[slice]].fSigmaZ2 = pow((Float_t)buff/AliHLTDataCompressorHelper::GetPadPrecisionFactor(),2); //Read charge - buff = InputBits(input,AliL3DataCompressorHelper::GetNChargeBits()); + buff = InputBits(input,AliHLTDataCompressorHelper::GetNChargeBits()); clusters[slice][ncl[slice]].fCharge = buff; ncl[slice]++; @@ -621,10 +621,10 @@ void AliL3Compress::ExpandRemaining(TempCluster **clusters,Int_t *ncl, Int_t /*m } } -void AliL3Compress::PrintCompRatio(ofstream *outfile) +void AliHLTCompress::PrintCompRatio(ofstream *outfile) { // prints the compression ratio - AliL3MemHandler *mem = new AliL3MemHandler(); + AliHLTMemHandler *mem = new AliHLTMemHandler(); Char_t fname[1024]; UInt_t remainSize=0,digitSize=0; for(Int_t i=0; i<36; i++) @@ -655,13 +655,13 @@ void AliL3Compress::PrintCompRatio(ofstream *outfile) if(digitSize==0) { - cerr<<"AliL3Compress::PrintCompRatio : Zero digit size, not able to obtain comp. ratios!"<GetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track) continue; - for(Int_t padrow=0; padrowIsPresent(padrow)) continue; Int_t dpad = abs((Int_t)rint(track->GetClusterModel(padrow)->fDPad)); @@ -707,7 +707,7 @@ Int_t AliL3Compress::GetEntropy(Float_t &padEntropy,Float_t &timeEntropy,Float_t Int_t dcharge = (Int_t)track->GetClusterModel(padrow)->fDCharge; if(dpad >= knmax || dtime >= knmax || dcharge >= knmax) { - cerr<<"AliL3Compress::GetEntropy : Quantization out of range: "<GetNTracks(); t++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)tracks->GetCheckedTrack(t); + AliHLTModelTrack *track = (AliHLTModelTrack*)tracks->GetCheckedTrack(t); if(!track) continue; - for(Int_t padrow=0; padrowIsPresent(padrow)) continue; qres = abs((Int_t)rint(track->GetClusterModel(padrow)->fDPad)); if(qres >= nmax) { - cerr<<"AliL3CompressAC::BuildModel() : Residual values seems way too big!"< fMax) @@ -143,7 +143,7 @@ void AliL3CompressAC::BuildModel(BIT_FILE *output) delete [] temp; } -void AliL3CompressAC::RebuildModel(BIT_FILE *input) +void AliHLTCompressAC::RebuildModel(BIT_FILE *input) { //Rebuild the model from the counts written to the beginning of the compressed file. @@ -154,11 +154,11 @@ void AliL3CompressAC::RebuildModel(BIT_FILE *input) FillTotals(); } -void AliL3CompressAC::FillTotals() +void AliHLTCompressAC::FillTotals() { //Fill the array of totals, which is actually the model being used during encoding/decoding. if(fMax == 0) - cerr<<"AliL3CompressAC::FillTotals : max value is zero!"<file); - AliL3ClusterModel **clusters = new AliL3ClusterModel*[trackcount]; + AliHLTClusterModel **clusters = new AliHLTClusterModel*[trackcount]; Int_t *clustercount = new Int_t[trackcount]; i=0; @@ -330,19 +330,19 @@ Bool_t AliL3CompressAC::CompressFile() //Store the clusters in memory for later encoding and storing. while(!feof(input)) { - if(fread(&track,sizeof(AliL3TrackModel),1,input)!=1) break; - fwrite(&track,sizeof(AliL3TrackModel),1,output->file); + if(fread(&track,sizeof(AliHLTTrackModel),1,input)!=1) break; + fwrite(&track,sizeof(AliHLTTrackModel),1,output->file); - clusters[i] = new AliL3ClusterModel[AliL3Transform::GetNRows()]; + clusters[i] = new AliHLTClusterModel[AliHLTTransform::GetNRows()]; clustercount[i]=0; //Read in the clusters: - fread(clusters[i],sizeof(AliL3ClusterModel),AliL3Transform::GetNRows(fPatch),input); + fread(clusters[i],sizeof(AliHLTClusterModel),AliHLTTransform::GetNRows(fPatch),input); i++; } if(i != trackcount) { - cerr<<"AliL3CompressAC::CompressFile : Mismatching file size and trackcount "<35) { - cerr<<"AliL3DataCompress::CompressFile : Fucked up slice number :"<=power) { temp=power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNChargeBits())); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNChargeBits())); //Write sign information of the residuals: temp = (Int_t)rint(clusters[i][j].fDTime); @@ -426,24 +426,24 @@ Bool_t AliL3CompressAC::CompressFile() OutputBit(output,0); else OutputBit(output,1); - power = 1<<(AliL3DataCompressorHelper::GetNShapeBits()-1); + power = 1<<(AliHLTDataCompressorHelper::GetNShapeBits()-1); if(abs(temp) >= power) { temp = power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNShapeBits()-1)); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNShapeBits()-1)); temp = (Int_t)rint(clusters[i][j].fDSigmaZ); if(temp<0) OutputBit(output,0); else OutputBit(output,1); - power = 1<<(AliL3DataCompressorHelper::GetNShapeBits()-1); + power = 1<<(AliHLTDataCompressorHelper::GetNShapeBits()-1); if(abs(temp) >= power) { temp=power - 1; } - OutputBits(output,abs(temp),(AliL3DataCompressorHelper::GetNShapeBits()-1)); + OutputBits(output,abs(temp),(AliHLTDataCompressorHelper::GetNShapeBits()-1)); } clustercount[i]++; } @@ -458,7 +458,7 @@ Bool_t AliL3CompressAC::CompressFile() { Int_t counter=0; - for(j=0; jfile); - AliL3TrackModel *trackmodels = new AliL3TrackModel[trackcount]; - AliL3ClusterModel **clusters = new AliL3ClusterModel*[trackcount]; + AliHLTTrackModel *trackmodels = new AliHLTTrackModel[trackcount]; + AliHLTClusterModel **clusters = new AliHLTClusterModel*[trackcount]; Int_t *clustercount = new Int_t[trackcount]; - fread(trackmodels,sizeof(AliL3TrackModel),trackcount,input->file); + fread(trackmodels,sizeof(AliHLTTrackModel),trackcount,input->file); for(i=0; i 35) { - cerr<<"AliL3CompressAC::ExpandFile : Bad slice number "< AliROOT handling of TPC data compression classes. // -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3RootTypes.h" -#include "AliL3Transform.h" -#include "AliL3MemHandler.h" -#include "AliL3SpacePointData.h" -#include "AliL3CompressAC.h" -#include "AliL3TrackArray.h" -#include "AliL3ModelTrack.h" -#include "AliL3Benchmark.h" -#include "AliL3ClusterFitter.h" +#include "AliHLTLogging.h" +#include "AliHLTRootTypes.h" +#include "AliHLTTransform.h" +#include "AliHLTMemHandler.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTCompressAC.h" +#include "AliHLTTrackArray.h" +#include "AliHLTModelTrack.h" +#include "AliHLTBenchmark.h" +#include "AliHLTClusterFitter.h" #ifdef use_aliroot -#include "AliL3FileHandler.h" +#include "AliHLTFileHandler.h" #include #include #include @@ -43,8 +43,8 @@ #include #endif -#include "AliL3DataCompressorHelper.h" -#include "AliL3DataCompressor.h" +#include "AliHLTDataCompressorHelper.h" +#include "AliHLTDataCompressor.h" #include #if __GNUC__ == 3 @@ -52,9 +52,9 @@ using namespace std; #endif -ClassImp(AliL3DataCompressor) +ClassImp(AliHLTDataCompressor) -AliL3DataCompressor::AliL3DataCompressor() +AliHLTDataCompressor::AliHLTDataCompressor() { // default constructor fBenchmark=0; @@ -67,14 +67,14 @@ AliL3DataCompressor::AliL3DataCompressor() fCompRatioFile=0; fNusedClusters=0; fNunusedClusters=0; - memset(fClusters,0,36*6*sizeof(AliL3SpacePointData*)); + memset(fClusters,0,36*6*sizeof(AliHLTSpacePointData*)); } -AliL3DataCompressor::AliL3DataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape) +AliHLTDataCompressor::AliHLTDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape) { // constructor strcpy(fPath,path); - fBenchmark = new AliL3Benchmark(); + fBenchmark = new AliHLTBenchmark(); fInputTracks=0; fKeepRemaining=keep; fWriteClusterShape = writeshape; @@ -83,7 +83,7 @@ AliL3DataCompressor::AliL3DataCompressor(Char_t *path,Bool_t keep,Bool_t writesh fNusedClusters=0; fNunusedClusters=0; fNoCompression=kFALSE; - memset(fClusters,0,36*6*sizeof(AliL3SpacePointData*)); + memset(fClusters,0,36*6*sizeof(AliHLTSpacePointData*)); #ifdef use_root Char_t name[1024]; sprintf(name,"rm -f %s/comp/*",path);//Clean the directory @@ -92,7 +92,7 @@ AliL3DataCompressor::AliL3DataCompressor(Char_t *path,Bool_t keep,Bool_t writesh OpenOutputFile(); } -AliL3DataCompressor::~AliL3DataCompressor() +AliHLTDataCompressor::~AliHLTDataCompressor() { // destructor if(fInputTracks) @@ -109,17 +109,17 @@ AliL3DataCompressor::~AliL3DataCompressor() CloseOutputFile(); } -void AliL3DataCompressor::DoBench(Char_t *fname) +void AliHLTDataCompressor::DoBench(Char_t *fname) { // does benchmarking fBenchmark->Analyze(fname); } -void AliL3DataCompressor::OpenOutputFile() +void AliHLTDataCompressor::OpenOutputFile() { // opens the output file #ifndef use_aliroot - LOG(AliL3Log::kError,"AliL3DataCompressor::OpenOutputFile","Version") + LOG(AliHLTLog::kError,"AliHLTDataCompressor::OpenOutputFile","Version") <<"You have to compile with use_aliroot flag in order to use this function"<Get(AliL3Transform::GetParamName()); + AliTPCParam *param = (AliTPCParam*)f->Get(AliHLTTransform::GetParamName()); sprintf(filename,"%s/comp/AliTPCclusters.root",fPath); fOutputFile = TFile::Open(filename,"RECREATE"); param->Write(param->GetTitle()); @@ -141,7 +141,7 @@ void AliL3DataCompressor::OpenOutputFile() #endif } -void AliL3DataCompressor::CloseOutputFile() +void AliHLTDataCompressor::CloseOutputFile() { // closes the output file if(fCompRatioFile) @@ -162,12 +162,12 @@ void AliL3DataCompressor::CloseOutputFile() fOutputFile=0; } -void AliL3DataCompressor::LoadData(Int_t event,Bool_t sp) +void AliHLTDataCompressor::LoadData(Int_t event,Bool_t sp) { // Loads data fSinglePatch=sp; fEvent=event; - AliL3MemHandler *clusterfile[36][6]; + AliHLTMemHandler *clusterfile[36][6]; Char_t fname[1024]; for(Int_t s=0; s<=35; s++) { @@ -176,14 +176,14 @@ void AliL3DataCompressor::LoadData(Int_t event,Bool_t sp) if(fClusters[s][p]) delete fClusters[s][p]; fClusters[s][p] = 0; - clusterfile[s][p] = new AliL3MemHandler(); + clusterfile[s][p] = new AliHLTMemHandler(); if(fSinglePatch) sprintf(fname,"%s/cf/points_%d_%d_%d.raw",fPath,fEvent,s,-1); else sprintf(fname,"%s/cf/points_%d_%d_%d.raw",fPath,fEvent,s,p); clusterfile[s][p]->SetBinaryInput(fname); - fClusters[s][p] = (AliL3SpacePointData*)clusterfile[s][p]->Allocate(); + fClusters[s][p] = (AliHLTSpacePointData*)clusterfile[s][p]->Allocate(); clusterfile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]); clusterfile[s][p]->CloseBinaryInput(); @@ -194,29 +194,29 @@ void AliL3DataCompressor::LoadData(Int_t event,Bool_t sp) //cout<SetBinaryInput(fname); if(fInputTracks) delete fInputTracks; - fInputTracks = new AliL3TrackArray(); + fInputTracks = new AliHLTTrackArray(); tfile->Binary2TrackArray(fInputTracks); tfile->CloseBinaryInput(); delete tfile; } -void AliL3DataCompressor::FillData(Int_t minHits,Bool_t expand) +void AliHLTDataCompressor::FillData(Int_t minHits,Bool_t expand) { //Fill the track data into track and cluster structures, and write to file. //Preparation for compressing it. cout<<"Filling data; "<GetNTracks()<<" tracks"<QSort(); for(Int_t i=0; iGetNTracks(); i++) { - AliL3Track *intrack = fInputTracks->GetCheckedTrack(i); + AliHLTTrack *intrack = fInputTracks->GetCheckedTrack(i); if(!intrack) continue; if(intrack->GetNHits()CalculateHelix(); - AliL3ModelTrack *outtrack = (AliL3ModelTrack*)comptracks->NextTrack(); + AliHLTModelTrack *outtrack = (AliHLTModelTrack*)comptracks->NextTrack(); outtrack->SetNHits(intrack->GetNHits()); outtrack->SetRowRange(intrack->GetFirstRow(),intrack->GetLastRow()); outtrack->SetFirstPoint(intrack->GetFirstPointX(),intrack->GetFirstPointY(),intrack->GetFirstPointZ()); @@ -247,16 +247,16 @@ void AliL3DataCompressor::FillData(Int_t minHits,Bool_t expand) UInt_t pos = id&0x3fffff; //UInt_t size; - AliL3SpacePointData *points = fClusters[slice][patch];//->GetDataPointer(size); + AliHLTSpacePointData *points = fClusters[slice][patch];//->GetDataPointer(size); Float_t xyz[3] = {points[pos].fX,points[pos].fY,points[pos].fZ}; Int_t padrow = points[pos].fPadRow; //Calculate the crossing point between track and padrow Float_t angle = 0; //Perpendicular to padrow in local coordinates - AliL3Transform::Local2GlobalAngle(&angle,slice); - if(!intrack->CalculateReferencePoint(angle,AliL3Transform::Row2X(padrow))) + AliHLTTransform::Local2GlobalAngle(&angle,slice); + if(!intrack->CalculateReferencePoint(angle,AliHLTTransform::Row2X(padrow))) { - cerr<<"AliL3DataCompressor::FillData : Error in crossing point calc on slice "<Print(kFALSE); //exit(5); @@ -265,9 +265,9 @@ void AliL3DataCompressor::FillData(Int_t minHits,Bool_t expand) Float_t xyzCross[3] = {intrack->GetPointX(),intrack->GetPointY(),intrack->GetPointZ()}; Int_t sector,row; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); - AliL3Transform::Global2Raw(xyzCross,sector,row); - AliL3Transform::Global2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Global2Raw(xyzCross,sector,row); + AliHLTTransform::Global2Raw(xyz,sector,row); outtrack->SetPadHit(padrow,xyzCross[1]); outtrack->SetTimeHit(padrow,xyzCross[2]); @@ -277,34 +277,34 @@ void AliL3DataCompressor::FillData(Int_t minHits,Bool_t expand) if(fWriteClusterShape) { - Int_t patch = AliL3Transform::GetPatch(padrow); - Float_t sigmaY2 = points[pos].fSigmaY2 / pow(AliL3Transform::GetPadPitchWidth(patch),2); - Float_t sigmaZ2 = points[pos].fSigmaZ2 / pow(AliL3Transform::GetZWidth(),2); + Int_t patch = AliHLTTransform::GetPatch(padrow); + Float_t sigmaY2 = points[pos].fSigmaY2 / pow(AliHLTTransform::GetPadPitchWidth(patch),2); + Float_t sigmaZ2 = points[pos].fSigmaZ2 / pow(AliHLTTransform::GetZWidth(),2); outtrack->SetCluster(padrow,xyz[1],xyz[2],points[pos].fCharge,sigmaY2,sigmaZ2,3); } else outtrack->SetCluster(padrow,xyz[1],xyz[2],points[pos].fCharge,0,0,3); - //IMPORTANT: Set the slice in which cluster is, you need it in AliL3ModelTrack::FillTrack! + //IMPORTANT: Set the slice in which cluster is, you need it in AliHLTModelTrack::FillTrack! outtrack->GetClusterModel(padrow)->fSlice=slice; points[pos].fCharge = 0;//Mark this cluster as used. fNusedClusters++; } if(!expand) - outtrack->SetNClusters(AliL3Transform::GetNRows(-1)); + outtrack->SetNClusters(AliHLTTransform::GetNRows(-1)); } if(expand) ExpandTrackData(comptracks); cout<<"Writing "<GetNTracks()<<" tracks to file"<WriteFile(comptracks); delete comp; delete comptracks; } -void AliL3DataCompressor::ExpandTrackData(AliL3TrackArray *tracks) +void AliHLTDataCompressor::ExpandTrackData(AliHLTTrackArray *tracks) { //Loop over tracks and try to assign unused clusters. //Only clusters which are closer than the max. residual are taken. @@ -312,15 +312,15 @@ void AliL3DataCompressor::ExpandTrackData(AliL3TrackArray *tracks) cout<<"Expanding "<GetNTracks()<<" tracks"<GetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)tracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)tracks->GetCheckedTrack(i); if(!track) continue; - if(track->GetNHits() == AliL3Transform::GetNRows()) continue; + if(track->GetNHits() == AliHLTTransform::GetNRows()) continue; Int_t nhits = track->GetNHits(); //cout<<"Expanding track with "<=0; padrow--) + for(Int_t padrow=AliHLTTransform::GetNRows()-1; padrow>=0; padrow--) { if(track->IsPresent(padrow)) { @@ -348,31 +348,31 @@ void AliL3DataCompressor::ExpandTrackData(AliL3TrackArray *tracks) continue; //UInt_t size; - AliL3SpacePointData *points = fClusters[lastSlice][0];//->GetDataPointer(size); + AliHLTSpacePointData *points = fClusters[lastSlice][0];//->GetDataPointer(size); Float_t angle = 0; - AliL3Transform::Local2GlobalAngle(&angle,lastSlice); - if(!track->CalculateReferencePoint(angle,AliL3Transform::Row2X(padrow))) + AliHLTTransform::Local2GlobalAngle(&angle,lastSlice); + if(!track->CalculateReferencePoint(angle,AliHLTTransform::Row2X(padrow))) continue; Float_t xyzCross[3] = {track->GetPointX(),track->GetPointY(),track->GetPointZ()}; - AliL3Transform::Global2LocHLT(xyzCross,lastSlice); + AliHLTTransform::Global2LocHLT(xyzCross,lastSlice); Float_t mindist = 123456789; - AliL3SpacePointData *closest=0; + AliHLTSpacePointData *closest=0; for(UInt_t j=0; j padrow) break; Float_t xyz[3] = {points[j].fX,points[j].fY,points[j].fZ}; - AliL3Transform::Global2LocHLT(xyz,lastSlice); + AliHLTTransform::Global2LocHLT(xyz,lastSlice); //Check for overflow: - Int_t temp = (Int_t)rint((xyzCross[1]-xyz[1])/AliL3DataCompressorHelper::GetXYResidualStep(padrow)); - if( abs(temp) > 1<<(AliL3DataCompressorHelper::GetNPadBits()-1)) + Int_t temp = (Int_t)rint((xyzCross[1]-xyz[1])/AliHLTDataCompressorHelper::GetXYResidualStep(padrow)); + if( abs(temp) > 1<<(AliHLTDataCompressorHelper::GetNPadBits()-1)) continue; - temp = (Int_t)rint((xyzCross[2]-xyz[2])/AliL3DataCompressorHelper::GetZResidualStep(padrow)); - if( abs(temp) > 1<<(AliL3DataCompressorHelper::GetNTimeBits()-1)) + temp = (Int_t)rint((xyzCross[2]-xyz[2])/AliHLTDataCompressorHelper::GetZResidualStep(padrow)); + if( abs(temp) > 1<<(AliHLTDataCompressorHelper::GetNTimeBits()-1)) continue; Float_t dist = sqrt( pow(xyzCross[1]-xyz[1],2) + pow(xyzCross[2]-xyz[2],2) ); @@ -386,9 +386,9 @@ void AliL3DataCompressor::ExpandTrackData(AliL3TrackArray *tracks) { Int_t sector,row; Float_t xyz[3] = {closest->fX,closest->fY,closest->fZ}; - AliL3Transform::Slice2Sector(lastSlice,padrow,sector,row); - AliL3Transform::Local2Raw(xyzCross,sector,row); - AliL3Transform::Global2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(lastSlice,padrow,sector,row); + AliHLTTransform::Local2Raw(xyzCross,sector,row); + AliHLTTransform::Global2Raw(xyz,sector,row); track->SetPadHit(padrow,xyzCross[1]); track->SetTimeHit(padrow,xyzCross[2]); @@ -398,21 +398,21 @@ void AliL3DataCompressor::ExpandTrackData(AliL3TrackArray *tracks) Float_t angle = track->GetCrossingAngle(padrow,lastSlice); track->SetCrossingAngleLUT(padrow,angle); track->CalculateClusterWidths(padrow,kTRUE); - Int_t patch = AliL3Transform::GetPatch(padrow); - Float_t sigmaY2 = closest->fSigmaY2 / pow(AliL3Transform::GetPadPitchWidth(patch),2); - Float_t sigmaZ2 = closest->fSigmaZ2 / pow(AliL3Transform::GetZWidth(),2); + Int_t patch = AliHLTTransform::GetPatch(padrow); + Float_t sigmaY2 = closest->fSigmaY2 / pow(AliHLTTransform::GetPadPitchWidth(patch),2); + Float_t sigmaZ2 = closest->fSigmaZ2 / pow(AliHLTTransform::GetZWidth(),2); track->SetCluster(padrow,xyz[1],xyz[2],closest->fCharge,sigmaY2,sigmaZ2,3); } else track->SetCluster(padrow,xyz[1],xyz[2],closest->fCharge,0,0,3); nhits++; - //IMPORTANT: Set the slice in which cluster is, you need it in AliL3ModelTrack::FillTrack! + //IMPORTANT: Set the slice in which cluster is, you need it in AliHLTModelTrack::FillTrack! track->GetClusterModel(padrow)->fSlice=lastSlice; closest->fCharge = 0;//Mark this cluster as used. } } - track->SetNClusters(AliL3Transform::GetNRows()); + track->SetNClusters(AliHLTTransform::GetNRows()); //cout<<"Track was assigned "<ReadFile('m'); - AliL3TrackArray *tracks = comp->GetTracks(); + AliHLTTrackArray *tracks = comp->GetTracks(); if(tracks->GetNTracks()==0) { delete comp; @@ -438,16 +438,16 @@ void AliL3DataCompressor::DetermineMinBits() Int_t dpad,dtime,charge,dsigmaY,dsigmaZ,npadbits,ntimebits,nchargebits,nshapebits=0; for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)tracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)tracks->GetCheckedTrack(i); if(!track) continue; - for(Int_t padrow=0; padrowIsPresent(padrow)) continue; - dpad = AliL3DataCompressorHelper::Abs(AliL3DataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDPad)); - dtime = AliL3DataCompressorHelper::Abs(AliL3DataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDTime)); - charge = AliL3DataCompressorHelper::Abs((Int_t)track->GetClusterModel(padrow)->fDCharge); - dsigmaY = AliL3DataCompressorHelper::Abs(AliL3DataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDSigmaY)); - dsigmaZ = AliL3DataCompressorHelper::Abs(AliL3DataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDSigmaZ)); + dpad = AliHLTDataCompressorHelper::Abs(AliHLTDataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDPad)); + dtime = AliHLTDataCompressorHelper::Abs(AliHLTDataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDTime)); + charge = AliHLTDataCompressorHelper::Abs((Int_t)track->GetClusterModel(padrow)->fDCharge); + dsigmaY = AliHLTDataCompressorHelper::Abs(AliHLTDataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDSigmaY)); + dsigmaZ = AliHLTDataCompressorHelper::Abs(AliHLTDataCompressorHelper::Nint(track->GetClusterModel(padrow)->fDSigmaZ)); if(dpad > maxpad) maxpad=dpad; if(dtime > maxtime) @@ -467,12 +467,12 @@ void AliL3DataCompressor::DetermineMinBits() if(fWriteClusterShape) nshapebits = (Int_t)ceil(log(Double_t(maxsigma))/log(2.)) + 1; - nchargebits = AliL3DataCompressorHelper::GetNChargeBits(); + nchargebits = AliHLTDataCompressorHelper::GetNChargeBits(); cout<<"Updating bitnumbers; pad "<CompressRemaining(fClusters,fNcl); delete comp; return; @@ -499,7 +499,7 @@ void AliL3DataCompressor::WriteRemaining(Bool_t select) else { cout<<"Writing remaining clusters"<fNClusters) { - cerr<<"AliL3DataCompressor::WriteRemaining : Mismatching clustercounter "<fNClusters<fPadRow = padrow; @@ -566,18 +566,18 @@ void AliL3DataCompressor::WriteRemaining(Bool_t select) } if(localcounter >= npoints[padrow]) { - cerr<<"AliL3DataCompressor::WriteRemaining : Cluster counter out of range: " + cerr<<"AliHLTDataCompressor::WriteRemaining : Cluster counter out of range: " <fClusters[localcounter].fPad = xyz[1]; tempPt->fClusters[localcounter].fTime = xyz[2]; tempPt->fClusters[localcounter].fCharge = points[j].fCharge; @@ -598,7 +598,7 @@ void AliL3DataCompressor::WriteRemaining(Bool_t select) } } -void AliL3DataCompressor::SelectRemainingClusters() +void AliHLTDataCompressor::SelectRemainingClusters() { //Select which remaining clusters to write in addition to the compressed data. //In particular one can here make sure that "important" clusters are not missed: @@ -613,20 +613,20 @@ void AliL3DataCompressor::SelectRemainingClusters() //intact..... cout<<"Cleaning up clusters"<= 2.55 || timew >= 2.55)//Because we use 1 byte to store { points[i].fCharge = 0; @@ -635,15 +635,15 @@ void AliL3DataCompressor::SelectRemainingClusters() Float_t xyz[3] = {points[i].fX,points[i].fY,points[i].fZ}; Int_t sector,row; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); - AliL3Transform::Global2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Global2Raw(xyz,sector,row); if(padrow >= nrows-1-gap-shift) continue;//save all the clusters in this region //if(padrow >= nrows-1-shift) continue; //Save the clusters at the borders: - //if(xyz[1] < 3 || xyz[1] >= AliL3Transform::GetNPads(padrow)-4) + //if(xyz[1] < 3 || xyz[1] >= AliHLTTransform::GetNPads(padrow)-4) // continue; //Save clusters on padrows used for offline seeding: @@ -658,28 +658,28 @@ void AliL3DataCompressor::SelectRemainingClusters() } -void AliL3DataCompressor::CompressAndExpand(Bool_t arithmeticCoding) +void AliHLTDataCompressor::CompressAndExpand(Bool_t arithmeticCoding) { //Read tracks/clusters from file, compress data and uncompress it. Write compression rates to file. if(fNoCompression) return; cout<<"Compressing and expanding data"<CompressFile(); comp->ExpandFile(); comp->PrintCompRatio(fCompRatioFile); delete comp; ofstream &out = *fCompRatioFile; - out<cd(); - AliTPCParam *param = (AliTPCParam*)rootfile->Get(AliL3Transform::GetParamName()); + AliTPCParam *param = (AliTPCParam*)rootfile->Get(AliHLTTransform::GetParamName()); AliTPCDigitsArray *darray = new AliTPCDigitsArray(); darray->Setup(param); darray->SetClass("AliSimDigits"); - sprintf(filename,"TreeD_%s_%d",AliL3Transform::GetParamName(),fEvent); + sprintf(filename,"TreeD_%s_%d",AliHLTTransform::GetParamName(),fEvent); Bool_t ok = darray->ConnectTree(filename); if(!ok) { - cerr<<"AliL3DataCompressor::RestoreData : Problems connecting tree"<CreateRow(sec,row); AliSimDigits *digits = (AliSimDigits*)darray->LoadRow(sec,row); digits->ExpandBuffer(); digits->ExpandTrackBuffer(); - Int_t patch = AliL3Transform::GetPatch(padrow); + Int_t patch = AliHLTTransform::GetPatch(padrow); while(counter < ncl[slice] && clPt[counter]->fPadrow == padrow) { Float_t temp[3]; - AliL3Transform::Raw2Local(temp,sec,row,clPt[counter]->fPad,clPt[counter]->fTime); + AliHLTTransform::Raw2Local(temp,sec,row,clPt[counter]->fPad,clPt[counter]->fTime); AliTPCcluster *c = new AliTPCcluster(); c->SetY(temp[1]); c->SetZ(temp[2]); c->SetQ(clPt[counter]->fCharge); - c->SetSigmaY2(clPt[counter]->fSigmaY2*pow(AliL3Transform::GetPadPitchWidth(patch),2)); - c->SetSigmaZ2(clPt[counter]->fSigmaZ2*pow(AliL3Transform::GetZWidth(),2)); - Int_t pad = AliL3DataCompressorHelper::Nint(clPt[counter]->fPad); - Int_t time = AliL3DataCompressorHelper::Nint(clPt[counter]->fTime); + c->SetSigmaY2(clPt[counter]->fSigmaY2*pow(AliHLTTransform::GetPadPitchWidth(patch),2)); + c->SetSigmaZ2(clPt[counter]->fSigmaZ2*pow(AliHLTTransform::GetZWidth(),2)); + Int_t pad = AliHLTDataCompressorHelper::Nint(clPt[counter]->fPad); + Int_t time = AliHLTDataCompressorHelper::Nint(clPt[counter]->fTime); if(pad < 0) pad=0; - if(pad >= AliL3Transform::GetNPads(padrow)) - pad = AliL3Transform::GetNPads(padrow)-1; - if(time < 0 || time >= AliL3Transform::GetNTimeBins()) + if(pad >= AliHLTTransform::GetNPads(padrow)) + pad = AliHLTTransform::GetNPads(padrow)-1; + if(time < 0 || time >= AliHLTTransform::GetNTimeBins()) cerr<<"row "<GetLabel(0) < 0) { falseid++; - //AliL3Transform::Local2Global(temp,slice); + //AliHLTTransform::Local2Global(temp,slice); //cout<<"slice "<GetLabel(0)<ReadFile('u'); } - AliL3TrackArray *tracks = comp->GetTracks(); + AliHLTTrackArray *tracks = comp->GetTracks(); //Float_t totcounter=0,pcounter=0,tcounter=0; Int_t charge; Float_t pad,time,sigmaY2,sigmaZ2; for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)tracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)tracks->GetCheckedTrack(i); if(!track) continue; - for(Int_t padrow=0; padrow < AliL3Transform::GetNRows(-1); padrow++) + for(Int_t padrow=0; padrow < AliHLTTransform::GetNRows(-1); padrow++) { if(!track->IsPresent(padrow)) continue; track->GetPad(padrow,pad); @@ -867,16 +867,16 @@ void AliL3DataCompressor::ReadUncompressedData(TempCluster **clusters,Int_t *ncl track->GetSigmaZ2(padrow,sigmaZ2); Int_t slice = track->GetClusterModel(padrow)->fSlice; /* - if(pad < -1 || pad > AliL3Transform::GetNPads(padrow) || time < -1 || time > AliL3Transform::GetNTimeBins()) + if(pad < -1 || pad > AliHLTTransform::GetNPads(padrow) || time < -1 || time > AliHLTTransform::GetNTimeBins()) { - cerr<<"AliL3DataCompressor::ReadUncompressData : Wrong pad "<Print(); exit(5); } */ if(ncl[slice] >= kmaxpoints) { - cerr<<"AliL3DataCompressor::ReadUncompressedData : Too many clusters"<ExpandRemaining(clusters,ncl,kmaxpoints); delete comp; return; } else { - AliL3MemHandler mem; + AliHLTMemHandler mem; Char_t filename[1024]; for(Int_t slice=0; slice<=35; slice++) { @@ -914,45 +914,45 @@ void AliL3DataCompressor::ReadRemaining(TempCluster **clusters,Int_t *ncl,const sprintf(filename,"%s/comp/remains_%d_%d_%d.raw",fPath,fEvent,slice,-1); mem.SetBinaryInput(filename); - AliL3RemainingRow *tempPt = (AliL3RemainingRow*)mem.Allocate(); + AliHLTRemainingRow *tempPt = (AliHLTRemainingRow*)mem.Allocate(); Int_t nrows=0; FILE *infile = mem.GetFilePointer(); while(!feof(infile)) { Byte_t *dPt = (Byte_t*)tempPt; - if(fread(tempPt,sizeof(AliL3RemainingRow),1,infile)!=1) break; + if(fread(tempPt,sizeof(AliHLTRemainingRow),1,infile)!=1) break; - dPt += sizeof(AliL3RemainingRow); + dPt += sizeof(AliHLTRemainingRow); - Int_t size = sizeof(AliL3RemainingCluster)*tempPt->fNClusters; + Int_t size = sizeof(AliHLTRemainingCluster)*tempPt->fNClusters; fread(dPt,size,1,infile); dPt += size; - tempPt = (AliL3RemainingRow*)dPt; + tempPt = (AliHLTRemainingRow*)dPt; nrows++; } mem.CloseBinaryInput(); UInt_t dummy; - tempPt = (AliL3RemainingRow*)mem.GetDataPointer(dummy); + tempPt = (AliHLTRemainingRow*)mem.GetDataPointer(dummy); for(Int_t i=0; ifClusters; + AliHLTRemainingCluster *points = tempPt->fClusters; Int_t padrow = (Int_t)tempPt->fPadRow; //Int_t sector,row; - //AliL3Transform::Slice2Sector(slice,padrow,sector,row); + //AliHLTTransform::Slice2Sector(slice,padrow,sector,row); //cout<<"Loading slice "<fNClusters<<" clusters "<fNClusters; j++) { - //Float_t xyz[3] = {AliL3Transform::Row2X(padrow),points[j].fY,points[j].fZ}; - //AliL3Transform::Local2Raw(xyz,sector,row); + //Float_t xyz[3] = {AliHLTTransform::Row2X(padrow),points[j].fY,points[j].fZ}; + //AliHLTTransform::Local2Raw(xyz,sector,row); if(ncl[slice] >= kmaxpoints) { - cerr<<"AliL3DataCompressor::ReadRemaining : Too many clusters"<fNClusters*sizeof(AliL3RemainingCluster); + Int_t size = sizeof(AliHLTRemainingRow) + tempPt->fNClusters*sizeof(AliHLTRemainingCluster); dPt += size; - tempPt = (AliL3RemainingRow*)dPt; + tempPt = (AliHLTRemainingRow*)dPt; } mem.Free(); @@ -977,7 +977,7 @@ void AliL3DataCompressor::ReadRemaining(TempCluster **clusters,Int_t *ncl,const } } -void AliL3DataCompressor::QSort(TempCluster **a, Int_t first, Int_t last) +void AliHLTDataCompressor::QSort(TempCluster **a, Int_t first, Int_t last) { // Implementation of quick sort static TempCluster *tmp; @@ -1016,7 +1016,7 @@ void AliL3DataCompressor::QSort(TempCluster **a, Int_t first, Int_t last) } } -Int_t AliL3DataCompressor::Compare(TempCluster *a,TempCluster *b) +Int_t AliHLTDataCompressor::Compare(TempCluster *a,TempCluster *b) { // compares two clusters if(a->fPadrow < b->fPadrow) return -1; diff --git a/HLT/comp/AliL3DataCompressor.h b/HLT/comp/AliHLTDataCompressor.h similarity index 74% rename from HLT/comp/AliL3DataCompressor.h rename to HLT/comp/AliHLTDataCompressor.h index a67bcf3b117..7effe6cbdd7 100644 --- a/HLT/comp/AliL3DataCompressor.h +++ b/HLT/comp/AliHLTDataCompressor.h @@ -1,14 +1,14 @@ // @(#) $Id$ -#ifndef AliL3_DataCompressor -#define AliL3_DataCompressor +#ifndef AliHLT_DataCompressor +#define AliHLT_DataCompressor -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" -class AliL3SpacePointData; -class AliL3Benchmark; -class AliL3TrackArray; -class AliL3Track; +class AliHLTSpacePointData; +class AliHLTBenchmark; +class AliHLTTrackArray; +class AliHLTTrack; #ifdef use_root class TH2F; @@ -24,12 +24,12 @@ struct TempCluster { Int_t fPadrow; // Pad row }; -class AliL3DataCompressor { +class AliHLTDataCompressor { public: - AliL3DataCompressor(); - AliL3DataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape); - virtual ~AliL3DataCompressor(); + AliHLTDataCompressor(); + AliHLTDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape); + virtual ~AliHLTDataCompressor(); virtual void LoadData(Int_t event,Bool_t sp=kTRUE); virtual void FillData(Int_t minhits,Bool_t expand); @@ -56,9 +56,9 @@ class AliL3DataCompressor { Bool_t fNoCompression; //Just process the data through the chain, but do not compress. (input=output). Mostly for debugging... private: - AliL3Benchmark *fBenchmark; //! Benchmark - AliL3TrackArray *fInputTracks; //! Array of input tracks - AliL3SpacePointData *fClusters[36][6]; //! Array of pointers to clusters + AliHLTBenchmark *fBenchmark; //! Benchmark + AliHLTTrackArray *fInputTracks; //! Array of input tracks + AliHLTSpacePointData *fClusters[36][6]; //! Array of pointers to clusters ofstream *fCompRatioFile; //! Stream to write the ration between use and unused clusters #ifdef use_root TFile *fOutputFile; //! Output file @@ -68,7 +68,7 @@ class AliL3DataCompressor { UInt_t fNcl[36][6]; // Array containing numbers of clusters void SelectRemainingClusters(); - void ExpandTrackData(AliL3TrackArray *tracks); + void ExpandTrackData(AliHLTTrackArray *tracks); void ReadUncompressedData(TempCluster **clusters,Int_t *ncl,const Int_t maxpoints); void ReadRemaining(TempCluster **clusters,Int_t *ncl,const Int_t maxpoints); void QSort(TempCluster **a, Int_t first, Int_t last); @@ -76,8 +76,10 @@ class AliL3DataCompressor { void OpenOutputFile(); void CloseOutputFile(); - ClassDef(AliL3DataCompressor,1) + ClassDef(AliHLTDataCompressor,1) }; +typedef AliHLTDataCompressor AliL3DataCompressor; // for backward compatibility + #endif diff --git a/HLT/comp/AliHLTDataCompressorHelper.cxx b/HLT/comp/AliHLTDataCompressorHelper.cxx new file mode 100644 index 00000000000..8d80fe059c9 --- /dev/null +++ b/HLT/comp/AliHLTDataCompressorHelper.cxx @@ -0,0 +1,170 @@ +// @(#) $Id$ + +// Author: Anders Vestbo +//*-- Copyright © ALICE HLT Group + +#include "AliHLTStandardIncludes.h" + +#include "AliHLTRootTypes.h" +#include "AliHLTTransform.h" + +#include "AliHLTDataCompressorHelper.h" + +#if __GNUC__ >= 3 +using namespace std; +#endif + +//_____________________________________________________________ +// +// AliHLTDataCompression +// +// Interface class; binary <-> AliROOT handling of TPC data compression classes. +// + + +ClassImp(AliHLTDataCompressorHelper) + + +Int_t AliHLTDataCompressorHelper::fgNumTimeBits = 12; +Int_t AliHLTDataCompressorHelper::fgNumPadBits = 12; +Int_t AliHLTDataCompressorHelper::fgNumChargeBits = 14; +Int_t AliHLTDataCompressorHelper::fgNumShapeBits = 14; +Float_t AliHLTDataCompressorHelper::fgXYResidualStep1 = 0.03; +Float_t AliHLTDataCompressorHelper::fgXYResidualStep2 = 0.03; +Float_t AliHLTDataCompressorHelper::fgXYResidualStep3 = 0.03; +Float_t AliHLTDataCompressorHelper::fgZResidualStep1 = 0.05; +Float_t AliHLTDataCompressorHelper::fgZResidualStep2 = 0.05; +Float_t AliHLTDataCompressorHelper::fgZResidualStep3 = 0.05; +Float_t AliHLTDataCompressorHelper::fgXYWidthStep = 0.005; +Float_t AliHLTDataCompressorHelper::fgZWidthStep = 0.005; +Int_t AliHLTDataCompressorHelper::fgClusterCharge = 100; +Int_t AliHLTDataCompressorHelper::fgNumPadBitsRemaining = 18; +Int_t AliHLTDataCompressorHelper::fgNumTimeBitsRemaining = 19; +Int_t AliHLTDataCompressorHelper::fgNumShapeBitsRemaining = 11; + +void AliHLTDataCompressorHelper::SetBitNumbers(Int_t pad,Int_t time,Int_t charge,Int_t shape) +{ + // sets the numbers of bits + fgNumPadBits = pad; + fgNumTimeBits = time; + fgNumChargeBits = charge; + fgNumShapeBits = shape; +} + +void AliHLTDataCompressorHelper::SetTransverseResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width) +{ + // sets the transverse resolution + fgXYResidualStep1 = res1; + fgXYResidualStep2 = res2; + fgXYResidualStep3 = res3; + fgXYWidthStep = width; +} + +void AliHLTDataCompressorHelper::SetLongitudinalResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width) +{ + // sets the longitudinal resolution + fgZResidualStep1 = res1; + fgZResidualStep2 = res2; + fgZResidualStep3 = res3; + fgZWidthStep = width; +} + +void AliHLTDataCompressorHelper::SetRemainingBitNumbers(Int_t pad,Int_t time,Int_t shape) +{ + // sets the numbers of remaining bits + fgNumPadBitsRemaining = pad; + fgNumTimeBitsRemaining = time; + fgNumShapeBitsRemaining = shape; +} + +Float_t AliHLTDataCompressorHelper::GetXYResidualStep(Int_t row) +{ + // gets the XY residual step + if(row < AliHLTTransform::GetNRowLow()) + return fgXYResidualStep1; + else if(row < AliHLTTransform::GetNRowLow() + AliHLTTransform::GetNRowUp1()) + return fgXYResidualStep2; + else if(row < AliHLTTransform::GetNRowLow() + AliHLTTransform::GetNRowUp1() + AliHLTTransform::GetNRowUp2()) + return fgXYResidualStep3; + else + { + cerr<<"AliHLTDataCompressorHelper::GetXYResidualStep : Wrong row number "<=21) + return 10000; + if(nbits >= 18) + return 1000; + if(nbits >= 14) + return 100; + if(nbits >= 11) + return 10; + if(nbits >= 8) + return 1; + else + { + cerr<<"AliHLTDataCompressorHelper::GetRemainingPadFactor : Too few bits for the pad direction: "<=23) + return 10000; + if(nbits >= 19) + return 1000; + if(nbits >= 16) + return 100; + if(nbits >= 13) + return 10; + if(nbits >= 9) + return 1; + else + { + cerr<<"AliHLTDataCompressorHelper::GetRemainingPadFactor : Too few bits for the pad direction: "<= 0) { + i = Int_t(x + 0.5); + if (x + 0.5 == Double_t(i) && i & 1) i--; + } else { + i = Int_t(x - 0.5); + if (x - 0.5 == Double_t(i) && i & 1) i++; + + } + return i; +} diff --git a/HLT/comp/AliL3DataCompressorHelper.h b/HLT/comp/AliHLTDataCompressorHelper.h similarity index 88% rename from HLT/comp/AliL3DataCompressorHelper.h rename to HLT/comp/AliHLTDataCompressorHelper.h index 58b5e5ffbc5..88085df664f 100644 --- a/HLT/comp/AliL3DataCompressorHelper.h +++ b/HLT/comp/AliHLTDataCompressorHelper.h @@ -1,14 +1,14 @@ // @(#) $Id$ -#ifndef AliL3_DataCompressorHelper -#define AliL3_DataCompressorHelper +#ifndef AliHLT_DataCompressorHelper +#define AliHLT_DataCompressorHelper -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" -class AliL3DataCompressorHelper { +class AliHLTDataCompressorHelper { public: - virtual ~AliL3DataCompressorHelper() {} + virtual ~AliHLTDataCompressorHelper() {} static void SetBitNumbers(Int_t pad,Int_t time,Int_t charge,Int_t shape); static void SetTransverseResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width=0.005); @@ -54,8 +54,10 @@ class AliL3DataCompressorHelper { static Int_t fgClusterCharge; // Cluster charge - ClassDef(AliL3DataCompressorHelper,1) + ClassDef(AliHLTDataCompressorHelper,1) }; +typedef AliHLTDataCompressorHelper AliL3DataCompressorHelper; // for backward compatibility + #endif diff --git a/HLT/comp/AliL3FitUtilities.c b/HLT/comp/AliHLTFitUtilities.c similarity index 99% rename from HLT/comp/AliL3FitUtilities.c rename to HLT/comp/AliHLTFitUtilities.c index 3639874c2ba..485359809c7 100644 --- a/HLT/comp/AliL3FitUtilities.c +++ b/HLT/comp/AliHLTFitUtilities.c @@ -4,7 +4,7 @@ #include #include #include -#include "AliL3FitUtilities.h" +#include "AliHLTFitUtilities.h" jmp_buf env; diff --git a/HLT/comp/AliL3FitUtilities.h b/HLT/comp/AliHLTFitUtilities.h similarity index 96% rename from HLT/comp/AliL3FitUtilities.h rename to HLT/comp/AliHLTFitUtilities.h index 9e711630942..6b22e367c47 100644 --- a/HLT/comp/AliL3FitUtilities.h +++ b/HLT/comp/AliHLTFitUtilities.h @@ -1,7 +1,7 @@ /*@(#) $Id$*/ -#ifndef AliL3FitUtilities -#define AliL3FitUtilities +#ifndef AliHLTFitUtilities +#define AliHLTFitUtilities /*This we do because this file is read both with c and c++ compiler, and extern "C" is needed only in case of c++. */ diff --git a/HLT/comp/AliHLTModelTrack.cxx b/HLT/comp/AliHLTModelTrack.cxx new file mode 100644 index 00000000000..7867c89ae4a --- /dev/null +++ b/HLT/comp/AliHLTModelTrack.cxx @@ -0,0 +1,683 @@ +// @(#) $Id$ + +// Author: Anders Vestbo +//*-- Copyright © ALICE HLT Group +//_____________________________________________________________ +// AliHLTModelTrack +// +// + + +#include "AliHLTStandardIncludes.h" + +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTVertex.h" +#include "AliHLTDataCompressorHelper.h" + +#include "AliHLTModelTrack.h" + +#if __GNUC__ >= 3 +using namespace std; +#endif + +ClassImp(AliHLTModelTrack) + +AliHLTModelTrack::AliHLTModelTrack() +{ + // default constructor + fNClusters = 0; + fClusters = 0; + fOverlap = 0; + fPad=0; + fTime=0; + fNoverlaps=0; + fClusterCharge=0; + fTrackModel=0; + fCrossingAngle=0; + fParSigmaY2=0; + fParSigmaZ2=0; + fArraysCreated=kFALSE; +} + + +AliHLTModelTrack::~AliHLTModelTrack() +{ + // destructor + DeleteArrays(); +} + +void AliHLTModelTrack::DeleteArrays() +{ + // deletes all arrays + if(fClusters) + delete [] fClusters; + if(fPad) + delete [] fPad; + if(fTime) + delete [] fTime; + if(fCrossingAngle) + delete [] fCrossingAngle; + if(fParSigmaY2) + delete [] fParSigmaY2; + if(fParSigmaZ2) + delete [] fParSigmaZ2; + if(fTrackModel) + delete fTrackModel; + if(fNoverlaps) + delete [] fNoverlaps; + if(fOverlap) + { + for(Int_t i=0; i AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::CalculcateClusterWidths : Wrond index "<fPresent |= 0x2; //set second bit to true, because a fit attempt has been made + + Int_t patch = AliHLTTransform::GetPatch(row); + if(!charge || npads == 1) + { + cl->fPresent &= ~0x1; //set first bit to false + } + else + { + cl->fPresent|=0x1;//set first bit to true + cl->fDPad = (fpad - GetPadHit(row))/(AliHLTDataCompressorHelper::GetXYResidualStep(row)/AliHLTTransform::GetPadPitchWidth(patch)); + cl->fDTime = (ftime - GetTimeHit(row))/(AliHLTDataCompressorHelper::GetZResidualStep(row)/AliHLTTransform::GetZWidth()); + cl->fDCharge = charge; + if(sigmaY2==0 && sigmaZ2==0) + { + cl->fDSigmaY=0;//if width is zero, shape is not supposed to be written + cl->fDSigmaZ=0; + } + else + { + //cl->fDSigmaY2 = (sigmaY2 - GetParSigmaY2(row))/(pow(AliHLTDataCompressorHelper::GetXYWidthStep(),2)/pow(AliHLTTransform::GetPadPitchWidth(patch),2)); + //cl->fDSigmaZ2 = (sigmaZ2 - GetParSigmaZ2(row))/(pow(AliHLTDataCompressorHelper::GetZWidthStep(),2)/pow(AliHLTTransform::GetZWidth(),2)); + cl->fDSigmaY = (sqrt(sigmaY2) - sqrt(GetParSigmaY2(row)))/(AliHLTDataCompressorHelper::GetXYWidthStep()/AliHLTTransform::GetPadPitchWidth(patch)); + cl->fDSigmaZ = (sqrt(sigmaZ2) - sqrt(GetParSigmaZ2(row)))/(AliHLTDataCompressorHelper::GetZWidthStep()/AliHLTTransform::GetZWidth()); + } + cl->fNPads = npads; + } +} + + +void AliHLTModelTrack::Set(AliHLTTrack *tpt) +{ + // Sets track and does initialization + AliHLTModelTrack *tr = (AliHLTModelTrack*)tpt; + SetRowRange(tr->GetFirstRow(),tr->GetLastRow()); + SetPhi0(tr->GetPhi0()); + SetKappa(tr->GetKappa()); + SetFirstPoint(tr->GetFirstPointX(),tr->GetFirstPointY(),tr->GetFirstPointZ()); + SetLastPoint(tr->GetLastPointX(),tr->GetLastPointY(),tr->GetLastPointZ()); + SetPt(tr->GetPt()); + SetPsi(tr->GetPsi()); + SetTgl(tr->GetTgl()); + SetCharge(tr->GetCharge()); + + if(fClusters) + { + cerr<<"AliHLTModelTrack::Set : Init has already been called for this object!"<fSlice,tr->fPatch); + Init(0,tr->fPatch); + memcpy(fClusters,tr->fClusters,AliHLTTransform::GetNRows(fPatch)*sizeof(AliHLTClusterModel)); + memcpy(fPad,tr->fPad,AliHLTTransform::GetNRows(fPatch)*sizeof(Float_t)); + memcpy(fTime,tr->fTime,AliHLTTransform::GetNRows(fPatch)*sizeof(Float_t)); + memcpy(fParSigmaY2,tr->fParSigmaY2,AliHLTTransform::GetNRows(fPatch)*sizeof(Float_t)); + memcpy(fParSigmaZ2,tr->fParSigmaZ2,AliHLTTransform::GetNRows(fPatch)*sizeof(Float_t)); + memcpy(fCrossingAngle,tr->fCrossingAngle,AliHLTTransform::GetNRows(fPatch)*sizeof(Float_t)); + memcpy(fTrackModel,tr->fTrackModel,sizeof(AliHLTTrackModel)); + +} + +Int_t AliHLTModelTrack::GetNPresentClusters() +{ + //Return the number of assigned clusters to the track. + //Differs from fNClusters, which should be equal to the + //number of padrows in the present patch. + + Int_t count=0; + + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) + if(IsPresent(i)) + count++; + + return count; +} + +void AliHLTModelTrack::FillModel() +{ + //Fill the track structure + + if(fNClusters != AliHLTTransform::GetNRows(fPatch)) + { + cout<<"AliHLTModelTrack::FillModel : fNClusters != nrows; beware, this could be caused by a bug!!!"<fKappa = GetKappa(); + fTrackModel->fPhi = atan2(impact[1],impact[0]); + fTrackModel->fD = sqrt(impact[0]*impact[0] + impact[1]*impact[1]); + fTrackModel->fZ0 = impact[2]; + fTrackModel->fTgl = GetTgl(); + + //We have to check on which of the vertex the track fit is lying + //This we need to encode the azimuthal angle coordinate of the center of curvature. + if(GetRadius() < sqrt(GetCenterX()*GetCenterX()+GetCenterY()*GetCenterY())) + fTrackModel->fD *=-1; + +} + +void AliHLTModelTrack::FillTrack() +{ + //Fill the track parameters from the structure. + + if(!fTrackModel) + { + cerr<<"AliHLTModelTrack::FillTrack() : No data!!"<fKappa); + Double_t impact[3],psi; + Float_t trackPhi0 = fTrackModel->fPhi; + if(fTrackModel->fD < 0) + trackPhi0 += AliHLTTransform::Pi(); + Int_t charge = -1*(Int_t)copysign(1.,GetKappa()); + impact[0] = fabs(fTrackModel->fD)*cos(fTrackModel->fPhi); + impact[1] = fabs(fTrackModel->fD)*sin(fTrackModel->fPhi); + impact[2] = fTrackModel->fZ0; + + psi = trackPhi0 - charge*0.5*AliHLTTransform::Pi(); + if(psi < 0) + psi += 2*AliHLTTransform::Pi(); + + SetCharge(charge); + SetFirstPoint(impact[0],impact[1],impact[2]); + SetPsi(psi); + SetTgl(fTrackModel->fTgl); + SetPt((AliHLTTransform::GetBFact()*AliHLTTransform::GetBField())/fabs(GetKappa())); + fNClusters = AliHLTTransform::GetNRows(fPatch); + CalculateHelix(); + + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) + { + AliHLTClusterModel *cl = GetClusterModel(i); + if(!cl) continue; + + if(cl->fSlice == -1) + { + SetPadHit(i,-1); + SetTimeHit(i,-1); + continue; + } + if(cl->fSlice < 0 || cl->fSlice > 35) + { + cerr<<"AliHLTModelTrack::FillTrack : Slice out of range "<fSlice<<" on row "<fSlice); + if(!CalculateReferencePoint(angle,AliHLTTransform::Row2X(i))) + { + if(IsPresent(i)) + { + cerr<<"AliHLTModelTrack::FillTrack : Track does not cross slice "<fSlice<<" row "<fSlice,i,sector,row); + AliHLTTransform::Global2Raw(hit,sector,row); + + SetPadHit(i,hit[1]); + SetTimeHit(i,hit[2]); + + Float_t crossingangle = GetCrossingAngle(i,cl->fSlice); + + SetCrossingAngleLUT(i,crossingangle); + CalculateClusterWidths(i,kTRUE); + + } +} + +void AliHLTModelTrack::SetPadHit(Int_t row,Float_t pad) +{ + // sets pad hit + Int_t index = row-AliHLTTransform::GetFirstRow(fPatch); + if(index < 0 || index > AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::SetPadHit() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::SetTimeHit() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::SetCrossingAngle() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::SetOverlap() : Wrong index: "<= fMaxOverlaps) return; + fOverlap[index][fNoverlaps[index]++] = id; +} + +Bool_t AliHLTModelTrack::IsPresent(Int_t row) +{ + AliHLTClusterModel *cl = GetClusterModel(row); + return (Bool_t)(cl->fPresent & 0x1); +} + +Bool_t AliHLTModelTrack::IsSet(Int_t row) +{ + // checks if row was set + AliHLTClusterModel *cl = GetClusterModel(row); + return (Bool_t)(cl->fPresent & 0x2); +} + +Int_t AliHLTModelTrack::GetNPads(Int_t row) +{ + // gets number of pads + AliHLTClusterModel *cl = GetClusterModel(row); + return cl->fNPads; +} + +Bool_t AliHLTModelTrack::GetPad(Int_t row,Float_t &pad) +{ + // gets pad + //(fpad - GetPadHit(row))/(AliHLTDataCompressorHelper::GetXYResidualStep(row)/AliHLTTransform::GetPadPitchWidth(patch)); + AliHLTClusterModel *cl = GetClusterModel(row); + Int_t patch = AliHLTTransform::GetPatch(row); + pad = cl->fDPad*(AliHLTDataCompressorHelper::GetXYResidualStep(row)/AliHLTTransform::GetPadPitchWidth(patch)) + GetPadHit(row); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetTime(Int_t row,Float_t &time) +{ + // gets time + AliHLTClusterModel *cl = GetClusterModel(row); + time = cl->fDTime*(AliHLTDataCompressorHelper::GetZResidualStep(row)/AliHLTTransform::GetZWidth()) + GetTimeHit(row); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetClusterCharge(Int_t row,Int_t &charge) +{ + // gets cluster's charge + AliHLTClusterModel *cl = GetClusterModel(row); + charge = (Int_t)cl->fDCharge;// + AliHLTDataCompressorHelperHelper::GetClusterCharge(); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetSigmaY2(Int_t row,Float_t &sigma2) +{ + // gets SigmaY2 + //cl->fDSigmaY = (sqrt(sigmaY2) - sqrt(GetParSigmaY2(row)))/(AliHLTDataCompressorHelper::GetXYWidthStep()/AliHLTTransform::GetPadPitchWidth(patch)); + AliHLTClusterModel *cl = GetClusterModel(row); + Int_t patch = AliHLTTransform::GetPatch(row); + Float_t sigma = cl->fDSigmaY*(AliHLTDataCompressorHelper::GetXYWidthStep()/AliHLTTransform::GetPadPitchWidth(patch)) + sqrt(GetParSigmaY2(row)); + sigma2 = sigma*sigma; + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetSigmaZ2(Int_t row,Float_t &sigma2) +{ + // gets SigmaZ2 + //cl->fDSigmaZ = (sqrt(sigmaZ2) - sqrt(GetParSigmaZ2(row)))/(AliHLTDataCompressorHelper::GetZWidthStep()/AliHLTTransform::GetZWidth()); + AliHLTClusterModel *cl = GetClusterModel(row); + Float_t sigma = cl->fDSigmaZ*(AliHLTDataCompressorHelper::GetZWidthStep()/AliHLTTransform::GetZWidth()) + sqrt(GetParSigmaZ2(row)); + sigma2 = sigma*sigma; + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetPadResidual(Int_t row,Float_t &res) +{ + // gets pad residual + AliHLTClusterModel *cl = GetClusterModel(row); + Int_t patch = AliHLTTransform::GetPatch(row); + res = cl->fDPad*(AliHLTDataCompressorHelper::GetXYResidualStep(row)/AliHLTTransform::GetPadPitchWidth(patch)); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetTimeResidual(Int_t row,Float_t &res) +{ + // gets time residual + AliHLTClusterModel *cl = GetClusterModel(row); + res = cl->fDTime*(AliHLTDataCompressorHelper::GetZResidualStep(row)/AliHLTTransform::GetZWidth()); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetSigmaYResidual(Int_t row,Float_t &res) +{ + // gets SigmaY residual (?) + AliHLTClusterModel *cl = GetClusterModel(row); + Int_t patch = AliHLTTransform::GetPatch(row); + res = cl->fDSigmaY*(AliHLTDataCompressorHelper::GetXYWidthStep()/AliHLTTransform::GetPadPitchWidth(patch)); + return IsPresent(row); +} + +Bool_t AliHLTModelTrack::GetSigmaZResidual(Int_t row,Float_t &res) +{ + // gets SigmaZ resigual (?) + AliHLTClusterModel *cl = GetClusterModel(row); + res = cl->fDSigmaZ*(AliHLTDataCompressorHelper::GetZWidthStep()/AliHLTTransform::GetZWidth()); + return IsPresent(row); +} + +Int_t AliHLTModelTrack::GetSlice(Int_t row) +{ + // Gets slice + AliHLTClusterModel *cl = GetClusterModel(row); + return cl->fSlice; +} + +Float_t AliHLTModelTrack::GetPadHit(Int_t row) +{ + // Gets pad hit + Int_t index = row-AliHLTTransform::GetFirstRow(fPatch); + if(index < 0 || index > AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetPadHit() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetTimeHit() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetCrossingAngleLUT() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetParSigmaY2() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetParSigmaZ2() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetOverlap() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetOverlap() : Wrong index: "< AliHLTTransform::GetNRows(fPatch)) + { + cerr<<"AliHLTModelTrack::GetClusterModel() : Wrong index: "<fSlice<<" Padcrossing "<fSlice,i,GetPadHit(i),GetTimeHit(i)); + //cout<fSlice<<" x "<fSlice; + else if(cl->fSlice != origslice) + cout<<"Change in slice "<fSlice<<" "<fSlice<<" Dpad "<fDPad<<" Dtime "<fDTime<<" Dcharge "<fDCharge; + cout<<" sigmaY2 "<fTrackID[0] = trackID[0]; + cl->fTrackID[1] = trackID[1]; + cl->fTrackID[2] = trackID[2]; +#else + void AliHLTModelTrack::SetClusterLabel(Int_t /*row*/,Int_t */*trackID*/) +{ + // Does nothing if do_mc undefined + return; +#endif +} + +#ifdef do_mc +void AliHLTModelTrack::GetClusterLabel(Int_t row,Int_t *trackID) +{ + // gets cluster label + AliHLTClusterModel *cl = GetClusterModel(row); + trackID[0] = cl->fTrackID[0]; + trackID[1] = cl->fTrackID[1]; + trackID[2] = cl->fTrackID[2]; +#else + void AliHLTModelTrack::GetClusterLabel(Int_t /*row*/,Int_t */*trackID*/) +{ + // Does nothing if do_mc undefined + return; +#endif +} + diff --git a/HLT/comp/AliL3ModelTrack.h b/HLT/comp/AliHLTModelTrack.h similarity index 78% rename from HLT/comp/AliL3ModelTrack.h rename to HLT/comp/AliHLTModelTrack.h index 0fde3f195b1..fbba1ec9c60 100644 --- a/HLT/comp/AliL3ModelTrack.h +++ b/HLT/comp/AliHLTModelTrack.h @@ -1,16 +1,16 @@ // @(#) $Id$ -#ifndef AliL3Model_Track -#define AliL3Model_Track +#ifndef AliHLTModel_Track +#define AliHLTModel_Track -#include "AliL3Track.h" -#include "AliL3Models.h" +#include "AliHLTTrack.h" +#include "AliHLTModels.h" -class AliL3ModelTrack : public AliL3Track { +class AliHLTModelTrack : public AliHLTTrack { public: - AliL3ModelTrack(); - virtual ~AliL3ModelTrack(); + AliHLTModelTrack(); + virtual ~AliHLTModelTrack(); void Init(Int_t slice,Int_t patch); void CalculateClusterWidths(Int_t row,Bool_t parametrize=kFALSE); @@ -18,7 +18,7 @@ class AliL3ModelTrack : public AliL3Track { void FillModel(); void FillTrack(); void Print(Bool_t everything=kTRUE); - void Set(AliL3Track *tpt); + void Set(AliHLTTrack *tpt); void SetPadHit(Int_t row,Float_t f); void SetTimeHit(Int_t row,Float_t f); @@ -31,9 +31,9 @@ class AliL3ModelTrack : public AliL3Track { Bool_t IsPresent(Int_t row); Bool_t IsSet(Int_t row); - AliL3ClusterModel *GetClusters() {return fClusters;} - AliL3TrackModel *GetModel() {return fTrackModel;} - AliL3ClusterModel *GetClusterModel(Int_t row); + AliHLTClusterModel *GetClusters() {return fClusters;} + AliHLTTrackModel *GetModel() {return fTrackModel;} + AliHLTClusterModel *GetClusterModel(Int_t row); Int_t *GetOverlaps(Int_t row); Int_t GetNOverlaps(Int_t row); Int_t GetNPads(Int_t row); @@ -58,8 +58,8 @@ class AliL3ModelTrack : public AliL3Track { private: Short_t fClusterCharge; //Average cluster charge - AliL3ClusterModel *fClusters; //! Clusters - AliL3TrackModel *fTrackModel; //! Track model + AliHLTClusterModel *fClusters; //! Clusters + AliHLTTrackModel *fTrackModel; //! Track model Short_t fNClusters; // Number of clusters Int_t fMaxOverlaps; // Max overlaps (?) Int_t *fNoverlaps; //! Number of overlaps @@ -76,8 +76,10 @@ class AliL3ModelTrack : public AliL3Track { void DeleteArrays(); - ClassDef(AliL3ModelTrack,1) + ClassDef(AliHLTModelTrack,1) }; +typedef AliHLTModelTrack AliL3ModelTrack; // for backward compatibility + #endif diff --git a/HLT/comp/AliL3Modeller.cxx b/HLT/comp/AliHLTModeller.cxx similarity index 68% rename from HLT/comp/AliL3Modeller.cxx rename to HLT/comp/AliHLTModeller.cxx index fd6f0a0a485..d63bc02f0be 100644 --- a/HLT/comp/AliL3Modeller.cxx +++ b/HLT/comp/AliHLTModeller.cxx @@ -3,7 +3,7 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group //_____________________________________________________________ -// AliL3Modeller +// AliHLTModeller // // Class for modeling TPC data. // @@ -13,28 +13,28 @@ // and no deconvolution is done. -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Modeller.h" -#include "AliL3MemHandler.h" -#include "AliL3TrackArray.h" -#include "AliL3ModelTrack.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "AliL3SpacePointData.h" +#include "AliHLTLogging.h" +#include "AliHLTModeller.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTrackArray.h" +#include "AliHLTModelTrack.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" +#include "AliHLTSpacePointData.h" #ifdef use_aliroot -#include "AliL3FileHandler.h" +#include "AliHLTFileHandler.h" #endif #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3Modeller) +ClassImp(AliHLTModeller) -AliL3Modeller::AliL3Modeller() +AliHLTModeller::AliHLTModeller() { // default constructor fMemHandler=0; @@ -49,7 +49,7 @@ AliL3Modeller::AliL3Modeller() } -AliL3Modeller::~AliL3Modeller() +AliHLTModeller::~AliHLTModeller() { // destructor if(fMemHandler) @@ -60,7 +60,7 @@ AliL3Modeller::~AliL3Modeller() delete [] fRow; } -void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path,Bool_t houghtracks,Bool_t binary) +void AliHLTModeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path,Bool_t houghtracks,Bool_t binary) { // Initialization fSlice = slice; @@ -69,10 +69,10 @@ void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path, sprintf(fPath,"%s",path); - fTracks = new AliL3TrackArray("AliL3ModelTrack"); + fTracks = new AliHLTTrackArray("AliHLTModelTrack"); Char_t fname[100]; - AliL3MemHandler *file = new AliL3MemHandler(); + AliHLTMemHandler *file = new AliHLTMemHandler(); if(!houghtracks) sprintf(fname,"%s/tracks_tr_%d_0.raw",trackdata,fSlice); //output tracks from the tracker (no merging) else @@ -80,7 +80,7 @@ void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path, //sprintf(fname,"%s/tracks_ho_%d_%d.raw",trackdata,fSlice,fPatch); if(!file->SetBinaryInput(fname)) { - cerr<<"AliL3Modeller::Init : Error opening trackfile: "<Binary2TrackArray(fTracks); @@ -92,7 +92,7 @@ void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path, for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track) continue; track->Init(fSlice,fPatch); @@ -103,16 +103,16 @@ void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path, track->CalculateHelix(); } - Int_t ntimes = AliL3Transform::GetNTimeBins()+1; - Int_t npads = AliL3Transform::GetNPads(AliL3Transform::GetLastRow(fPatch))+1;//Max num of pads. + Int_t ntimes = AliHLTTransform::GetNTimeBins()+1; + Int_t npads = AliHLTTransform::GetNPads(AliHLTTransform::GetLastRow(fPatch))+1;//Max num of pads. Int_t bounds = ntimes*npads; fRow = new Digit[bounds]; UInt_t ndigits=0; - AliL3DigitRowData *digits=0; + AliHLTDigitRowData *digits=0; #ifdef use_aliroot - fMemHandler = new AliL3FileHandler(); + fMemHandler = new AliHLTFileHandler(); fMemHandler->Init(slice,patch); if(binary == kFALSE) { @@ -125,17 +125,17 @@ void AliL3Modeller::Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path, sprintf(fname,"%sdigits_%d_%d.raw",fPath,fSlice,fPatch); if(!fMemHandler->SetBinaryInput(fname)) { - cerr<<"AliL3Modeller::Init : Error opening file "<CompBinary2Memory(ndigits); + digits=(AliHLTDigitRowData*)fMemHandler->CompBinary2Memory(ndigits); } #else - fMemHandler = new AliL3MemHandler(); + fMemHandler = new AliHLTMemHandler(); fMemHandler->Init(slice,patch); if(binary == kFALSE) { - cerr<<"AliL3Modeller::Init : Compile with AliROOT if you want rootfile as input"<SetBinaryInput(fname)) { - cerr<<"AliL3Modeller::Init : Error opening file "<CompBinary2Memory(ndigits); + digits=(AliHLTDigitRowData*)fMemHandler->CompBinary2Memory(ndigits); #endif SetInputData(digits); } -void AliL3Modeller::FindClusters() +void AliHLTModeller::FindClusters() { // Finds clusters if(fDebug) - cout<<"AliL3Modeller::FindClusters : Processing slice "<fRow) { - cerr<<"AliL3Modeller::FindClusters : Mismatching rownumbering "<fRow<fRow<fDigitData; + memset((void*)fRow,0,(AliHLTTransform::GetNTimeBins()+1)*(AliHLTTransform::GetNPads(i)+1)*sizeof(Digit)); + digPt = (AliHLTDigitData*)rowPt->fDigitData; //cout<<"Loading row "<fNDigit<<" digits"<fNDigit; j++) { pad = digPt[j].fPad; time = digPt[j].fTime; charge = digPt[j].fCharge; - fRow[(AliL3Transform::GetNTimeBins()+1)*pad + time].fCharge = charge; - fRow[(AliL3Transform::GetNTimeBins()+1)*pad + time].fUsed = kFALSE; + fRow[(AliHLTTransform::GetNTimeBins()+1)*pad + time].fCharge = charge; + fRow[(AliHLTTransform::GetNTimeBins()+1)*pad + time].fUsed = kFALSE; //cout<<"Row "<GetNTracks(); k++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(k); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(k); if(!track) continue; if(track->GetPadHit(i)<0 || track->GetTimeHit(i)<0 || track->GetNOverlaps(i)>0)//track->GetOverlap(i)>=0) @@ -232,9 +232,9 @@ void AliL3Modeller::FindClusters() Int_t ntimes=0; for(time=region[pad].fMintime; time<=region[pad].fMaxtime; time++) { - charge = fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fCharge; + charge = fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fCharge; if(!charge) continue; - if(fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fUsed == kTRUE) + if(fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fUsed == kTRUE) continue; ntimes++; @@ -244,7 +244,7 @@ void AliL3Modeller::FindClusters() cluster.fCharge += charge; cluster.fSigmaY2 += pad*pad*charge; cluster.fSigmaZ2 += time*time*charge; - fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fUsed = kTRUE; + fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fUsed = kTRUE; } if(ntimes) npads++; @@ -260,16 +260,16 @@ void AliL3Modeller::FindClusters() //Debug: for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track) continue; - if(track->GetNClusters() != AliL3Transform::GetNRows(fPatch)) - cerr<GetNClusters()<<" nrows "<GetNClusters() != AliHLTTransform::GetNRows(fPatch)) + cerr<GetNClusters()<<" nrows "<= AliL3Transform::GetNPads(row)) + else if(pad >= AliHLTTransform::GetNPads(row)) { - padmax = AliL3Transform::GetNPads(row)-1; + padmax = AliHLTTransform::GetNPads(row)-1; break; } @@ -318,12 +318,12 @@ void AliL3Modeller::LocateCluster(AliL3ModelTrack *track,ClusterRegion *region,I time = hittime+1; tm = kFALSE; } - else if(time >= AliL3Transform::GetNTimeBins()) + else if(time >= AliHLTTransform::GetNTimeBins()) { - //timemax = AliL3Transform::GetNTimeBins()-1; + //timemax = AliHLTTransform::GetNTimeBins()-1; break; } - charge = fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fCharge; + charge = fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fCharge; //if(row==0) //cout<<"charge "<0) @@ -424,7 +424,7 @@ void AliL3Modeller::LocateCluster(AliL3ModelTrack *track,ClusterRegion *region,I } -void AliL3Modeller::FillCluster(AliL3ModelTrack *track,Cluster *cluster,Int_t row,Int_t npads) +void AliHLTModeller::FillCluster(AliHLTModelTrack *track,Cluster *cluster,Int_t row,Int_t npads) { // Fill clusters if(cluster->fCharge==0) @@ -447,16 +447,16 @@ void AliL3Modeller::FillCluster(AliL3ModelTrack *track,Cluster *cluster,Int_t ro -void AliL3Modeller::FillZeros(AliL3DigitRowData *rowPt,Bool_t reversesign) +void AliHLTModeller::FillZeros(AliHLTDigitRowData *rowPt,Bool_t reversesign) { //Fill zero where data has been used. - AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData; + AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { Int_t pad = digPt[j].fPad; Int_t time = digPt[j].fTime; - if(fRow[(AliL3Transform::GetNTimeBins()+1)*pad+time].fUsed==kTRUE) + if(fRow[(AliHLTTransform::GetNTimeBins()+1)*pad+time].fUsed==kTRUE) { if(reversesign) { @@ -469,46 +469,46 @@ void AliL3Modeller::FillZeros(AliL3DigitRowData *rowPt,Bool_t reversesign) } } -void AliL3Modeller::WriteRemaining() +void AliHLTModeller::WriteRemaining() { //Write remaining (nonzero) digits to file. - AliL3DigitRowData *rowPt; - rowPt = (AliL3DigitRowData*)fRowData; + AliHLTDigitRowData *rowPt; + rowPt = (AliHLTDigitRowData*)fRowData; Int_t digitcount=0; - Int_t *ndigits=new Int_t[(AliL3Transform::GetNRows(fPatch))]; - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) + Int_t *ndigits=new Int_t[(AliHLTTransform::GetNRows(fPatch))]; + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) { - AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData; - ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]=0; + AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData; + ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))]=0; for(UInt_t j=0; jfNDigit; j++) { if(digPt[j].fCharge==0) continue; digitcount++; - ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]++; + ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))]++; } - //cout<<"Difference "<<(int)ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]<<" "<<(int)rowPt->fNDigit<fNDigit<UpdateRowPointer(rowPt); } - Int_t size = digitcount*sizeof(AliL3DigitData) + AliL3Transform::GetNRows(fPatch)*sizeof(AliL3DigitRowData); + Int_t size = digitcount*sizeof(AliHLTDigitData) + AliHLTTransform::GetNRows(fPatch)*sizeof(AliHLTDigitRowData); Byte_t *data = new Byte_t[size]; memset(data,0,size); - AliL3DigitRowData *tempPt = (AliL3DigitRowData*)data; - rowPt = (AliL3DigitRowData*)fRowData; + AliHLTDigitRowData *tempPt = (AliHLTDigitRowData*)data; + rowPt = (AliHLTDigitRowData*)fRowData; - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) { Int_t localcount=0; tempPt->fRow = i; - tempPt->fNDigit = ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]; - AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData; + tempPt->fNDigit = ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))]; + AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { if(digPt[j].fCharge==0) continue; - if(localcount >= ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]) + if(localcount >= ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))]) { - cerr<<"AliL3Modeller::WriteRemaining : Digitarray out of range!!"<fDigitData[localcount].fCharge = digPt[j].fCharge; @@ -517,37 +517,37 @@ void AliL3Modeller::WriteRemaining() localcount++; } - if(ndigits[(i-AliL3Transform::GetFirstRow(fPatch))] != localcount) + if(ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))] != localcount) { - cerr<<"AliL3Modeller::WriteRemaining : Mismatch in digitcount"<UpdateRowPointer(rowPt); Byte_t *tmp = (Byte_t*)tempPt; - Int_t size = sizeof(AliL3DigitRowData) + ndigits[(i-AliL3Transform::GetFirstRow(fPatch))]*sizeof(AliL3DigitData); + Int_t size = sizeof(AliHLTDigitRowData) + ndigits[(i-AliHLTTransform::GetFirstRow(fPatch))]*sizeof(AliHLTDigitData); tmp += size; - tempPt = (AliL3DigitRowData*)tmp; + tempPt = (AliHLTDigitRowData*)tmp; } Char_t fname[100]; - AliL3MemHandler *mem = new AliL3MemHandler(); + AliHLTMemHandler *mem = new AliHLTMemHandler(); sprintf(fname,"%s/comp/remains_%d_%d.raw",fPath,fSlice,fPatch); mem->Init(fSlice,fPatch); mem->SetBinaryOutput(fname); - mem->Memory2CompBinary((UInt_t)AliL3Transform::GetNRows(fPatch),(AliL3DigitRowData*)data); + mem->Memory2CompBinary((UInt_t)AliHLTTransform::GetNRows(fPatch),(AliHLTDigitRowData*)data); mem->CloseBinaryOutput(); delete mem; delete [] data; delete [] ndigits; } -void AliL3Modeller::RemoveBadTracks() +void AliHLTModeller::RemoveBadTracks() { //Remove tracsk which should not be included in the compression scheme. for(Int_t i=0; iGetNTracks(); i++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track) continue; if(track->GetPt() < 0.08) @@ -564,29 +564,29 @@ void AliL3Modeller::RemoveBadTracks() } -void AliL3Modeller::CalculateCrossingPoints() +void AliHLTModeller::CalculateCrossingPoints() { // calculates crossing points if(fDebug) cout<<"Calculating crossing points on "<GetNTracks()<<" tracks"<=AliL3Transform::GetFirstRow(fPatch); i--) + for(Int_t i=AliHLTTransform::GetLastRow(fPatch); i>=AliHLTTransform::GetFirstRow(fPatch); i--) { for(Int_t j=0; jGetNTracks(); j++) { - AliL3ModelTrack *track = (AliL3ModelTrack*)fTracks->GetCheckedTrack(j); + AliHLTModelTrack *track = (AliHLTModelTrack*)fTracks->GetCheckedTrack(j); if(!track) continue; if(!track->GetCrossingPoint(i,hit)) { - //cerr<<"AliL3Modeller::CalculateCrossingPoints : Track "<GetPt()<< // " tgl "<GetTgl()<<" psi "<GetPsi()<<" charge "<GetCharge()<Remove(j); @@ -596,11 +596,11 @@ void AliL3Modeller::CalculateCrossingPoints() } //cout<<"X "<GetTgl()<AliL3Transform::GetNPads(i) || - hit[2]<0 || hit[2]>AliL3Transform::GetNTimeBins()) + if(hit[1]<0 || hit[1]>AliHLTTransform::GetNPads(i) || + hit[2]<0 || hit[2]>AliHLTTransform::GetNTimeBins()) {//Track is leaving the patch, so flag the track hits (<0) track->SetPadHit(i,-1); track->SetTimeHit(i,-1); @@ -625,7 +625,7 @@ void AliL3Modeller::CalculateCrossingPoints() cout<<"And there are "<GetNTracks()<<" tracks remaining"<GetNTracks()<GetNTracks(); i++) { - AliL3ModelTrack *track1 = (AliL3ModelTrack*)fTracks->GetCheckedTrack(i); + AliHLTModelTrack *track1 = (AliHLTModelTrack*)fTracks->GetCheckedTrack(i); if(!track1) continue; if(track1->GetPadHit(k)<0 || track1->GetTimeHit(k)<0) continue; for(Int_t j=i+1; jGetNTracks(); j++) { - AliL3ModelTrack *track2 = (AliL3ModelTrack*)fTracks->GetCheckedTrack(j); + AliHLTModelTrack *track2 = (AliHLTModelTrack*)fTracks->GetCheckedTrack(j); if(!track2) continue; if(track2->GetPadHit(k)<0 || track2->GetTimeHit(k)<0) continue; @@ -674,12 +674,12 @@ void AliL3Modeller::CheckForOverlaps(Float_t dangle,Int_t *rowrange) } -void AliL3Modeller::CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigmaZ2) +void AliHLTModeller::CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigmaZ2) { // calculates cluster's width Float_t padw,timew; - padw = AliL3Transform::GetPadPitchWidth(fPatch); + padw = AliHLTTransform::GetPadPitchWidth(fPatch); Float_t charge = (Float_t)cl->fCharge; Float_t pad = (Float_t)cl->fPad/charge; @@ -700,7 +700,7 @@ void AliL3Modeller::CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigma */ s2 = (Float_t)cl->fSigmaZ2/charge - time*time; - timew = AliL3Transform::GetZWidth(); + timew = AliHLTTransform::GetZWidth(); sigmaZ2 = (s2);// +1./12);//*timew*timew; @@ -717,21 +717,21 @@ void AliL3Modeller::CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigma } #ifdef do_mc -void AliL3Modeller::GetTrackID(Int_t pad,Int_t time,Int_t *trackID) +void AliHLTModeller::GetTrackID(Int_t pad,Int_t time,Int_t *trackID) { // Gets track ID - AliL3DigitRowData *rowPt = (AliL3DigitRowData*)fRowData; + AliHLTDigitRowData *rowPt = (AliHLTDigitRowData*)fRowData; trackID[0]=trackID[1]=trackID[2]=-2; - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) { if(rowPt->fRow < (UInt_t)fCurrentPadRow) { - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); continue; } - AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData; + AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { Int_t cpad = digPt[j].fPad; @@ -749,7 +749,7 @@ void AliL3Modeller::GetTrackID(Int_t pad,Int_t time,Int_t *trackID) break; } #else - void AliL3Modeller::GetTrackID(Int_t /*pad*/,Int_t /*time*/,Int_t */*trackID*/) + void AliHLTModeller::GetTrackID(Int_t /*pad*/,Int_t /*time*/,Int_t */*trackID*/) { // Does nothing if do_mc undefined return; diff --git a/HLT/comp/AliL3Modeller.h b/HLT/comp/AliHLTModeller.h similarity index 70% rename from HLT/comp/AliL3Modeller.h rename to HLT/comp/AliHLTModeller.h index eceb291d390..02d4857a07d 100644 --- a/HLT/comp/AliL3Modeller.h +++ b/HLT/comp/AliHLTModeller.h @@ -1,15 +1,15 @@ // @(#) $Id$ -#ifndef AliL3_Modeller -#define AliL3_Modeller +#ifndef AliHLT_Modeller +#define AliHLT_Modeller -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" -class AliL3TrackArray; -class AliL3MemHandler; -class AliL3DigitRowData; -class AliL3ModelTrack; +class AliHLTTrackArray; +class AliHLTMemHandler; +class AliHLTDigitRowData; +class AliHLTModelTrack; struct Cluster { UInt_t fCharge; // Charge @@ -29,12 +29,12 @@ struct ClusterRegion { Int_t fMaxtime; // Max time }; -class AliL3Modeller { +class AliHLTModeller { public: - AliL3Modeller(); - virtual ~AliL3Modeller(); + AliHLTModeller(); + virtual ~AliHLTModeller(); virtual void FindClusters(); void Init(Int_t slice,Int_t patch,Char_t *trackdata,Char_t *path,Bool_t houghtracks,Bool_t binary=kTRUE); @@ -43,7 +43,7 @@ class AliL3Modeller { void RemoveBadTracks(); void WriteRemaining(); - void SetInputData(AliL3DigitRowData *digits) {fRowData = digits;} + void SetInputData(AliHLTDigitRowData *digits) {fRowData = digits;} void SetTrackThreshold(Int_t i=0) {fTrackThreshold=i;} void SetOverlap(Int_t p=6,Int_t t=8) {fPadOverlap=p;fTimeOverlap=t;} void SetSearchRange(Int_t p=1,Int_t t=2) {fPadSearch=p;fTimeSearch=t;} @@ -51,16 +51,16 @@ class AliL3Modeller { void SetOuterSearchRange(Int_t p,Int_t t) {fOuterPadSearch=p; fOuterTimeSearch=t;} void SetMaxClusterRange(Int_t p,Int_t t) {fMaxPads=p; fMaxTimebins=t;} void Debug() {fDebug=kTRUE;} - virtual Bool_t SetFitRange(AliL3ModelTrack */*track*/,Int_t */*p*/,Int_t */*t*/) {return kFALSE;} + virtual Bool_t SetFitRange(AliHLTModelTrack */*track*/,Int_t */*p*/,Int_t */*t*/) {return kFALSE;} virtual void SetNmaxOverlaps(Int_t /*i*/) {return;} virtual void SetChiSqMax(Float_t /*f*/,Int_t /*p*/) {return;} - AliL3TrackArray *GetTracks() {return fTracks;} + AliHLTTrackArray *GetTracks() {return fTracks;} protected: - AliL3TrackArray *fTracks; //! Array of tracks - AliL3DigitRowData *fRowData;//! Row data + AliHLTTrackArray *fTracks; //! Array of tracks + AliHLTDigitRowData *fRowData;//! Row data Digit *fRow; //! Current row Char_t fPath[1024]; // Path to the files @@ -80,9 +80,9 @@ class AliL3Modeller { Int_t fSlice; // Slice Int_t fPatch; // Patch - void FillCluster(AliL3ModelTrack *track,Cluster *cluster,Int_t row,Int_t npads); - void FillZeros(AliL3DigitRowData *digPt,Bool_t reversesign=kFALSE); - void LocateCluster(AliL3ModelTrack *track,ClusterRegion *region,Int_t &padmin,Int_t &padmax); + void FillCluster(AliHLTModelTrack *track,Cluster *cluster,Int_t row,Int_t npads); + void FillZeros(AliHLTDigitRowData *digPt,Bool_t reversesign=kFALSE); + void LocateCluster(AliHLTModelTrack *track,ClusterRegion *region,Int_t &padmin,Int_t &padmax); void GetTrackID(Int_t pad,Int_t time,Int_t *trackID); private: @@ -91,12 +91,14 @@ class AliL3Modeller { Float_t fPadOverlap; // Pad overlap (?) Float_t fTimeOverlap; // Time overlap (?) Int_t fTrackThreshold; //minimum weigth track need in order to be included.(=Nhits/weight) - AliL3MemHandler *fMemHandler; //! Pointer to the memory handler + AliHLTMemHandler *fMemHandler; //! Pointer to the memory handler void CalcClusterWidth(Cluster *cl,Float_t &sigmaY2,Float_t &sigmaZ2); - ClassDef(AliL3Modeller,1) //Modeller class + ClassDef(AliHLTModeller,1) //Modeller class }; +typedef AliHLTModeller AliL3Modeller; // for backward compatibility + #endif diff --git a/HLT/comp/AliL3Models.h b/HLT/comp/AliHLTModels.h similarity index 50% rename from HLT/comp/AliL3Models.h rename to HLT/comp/AliHLTModels.h index cf1d0d140a0..ce1db445fa3 100644 --- a/HLT/comp/AliL3Models.h +++ b/HLT/comp/AliHLTModels.h @@ -1,13 +1,13 @@ // @(#) $Id$ -#ifndef AliL3Models_H -#define AliL3Models_H +#ifndef AliHLTModels_H +#define AliHLTModels_H -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" const Int_t MaxNClusters = 32; -struct AliL3ClusterModel { +struct AliHLTClusterModel { Byte_t fPresent; Float_t fDTime; Float_t fDPad; @@ -20,35 +20,39 @@ struct AliL3ClusterModel { Int_t fTrackID[3]; #endif }; -typedef struct AliL3ClusterModel AliL3ClusterModel; +typedef struct AliHLTClusterModel AliHLTClusterModel; +typedef AliHLTClusterModel AliL3ClusterModel; -struct AliL3RemainingCluster { +struct AliHLTRemainingCluster { Float_t fPad; Float_t fTime; Float_t fSigmaY2; Float_t fSigmaZ2; UShort_t fCharge; }; -typedef struct AliL3RemainingCluster AliL3RemainingCluster; +typedef struct AliHLTRemainingCluster AliHLTRemainingCluster; +typedef AliHLTRemainingCluster AliL3RemainingCluster; -struct AliL3RemainingRow { +struct AliHLTRemainingRow { Byte_t fPadRow; //1 byte UShort_t fNClusters; //2 bytes #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC) - AliL3RemainingCluster fClusters[1]; + AliHLTRemainingCluster fClusters[1]; #else - AliL3RemainingCluster fClusters[0]; + AliHLTRemainingCluster fClusters[0]; #endif }; -typedef struct AliL3RemainingRow AliL3RemainingRow; +typedef struct AliHLTRemainingRow AliHLTRemainingRow; +typedef AliHLTRemainingRow AliL3RemainingRow; -struct AliL3TrackModel {//5 independent parameters is needed to encode the helix: +struct AliHLTTrackModel {//5 independent parameters is needed to encode the helix: Float_t fKappa; //Curvature Float_t fPhi; //Azimuthal angle of DCAO (distance of closest approach to origo) Float_t fD; //radius of DCA0 Float_t fZ0; //z-coordinate of DCA0 Float_t fTgl; //tan of dipangle }; -typedef struct AliL3TrackModel AliL3TrackModel; +typedef struct AliHLTTrackModel AliHLTTrackModel; +typedef AliHLTTrackModel AliL3TrackModel; #endif diff --git a/HLT/comp/AliL3OfflineDataCompressor.cxx b/HLT/comp/AliHLTOfflineDataCompressor.cxx similarity index 76% rename from HLT/comp/AliL3OfflineDataCompressor.cxx rename to HLT/comp/AliHLTOfflineDataCompressor.cxx index 08c94151285..5c6ec14180f 100644 --- a/HLT/comp/AliL3OfflineDataCompressor.cxx +++ b/HLT/comp/AliHLTOfflineDataCompressor.cxx @@ -2,7 +2,7 @@ //_____________________________________________________________ // -// AliL3OfflineDataCompression +// AliHLTOfflineDataCompression // // Class to compress data with offline tracks // as seeds. @@ -10,7 +10,7 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" #include #include @@ -32,33 +32,33 @@ #include #include -#include "AliL3Transform.h" -#include "AliL3ModelTrack.h" -#include "AliL3Compress.h" -#include "AliL3TrackArray.h" +#include "AliHLTTransform.h" +#include "AliHLTModelTrack.h" +#include "AliHLTCompress.h" +#include "AliHLTTrackArray.h" #include "bitio.h" -#include "AliL3OfflineDataCompressor.h" +#include "AliHLTOfflineDataCompressor.h" #if __GNUC__ == 3 using namespace std; #endif -ClassImp(AliL3OfflineDataCompressor) +ClassImp(AliHLTOfflineDataCompressor) -AliL3OfflineDataCompressor::AliL3OfflineDataCompressor() +AliHLTOfflineDataCompressor::AliHLTOfflineDataCompressor() { //constructor fMarian = kFALSE; fTracker=0; } -AliL3OfflineDataCompressor::AliL3OfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI) - : AliL3DataCompressor(path,keep,writeshape) +AliHLTOfflineDataCompressor::AliHLTOfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI) + : AliHLTDataCompressor(path,keep,writeshape) { //constructor fMarian = MI; fTracker=0; } -AliL3OfflineDataCompressor::~AliL3OfflineDataCompressor() +AliHLTOfflineDataCompressor::~AliHLTOfflineDataCompressor() { //deconstructor if(fTracker) { @@ -68,7 +68,7 @@ AliL3OfflineDataCompressor::~AliL3OfflineDataCompressor() } -void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) +void AliHLTOfflineDataCompressor::LoadData(Int_t event,Bool_t sp) { //Take offline reconstructed tracks as an input. //In this case, no remaining clusters are written. @@ -83,7 +83,7 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) fEvent = event; char filename[1024]; - //AliKalmanTrack::SetConvConst(1000/0.299792458/AliL3Transform::GetSolenoidField()); + //AliKalmanTrack::SetConvConst(1000/0.299792458/AliHLTTransform::GetSolenoidField()); if(fMarian==kFALSE) sprintf(filename,"%s/offline/AliTPCclusters.root",fPath); else @@ -92,7 +92,7 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) bool compressed=0; if(compressed) { - cout<<"AliL3OfflineDataCompressor::LoadData : Taking compressed offline files!!"<Close(); - AliL3TrackArray *comptracks = new AliL3TrackArray("AliL3ModelTrack"); + AliHLTTrackArray *comptracks = new AliHLTTrackArray("AliHLTModelTrack"); cout<<"Loaded "<= 18) sec += 18; - AliL3Transform::Sector2Slice(slice,padrow,sec,row); - Double_t par[5],xk=AliL3Transform::Row2X(padrow); + AliHLTTransform::Sector2Slice(slice,padrow,sec,row); + Double_t par[5],xk=AliHLTTransform::Row2X(padrow); track->PropagateTo(xk); track->GetExternalParameters(xk,par); Double_t psi = TMath::ASin(par[2]) + track->GetAlpha(); @@ -193,9 +193,9 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) first[1] = par[0]; first[2] = par[1]; - AliL3Transform::Local2Global(first,slice); + AliHLTTransform::Local2Global(first,slice); - AliL3ModelTrack *outtrack = (AliL3ModelTrack*)comptracks->NextTrack(); + AliHLTModelTrack *outtrack = (AliHLTModelTrack*)comptracks->NextTrack(); outtrack->SetNHits(nhits); outtrack->SetFirstPoint(first[0],first[1],first[2]); outtrack->SetPt(1./pt1); @@ -254,18 +254,18 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) } //cout<<"sector "<GetY()<<" z "<GetZ()< AliL3Transform::GetNPads(padrow) || - xyz[2] < -1 || xyz[2] > AliL3Transform::GetNTimeBins()) + if(xyz[1] < -1 || xyz[1] > AliHLTTransform::GetNPads(padrow) || + xyz[2] < -1 || xyz[2] > AliHLTTransform::GetNTimeBins()) { - cerr<<"AliL3DataCompressor::FillOfflineData : Wrong time "<GetY()<<" z "<GetZ()<CalculateReferencePoint(angle,AliL3Transform::Row2X(padrow))) + AliHLTTransform::Local2GlobalAngle(&angle,slice); + if(!outtrack->CalculateReferencePoint(angle,AliHLTTransform::Row2X(padrow))) { - cerr<<"AliL3DataCompressor::FillOfflineData : Error in crossing point calc on slice " + cerr<<"AliHLTDataCompressor::FillOfflineData : Error in crossing point calc on slice " <GetPointX(),outtrack->GetPointY(),outtrack->GetPointZ()}; - AliL3Transform::Global2Raw(xyzcross,sec,row); + AliHLTTransform::Global2Raw(xyzcross,sec,row); /* if(fabs(xyzcross[1] - xyz[1]) > 10 || fabs(xyzcross[2] - xyz[2]) > 10) { - cout<<"AliL3DataCompressor::FillOfflineData : Wrong crossing slice "<Print(); exit(5); @@ -303,9 +303,9 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) Float_t angle = outtrack->GetCrossingAngle(padrow,slice); outtrack->SetCrossingAngleLUT(padrow,angle); outtrack->CalculateClusterWidths(padrow,kTRUE); - Int_t patch = AliL3Transform::GetPatch(padrow); - Float_t sigmaY2 = cluster->GetSigmaY2() / pow(AliL3Transform::GetPadPitchWidth(patch),2); - Float_t sigmaZ2 = cluster->GetSigmaZ2() / pow(AliL3Transform::GetZWidth(),2); + Int_t patch = AliHLTTransform::GetPatch(padrow); + Float_t sigmaY2 = cluster->GetSigmaY2() / pow(AliHLTTransform::GetPadPitchWidth(patch),2); + Float_t sigmaZ2 = cluster->GetSigmaZ2() / pow(AliHLTTransform::GetZWidth(),2); outtrack->SetCluster(padrow,xyz[1],xyz[2],clustercharge,sigmaY2,sigmaZ2,3); } else @@ -316,15 +316,15 @@ void AliL3OfflineDataCompressor::LoadData(Int_t event,Bool_t sp) } } - cout<<"AliL3DataCompressor::FillOfflineData : Wrote "<WriteFile(comptracks); delete comp; delete comptracks; } -void AliL3OfflineDataCompressor::WriteRemaining(Bool_t select) +void AliHLTOfflineDataCompressor::WriteRemaining(Bool_t select) { //Write remaining clusters (not assigned to any tracks) to file @@ -338,7 +338,7 @@ void AliL3OfflineDataCompressor::WriteRemaining(Bool_t select) if(!fSinglePatch) { - cerr<<"AliL3OfflineDataCompressor::WriteRemaining : You have to modify this function when not running singlepatch"<GetLabel(0)<<' '; - Float_t xyz[3] = {AliL3Transform::Row2X(padrow),cluster->GetY(),cluster->GetZ()}; - AliL3Transform::Local2Raw(xyz,sector,row); + Float_t xyz[3] = {AliHLTTransform::Row2X(padrow),cluster->GetY(),cluster->GetZ()}; + AliHLTTransform::Local2Raw(xyz,sector,row); - Int_t patch = AliL3Transform::GetPatch(padrow); - Float_t padw = cluster->GetSigmaY2()/pow(AliL3Transform::GetPadPitchWidth(patch),2); - Float_t timew = cluster->GetSigmaZ2()/pow(AliL3Transform::GetZWidth(),2); + Int_t patch = AliHLTTransform::GetPatch(padrow); + Float_t padw = cluster->GetSigmaY2()/pow(AliHLTTransform::GetPadPitchWidth(patch),2); + Float_t timew = cluster->GetSigmaZ2()/pow(AliHLTTransform::GetZWidth(),2); Int_t buff; //Write pad buff = (Int_t)rint(xyz[1]*10); if(buff<0) { - cerr<<"AliL3OfflineDataCompressor:WriteRemaining : Wrong pad value "<GetSigmaY2() / pow(AliL3Transform::GetPadPitchWidth(AliL3Transform::GetPatch(padrow)),2); - Float_t zw = cluster->GetSigmaZ2() / pow(AliL3Transform::GetZWidth(),2); + Float_t xyw = cluster->GetSigmaY2() / pow(AliHLTTransform::GetPadPitchWidth(AliHLTTransform::GetPatch(padrow)),2); + Float_t zw = cluster->GetSigmaZ2() / pow(AliHLTTransform::GetZWidth(),2); if(xyw >= 2.55 || zw >= 2.55)//Because we use 1 byte to store { cluster->Use(); diff --git a/HLT/comp/AliHLTOfflineDataCompressor.h b/HLT/comp/AliHLTOfflineDataCompressor.h new file mode 100644 index 00000000000..89eef774a60 --- /dev/null +++ b/HLT/comp/AliHLTOfflineDataCompressor.h @@ -0,0 +1,37 @@ +// @(#) $Id$ + +#ifndef ALIL3OFFLINEDATACOMPRESSOR_H +#define ALIL3OFFLINEDATACOMPRESSOR_H + +#include "AliHLTRootTypes.h" +#include "AliHLTDataCompressor.h" + +class AliTracker; + +class AliHLTOfflineDataCompressor : public AliHLTDataCompressor { + + public: + AliHLTOfflineDataCompressor(); + AliHLTOfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI=kFALSE); + virtual ~AliHLTOfflineDataCompressor(); + + void LoadData(Int_t event,Bool_t sp=kTRUE); + void FillData(Int_t /*minhits*/,Bool_t /*expand*/) {return;}; + void WriteRemaining(Bool_t select); + + private: + AliHLTOfflineDataCompressor(const AliHLTOfflineDataCompressor& /*ac*/) : AliHLTDataCompressor() {;} + AliHLTOfflineDataCompressor& operator=(const AliHLTOfflineDataCompressor& /*ac*/){return *this;} + + Bool_t fMarian; // is Marian TPC tracking used + AliTracker *fTracker; //! + + void SelectRemainingClusters(); + + ClassDef(AliHLTOfflineDataCompressor,1) + +}; + +typedef AliHLTOfflineDataCompressor AliL3OfflineDataCompressor; // for backward compatibility + +#endif diff --git a/HLT/comp/AliL3CompLinkDef.h b/HLT/comp/AliL3CompLinkDef.h deleted file mode 100644 index a2cb41a3d73..00000000000 --- a/HLT/comp/AliL3CompLinkDef.h +++ /dev/null @@ -1,26 +0,0 @@ -// @(#) $Id$ - -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ class AliL3Modeller; -#ifndef macosx -#pragma link C++ class AliL3ModelTrack; -#endif -#pragma link C++ class AliL3Compress; -#pragma link C++ class AliL3CompressAC; -#pragma link C++ class AliL3ClusterFitter; -#pragma link C++ class AliL3DataCompressor; -#pragma link C++ class AliL3ClusterModel; -#ifndef macosx -#pragma link C++ class AliL3DataCompressorHelper; -#endif -#ifdef use_aliroot -#pragma link C++ class AliL3OfflineDataCompressor; -#endif - -#endif - diff --git a/HLT/comp/AliL3Compress.h b/HLT/comp/AliL3Compress.h deleted file mode 100644 index fb22ceedf43..00000000000 --- a/HLT/comp/AliL3Compress.h +++ /dev/null @@ -1,41 +0,0 @@ -// @(#) $Id$ - -#ifndef AliL3_Compress -#define AliL3_Compress - -#include "AliL3RootTypes.h" -#include "AliL3StandardIncludes.h" -#include "AliL3DataCompressor.h" - -class AliL3Compress { - - public: - AliL3Compress(); - AliL3Compress(Int_t slice,Int_t patch,Char_t *path="./",Bool_t writeshape=kFALSE,Int_t event=-1); - virtual ~AliL3Compress(); - - Bool_t WriteFile(AliL3TrackArray *tracks,Char_t *filename=0); - Bool_t ReadFile(Char_t which,Char_t *filename=0); - virtual Bool_t CompressFile(); - virtual Bool_t ExpandFile(); - void CompressRemaining(AliL3SpacePointData *points[36][6],UInt_t npoints[36][6]); - void ExpandRemaining(TempCluster **clusters,Int_t *ncl,Int_t maxclusters); - virtual void PrintCompRatio(STDOF *outfile=0); - Int_t GetEntropy(Float_t &padEntropy,Float_t &timeEntropy,Float_t &chargeEntropy); - - AliL3TrackArray *GetTracks() {return fTracks;} - - protected: - AliL3TrackArray *fTracks; //! Array of tracks - Int_t fSlice; // Slice - Int_t fPatch; // Patch - Char_t fPath[100]; // Path to the files - Bool_t fWriteShape; // Flag to write the shape - Int_t fEvent; // Current event - - - ClassDef(AliL3Compress,1) - -}; - -#endif diff --git a/HLT/comp/AliL3DataCompressorHelper.cxx b/HLT/comp/AliL3DataCompressorHelper.cxx deleted file mode 100644 index e58301941ae..00000000000 --- a/HLT/comp/AliL3DataCompressorHelper.cxx +++ /dev/null @@ -1,170 +0,0 @@ -// @(#) $Id$ - -// Author: Anders Vestbo -//*-- Copyright © ALICE HLT Group - -#include "AliL3StandardIncludes.h" - -#include "AliL3RootTypes.h" -#include "AliL3Transform.h" - -#include "AliL3DataCompressorHelper.h" - -#if __GNUC__ >= 3 -using namespace std; -#endif - -//_____________________________________________________________ -// -// AliL3DataCompression -// -// Interface class; binary <-> AliROOT handling of TPC data compression classes. -// - - -ClassImp(AliL3DataCompressorHelper) - - -Int_t AliL3DataCompressorHelper::fgNumTimeBits = 12; -Int_t AliL3DataCompressorHelper::fgNumPadBits = 12; -Int_t AliL3DataCompressorHelper::fgNumChargeBits = 14; -Int_t AliL3DataCompressorHelper::fgNumShapeBits = 14; -Float_t AliL3DataCompressorHelper::fgXYResidualStep1 = 0.03; -Float_t AliL3DataCompressorHelper::fgXYResidualStep2 = 0.03; -Float_t AliL3DataCompressorHelper::fgXYResidualStep3 = 0.03; -Float_t AliL3DataCompressorHelper::fgZResidualStep1 = 0.05; -Float_t AliL3DataCompressorHelper::fgZResidualStep2 = 0.05; -Float_t AliL3DataCompressorHelper::fgZResidualStep3 = 0.05; -Float_t AliL3DataCompressorHelper::fgXYWidthStep = 0.005; -Float_t AliL3DataCompressorHelper::fgZWidthStep = 0.005; -Int_t AliL3DataCompressorHelper::fgClusterCharge = 100; -Int_t AliL3DataCompressorHelper::fgNumPadBitsRemaining = 18; -Int_t AliL3DataCompressorHelper::fgNumTimeBitsRemaining = 19; -Int_t AliL3DataCompressorHelper::fgNumShapeBitsRemaining = 11; - -void AliL3DataCompressorHelper::SetBitNumbers(Int_t pad,Int_t time,Int_t charge,Int_t shape) -{ - // sets the numbers of bits - fgNumPadBits = pad; - fgNumTimeBits = time; - fgNumChargeBits = charge; - fgNumShapeBits = shape; -} - -void AliL3DataCompressorHelper::SetTransverseResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width) -{ - // sets the transverse resolution - fgXYResidualStep1 = res1; - fgXYResidualStep2 = res2; - fgXYResidualStep3 = res3; - fgXYWidthStep = width; -} - -void AliL3DataCompressorHelper::SetLongitudinalResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width) -{ - // sets the longitudinal resolution - fgZResidualStep1 = res1; - fgZResidualStep2 = res2; - fgZResidualStep3 = res3; - fgZWidthStep = width; -} - -void AliL3DataCompressorHelper::SetRemainingBitNumbers(Int_t pad,Int_t time,Int_t shape) -{ - // sets the numbers of remaining bits - fgNumPadBitsRemaining = pad; - fgNumTimeBitsRemaining = time; - fgNumShapeBitsRemaining = shape; -} - -Float_t AliL3DataCompressorHelper::GetXYResidualStep(Int_t row) -{ - // gets the XY residual step - if(row < AliL3Transform::GetNRowLow()) - return fgXYResidualStep1; - else if(row < AliL3Transform::GetNRowLow() + AliL3Transform::GetNRowUp1()) - return fgXYResidualStep2; - else if(row < AliL3Transform::GetNRowLow() + AliL3Transform::GetNRowUp1() + AliL3Transform::GetNRowUp2()) - return fgXYResidualStep3; - else - { - cerr<<"AliL3DataCompressorHelper::GetXYResidualStep : Wrong row number "<=21) - return 10000; - if(nbits >= 18) - return 1000; - if(nbits >= 14) - return 100; - if(nbits >= 11) - return 10; - if(nbits >= 8) - return 1; - else - { - cerr<<"AliL3DataCompressorHelper::GetRemainingPadFactor : Too few bits for the pad direction: "<=23) - return 10000; - if(nbits >= 19) - return 1000; - if(nbits >= 16) - return 100; - if(nbits >= 13) - return 10; - if(nbits >= 9) - return 1; - else - { - cerr<<"AliL3DataCompressorHelper::GetRemainingPadFactor : Too few bits for the pad direction: "<= 0) { - i = Int_t(x + 0.5); - if (x + 0.5 == Double_t(i) && i & 1) i--; - } else { - i = Int_t(x - 0.5); - if (x - 0.5 == Double_t(i) && i & 1) i++; - - } - return i; -} diff --git a/HLT/comp/AliL3ModelTrack.cxx b/HLT/comp/AliL3ModelTrack.cxx deleted file mode 100644 index d2626f5e198..00000000000 --- a/HLT/comp/AliL3ModelTrack.cxx +++ /dev/null @@ -1,683 +0,0 @@ -// @(#) $Id$ - -// Author: Anders Vestbo -//*-- Copyright © ALICE HLT Group -//_____________________________________________________________ -// AliL3ModelTrack -// -// - - -#include "AliL3StandardIncludes.h" - -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3Vertex.h" -#include "AliL3DataCompressorHelper.h" - -#include "AliL3ModelTrack.h" - -#if __GNUC__ >= 3 -using namespace std; -#endif - -ClassImp(AliL3ModelTrack) - -AliL3ModelTrack::AliL3ModelTrack() -{ - // default constructor - fNClusters = 0; - fClusters = 0; - fOverlap = 0; - fPad=0; - fTime=0; - fNoverlaps=0; - fClusterCharge=0; - fTrackModel=0; - fCrossingAngle=0; - fParSigmaY2=0; - fParSigmaZ2=0; - fArraysCreated=kFALSE; -} - - -AliL3ModelTrack::~AliL3ModelTrack() -{ - // destructor - DeleteArrays(); -} - -void AliL3ModelTrack::DeleteArrays() -{ - // deletes all arrays - if(fClusters) - delete [] fClusters; - if(fPad) - delete [] fPad; - if(fTime) - delete [] fTime; - if(fCrossingAngle) - delete [] fCrossingAngle; - if(fParSigmaY2) - delete [] fParSigmaY2; - if(fParSigmaZ2) - delete [] fParSigmaZ2; - if(fTrackModel) - delete fTrackModel; - if(fNoverlaps) - delete [] fNoverlaps; - if(fOverlap) - { - for(Int_t i=0; i AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::CalculcateClusterWidths : Wrond index "<fPresent |= 0x2; //set second bit to true, because a fit attempt has been made - - Int_t patch = AliL3Transform::GetPatch(row); - if(!charge || npads == 1) - { - cl->fPresent &= ~0x1; //set first bit to false - } - else - { - cl->fPresent|=0x1;//set first bit to true - cl->fDPad = (fpad - GetPadHit(row))/(AliL3DataCompressorHelper::GetXYResidualStep(row)/AliL3Transform::GetPadPitchWidth(patch)); - cl->fDTime = (ftime - GetTimeHit(row))/(AliL3DataCompressorHelper::GetZResidualStep(row)/AliL3Transform::GetZWidth()); - cl->fDCharge = charge; - if(sigmaY2==0 && sigmaZ2==0) - { - cl->fDSigmaY=0;//if width is zero, shape is not supposed to be written - cl->fDSigmaZ=0; - } - else - { - //cl->fDSigmaY2 = (sigmaY2 - GetParSigmaY2(row))/(pow(AliL3DataCompressorHelper::GetXYWidthStep(),2)/pow(AliL3Transform::GetPadPitchWidth(patch),2)); - //cl->fDSigmaZ2 = (sigmaZ2 - GetParSigmaZ2(row))/(pow(AliL3DataCompressorHelper::GetZWidthStep(),2)/pow(AliL3Transform::GetZWidth(),2)); - cl->fDSigmaY = (sqrt(sigmaY2) - sqrt(GetParSigmaY2(row)))/(AliL3DataCompressorHelper::GetXYWidthStep()/AliL3Transform::GetPadPitchWidth(patch)); - cl->fDSigmaZ = (sqrt(sigmaZ2) - sqrt(GetParSigmaZ2(row)))/(AliL3DataCompressorHelper::GetZWidthStep()/AliL3Transform::GetZWidth()); - } - cl->fNPads = npads; - } -} - - -void AliL3ModelTrack::Set(AliL3Track *tpt) -{ - // Sets track and does initialization - AliL3ModelTrack *tr = (AliL3ModelTrack*)tpt; - SetRowRange(tr->GetFirstRow(),tr->GetLastRow()); - SetPhi0(tr->GetPhi0()); - SetKappa(tr->GetKappa()); - SetFirstPoint(tr->GetFirstPointX(),tr->GetFirstPointY(),tr->GetFirstPointZ()); - SetLastPoint(tr->GetLastPointX(),tr->GetLastPointY(),tr->GetLastPointZ()); - SetPt(tr->GetPt()); - SetPsi(tr->GetPsi()); - SetTgl(tr->GetTgl()); - SetCharge(tr->GetCharge()); - - if(fClusters) - { - cerr<<"AliL3ModelTrack::Set : Init has already been called for this object!"<fSlice,tr->fPatch); - Init(0,tr->fPatch); - memcpy(fClusters,tr->fClusters,AliL3Transform::GetNRows(fPatch)*sizeof(AliL3ClusterModel)); - memcpy(fPad,tr->fPad,AliL3Transform::GetNRows(fPatch)*sizeof(Float_t)); - memcpy(fTime,tr->fTime,AliL3Transform::GetNRows(fPatch)*sizeof(Float_t)); - memcpy(fParSigmaY2,tr->fParSigmaY2,AliL3Transform::GetNRows(fPatch)*sizeof(Float_t)); - memcpy(fParSigmaZ2,tr->fParSigmaZ2,AliL3Transform::GetNRows(fPatch)*sizeof(Float_t)); - memcpy(fCrossingAngle,tr->fCrossingAngle,AliL3Transform::GetNRows(fPatch)*sizeof(Float_t)); - memcpy(fTrackModel,tr->fTrackModel,sizeof(AliL3TrackModel)); - -} - -Int_t AliL3ModelTrack::GetNPresentClusters() -{ - //Return the number of assigned clusters to the track. - //Differs from fNClusters, which should be equal to the - //number of padrows in the present patch. - - Int_t count=0; - - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) - if(IsPresent(i)) - count++; - - return count; -} - -void AliL3ModelTrack::FillModel() -{ - //Fill the track structure - - if(fNClusters != AliL3Transform::GetNRows(fPatch)) - { - cout<<"AliL3ModelTrack::FillModel : fNClusters != nrows; beware, this could be caused by a bug!!!"<fKappa = GetKappa(); - fTrackModel->fPhi = atan2(impact[1],impact[0]); - fTrackModel->fD = sqrt(impact[0]*impact[0] + impact[1]*impact[1]); - fTrackModel->fZ0 = impact[2]; - fTrackModel->fTgl = GetTgl(); - - //We have to check on which of the vertex the track fit is lying - //This we need to encode the azimuthal angle coordinate of the center of curvature. - if(GetRadius() < sqrt(GetCenterX()*GetCenterX()+GetCenterY()*GetCenterY())) - fTrackModel->fD *=-1; - -} - -void AliL3ModelTrack::FillTrack() -{ - //Fill the track parameters from the structure. - - if(!fTrackModel) - { - cerr<<"AliL3ModelTrack::FillTrack() : No data!!"<fKappa); - Double_t impact[3],psi; - Float_t trackPhi0 = fTrackModel->fPhi; - if(fTrackModel->fD < 0) - trackPhi0 += AliL3Transform::Pi(); - Int_t charge = -1*(Int_t)copysign(1.,GetKappa()); - impact[0] = fabs(fTrackModel->fD)*cos(fTrackModel->fPhi); - impact[1] = fabs(fTrackModel->fD)*sin(fTrackModel->fPhi); - impact[2] = fTrackModel->fZ0; - - psi = trackPhi0 - charge*0.5*AliL3Transform::Pi(); - if(psi < 0) - psi += 2*AliL3Transform::Pi(); - - SetCharge(charge); - SetFirstPoint(impact[0],impact[1],impact[2]); - SetPsi(psi); - SetTgl(fTrackModel->fTgl); - SetPt((AliL3Transform::GetBFact()*AliL3Transform::GetBField())/fabs(GetKappa())); - fNClusters = AliL3Transform::GetNRows(fPatch); - CalculateHelix(); - - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) - { - AliL3ClusterModel *cl = GetClusterModel(i); - if(!cl) continue; - - if(cl->fSlice == -1) - { - SetPadHit(i,-1); - SetTimeHit(i,-1); - continue; - } - if(cl->fSlice < 0 || cl->fSlice > 35) - { - cerr<<"AliL3ModelTrack::FillTrack : Slice out of range "<fSlice<<" on row "<fSlice); - if(!CalculateReferencePoint(angle,AliL3Transform::Row2X(i))) - { - if(IsPresent(i)) - { - cerr<<"AliL3ModelTrack::FillTrack : Track does not cross slice "<fSlice<<" row "<fSlice,i,sector,row); - AliL3Transform::Global2Raw(hit,sector,row); - - SetPadHit(i,hit[1]); - SetTimeHit(i,hit[2]); - - Float_t crossingangle = GetCrossingAngle(i,cl->fSlice); - - SetCrossingAngleLUT(i,crossingangle); - CalculateClusterWidths(i,kTRUE); - - } -} - -void AliL3ModelTrack::SetPadHit(Int_t row,Float_t pad) -{ - // sets pad hit - Int_t index = row-AliL3Transform::GetFirstRow(fPatch); - if(index < 0 || index > AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::SetPadHit() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::SetTimeHit() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::SetCrossingAngle() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::SetOverlap() : Wrong index: "<= fMaxOverlaps) return; - fOverlap[index][fNoverlaps[index]++] = id; -} - -Bool_t AliL3ModelTrack::IsPresent(Int_t row) -{ - AliL3ClusterModel *cl = GetClusterModel(row); - return (Bool_t)(cl->fPresent & 0x1); -} - -Bool_t AliL3ModelTrack::IsSet(Int_t row) -{ - // checks if row was set - AliL3ClusterModel *cl = GetClusterModel(row); - return (Bool_t)(cl->fPresent & 0x2); -} - -Int_t AliL3ModelTrack::GetNPads(Int_t row) -{ - // gets number of pads - AliL3ClusterModel *cl = GetClusterModel(row); - return cl->fNPads; -} - -Bool_t AliL3ModelTrack::GetPad(Int_t row,Float_t &pad) -{ - // gets pad - //(fpad - GetPadHit(row))/(AliL3DataCompressorHelper::GetXYResidualStep(row)/AliL3Transform::GetPadPitchWidth(patch)); - AliL3ClusterModel *cl = GetClusterModel(row); - Int_t patch = AliL3Transform::GetPatch(row); - pad = cl->fDPad*(AliL3DataCompressorHelper::GetXYResidualStep(row)/AliL3Transform::GetPadPitchWidth(patch)) + GetPadHit(row); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetTime(Int_t row,Float_t &time) -{ - // gets time - AliL3ClusterModel *cl = GetClusterModel(row); - time = cl->fDTime*(AliL3DataCompressorHelper::GetZResidualStep(row)/AliL3Transform::GetZWidth()) + GetTimeHit(row); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetClusterCharge(Int_t row,Int_t &charge) -{ - // gets cluster's charge - AliL3ClusterModel *cl = GetClusterModel(row); - charge = (Int_t)cl->fDCharge;// + AliL3DataCompressorHelperHelper::GetClusterCharge(); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetSigmaY2(Int_t row,Float_t &sigma2) -{ - // gets SigmaY2 - //cl->fDSigmaY = (sqrt(sigmaY2) - sqrt(GetParSigmaY2(row)))/(AliL3DataCompressorHelper::GetXYWidthStep()/AliL3Transform::GetPadPitchWidth(patch)); - AliL3ClusterModel *cl = GetClusterModel(row); - Int_t patch = AliL3Transform::GetPatch(row); - Float_t sigma = cl->fDSigmaY*(AliL3DataCompressorHelper::GetXYWidthStep()/AliL3Transform::GetPadPitchWidth(patch)) + sqrt(GetParSigmaY2(row)); - sigma2 = sigma*sigma; - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetSigmaZ2(Int_t row,Float_t &sigma2) -{ - // gets SigmaZ2 - //cl->fDSigmaZ = (sqrt(sigmaZ2) - sqrt(GetParSigmaZ2(row)))/(AliL3DataCompressorHelper::GetZWidthStep()/AliL3Transform::GetZWidth()); - AliL3ClusterModel *cl = GetClusterModel(row); - Float_t sigma = cl->fDSigmaZ*(AliL3DataCompressorHelper::GetZWidthStep()/AliL3Transform::GetZWidth()) + sqrt(GetParSigmaZ2(row)); - sigma2 = sigma*sigma; - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetPadResidual(Int_t row,Float_t &res) -{ - // gets pad residual - AliL3ClusterModel *cl = GetClusterModel(row); - Int_t patch = AliL3Transform::GetPatch(row); - res = cl->fDPad*(AliL3DataCompressorHelper::GetXYResidualStep(row)/AliL3Transform::GetPadPitchWidth(patch)); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetTimeResidual(Int_t row,Float_t &res) -{ - // gets time residual - AliL3ClusterModel *cl = GetClusterModel(row); - res = cl->fDTime*(AliL3DataCompressorHelper::GetZResidualStep(row)/AliL3Transform::GetZWidth()); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetSigmaYResidual(Int_t row,Float_t &res) -{ - // gets SigmaY residual (?) - AliL3ClusterModel *cl = GetClusterModel(row); - Int_t patch = AliL3Transform::GetPatch(row); - res = cl->fDSigmaY*(AliL3DataCompressorHelper::GetXYWidthStep()/AliL3Transform::GetPadPitchWidth(patch)); - return IsPresent(row); -} - -Bool_t AliL3ModelTrack::GetSigmaZResidual(Int_t row,Float_t &res) -{ - // gets SigmaZ resigual (?) - AliL3ClusterModel *cl = GetClusterModel(row); - res = cl->fDSigmaZ*(AliL3DataCompressorHelper::GetZWidthStep()/AliL3Transform::GetZWidth()); - return IsPresent(row); -} - -Int_t AliL3ModelTrack::GetSlice(Int_t row) -{ - // Gets slice - AliL3ClusterModel *cl = GetClusterModel(row); - return cl->fSlice; -} - -Float_t AliL3ModelTrack::GetPadHit(Int_t row) -{ - // Gets pad hit - Int_t index = row-AliL3Transform::GetFirstRow(fPatch); - if(index < 0 || index > AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetPadHit() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetTimeHit() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetCrossingAngleLUT() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetParSigmaY2() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetParSigmaZ2() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetOverlap() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetOverlap() : Wrong index: "< AliL3Transform::GetNRows(fPatch)) - { - cerr<<"AliL3ModelTrack::GetClusterModel() : Wrong index: "<fSlice<<" Padcrossing "<fSlice,i,GetPadHit(i),GetTimeHit(i)); - //cout<fSlice<<" x "<fSlice; - else if(cl->fSlice != origslice) - cout<<"Change in slice "<fSlice<<" "<fSlice<<" Dpad "<fDPad<<" Dtime "<fDTime<<" Dcharge "<fDCharge; - cout<<" sigmaY2 "<fTrackID[0] = trackID[0]; - cl->fTrackID[1] = trackID[1]; - cl->fTrackID[2] = trackID[2]; -#else - void AliL3ModelTrack::SetClusterLabel(Int_t /*row*/,Int_t */*trackID*/) -{ - // Does nothing if do_mc undefined - return; -#endif -} - -#ifdef do_mc -void AliL3ModelTrack::GetClusterLabel(Int_t row,Int_t *trackID) -{ - // gets cluster label - AliL3ClusterModel *cl = GetClusterModel(row); - trackID[0] = cl->fTrackID[0]; - trackID[1] = cl->fTrackID[1]; - trackID[2] = cl->fTrackID[2]; -#else - void AliL3ModelTrack::GetClusterLabel(Int_t /*row*/,Int_t */*trackID*/) -{ - // Does nothing if do_mc undefined - return; -#endif -} - diff --git a/HLT/comp/AliL3OfflineDataCompressor.h b/HLT/comp/AliL3OfflineDataCompressor.h deleted file mode 100644 index 2376c421a5b..00000000000 --- a/HLT/comp/AliL3OfflineDataCompressor.h +++ /dev/null @@ -1,35 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3OFFLINEDATACOMPRESSOR_H -#define ALIL3OFFLINEDATACOMPRESSOR_H - -#include "AliL3RootTypes.h" -#include "AliL3DataCompressor.h" - -class AliTracker; - -class AliL3OfflineDataCompressor : public AliL3DataCompressor { - - public: - AliL3OfflineDataCompressor(); - AliL3OfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI=kFALSE); - virtual ~AliL3OfflineDataCompressor(); - - void LoadData(Int_t event,Bool_t sp=kTRUE); - void FillData(Int_t /*minhits*/,Bool_t /*expand*/) {return;}; - void WriteRemaining(Bool_t select); - - private: - AliL3OfflineDataCompressor(const AliL3OfflineDataCompressor& /*ac*/) : AliL3DataCompressor() {;} - AliL3OfflineDataCompressor& operator=(const AliL3OfflineDataCompressor& /*ac*/){return *this;} - - Bool_t fMarian; // is Marian TPC tracking used - AliTracker *fTracker; //! - - void SelectRemainingClusters(); - - ClassDef(AliL3OfflineDataCompressor,1) - -}; - -#endif diff --git a/HLT/comp/Makefile b/HLT/comp/Makefile index afcf9f716ea..244d49a7339 100644 --- a/HLT/comp/Makefile +++ b/HLT/comp/Makefile @@ -6,7 +6,7 @@ # Constantin Loizides # ################################ -MODNAME = AliL3Comp +MODNAME = AliHLTComp ifndef ALIHLT_TOPDIR ALIHLT_TOPDIR = $(shell pwd)/.. @@ -14,15 +14,15 @@ endif include $(ALIHLT_TOPDIR)/Makefile.conf -SRCS = AliL3Modeller.cxx AliL3ClusterFitter.cxx \ - AliL3Compress.cxx AliL3DataCompressor.cxx AliL3CompressAC.cxx +SRCS = AliHLTModeller.cxx AliHLTClusterFitter.cxx \ + AliHLTCompress.cxx AliHLTDataCompressor.cxx AliHLTCompressAC.cxx ifneq ($(ARCH),macosx) ## for macosx put into src as symbolic link -SRCS += AliL3DataCompressorHelper.cxx AliL3ModelTrack.cxx +SRCS += AliHLTDataCompressorHelper.cxx AliHLTModelTrack.cxx endif -ADD_C_OBJS = $(OBJDIR)/bitio.o $(OBJDIR)/errhand.o $(OBJDIR)/AliL3FitUtilities.o +ADD_C_OBJS = $(OBJDIR)/bitio.o $(OBJDIR)/errhand.o $(OBJDIR)/AliHLTFitUtilities.o ifeq ($(ALIHLT_USEPACKAGE),ROOT) HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h @@ -30,7 +30,7 @@ OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(ADD_C_OBJS) $(DICTO) endif ifeq ($(ALIHLT_USEPACKAGE),ALIROOT) -SRCS += AliL3OfflineDataCompressor.cxx +SRCS += AliHLTOfflineDataCompressor.cxx HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(ADD_C_OBJS) $(DICTO) endif @@ -48,8 +48,8 @@ $(OBJDIR)/bitio.o: bitio.c $(OBJDIR)/errhand.o: errhand.c $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/errhand.o errhand.c -$(OBJDIR)/AliL3FitUtilities.o: AliL3FitUtilities.c - $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/AliL3FitUtilities.o AliL3FitUtilities.c +$(OBJDIR)/AliHLTFitUtilities.o: AliHLTFitUtilities.c + $(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/AliHLTFitUtilities.o AliHLTFitUtilities.c $(OBJDIR)/bitio.sto: bitio.c $(CXX) $(PROFILEFLAGS) $(CXXFLAGS) -c -o $(OBJDIR)/bitio.sto bitio.c @@ -57,5 +57,5 @@ $(OBJDIR)/bitio.sto: bitio.c $(OBJDIR)/errhand.sto: errhand.c $(CXX) $(PROFILEFLAGS) $(CXXFLAGS) -c -o $(OBJDIR)/errhand.sto errhand.c -$(OBJDIR)/AliL3FitUtilities.sto: AliL3FitUtilities.c - $(CXX) $(PROFILEFLAGS) $(CXXFLAGS) -c -o $(OBJDIR)/AliL3FitUtilities.sto AliL3FitUtilities.c +$(OBJDIR)/AliHLTFitUtilities.sto: AliHLTFitUtilities.c + $(CXX) $(PROFILEFLAGS) $(CXXFLAGS) -c -o $(OBJDIR)/AliHLTFitUtilities.sto AliHLTFitUtilities.c diff --git a/HLT/comp/rootlogon.C b/HLT/comp/rootlogon.C index 0a4a8f998d7..e18b4d1f7f5 100644 --- a/HLT/comp/rootlogon.C +++ b/HLT/comp/rootlogon.C @@ -15,9 +15,9 @@ if(1) { gSystem->Load("$(LEVEL3)/kip/MLUC/lib/linux-i386/libMLUC.so"); - gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliL3"); - gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliL3Hough"); - gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliL3Comp"); + gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliHLT"); + gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliHLTHough"); + gSystem->Load("$(LEVEL3)/lib_$(USERNAME)/libAliHLTComp"); cout<<"HLT libraries loaded"<LoadMacro("$(HOME)/alirootcode/XFunct.C"); diff --git a/HLT/doc/README b/HLT/doc/README index dd8cde7bc53..d957df6e586 100644 --- a/HLT/doc/README +++ b/HLT/doc/README @@ -12,16 +12,16 @@ bin ............ small scripts to set env or to compile exa ............ sample macros showing how to use the code kalman ......... (not usable at the moment) Makefile.conf .. checks environment for ALIHLT_* variables -misc ........... lib AliL3Misc (different helper classes) +misc ........... lib AliHLTMisc (different helper classes) sim ............ (not usable at the moment) trigger ........ (not usable at the moment) -comp ........... lib AliL3Comp (compression and deconvolution) +comp ........... lib AliHLTComp (compression and deconvolution) doc ............ hopefully contains information -hough .......... lib AliL3Hough (different hough transforms) +hough .......... lib AliHLTHough (different hough transforms) Makefile ....... main makefile (use make libs to compile all libs) Makefile.rules . most of the rules for all libs programs ....... sample programs showing how to use the code -src ............ main lib AliL3Src (transformer, tracker and clusterer) +src ............ main lib AliHLTSrc (transformer, tracker and clusterer) The compilation is controlled by the following variables: diff --git a/HLT/doc/changelog.bin b/HLT/doc/changelog.bin index cd07fb036cb..78ae4b7d00a 100644 --- a/HLT/doc/changelog.bin +++ b/HLT/doc/changelog.bin @@ -6,7 +6,7 @@ 2003-07-29 Constantin Loizides * /alice/cvs/hltcvs/level3code/bin/sethlt_cern.csh, /alice/cvs/hltcvs/level3code/bin/sethlt_cern.sh, /alice/cvs/hltcvs/level3code/bin/sethlt.csh, /alice/cvs/hltcvs/level3code/bin/sethlt.sh, /alice/cvs/hltcvs/level3code/bin/usehlt.csh, /alice/cvs/hltcvs/level3code/bin/usehlt.sh: - Removed ASV version, as the new AliL3FileHandler does not need (but still would be faster using the patched AliTPC class). + Removed ASV version, as the new AliHLTFileHandler does not need (but still would be faster using the patched AliTPC class). 2003-07-27 Constantin Loizides diff --git a/HLT/doc/changelog.comp b/HLT/doc/changelog.comp index b8e7d36f1f7..3d4e64f97bf 100644 --- a/HLT/doc/changelog.comp +++ b/HLT/doc/changelog.comp @@ -1,47 +1,47 @@ 2004-05-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c: + * /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c: Removed further warnings (gcc-2). - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.h: Removed warnings. 2004-05-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx: Changes to compile standalone. 2004-05-10 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.h: Removed every dependency to TMath, so that code compiles for STANDALONE version. 2004-04-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: - Included new class AliL3CompressAC in the library. This class is invoked - by default in the AliL3DataCompressor, and can be toggled by the argument - in AliL3DataCompressor::CompressAndExpand(bool). + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: + Included new class AliHLTCompressAC in the library. This class is invoked + by default in the AliHLTDataCompressor, and can be toggled by the argument + in AliHLTDataCompressor::CompressAndExpand(bool). 2004-04-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3CompressAC.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompressAC.h: New class implementing aritmetic coding of the quantized residual information in the data compression scheme. The class derives from - AliL3Compress, and is hence interfaced in the same way. + AliHLTCompress, and is hence interfaced in the same way. 2004-03-20 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: Removed GCCVERSION string from code. Replaced by compiler internal macro __GNUC__ which is 3 for gcc version >3. - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h: Added zvertex. 2004-02-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Added some additional printout features in PrintCompRatio. 2004-02-25 Constantin Loizides @@ -51,24 +51,24 @@ 2004-02-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Added a flag in Init function to test whether this function has been called by the same object before. If that is the case, all internal arrays needs to be cleared before filling them again. Such a check is - necessary e.g. when using AliL3TrackArray::RemoveLast in which the + necessary e.g. when using AliHLTTrackArray::RemoveLast in which the object is _not_ deleted, but merely reused. 2004-02-07 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx: - Two function calls changed to reflect latest changes in AliL3Transform. + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx: + Two function calls changed to reflect latest changes in AliHLTTransform. 2004-02-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Cosmetic change. - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h: Included previously removed code in the WriteRemaining and ReadRemaining functions, which keeps the possibility of _not_ compressing the remaining clusters but storing them as is, meaning with a full floating point @@ -78,60 +78,60 @@ to run the chain without compressing any of the data. Also for debugging purposes only. - * /alice/cvs/hltcvs/level3code/comp/AliL3Models.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h: Reflecting the latest changes in compressing remaining clusters. - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.h: Added possibility to externallly specify which precision to store - the remaining clusters in the AliL3Compress::CompressRemaining function. + the remaining clusters in the AliHLTCompress::CompressRemaining function. This is done by setting the number of bits in - AliL3DataCompressorHelper::SetRemainingBitNumbers. + AliHLTDataCompressorHelper::SetRemainingBitNumbers. 2004-01-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: - Changing the names of data members AliL3ClusterModel::fDSigmaY2 and fDSigmaZ2 + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: + Changing the names of data members AliHLTClusterModel::fDSigmaY2 and fDSigmaZ2 to fDSigmaY and fDSigmaZ, in order to reflect the fact that their are really the sigmas and not sigma squared. - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx: Bugfix. + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx: Bugfix. 2004-01-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx: Bugfix. + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx: Bugfix. 2004-01-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: Bugfix - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h: Added function to make a pass over the data and calculate how many bits is required to encode the residuals (assuming no further compression). - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Added function to calculate entropy of the quantized residuals. 2004-01-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: - Changed back to the old method for quantizing the residuals, since there appeared some strange behaviour when running the code in multi-event mode. It still remains a mystery, so this problem has been postponed and will be solved sometime in the future. - Removed some obsolute code as a result of moving the handling of remaining - clusters from AliL3DataCompressor to AliL3Compress. + clusters from AliHLTDataCompressor to AliHLTCompress. 2004-01-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressorHelper.h, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.h: - Introduced new class AliL3DataCompressorHandler, which is static + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressorHelper.h, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.h: + Introduced new class AliHLTDataCompressorHandler, which is static and capsulates all static calls from the former Compressor class in order to remove some very nasty dependencies. The other classes had to be adapter to call the right static function. - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/Makefile: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/Makefile: Changes to compile for MACOSX at core Makefiles. Check for $(ARCH) and -D$(ARCH). In order to solve cyclic dependencies for libs (which is _very_ bad, but the Linux linker is friendly) @@ -139,24 +139,24 @@ we dont do at the moment. SO: Linux users should see _NO_ difference!!! - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx: Paranoic change :-) 2004-01-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: New functions for quantization of pad and time. 2004-01-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: - Writing remaining clusters to file is now moved to AliL3Compress class. + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: + Writing remaining clusters to file is now moved to AliHLTCompress class. The clusters are now written using the bitio functions, as the data sizes used has been minimized. 2004-01-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: - Modified how the remaining clusters are written (this will probably change again soon). - Added seperate fields for storing the pad and time shape -> can specify @@ -164,60 +164,60 @@ 2003-12-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: Changed the track parameters in the compression scheme. There are now 5 floats (instead of 6) used to encode the properties of the helix. These - are defined (as before) in AliL3Models.h. + are defined (as before) in AliHLTModels.h. - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c: - Removed obsolute code - - Bugfix in the fitting routing in AliL3FitUtilities. + - Bugfix in the fitting routing in AliHLTFitUtilities. - Small change in how the fit range in the padrow plane is estimated. 2003-11-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: This class has to be reworked in order to compile with newer AliRoot versions after june 2003. In order to keep it in the repository I added a define asvversion, which has to MANUALLY be set, if one wants to use that class. The changes are in principle ease, one has to check the interface to the tracker classes and the positions are indicated by the defines. 2003-11-13 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: Added additional data written to file - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h: Added some additional data members and storage 2003-11-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h: Main changes: - New function LocalLocalSegments, for local (patch-like) tracks segments. - Some changes in search ranges and fit ranges. 2003-09-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx: Commented compile breaking due to aliroot changes. 2003-08-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: - - Removed field fNClusters from AliL3TrackModel. The reason is the new scheme + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: + - Removed field fNClusters from AliHLTTrackModel. The reason is the new scheme were the number of clusters is _not_ written for every track. Instead, we assume a potential number of clusters which is equal to the number of padrows in the patch/slice (this number then needs not to written). Then we denote whether a cluster is present or not by writing 1 bit for every padrow. - - The residual quantization (stored in AliL3DataCompressor) is now specified + - The residual quantization (stored in AliHLTDataCompressor) is now specified for the three different pad sizes. - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3OfflineDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTOfflineDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: Splitted handling of offline-data compression and HLT-data compression. - For offline-data input the new class AliL3OfflineDataCompressor is used. - This class is a child of AliL3DataCompressor, and has the exact same interface. + For offline-data input the new class AliHLTOfflineDataCompressor is used. + This class is a child of AliHLTDataCompressor, and has the exact same interface. 2003-07-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx: Changes to compile standalone. * /alice/cvs/hltcvs/level3code/comp/Makefile: @@ -230,12 +230,12 @@ 2003-07-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: Added html tags 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h, /alice/cvs/hltcvs/level3code/comp/bitio.h, /alice/cvs/hltcvs/level3code/comp/errhand.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h, /alice/cvs/hltcvs/level3code/comp/bitio.h, /alice/cvs/hltcvs/level3code/comp/errhand.h: Added html tags for documentation. 2003-07-21 Constantin Loizides @@ -245,7 +245,7 @@ 2003-07-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.h, /alice/cvs/hltcvs/level3code/comp/bitio.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.h, /alice/cvs/hltcvs/level3code/comp/bitio.h: Added extern "C" decleration of the C functions which are used in C++ classes. This was obviously not strictly necessary in some compilers later than 2.95, but when compiling with 2.95 I was not able to link anymore. And it also @@ -255,27 +255,27 @@ 2003-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx: Added gccversion check. 2003-07-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h: - Changed pointer to input data from AliL3MemHandler to AliL3SpacePointData. + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h: + Changed pointer to input data from AliHLTMemHandler to AliHLTSpacePointData. In addition a array of int holding the number of clusters in each - subsector is provided. Same thing as being done in e.g. AliL3Fitter. + subsector is provided. Same thing as being done in e.g. AliHLTFitter. Added option to process on patch-level for various reason. This option is controlled by the flag fSinglePatch set in LoadData, and should only be used with care, since there are some functions which expects whole slices; these have to be changed when running fSinglePatch=0. - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Forgot this one last time - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx: Cosmetic changes only - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx: Changed the return of most functions ot boolean, in order to perform external checks when things are not working. Also changed the comparison of original data to those of 8 bit data, and @@ -283,20 +283,20 @@ 2003-06-04 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c: + * /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c: Stop writing error messages all the time - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx: - Fixed a memory leakage problem in FitClusters. - In LoadSeeds, enable the possibility of track extending over 3 sectors. 2003-05-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: Minor updates connected to last checkin. - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Stable version again. Taking offline tracks as input for cluster fitting seem to work now. However, when finding and fitting clusters this way, and using these clusters as input for compression, the final offline tracking @@ -307,55 +307,55 @@ 2003-05-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h: Bugfix. In CheckCluster one has to check whether a fit attempt has been done by track->IsSet(row). This was earlier done in FitClusters, but this produced some memory leakage. 2003-04-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: Bugfix in CalculateClusterWidths 2003-04-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Changes: - - AliL3ClusterFitter/AliL3ModelTrack : - One bit in AliL3ClusterModel::fPresent is reserved for fit attempt - - Enable multiple event handling in AliL3DataCompressor + - AliHLTClusterFitter/AliHLTModelTrack : + One bit in AliHLTClusterModel::fPresent is reserved for fit attempt + - Enable multiple event handling in AliHLTDataCompressor - * /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h: Added function LoadOfflineData, which allows to use offline reconstruced tracks as input for the compression. 2003-04-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: - Mostly cleaning up and making nicer code. Some changes in AliL3ClusterFitter: - -WriteClusters has been moved from AliL3Modeller. + * /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: + Mostly cleaning up and making nicer code. Some changes in AliHLTClusterFitter: + -WriteClusters has been moved from AliHLTModeller. -Implementation of seeds coming from tracking in outer padrows. 2003-04-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: New version of compression classes. The main changes are: - - AliL3DataCompressor has been completely rewritten. Instead of + - AliHLTDataCompressor has been completely rewritten. Instead of storing remaining digits, the remaining clusters are stored. Also, the remaining clusters which are stored can be cleaned, meaning that one only stores clusters which are on certain padrows. In particular one stores everything which is on padrows used for seeding in offline. - - New data structures for remaining clusters in AliL3Models.h - - Some bugfixes in AliL3ModelTrack. In CalculateClusterWidths, + - New data structures for remaining clusters in AliHLTModels.h + - Some bugfixes in AliHLTModelTrack. In CalculateClusterWidths, one can specify a flag to parametrize cluster errors from the cluster widths. 2003-03-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx: - Removed cluster charge field from the AliL3TrackModel, since it is - not used anyhow. Some fixes in AliL3ModelTrack, most important one + * /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx: + Removed cluster charge field from the AliHLTTrackModel, since it is + not used anyhow. Some fixes in AliHLTModelTrack, most important one a bug in destructor where not everything was deleted. 2003-02-24 Constantin Loizides @@ -365,7 +365,7 @@ 2003-02-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h, /alice/cvs/hltcvs/level3code/comp/Makefile: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h, /alice/cvs/hltcvs/level3code/comp/Makefile: Checking in all changes which gas been done the latest month. Basically a lot of rewrites, specially in the cluster fitter class. All code was tagged before this checkin. @@ -377,64 +377,64 @@ 2002-11-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliL3FitUtilities.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTClusterFitter.h, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.c, /alice/cvs/hltcvs/level3code/comp/AliHLTFitUtilities.h: Checking in the seeds of new cluster fitting code. 2002-10-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx: More or less working version now. Everything is handled in the - AliL3DataCompressor class. Remaining digits are written to rootfile - and processed by the offline cluster finder. In AliL3Modeller::CheckCluster + AliHLTDataCompressor class. Remaining digits are written to rootfile + and processed by the offline cluster finder. In AliHLTModeller::CheckCluster it is also checked how big/small the cluster is in order not to save overlapping/noise clusters. 2002-10-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3DataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTDataCompressor.h, /alice/cvs/hltcvs/level3code/comp/Makefile: New interface class for the compression classes. Contains all the functions needed to do the different steps; modelling - compressing - uncompressing - running offline etc. 2002-10-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Changed parameters of WriteRootFile 2002-10-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h: - Added new function AliL3Modeller::CheckCluster. Function checks if the + * /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h: + Added new function AliHLTModeller::CheckCluster. Function checks if the cluster corresponding to a certain track crossing point is a good cluster; if it is isolated and only 1 peak. If not, cluster is saved as remaining digits. 2002-10-11 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: - Can print compression ratio to file in AliL3Compress::PrintCompRatio. - Minor changes to AliL3Modeller; differ between fTimeOverlap (pad) + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: + Can print compression ratio to file in AliHLTCompress::PrintCompRatio. + Minor changes to AliHLTModeller; differ between fTimeOverlap (pad) and fTimeSearch (newly added boolean). The latter is used when searhcing for a cluster around the track crossing point, while the first is only used when checking for overlaps. 2002-10-04 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Some changes resulting from last week work. The mc stuff has been removed. Added possibility to not save the width when compressing file; this is one - by setting the flag AliL3Compress::fWriteShape. + by setting the flag AliHLTCompress::fWriteShape. The status of the code is that it seems to be more or less working. The efficiency drops a little bit when running it through offline, but this is mainly because overlapping clusters are not deconvoluted, and 2 clusters found by the offline cluster finder will be 1 cluster after compressing/ decompressing. The only way to get rid of this, is to include some - deconvolution in the AliL3Modeller::FindClusters. + deconvolution in the AliHLTModeller::FindClusters. 2002-08-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/Makefile: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/Makefile: Little changes to make g++ version 3.2 compile the comp library. 2002-07-11 Constantin Loizides @@ -444,10 +444,10 @@ 2002-07-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Added possibility to compile and run with mc information. This was done - by adding a new data member to AliL3ClusterModel (in AliL3Models.h), and - a function AliL3Modeller::GetTrackID. + by adding a new data member to AliHLTClusterModel (in AliHLTModels.h), and + a function AliHLTModeller::GetTrackID. 2002-07-02 Constantin Loizides @@ -460,22 +460,22 @@ 2002-05-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Forgot this one last time... - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx: Latest version + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx: Latest version 2002-05-30 Constantin Loizides - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/bitio.c, /alice/cvs/hltcvs/level3code/comp/bitio.h, /alice/cvs/hltcvs/level3code/comp/errhand.c, /alice/cvs/hltcvs/level3code/comp/errhand.h: - Changes to make AliL3Compress work with new AliL3MemHandler::Init. + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/bitio.c, /alice/cvs/hltcvs/level3code/comp/bitio.h, /alice/cvs/hltcvs/level3code/comp/errhand.c, /alice/cvs/hltcvs/level3code/comp/errhand.h: + Changes to make AliHLTCompress work with new AliHLTMemHandler::Init. 2002-05-22 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/comp/run.C: Macro that should lie in exa - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Models.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h, /alice/cvs/hltcvs/level3code/comp/bitio.c: - Moving to static AliL3Transform. + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h, /alice/cvs/hltcvs/level3code/comp/bitio.c: + Moving to static AliHLTTransform. Some changes has been made since last checkin; some smaller bugfixes everywhere. The number of pads in a cluster is stored, because there are some cluster containing only 1 pad which create problems @@ -507,17 +507,17 @@ * /alice/cvs/hltcvs/level3code/comp/Makefile: Can compile with or without aliroot. - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: - A bugfix in AliL3Modeller::FindClusters. Changed parameter list in AliL3ModelTrack::GetParSigma**. Added function AliL3Compress::PrintCompRatio. + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: + A bugfix in AliHLTModeller::FindClusters. Changed parameter list in AliHLTModelTrack::GetParSigma**. Added function AliHLTCompress::PrintCompRatio. 2002-03-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: - Major bugfix in AliL3Compress::WriteRestoredData(). Also added naming conventions on the various data files. + * /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: + Major bugfix in AliHLTCompress::WriteRestoredData(). Also added naming conventions on the various data files. 2002-03-15 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h: Checking in for the weekend. Compressing/uncompressing works. Restoring data - building clusters seem to work, at least for one track. 2002-02-05 Anders Strand Vestbo @@ -528,12 +528,12 @@ * /alice/cvs/hltcvs/level3code/comp/Makefile: Minor updates - * /alice/cvs/hltcvs/level3code/comp/AliL3Models.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModels.h: Data structures for track and clusters * /alice/cvs/hltcvs/level3code/comp/run.C: Example how to run script - * /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h: Checking in for the weekend 2002-01-31 Anders Strand Vestbo @@ -543,11 +543,11 @@ * /alice/cvs/hltcvs/level3code/comp/bitio.h, /alice/cvs/hltcvs/level3code/comp/errhand.c, /alice/cvs/hltcvs/level3code/comp/errhand.h, /alice/cvs/hltcvs/level3code/comp/bitio.c: Functions for bitio. Taken as is from The Data Compression Book - * /alice/cvs/hltcvs/level3code/comp/AliL3Compress.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Compress.h: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTCompress.h: Class for doing model compression 2002-01-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/comp/AliL3CompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.h, /alice/cvs/hltcvs/level3code/comp/Makefile, /alice/cvs/hltcvs/level3code/comp/rootlogon.C, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.h, /alice/cvs/hltcvs/level3code/comp/AliL3ModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliL3Modeller.cxx: + * /alice/cvs/hltcvs/level3code/comp/AliHLTCompLinkDef.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.h, /alice/cvs/hltcvs/level3code/comp/Makefile, /alice/cvs/hltcvs/level3code/comp/rootlogon.C, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.h, /alice/cvs/hltcvs/level3code/comp/AliHLTModelTrack.cxx, /alice/cvs/hltcvs/level3code/comp/AliHLTModeller.cxx: Started classes for modeling and compression diff --git a/HLT/doc/changelog.doc b/HLT/doc/changelog.doc index 7d755ab7d28..e3d460b7a6a 100644 --- a/HLT/doc/changelog.doc +++ b/HLT/doc/changelog.doc @@ -32,7 +32,7 @@ 2003-07-29 Constantin Loizides * /alice/cvs/hltcvs/level3code/doc/README: - Removed ASV version, as the new AliL3FileHandler does not need (but still would be faster using the patched AliTPC class). + Removed ASV version, as the new AliHLTFileHandler does not need (but still would be faster using the patched AliTPC class). 2003-07-27 Constantin Loizides diff --git a/HLT/doc/changelog.exa b/HLT/doc/changelog.exa index 2b6f4b15efc..269d704730d 100644 --- a/HLT/doc/changelog.exa +++ b/HLT/doc/changelog.exa @@ -77,7 +77,7 @@ 2003-10-10 Thomas Vik * /alice/cvs/hltcvs/level3code/exa/runkalman.C: - Added call to function AliL3Transform::Init. + Added call to function AliHLTTransform::Init. 2003-10-02 Anders Strand Vestbo @@ -191,7 +191,7 @@ Added check for pileup event to have more than 5 tracks. * /alice/cvs/hltcvs/level3code/exa/rootlogon.C: - Default is AliL3Logger now + Default is AliHLTLogger now 2003-04-14 Constantin Loizides @@ -281,12 +281,12 @@ 2003-03-05 Thomas Vik * /alice/cvs/hltcvs/level3code/exa/trigger_pp.C: - Added AliL3Evaluate::AssignIDs function. + Added AliHLTEvaluate::AssignIDs function. 2003-03-05 Constantin Loizides * /alice/cvs/hltcvs/level3code/exa/trigger_pp.C: - Added eval_pp function as a quick reference how to use the AliL3Eval class. + Added eval_pp function as a quick reference how to use the AliHLTEval class. 2003-03-03 Constantin Loizides @@ -377,7 +377,7 @@ Copy of Anders rootlogin. * /alice/cvs/hltcvs/level3code/exa/make_init.C: - Not needed -> see AliL3Transform::MakeInit(). + Not needed -> see AliHLTTransform::MakeInit(). 2003-02-21 Thomas Vik @@ -446,7 +446,7 @@ Moved Binary.C to binary.C. * /alice/cvs/hltcvs/level3code/exa/Display.C: - Deleted as functionality is now in dislplay.C and AliL3Display class. + Deleted as functionality is now in dislplay.C and AliHLTDisplay class. * /alice/cvs/hltcvs/level3code/exa/make_init.C, /alice/cvs/hltcvs/level3code/exa/Make_Init.C: Moved Make_Init.C to make_init.c. @@ -457,8 +457,8 @@ 2002-09-02 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/exa/Make_Init.C: - Moved this functionaly to a functio in AliL3Transform::MakeInitFile. - This macro can now be used to create default values for AliL3Transform.cxx. + Moved this functionaly to a functio in AliHLTTransform::MakeInitFile. + This macro can now be used to create default values for AliHLTTransform.cxx. 2002-08-29 Constantin Loizides @@ -475,7 +475,7 @@ 2002-06-10 Constantin Loizides * /alice/cvs/hltcvs/level3code/exa/Binary.C: - Make singlepatch work with new AliL3Transform. + Make singlepatch work with new AliHLTTransform. 2002-05-29 Anders Strand Vestbo @@ -489,7 +489,7 @@ Renamed houghtest.C to runhough.C * /alice/cvs/hltcvs/level3code/exa/houghtest.C: - Some minor changes in AliL3Hough + Some minor changes in AliHLTHough 2002-05-24 Constantin Loizides @@ -524,7 +524,7 @@ 2002-04-26 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/exa/Binary.C, /alice/cvs/hltcvs/level3code/exa/Make_Init.C: - Changes as a result of making AliL3Transform static. + Changes as a result of making AliHLTTransform static. 2002-04-23 Anders Strand Vestbo @@ -605,7 +605,7 @@ 2001-05-03 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/exa/Eval.C: - Example how to use AliL3Evaluate class + Example how to use AliHLTEvaluate class 2001-05-01 Uli Frankenfeld @@ -613,7 +613,7 @@ 2001-04-06 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/exa/eval.C: Exampel to use AliL3Evaluate + * /alice/cvs/hltcvs/level3code/exa/eval.C: Exampel to use AliHLTEvaluate 2001-03-26 Uli Frankenfeld diff --git a/HLT/doc/changelog.hough b/HLT/doc/changelog.hough index 00164c89145..ce3468498b4 100644 --- a/HLT/doc/changelog.hough +++ b/HLT/doc/changelog.hough @@ -1,140 +1,140 @@ 2004-05-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx: Added define for AliHLTReconstructor. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added ifdefs for new_io runloader handling. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: changed abs to fabs. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx: Removed further compiler warnings. 2004-05-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx: Removed compiler warnings. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Needed to compile standalone. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.h: Newer, much faster and very efficient HT on rows (Cvetan). - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h: Added binsizes and proper setting of most parameters. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h: Added Cvetans Peakfinder. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx: Added support for runloader, and Cvetans Hough Transform and PeakFinder (version 4). - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added support for runloader. - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Take bin values at borders. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Removed gcc warning. 2004-05-07 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Needed to compile in aliroot. 2004-04-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx: Make code compilable without specifying the ROWHOUGH compiling option 2004-03-28 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h: Added old type for label. 2004-03-20 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx: Removed GCCVERSION string from code. Replaced by compiler internal macro __GNUC__ which is 3 for gcc version >3. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h: Added zvertex. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added new row transformer (using special peakfinder method) Added in addition support for reading data directly from DATE, so that this version of hough transform can run directly on the GDCs or during some data challenges for testing. (changed methods init and constructor) - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Added GetPreciseBinCenter functions. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx: Cosmetics. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h: Added FindAdaptedRowPeaks function for row transformer. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Added ROWHOUGH def for mc label. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h: Added zvertex information. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Added new row transformer and removed old gap transformer. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGap.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGap.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerRow.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGap.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGap.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerRow.h: Added Cvetans new version of fast Hough Transform called "Counting Gaps and Rows." The idea is to count the number of consecutive rows over gaps per entry of the Hough space. (The old version called - AliL3HoughTransformGap is removed.) + AliHLTHoughTransformGap is removed.) 2004-02-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGap.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGap.cxx: Forgot to implement to virtual functions. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGap.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGap.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGap.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGap.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Added new transformer which is counting gaps in rows. not really tested yet. 2004-02-10 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Bugfix in multievent handling reading from aliroot-files: - Before reading a new event, AliL3FileHandler::FreeDigitsTree() has + Before reading a new event, AliHLTFileHandler::FreeDigitsTree() has to be called, otherwise the same event is read again. 2004-02-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: - Removed occurencence of static and non const values like pi and BFACT. Use instead const functions given by AliL3Transform. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: + Removed occurencence of static and non const values like pi and BFACT. Use instead const functions given by AliHLTTransform. 2004-02-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h: Faster histo access. - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Bugfix for gcc-3.2; and fast filling methods, added switch to omit boundary checks, should be checked. 2004-02-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Reworked the LUT version of the Hough Transform. This should be the default transformer now, it is 3 times faster than the normal transformer. It produces almost the same peaks, in a central event, a few differ. The reason seems to be due to rounding. The efficiency of the deconvoluter is verified to be the same, too. - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Added ostream& < - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Changes to compile for MACOSX at core Makefiles. Check for $(ARCH) and -D$(ARCH). In order to solve cyclic dependencies for libs (which is _very_ bad, but the Linux linker is friendly) @@ -144,73 +144,73 @@ 2003-11-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h: - Added an extra argument to function AliL3HoughMaxFinder::FindAdaptedPeaks. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h: + Added an extra argument to function AliHLTHoughMaxFinder::FindAdaptedPeaks. 2003-11-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added support for different file types such as root, binary and DDL files. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Commented to get rid of a compiler warning here. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Changed argument in CreateHistograms from Double to Float. 2003-11-13 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx: Minor changes. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.h: Smaller bugfixes, nothing important - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Bugfix in FindAdaptedPeaks 2003-11-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Checking in latest changes. The code is at the moment quite messy, but so is my head. Main changes: - - The AliL3Hough class has some new functions. + - The AliHLTHough class has some new functions. -SetTransformerParams, which basically sets the parameters of the histograms. -SetPeakThreshold() -AddTracks which adds the tracks to a global array (called for each slice) - - Default peak finder algorithm is now AliL3HoughMaxFinder::FindAdaptedPeaks(). + - Default peak finder algorithm is now AliHLTHoughMaxFinder::FindAdaptedPeaks(). 2003-10-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx: Bugfix in the calculation of bin size in kappa. The bin size should be 2*delta_pt, since the size of one bin is +-1/2*delta_pt. 2003-08-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: - Bugfix from last changes of AliL3HistogramAdaptive. Also some minor - changes in AliL3Histogram class. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: + Bugfix from last changes of AliHLTHistogramAdaptive. Also some minor + changes in AliHLTHistogram class. 2003-08-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h: Added a LUT in order to speed up retrieval of bin numbers. 2003-08-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx: - Follow change in base class AliL3Merger. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx: + Follow change in base class AliHLTMerger. 2003-07-28 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx: Added std for gcc-3 2003-07-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/Makefile.standalone: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/Makefile.standalone: Removed, use ALIHLT_USEPACKAGE=STANDALONE instead. 2003-07-25 Constantin Loizides @@ -218,18 +218,18 @@ * /alice/cvs/hltcvs/level3code/hough/Makefile: Changes to reflect the new makefile strategy. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx: g++ 3.3.1 requires explicit cast. 2003-07-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: Added html tags for documentation. Some of the classes has also undergone smaller modifications, - hopefully not too critical. 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Added html tags for documentation. 2003-07-21 Constantin Loizides @@ -239,41 +239,41 @@ 2003-07-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.h: Bugfix and some changes. Changes in the code which caclculates border line where to do the transform. 2003-07-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Changed Draw function, because it didn't work. 2003-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx: Changes for gcc-3.3; solved some virtual overload function ambiguosities. 2003-05-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerGlobal.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerGlobal.h: Transform global regions 2003-05-13 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx: Little bug fix. 2003-04-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Bugfix in Max Finder borders thanks to Sondre. 2003-02-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h: Optimize for speed. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Added adding of a one but commented it out again. 2003-02-24 Constantin Loizides @@ -283,21 +283,21 @@ 2003-02-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Checking in all the changes for the last couple of months. All files were tagged prior to this checkin. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerNew.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerNew.h: 3D transform 2003-02-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Set fDoMC to kFALSE in ctor. Also fill the charge in the transform. 2003-01-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h: Commented class which is defined in Makefile 2003-01-17 Anders Strand Vestbo @@ -307,24 +307,24 @@ 2003-01-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx: Minor bugfix 2002-12-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h: Generate data now in 3 dimensions. This means that the clusters are really 2d for every padrow. Timedirection is gauss smeared according to the drift distance. 2002-12-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h: Several bugfixes 2002-12-10 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTest.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTest.h: Checking in code which until now only existed as macros in my home directory. The class contains functions to generate data, which should resemble tpc rawdata without any geant stuff in of @@ -333,174 +333,174 @@ 2002-12-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h: Seems to be working properly now. 2002-11-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx: Fill charge as default 2002-11-15 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx: Added Kappa information. 2002-11-13 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx: Changes to show that do_mc is not yet working. Everything else is and was working now. 2002-10-01 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: - Added new function AliL3Hough::MergeEtaSlices which merges tracks which + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: + Added new function AliHLTHough::MergeEtaSlices which merges tracks which appear in 2 neighbouring eta slices. The tracks are matching if they have identical kappa and psi; they appear in the same bin. The one with the lower threshold are removed from the track array. - There is also a bugfix in AliL3HoughTransformer::GetEta, the sign should + There is also a bugfix in AliHLTHoughTransformer::GetEta, the sign should not be swicthed on the other half of TPC, because the sign is already included in the (GetEtaMax() - GetEtaMin()). - Also the DoMC flag in the AliL3HoughTransformer ctor. + Also the DoMC flag in the AliHLTHoughTransformer ctor. 2002-09-05 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Changes done for new aliroot version. Faster calculation through saving LUT for kappa. 2002-09-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx: - Read from rootfile called digitfile.root in AliL3Hough.cxx. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx: + Read from rootfile called digitfile.root in AliHLTHough.cxx. Bugfix in the rest. 2002-08-29 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: Cosmetic. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Cosmetic. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx: Added default values to default constructor. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: New VHDL transformer code. Implemented iterative approach. Old code moved locally to *.old. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h: Small bugfix concerning calculation of eta. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added LUT transformer and new function to set parameter for VHDL transformer. 2002-08-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: - Include AliL3StandardIncludes.h in AliL3HistogramAdaptive as well, and not in AliL3Histogram.h + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: + Include AliHLTStandardIncludes.h in AliHLTHistogramAdaptive as well, and not in AliHLTHistogram.h - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h: Made Constantins last checkin compile ;-) 2002-08-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Little changes to make g++ version 3.2 compile the hough library. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: - Merged version. Bug still remains. New implementation started with AliL3HoughTransformerLUT. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: + Merged version. Bug still remains. New implementation started with AliHLTHoughTransformerLUT. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerLUT.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerLUT.h: Fast Hough transformer using extensivle LUT for geometry and cos/sin functions. 2002-08-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Some new changes in the adaptive histogram. Binsize in kappa are determined - from a given Pt resolution. Changes in AliL3Histogram class in order to make + from a given Pt resolution. Changes in AliHLTHistogram class in order to make the corresponding functions virtual, and the data members protected. 2002-08-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Another bugfix connected to fTrackID histograms - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Added private data member Bool_t fDoMC, in order to control the mc information storage. Default is switched off, because it currently uses _a lot_ of memory. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Bugfix from the last checkin 2002-08-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx: - Cosmetic changes, and a new function AliL3Hough::ProcessPatchIter. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx: + Cosmetic changes, and a new function AliHLTHough::ProcessPatchIter. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Cosmetic changes. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Added mc functionality. If compiled with do_mc flag, the transformer will fill arrays which are similar to the histograms with the particle id's of the digits. The corresponding id of a given bin in a histogram, can - be obtained by the function AliL3HoughTransformer::GetTrackID. The id + be obtained by the function AliHLTHoughTransformer::GetTrackID. The id returned is the id with the most hits in the corresponding bin. 2002-08-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HistogramAdaptive.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogramAdaptive.h: New histogram class in order to have a nonlinear binsize. 2002-08-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughClusterTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughClusterTransformer.h: New toy class which works on clusters found by the fast cluster finder. Not included in Makefiles yet. 2002-08-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Also add the number of entries when adding 2 histograms. 2002-08-07 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Changed the content array (fContent) of the histogram to integers instead of double. In principle only integer is needed, and I really don't remember now why I set it to be double. 2002-08-01 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: Slice information is needed by the transformer in - AliL3HoughTransformer::GetEta, because the the sign + AliHLTHoughTransformer::GetEta, because the the sign of the eta changes on the other half of the TPC. - Minor change in AliL3HoughMaxFinder; adjusted the + Minor change in AliHLTHoughMaxFinder; adjusted the interface of FindPeak1 in order to be consistent. 2002-07-31 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: - Get the BField from AliL3Transform. This was hardcoded up to now. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: + Get the BField from AliHLTTransform. This was hardcoded up to now. 2002-07-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h: New code which is much closer to the possible VHDL implementation. Should also be considerably faster (40 percent) than the normal transformer, but unfortunately has some bugs. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Little changes to make it work with GetEta function of HoughTransformer. Also litte changes to make it work and debug with the VHDL Hough Transformer. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Little changes to make it work with new base class. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h: Added virtual function Init for setting the slice, patch and n_eta_seg information. Also have GetEta function which calculates eta according to slice info (minus sign) and Print function for debugging to get the parameters used by the VHDL Transformer. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h: Changes for independant library of standalone l3 code. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h: Removed Clusterfinder class from link list. * /alice/cvs/hltcvs/level3code/hough/Makefile: @@ -511,31 +511,31 @@ 2002-07-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: New function, CreateRootHisto(). Just to seperate it from Draw 2002-07-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Merging my version with Constantins last checkin. New function added EvaluatePatch(), which only looks in 1 patch, instead of globally looking at the slice. - Small bugfix in AliL3HoughEval. + Small bugfix in AliHLTHoughEval. 2002-07-05 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added function SetTransformerParams for setting Histogram Parameters of Transformer. And some litte code cleanups, see Init function. 2002-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Gradient check reverted, but also commented out. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h: Have definable geometry file. - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Add version support for vhdl hough. * /alice/cvs/hltcvs/level3code/hough/Makefile: @@ -547,87 +547,87 @@ 2002-05-31 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: - Some changes in AliL3Hough::Evaluate. Comments have been added in the code. - Added some timing outputs in AliL3Hough. - In AliL3HoughEval::LookInsideRoad; removed the check whether the tracks is + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: + Some changes in AliHLTHough::Evaluate. Comments have been added in the code. + Added some timing outputs in AliHLTHough. + In AliHLTHoughEval::LookInsideRoad; removed the check whether the tracks is leaving the slice; because this fails when the tracks is bending _in_ to the slice. In the argument, one can also access the number of padrows which where good; meaning padrows along the road which had signal. - In AliL3HoughMaxFinder; currently the check for the gradient is commented out. + In AliHLTHoughMaxFinder; currently the check for the gradient is commented out. 2002-05-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: - Bugfix in AliL3Hough::FindTrackCandidates; when track->SetEta, one has to + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: + Bugfix in AliHLTHough::FindTrackCandidates; when track->SetEta, one has to check the current slice, in order to get minus sign on other half of TPC. - Included an upper threshold in AliL3HoughBaseTransformer; all digits with + Included an upper threshold in AliHLTHoughBaseTransformer; all digits with high values than this are not transformed. 2002-05-29 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Made display class work. Also added it to makefile. 2002-05-29 Constantin Loizides - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformerVhdl.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformerVhdl.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Changes done to include new ALiL3HoughTransformerVhdl. 2002-05-29 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Made it possible to read different and several events from rootfile. Also included a ntuppel, for storing different characteristics of the - peaks in AliL3HoughMaxFinder. + peaks in AliHLTHoughMaxFinder. 2002-05-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx: Bugfix in line 314; paranthes missing - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Moved GetGoodParticles to alimacros 2002-05-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/Makefile: Can now use 8 bit data as input, by setting the apropriate - flag in AliL3Hough::Init. + flag in AliHLTHough::Init. 2002-05-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: - Cleaning up. Made some changes in AliL3HoughMaxFinder. Peaks are now + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: + Cleaning up. Made some changes in AliHLTHoughMaxFinder. Peaks are now stored in private arrays, and does not have to be passed as arguments for every function. Instead, they should be reached with getters. - Some minor cleaning was also done in AliL3Hough and AliL3HoughEval. + Some minor cleaning was also done in AliHLTHough and AliHLTHoughEval. 2002-05-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Forgot to remove #include in previous checkin - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: - Get the Bfield from AliL3Transform + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: + Get the Bfield from AliHLTTransform 2002-04-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx: - Changes as a result of making AliL3Transform static. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx: + Changes as a result of making AliHLTTransform static. 2002-04-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile: - Some additional changes related to the previous changes. AliL3Transform - object has now to be passed to the AliL3HoughBaseTransformer in order to - avoid giving the path where the config file is to the AliL3HoughBaseTransformer + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + Some additional changes related to the previous changes. AliHLTTransform + object has now to be passed to the AliHLTHoughBaseTransformer in order to + avoid giving the path where the config file is to the AliHLTHoughBaseTransformer object. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: - Made a new abstract base class; AliL3HoughBaseTransformer for different implementations + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughBaseTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: + Made a new abstract base class; AliHLTHoughBaseTransformer for different implementations of the circle Hough transform. All the member functions which were previously in - AliL3HoughTransformer are virtual in this class, and should be appropriately overloaded + AliHLTHoughTransformer are virtual in this class, and should be appropriately overloaded in the underlying implementations. 2002-04-23 Anders Strand Vestbo @@ -637,7 +637,7 @@ 2002-04-20 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: More comments for documentation. 2002-04-18 Constantin Loizides @@ -657,7 +657,7 @@ 2002-04-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.h: MergeEtaSlices and MergeTracks are currently empty. * /alice/cvs/hltcvs/level3code/hough/Makefile: @@ -670,8 +670,8 @@ 2002-04-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile: - Added function AliL3HoughTransformer::GetEtaIndex. Modified AliL3Hough::WriteTracks. + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + Added function AliHLTHoughTransformer::GetEtaIndex. Modified AliHLTHough::WriteTracks. 2002-02-05 Anders Strand Vestbo @@ -682,7 +682,7 @@ * /alice/cvs/hltcvs/level3code/hough/Makefile: Minor updates - * /alice/cvs/hltcvs/level3code/hough/Makefile.standalone, /alice/cvs/hltcvs/level3code/hough/rootlogon.C, /alice/cvs/hltcvs/level3code/hough/test.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx: + * /alice/cvs/hltcvs/level3code/hough/Makefile.standalone, /alice/cvs/hltcvs/level3code/hough/rootlogon.C, /alice/cvs/hltcvs/level3code/hough/test.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx: Checking in for the weekend 2002-01-23 Anders Strand Vestbo @@ -690,12 +690,12 @@ * /alice/cvs/hltcvs/level3code/hough/Makefile: New makefile. Written by me, hence better - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h: Should only have one of these files 2002-01-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: SetNHits, in order to make the IO work in memhandler class. 2002-01-18 Anders Strand Vestbo @@ -703,23 +703,23 @@ * /alice/cvs/hltcvs/level3code/hough/Makefile.standalone: Makefile for standalone program - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx: Minor changes * /alice/cvs/hltcvs/level3code/hough/test.C: More functions - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Added SetTgl in Set() - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx: Added test if the track is leaving the sector, in that case this should be taken account for when evaluating the number of rows it should cross. 2001-12-10 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h, /alice/cvs/hltcvs/level3code/hough/test.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h, /alice/cvs/hltcvs/level3code/hough/test.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Checking in latest changes. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughGlobalMerger.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughIntMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughGlobalMerger.cxx: Merging classes 2001-11-27 Anders Strand Vestbo @@ -728,20 +728,20 @@ 2001-11-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughDisplay.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughDisplay.h: New display class 2001-11-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Bugfix in SetTrackParameters, wrong charge... 2001-11-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: - Moved AliL3HoughTrack to hough + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + Moved AliHLTHoughTrack to hough - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTrack.cxx: Moved classes from src 2001-11-13 Anders Strand Vestbo @@ -749,44 +749,44 @@ * /alice/cvs/hltcvs/level3code/hough/rootlogon.C: New path to Timms shared library - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Possible to compile without ROOT * /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h: Possible to specify a number of slices, instead of only one - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h: Added some histos in CompareMC, and new function FindEta() - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: UpdateRowPointer is now static function in memhandler. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.h: Changed name of merger - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerger.h: - Changed name of merger to AliL3HoughMerger + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerger.h: + Changed name of merger to AliHLTHoughMerger 2001-11-07 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram1D.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram1D.h: Added 1D histograms. 2001-10-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Latest update, bugfix i think - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h: Added function CompareMC - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx: Bugfix in destructor etc. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Added Reset function - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/Makefile: Added function GetGoodParticles * /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.h, /alice/cvs/hltcvs/level3code/hough/GetGoodParticles.cxx: @@ -797,26 +797,26 @@ * /alice/cvs/hltcvs/level3code/hough/rootlogon.C, /alice/cvs/hltcvs/level3code/hough/test.C: results of cleanup - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Rewriting and cleaning up - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h: blabla + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h: blabla - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Added threshold 2001-09-18 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/hough/test.C: Adding example macro - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Added function Add - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: Bugfix + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Bugfix - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h: 6 patches + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h: 6 patches - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Cleaning up a lot 2001-07-30 Anders Strand Vestbo @@ -830,87 +830,87 @@ 2001-07-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Updating - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h: Added histoclass - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Some changes - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h: Added to constants + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h: Added to constants - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h: Just testing 2001-06-29 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Major changes 2001-06-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx: Wrote a new class 2001-04-06 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/testPF.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C: + * /alice/cvs/hltcvs/level3code/hough/testPF.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C: Updating before easter 2001-03-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Transform.h, /alice/cvs/hltcvs/level3code/hough/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx: Removed obsolete code, and removed a typo - * /alice/cvs/hltcvs/level3code/hough/AliL3Hough.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Hough.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHough.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHough.h: Added new base class - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.cxx: Removed obsolete code - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/testPF.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile, /alice/cvs/hltcvs/level3code/hough/testPF.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx: Updating changes before the weekend 2001-03-26 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/hough/testPF.C: Added a macro - * /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h, /alice/cvs/hltcvs/level3code/hough/hough.C: + * /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h, /alice/cvs/hltcvs/level3code/hough/hough.C: General updates - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx: Debugging update 2001-03-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h: Added new peakfinder 2001-03-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C, /alice/cvs/hltcvs/level3code/hough/rootlogon.C: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C, /alice/cvs/hltcvs/level3code/hough/rootlogon.C: Imported Hough code - * /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Histogram.h, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C, /alice/cvs/hltcvs/level3code/hough/rootlogon.C: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHistogram.h, /alice/cvs/hltcvs/level3code/hough/hough_mergehistos.C, /alice/cvs/hltcvs/level3code/hough/rootlogon.C: New file. - * /alice/cvs/hltcvs/level3code/hough/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Transform.h, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/hough_line.C, /alice/cvs/hltcvs/level3code/hough/hough_line_merge.C, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/hough_line.C, /alice/cvs/hltcvs/level3code/hough/hough_line_merge.C, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile: Imported Hough code - * /alice/cvs/hltcvs/level3code/hough/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3Transform.h, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/hough_line.C, /alice/cvs/hltcvs/level3code/hough/hough_line_merge.C, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile: + * /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/hough/hough.C, /alice/cvs/hltcvs/level3code/hough/hough_line.C, /alice/cvs/hltcvs/level3code/hough/hough_line_merge.C, /alice/cvs/hltcvs/level3code/hough/hough_merge.C, /alice/cvs/hltcvs/level3code/hough/Makefile: New file. - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: Imported Hough code - * /alice/cvs/hltcvs/level3code/hough/AliL3HoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughMerge.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughTransformer.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTHoughLinkDef.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMaxFinder.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughMerge.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughPixel.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughTransformer.h: New file. - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h: Imported Hough code - * /alice/cvs/hltcvs/level3code/hough/AliL3Defs.h, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliL3HoughEval.h: + * /alice/cvs/hltcvs/level3code/hough/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.cxx, /alice/cvs/hltcvs/level3code/hough/AliHLTHoughEval.h: New file. diff --git a/HLT/doc/changelog.kalman b/HLT/doc/changelog.kalman index 1f7bd0c5604..02d8d8dc270 100644 --- a/HLT/doc/changelog.kalman +++ b/HLT/doc/changelog.kalman @@ -1,40 +1,40 @@ 2004-05-03 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx: Added MakeSeed function. 2004-03-18 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx: - Change in calling AliL3Transfrom::Global2Local command. + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx: + Change in calling AliHLTTransfrom::Global2Local command. - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: Changed global coordinates of padrows to local. Removed obsolete MakeSeed function. 2004-02-02 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: Added track label to rootfile with the kalman cariables. 2003-10-13 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx: Added function to calculate Chi2 increment. 2003-09-26 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: - Changes to reflect changes in AliL3KalmanTrack::Init. + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: + Changes to reflect changes in AliHLTKalmanTrack::Init. - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx: Changes in the Init-function. 2003-09-22 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h: Changed Init to do filtering without seed making. - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: Changes in make seeds. * /alice/cvs/hltcvs/level3code/kalman/Makefile: @@ -42,29 +42,29 @@ 2003-09-02 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanLinkDef.h: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanLinkDef.h: Removed link to obsolete class. - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: Lots of changes and cleaned up. 2003-08-05 Thomas Vik * /alice/cvs/hltcvs/level3code/kalman/Makefile: Added makefile. - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanLinkDef.h: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanLinkDef.h: *** empty log message *** 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h: Added html tags for documentation. 2003-07-10 Thomas Vik - * /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliL3KalmanTrack.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalmanTrack.cxx: Kalman track class. - * /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.h, /alice/cvs/hltcvs/level3code/kalman/AliL3Kalman.cxx: + * /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.h, /alice/cvs/hltcvs/level3code/kalman/AliHLTKalman.cxx: Base class. diff --git a/HLT/doc/changelog.misc b/HLT/doc/changelog.misc index 6ce7083aca9..84c7f29d22c 100644 --- a/HLT/doc/changelog.misc +++ b/HLT/doc/changelog.misc @@ -1,25 +1,25 @@ 2004-05-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Removed compiler warnings. 2004-03-20 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Removed GCCVERSION string from code. Replaced by compiler internal macro __GNUC__ which is 3 for gcc version >3. - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx: Added namespace for gcc-3.x 2004-02-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx: Bugfix for gcc-3.2 2004-01-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: Changes to compile for MACOSX at core Makefiles. Check for $(ARCH) and -D$(ARCH). In order to solve cyclic dependencies for libs (which is _very_ bad, but the Linux linker is friendly) @@ -27,38 +27,38 @@ we dont do at the moment. SO: Linux users should see _NO_ difference!!! - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReader.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLTPCRawStream.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReader.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLTPCRawStream.h: Update to ALIROOT head version. 2003-11-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx: Added support for Daq datachallenge. - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.h: Added missing header file to compile with head. 2003-11-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx: Added changes to reflect latest developments in the head version. Again, misleadingly I used the newio flag to distiguish from older versions. In principle we should switch to aliroot versions later than 10 2003. 2003-09-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.h: Added Thomas Kuhr changes for upcoming data challenge and aliroot v4-01-00 tag. 2003-08-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReader.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReaderFile.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLRawReader.h, /alice/cvs/hltcvs/level3code/misc/AliL3DDLTPCRawStream.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DDLTPCRawStream.h, /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLDataFileHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReader.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReaderFile.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLRawReader.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLTPCRawStream.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDDLTPCRawStream.h, /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: Added classes for tpc ddl to hlt binary conversion. - * /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.cxx: Added aliroot copyright. 2003-07-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h: Changes to compile standalone. 2003-07-25 Constantin Loizides @@ -66,41 +66,41 @@ * /alice/cvs/hltcvs/level3code/misc/Makefile: Changes to reflect the new makefile strategy. - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h: Cosmetics. + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h: Cosmetics. 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: So it works as in the old version but produces warnings. - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Test if this works for the html generation. - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.h, /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.h, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.h, /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.h, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.h, /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.h, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h: Added html tags for documentation and updated version/copyright info. - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.h, /alice/cvs/hltcvs/level3code/misc/Makefile: - Added the *Real* functions from AliL3Transform. + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + Added the *Real* functions from AliHLTTransform. 2003-07-21 Constantin Loizides * /alice/cvs/hltcvs/level3code/misc/Makefile: - Include updates, take out AliL3TPCMapping and print rootcint. + Include updates, take out AliHLTTPCMapping and print rootcint. - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.h: - Marked AliL3TPCMapping as old and unfinished code. + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.h: + Marked AliHLTTPCMapping as old and unfinished code. - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h: Changes to make work with cint and gcc-3.3.1; changed DEBUG to VHDLDEBUG 2003-05-14 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h: Moved Debug switch to .cxx 2003-04-10 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping.h, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping-iroc.generated, /alice/cvs/hltcvs/level3code/misc/AliL3TPCMapping-oroc.generated, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping.h, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping-iroc.generated, /alice/cvs/hltcvs/level3code/misc/AliHLTTPCMapping-oroc.generated, /alice/cvs/hltcvs/level3code/misc/Makefile: Added new class for TPC mapping. 2003-02-24 Constantin Loizides @@ -110,7 +110,7 @@ 2003-01-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h: Check whether USEFFLOAT variable is set, because if not rootcint returns error message. @@ -127,83 +127,83 @@ 2002-11-14 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h: Added deconvolution. 2002-09-16 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Little bug when reporting row merge error. 2002-09-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h: - Added AliL3Transbit entry. + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h: + Added AliHLTTransbit entry. - * /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.cxx: Little bugfix vor gcc 3.2. - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.h: Cosmetics. - * /alice/cvs/hltcvs/level3code/misc/Makefile: Change for AliL3Transbit. + * /alice/cvs/hltcvs/level3code/misc/Makefile: Change for AliHLTTransbit. - * /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3TransBit.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h: - Moved from AliTransbit to AliL3Transbit. + * /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTTransBit.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h: + Moved from AliTransbit to AliHLTTransbit. 2002-08-29 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.h: Cosmetics. + * /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.h: Cosmetics. 2002-08-27 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx: Merged problems solved. 2002-08-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx: Fixing a serious bug 2002-08-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.h, /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.h, /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/Makefile: Little changes to make g++ version 3.2 compile the misc library. 2002-07-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx: Added some comments 2002-07-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/Makefile: Added AliL3Stopwatch. + * /alice/cvs/hltcvs/level3code/misc/Makefile: Added AliHLTStopwatch. - * /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3Stopwatch.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTStopwatch.h: Class for timing measurements, taken from ROOT and made changes to compile it without ROOT/ALIROOT. 2002-07-07 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.h, /alice/cvs/hltcvs/level3code/misc/Makefile: More exact rounding function, but also much slower. 2002-07-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: Changes for fixed point class. - * /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3FFloat.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTFFloat.h: Class for fixed point operations. - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Comment changes for htlm docu. 2002-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h: Minor changes at comments. - * /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx: Solved bug which gave a difference to the VHLD code. * /alice/cvs/hltcvs/level3code/misc/Makefile: @@ -215,10 +215,10 @@ 2002-06-14 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3VHDLClusterFinder.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTVHDLClusterFinder.h, /alice/cvs/hltcvs/level3code/misc/Makefile: Created cluster finder class that simulates the VHDL cluster finder on Altro data. - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h: Added read support for Altro like data. 2002-06-11 Constantin Loizides @@ -228,21 +228,21 @@ 2002-05-29 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h: Added capability to handle backlinked list properly. 2002-05-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx: Bugfix; Need Init(slice,patch) 2002-05-01 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx: + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx: Bugfix in GetMemorySize. - * /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3DataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h, /alice/cvs/hltcvs/level3code/misc/Makefile: - New class AliL3DataHandler, for handling 8 bit data. Similiar and closely related to its mother AliL3MemHandler. + * /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTDataHandler.h, /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + New class AliHLTDataHandler, for handling 8 bit data. Similiar and closely related to its mother AliHLTMemHandler. 2002-04-23 Anders Strand Vestbo @@ -251,7 +251,7 @@ 2002-04-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h: Added class description comments. * /alice/cvs/hltcvs/level3code/misc/Makefile: @@ -259,12 +259,12 @@ 2002-04-17 Constantin Loizides - * /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliL3AltroMemHandler.h: + * /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.cxx, /alice/cvs/hltcvs/level3code/misc/AliHLTAltroMemHandler.h: Converts Digits in Memory to Altro like back linked list and stores them in Hexadezimal 16 Bit numbers. Ascii or Binary files are supported. - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: - Added AliL3AltroMemHandler. + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + Added AliHLTAltroMemHandler. 2002-04-16 Constantin Loizides @@ -273,6 +273,6 @@ 2002-04-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/misc/AliL3MiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h, /alice/cvs/hltcvs/level3code/misc/Makefile: + * /alice/cvs/hltcvs/level3code/misc/AliHLTMiscLinkDef.h, /alice/cvs/hltcvs/level3code/misc/AliTransBit.cxx, /alice/cvs/hltcvs/level3code/misc/AliTransBit.h, /alice/cvs/hltcvs/level3code/misc/Makefile: Conversion table class for 10-8bit compression. diff --git a/HLT/doc/changelog.programs b/HLT/doc/changelog.programs index 58f0eaa3100..8adcf67cd32 100644 --- a/HLT/doc/changelog.programs +++ b/HLT/doc/changelog.programs @@ -191,7 +191,7 @@ 2002-07-05 Constantin Loizides * /alice/cvs/hltcvs/level3code/programs/Makefile, /alice/cvs/hltcvs/level3code/programs/read.cxx, /alice/cvs/hltcvs/level3code/programs/runit.cxx, /alice/cvs/hltcvs/level3code/programs/runvhdlcf.cxx: - Changes to use AliL3Logger correctly in standalone programs. + Changes to use AliHLTLogger correctly in standalone programs. 2002-07-02 Constantin Loizides @@ -221,7 +221,7 @@ 2002-06-10 Constantin Loizides * /alice/cvs/hltcvs/level3code/programs/read.cxx, /alice/cvs/hltcvs/level3code/programs/runit.cxx: - Solved bug forgetting to use AliL3MemHandler->Init(slice,patch). + Solved bug forgetting to use AliHLTMemHandler->Init(slice,patch). * /alice/cvs/hltcvs/level3code/programs/read.cxx: Check consecutive rows. @@ -232,19 +232,19 @@ 2002-06-06 Constantin Loizides * /alice/cvs/hltcvs/level3code/programs/runit.cxx: - Minor changes to use new AliL3ClusterFinder class. + Minor changes to use new AliHLTClusterFinder class. 2002-05-29 Constantin Loizides * /alice/cvs/hltcvs/level3code/programs/read.cxx: - Changes done to make read work with new AliL3AltroMemHandler. + Changes done to make read work with new AliHLTAltroMemHandler. 2002-05-18 Constantin Loizides * /alice/cvs/hltcvs/level3code/programs/Makefile: Addes gettransform. * /alice/cvs/hltcvs/level3code/programs/gettransform.cxx: - First checkin of program to extract parameters from AliL3Transform to be used for the VHDL implementation of the Hough transform. + First checkin of program to extract parameters from AliHLTTransform to be used for the VHDL implementation of the Hough transform. * /alice/cvs/hltcvs/level3code/programs/read.cxx: Use new Transformer. @@ -256,7 +256,7 @@ 2002-04-26 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/programs/runit.cxx: - Changes as a result of making AliL3Transform static. + Changes as a result of making AliHLTTransform static. 2002-04-18 Constantin Loizides diff --git a/HLT/doc/changelog.src b/HLT/doc/changelog.src index d6a80509520..cff62693a5d 100644 --- a/HLT/doc/changelog.src +++ b/HLT/doc/changelog.src @@ -1,77 +1,77 @@ 2004-05-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.h, /alice/cvs/hltcvs/level3code/src/AliL3SrcLinkDef.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.h, /alice/cvs/hltcvs/level3code/src/AliHLTSrcLinkDef.h: Added define for AliHLTReconstructor. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Bugfix for oldio. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: Minor bugfix. + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Minor bugfix. - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Further compiler warning removed and flags for Sun/HP. 2004-05-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx: Removed compiler warnings. - * /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h: Added extended information if using -dROWHOUGHPARAMS - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Added pid information and label (even though label can be found with evaluate and not necessarily has to be stored in the track, it was necessary as we dont store clusters during the data challenge. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added -DROWHOUGHPARAMS and removed compiler warnings. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Removed compiler warnings and runloader added. - * /alice/cvs/hltcvs/level3code/src/AliL3DigitData.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDigitData.h: Workaround for Sun. - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Added params for row hough transform and physics data challenge reconstruction. * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Added support for RunLoader input (newio). - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Added PID, even though it is not the most natural thing to do it in the evaluation as this class is for MC. The reason we put it here is, that we want to avoid opening the cluster files another time, somewhere else in the code during the pdc. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Added userunloader to avoid deletion of deleted runloader object (newio) and solved bug for empty rows (thanks to Cvetan). - * /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.h, /alice/cvs/hltcvs/level3code/src/AliL3SrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTReconstructor.h, /alice/cvs/hltcvs/level3code/src/AliHLTSrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: Nice reconstruction class to use with PDC (only for AliRoot). - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3StandardIncludes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTStandardIncludes.h: Changes to compile standalone. 2004-05-10 Kenneth Aamodt - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: (Partially) Inverted accidental last checkin done by Constantin and Kenneth in rush together with lots of beer. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Changed pointer into const pointer. 2004-05-10 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h: Added reading from pointer. - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h: Added fCharges. 2004-05-07 Constantin Loizides @@ -81,37 +81,37 @@ 2004-04-01 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Bug fixed in GetZFast. 2004-03-20 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Update version information. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3StandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTStandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Removed GCCVERSION string from code. Replaced by compiler internal macro __GNUC__ which is 3 for gcc version >3. - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h: Added ROWHOUGH flag to store weight and track id in the track segment data structure. This is used for the new row transformer and probably only a temporary solution, as the proper way would be - to have a new AliL3HoughTrackRow class. + to have a new AliHLTHoughTrackRow class. By default the flag $ALIHLT_ROWHOUGH points to false, so there is no change to earlier versions. 2004-03-15 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Bugfix related to track fit parameters <-> global track merging. It turned out that there was a slight problem with the global track merging in the case a vertex constraint was imposed in the circle fit. The problem is quite involved, and is due to inconsistency when storing - the socalled first point on the track in AliL3Track::*fFirstPoint. This + the socalled first point on the track in AliHLTTrack::*fFirstPoint. This point is set to the first point lying on the fit, but in the case of vertex constraint this point is correspondingly set to the point of closest approach to the vertex. HOWEVER, the global merger always assumes that @@ -126,15 +126,15 @@ 2004-02-12 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added new function GetZFast, please dont use yet... its not finalized as the vertex has to be substracted. 2004-02-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx: - Removed occurencence of static and non const values like pi and BFACT. Use instead const functions given by AliL3Transform. + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx: + Removed occurencence of static and non const values like pi and BFACT. Use instead const functions given by AliHLTTransform. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added transform functions which dont need to convert to sector, sector row level, if you specify slice and slice row. Also added const functions, so that compiler can optimize. 2004-02-02 Constantin Loizides @@ -142,18 +142,18 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Added static index support for aliroot files. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Added static index support. This means, that if you are working with several filehandlers on one rootfile, only once the index will be created. Be careful, only one such static index exists per session, so if you want to use two input digit root files, it would not why (but why would you need two?). Also you can load/store the index to a file (see the exa example) which decreases debugging time. 2004-01-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Changes related to how the track parameters are calculated and stored. There should be no changes for normal use, i.e. the function calls are still the same. The changes are the following: - Most importantly, the first point on a track (accessible via - AliL3Track::GetFirstPoint()) is now calculated as the point lying on the helix + AliHLTTrack::GetFirstPoint()) is now calculated as the point lying on the helix fit. Earlier, this point was just the coordinates of the innermost assigned cluster of the track. This is in principle ok if you just want the quick "global" coordinates of the track; momentum etc. However, for precisce local @@ -167,7 +167,7 @@ - A new static boolean has been introduced in AliLevel3::fDoVertexFit, which tells the track fitter to include the vertex in the fit or not. - - A (minor) bugfix was also done in AliL3TrackArray. + - A (minor) bugfix was also done in AliHLTTrackArray. 2004-01-23 Constantin Loizides @@ -175,7 +175,7 @@ 2004-01-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3SrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTSrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: Changes to compile for MACOSX at core Makefiles. Check for $(ARCH) and -D$(ARCH). In order to solve cyclic dependencies for libs (which is _very_ bad, but the Linux linker is friendly) @@ -183,18 +183,18 @@ we dont do at the moment. SO: Linux users should see _NO_ difference!!! - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h: Changed to compile with gcc-3.4 - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Changed to avoid warning of gcc-3.4. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Changed order to avoid warning of gcc-3.4. 2003-11-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Added possibility to define where to set the track parameters: A new boolean static data member AliLevel3::fSetTracks2FirstPoint has been added. If this is true (default) the tracks are propagated to the first point @@ -210,13 +210,13 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Added support for Daq datachallenge. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Check if row numbering is wrong, print warning and continue. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Hopefully solved bug for empty rows. We use empty rows, and set fDigits=0. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Added comment that we use AddRandomData even though the name is strange, but I think we could also use AddData instead. 2003-11-18 Anders Strand Vestbo @@ -232,19 +232,19 @@ 2003-11-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx: Added total in output. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Added support for newer aliroot version than ali-head from june 2003, misleadingly I am using the newio flag to distiguish although it has nothing to with newio, but only with interface changes to galice. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Offline claims, they need that line, I (Constantin) dont see a reason for it. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Added one virtual function needed for newio. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Added newio handling, using the use_newio define switch. * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: @@ -252,31 +252,31 @@ 2003-10-24 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added rootfile ptr check and corrected wrong function names in logging. 2003-10-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: - Can specify maximum pt range in ctor. - Minor cleaning up. 2003-09-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added Thomas Kuhr changes for upcoming data challenge and aliroot v4-01-00 tag. 2003-08-20 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: - Added function AliL3Fitter::UpdateTrack. This function should be called + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + Added function AliHLTFitter::UpdateTrack. This function should be called after a global track fit has been done (as is done in AliLevel3::FitGlobalTracks), in order to update the track parameters to the first point of the track. 2003-08-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: When doing nonvertex tracking, check whether the parameters has been set properly. If they are not set explicitely (by doing a designated AliLevel3::SetTrackerParam with vertexconstraint=kFALSE), no secondaries @@ -284,7 +284,7 @@ 2003-08-06 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Some structural changes with respect to the merging classes and how they are used in AliLevel3 class. The main reason for doing this was to enable to set parameters for the global track merging externally by introducing @@ -292,7 +292,7 @@ being called default parameters will be used, so for the moment nothing has changed for the normal user of the AliLevel3 class. - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx: Multiple bugfix (only the important ones reported here): - There biggest was a problem of merging tracks between slice 17 and 0 and 35 and 18 in the former version. The problem was actually @@ -302,104 +302,104 @@ - Also in CheckTracks (called from SlowMerge) did not check if the two tracks had different signs. Some tracks was therefore merged wrongly. - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h: Changed the default path to the file containing the geometry of the TPC. It now looks in $ALIHLT_BASEDIR/geo for the file alice.geom. 2003-08-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: - Added virtual functions for the daughter classes AliL3RawDataFileHandler und AliL3DDLDataFileHandler. + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: + Added virtual functions for the daughter classes AliHLTRawDataFileHandler und AliHLTDDLDataFileHandler. - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h: Added RawData2CompBinary function. - * /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h: Changed comment from L3 to HLT; although that will be a long way to go... - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added printout when config file was successfully read. 2003-07-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx: Bugfix in Merge(). When a track is merged with a track in a neighbouring sector, the current track loop has to finish. If not, a track might get merged with two different tracks. This bug was brought to you by Dr.Frankenfeld, and solved by me 2 years later... - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: The cluster charge was only written in case of fRawSP. Should of course ALWAYS be written. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Set bfield in MakeInitFile 2003-07-29 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: What a bug... , so every rotation to slice 0 was infact a rotation to slice 35 and Andi did not realize :-) - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Added comment. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: - Removed ASV version, as the new AliL3FileHandler does not need (but still would be faster using the patched AliTPC class). + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + Removed ASV version, as the new AliHLTFileHandler does not need (but still would be faster using the patched AliTPC class). - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Added fIndex to generate slice and row index for faster access of the digittree. no more need ffor ASVVERSION. Complete rewrite of the reading (ali2digit) functions. - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Uncommented debug output. 2003-07-28 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Started looking/changing and added creation of standard tpc param object if it was not found in the aliroot file. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Commented out debug code. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Config file is created now in tmp/$user/l3config-date. param object is created if not found in aliroot file, a warning is produced. * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Cosmetical changes. 2003-07-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Set fVersion back to default when reading from a rootfile, in order to avoid a warning in Init function. 2003-07-28 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx: Added static flag for not doing the conformal mapping. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Dont store -1 patch number in spacepoints but use zero instead. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h: Added some debug output. - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Added some prints to log and changed threshold behaviour for straigth cosmics tracks - * /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx: Changed to our type definition. - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx: Solved bug closing wrong mapping pointer. 2003-07-27 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Changes to compile without changes to ALIROOT version v3-09-Releases. 2003-07-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3SrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTSrcLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Changes to compile also with ROOT or STANDALONE. 2003-07-25 Constantin Loizides @@ -407,55 +407,55 @@ * /alice/cvs/hltcvs/level3code/src/Makefile: Changes to reflect the new makefile strategy. - * /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3SrcLinkDef.h: - Renamed AliL3LinkDef.h into AliL3SrcLinkDef.h to reflect module name changes in the Makefile. + * /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTSrcLinkDef.h: + Renamed AliHLTLinkDef.h into AliHLTSrcLinkDef.h to reflect module name changes in the Makefile. 2003-07-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Cleaning up albis bad solutions 2003-07-24 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h: Class for reading cosmics data into HLT data structures, providing pedestral substraction and storing raw cosmics data. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Solved overflow problem for cosmics data using ULong64_t for the error in time direction. - * /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h: Added Long64_t and ULong64_t types. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h: Added comments. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: - Added virtual functions for AliL3RawDataHandler. + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: + Added virtual functions for AliHLTRawDataHandler. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Added flag fRawSP, if it is on, then the cf will leave spacepoints in raw co-system, default is off. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added fSectorLow variable and more setters. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added fSectorLow variable. 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3DigitData.h, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3StandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexData.h, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.h, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTDigitData.h, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTStandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexData.h, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Added html tags for documentation. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.h: Removed. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.h: Little changes before file goes to attic. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Moved the *Real* functions to misc/AliL3TPCMapping + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Moved the *Real* functions to misc/AliHLTTPCMapping - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Changed handling of initfile: there is now a method for reading and saving the file seperately. That means one can change settings of the transformer and save that settings to a given file. @@ -465,15 +465,15 @@ * /alice/cvs/hltcvs/level3code/src/Makefile: Include recursive and print rootcint command. - * /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h: Changes to generate stub file with g++-3.3.1 and rootcint and new MLUC 0.3.37. 2003-07-19 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: - Bugfix of last checking, AliL3Transformer produces now the same results as the old version. + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: + Bugfix of last checking, AliHLTTransformer produces now the same results as the old version. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Big Changes: a) Added VersionType enum: There are now 2 different versions for aliroot and for cosmics, the old version is deprecated and needs to @@ -482,7 +482,7 @@ sin and cos lookups, for patches and row settings c) Added a lot of setters and getters d) Added GetRealX, GetRealY and GetRealNPad functions implementing the - GSI mapping. This functions are not used inside AliL3Transform, so + GSI mapping. This functions are not used inside AliHLTTransform, so calling them, does not change the members of the class. e) Added a few more boundary checks f) __old__ sections mark former code and will vanish if everything is @@ -490,31 +490,31 @@ 2003-07-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Version field is being loaded in config file. 2003-07-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRawDataFileHandler.h, /alice/cvs/hltcvs/level3code/src/Makefile: Added RawData FileHandler class for the cosmics data test. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Changed char to Char_t - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx: stupid warning solved due commenting. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added setters (and some more getters), changed some members to const plus little cosmetics. 2003-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3StandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTStandardIncludes.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Changes to make the code work for gcc-3.3 2003-05-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Added option to write "altro" digits in AliDigits2Binary. * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: @@ -525,22 +525,22 @@ from aliroot file you dont have to delete the AliLevel3 object for every event. - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx: Dont draw benchmark graph by default - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: In SetPointers, check for sufficient number of clusters to build a track. If there are no clusters in a certain sector (as may happen in naked pp event), return without initializing the memory, because that takes cputime. 2003-04-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added getter GetSolenoidField 2003-04-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Going back to the old previous GetCrossingPoint function. The idea was to use CalculateReferencePoint for all calculations of the crossing points between track and padrow, but this function only @@ -550,104 +550,104 @@ 2003-04-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Changed some comments - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Included TError.h - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Removed obsolute code in GetCrossingPoint. This function did the same thing as CalculateReferencePoint, only the latter one takes global track parameters as input. 2003-04-14 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Dont show error message when searching for the alirunfile.root, only show it if it could not be found. 2003-04-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: In Rotate, set the r0 and phi0, because they might be used in UpdateToFirstPoint. In CalculateCrossingAngle, one can specify slice, and the calculation is done in global coordinates. In this way, one does not have to rotate the track to local coordinates in order to calculate this angle. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Mods in CalculateResiduals - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Default disregard single pad clusters 2003-04-11 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Bugfix in AliPoints2Memory. In case fPatch==-1, 0 has to be written to the pointid. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Added getter GetFilePointer 2003-04-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Another bugfix in GetPadRow. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Bugfix in GetPadRow 2003-04-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added function GetPadRow(float x), which returns the nearest padrow for a given x value (in local coordinates). 2003-03-10 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Fixing a quite serious bug in the global merging procedures: - In AliL3ConfMapTrack::FillTrack, the first point on the track should + In AliHLTConfMapTrack::FillTrack, the first point on the track should not be set for z, since this later refers to the impact parameter from the track fit. The first point is set only temporary here for x and y, but in UpdateToFirstPoint this point is overwritten by the track swim point. fLastPoint however, still refers to the cluster position of the outermost point. - In AliL3Fitter there was also a bug in FitLine which produced completely + In AliHLTFitter there was also a bug in FitLine which produced completely wrong values for tanl, and further for all fit values operating in the (s,z)-plane. 2003-03-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Bugifx from last checkin. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Check if clusters has mcid -1, because if it does it is noise. Important for pileup studies where you assign -1 to clusters coming from the piled up events. 2003-03-07 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Bugfix from last checkin - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: - Moved UpdateToFirstPoint from AliL3ConfMapTrack to AliL3Track. Also, + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + Moved UpdateToFirstPoint from AliHLTConfMapTrack to AliHLTTrack. Also, the SetFirstPoint and SetLastPoint are done after both track fitting on sector level and global fitting after sector merging. 2003-03-05 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Forgot root version string in PrintCompileOptions(). 2003-03-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: Cosmetic + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Cosmetic - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Bugfix in GetMCTrackLabel 2003-03-05 Constantin Loizides @@ -657,17 +657,17 @@ 2003-03-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Added trailing \ for directories, it does not harm if you also supply one, but if you forgot, it will still work. 2003-02-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Commented out two lines which produce crash in some pp events. 2003-02-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Clear lastindex when freeing the tree and check if valid tree exists before reading digits in Ali2 functions. 2003-02-26 Anders Strand Vestbo @@ -675,13 +675,13 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Small change with fBenchmark - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Increasing the maximum number of clusters in order to cope with dn/dy=8000 events. 2003-02-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Making compilable with gcc-32 * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: @@ -689,20 +689,20 @@ 2003-02-24 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Added quick and dirty hack to circumvent negativ numbers for trackids while merging events. * /alice/cvs/hltcvs/level3code/src/Makefile: Added defs string to rootcint - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Check for valid trackfile. 2003-02-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: Added GetTracks() + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Added GetTracks() - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: 10 bits for event number in trackID * /alice/cvs/hltcvs/level3code/src/Makefile: @@ -710,7 +710,7 @@ 2003-02-24 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Bug in Binary2Memory where zero digits on a row breaked in the read loop. * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: @@ -718,41 +718,41 @@ 2003-02-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: In GetMCTrackLabel also check if at least half of the innermost 10% clusters are assigned correctly. This is done by offline, and should therefore also be done by HLT. 2003-02-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: Fixed Constantins bugs 2003-02-21 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/Makefile: - Added version information of compile time options to AliL3Transformer::PrintCompileOptions(). + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/Makefile: + Added version information of compile time options to AliHLTTransformer::PrintCompileOptions(). 2003-02-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: BField information interface with AliROOT changed again. It turned out that the previous change I commited does not apply correctly to all events. Now it should be correct. 2003-02-20 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Bugfix - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx: - Added AliL3Fitter to compile in Makefile. This class is also used + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx: + Added AliHLTFitter to compile in Makefile. This class is also used to do a global fit of the tracks _after_ track merging across sector boundaries. - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Changes for making and tracking pileup events. In - AliL3FileHandler::AliAltroDigits2Memory you can set a flag + AliHLTFileHandler::AliAltroDigits2Memory you can set a flag which saves the event number in the 7 upper bits of the fTrackID field in the digits. This flag is set from exa/MakePileup.C. In AliLevel3 you can specify that you want to track a pileup event @@ -766,82 +766,82 @@ Also some other smaller changes, like default switching global mergin between sector boundaries on. - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx: Small cleanup + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx: Small cleanup - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx: Renamed cluster errors - * /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Renamed the cluster errors to fSigmaY2/fSigmaZ2, in order not to confuse cluster widths with space point errors. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Possible to evaluate more events at the same time. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Calculating angle of tracklet. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h: - AliL3ConfMapper.cxx + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h: + AliHLTConfMapper.cxx - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx: Calculated cluster widths are multiplied with a constant in order to make them similar to the space point errors. 2003-02-13 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added functions GetParSigmaY2 and GetParSigmaZ2 - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h: Can read slice files 2003-02-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Bugfix: Calculated cluster widths (RMS) were not transformed to local coordinates! This caused 1 whole day of confusion. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added data member fOmegaTau 2003-02-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Can specify eventnr. 2003-02-06 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added a needed setter and getter - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Save MCid in AliPoints2Memory - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Read offline clusters from multiple events - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: If cluster width calculation is switched on, check if the calculated sigma² is negative. 2003-02-05 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Bugfix. Default ctor sets fFirstPoint and fLastPoint to zero. This fix removed some occasional floating point exception in - AliL3TrackArray::WriteTracks. + AliHLTTrackArray::WriteTracks. 2003-02-04 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Bugfix. Check the diff to the previous version to see which. Actually i don't understand why this has not been discovered before. It is quite obvious that the loop can easily go out of range. 2003-01-31 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: How the extract the BField in AliROOT has changed, it is not extracted via the function gAlice->Field()->Map(), which returns a value 0-2. 0: 0.2 T @@ -854,28 +854,28 @@ 2003-01-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Bugfix from last checkin - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Insignificant bugfixes 2003-01-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added function GetPatch 2003-01-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Bugfix after last checkin 2003-01-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Updated function EvaluatePoints. - * /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h: Removed obsolute lines 2003-01-17 Anders Strand Vestbo @@ -885,12 +885,12 @@ 2003-01-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added function Deg2Raw 2002-11-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Smaller changes. A few lines in order to make filling an ntuppel work with the current version of ROOT (bug in ROOT). @@ -898,82 +898,82 @@ Changes so that one can read slice by slice also from binary files format. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Small bugfix in InitSector - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Default match should be 2 - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Small bugfix in CalculateEgdePoint - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h: Updates to make it work - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx: Also write errors to textfile 2002-11-15 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Bugfix in GetEta(raw coordinates); needs slice. 2002-11-13 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: Cosmetics. + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Cosmetics. 2002-11-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: New function AliAltroDigits2Memory. This function removes single timebins, single as in both time and pad. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Can specify patch=-1, this means all numbers will be relative to a whole slice. E.g. GetNRows(-1) return the number 159 (all rows in a slice). 2002-11-08 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Severe bugfix in Memory2CompMemory. Actually this bug was introduced by myself some weeks ago, but for some strange reason did not cause any crashes until now. The problem was checking for ADC saturation, which uses - AliL3Transform::GetADCSat(), but this is sometimes set to 1024 and this + AliHLTTransform::GetADCSat(), but this is sometimes set to 1024 and this of course is a problem since we are only reserving 10 bits per ADC when writing to binary files. I actually spend 2 hours figuring out this FUCKING bug. 2002-10-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Removed a lot of code, and some changes. Basically removed all of the alirootcode in order to speed up the evaluation process. 2002-10-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Bugfix in AliPoints2Memory - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Minor changes in AliDigits2RootFile 2002-10-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Check for ADC saturation in AliDigits2Memory. Bugfix in AliDigits2RootFile; now correct writing of track id's to the digits. 2002-10-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: Bugfix in Init. + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Bugfix in Init. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Added ADC saturation in AliL3Transform. + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Added ADC saturation in AliHLTTransform. 2002-10-14 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Bugfix in AliPoints2Memory * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: @@ -981,17 +981,17 @@ 2002-10-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Added a few more explaining lines in class description. 2002-10-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Perform check on cos(crossing_angle_with_padrow) in GetCrossingAngle(). Every once in a while this number is equal to one, which results in return value being NaN. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Serious bugfix in Local2Raw function. This function failed to transform corretly on the z<0 side of the tpc, because of a "wrongly" check. I have no idea why I did not see this bug before, but probably because the @@ -1004,12 +1004,12 @@ When using the AliLevel3 tracking class and reading from a rootfile with the patched AliTPC (ASV) version, one can only read 1 whole slice at once (npatches=1). This because in AliLevel3 class only 1 instance - of the AliL3FileHandler is taking care of reading the data from all - patches, and therefore the AliL3FileHandler::fLastIndex method fails when - reading patch by patch. This problem did not show up in the AliL3Hough, - because there you have one AliL3FileHandler per patch. + of the AliHLTFileHandler is taking care of reading the data from all + patches, and therefore the AliHLTFileHandler::fLastIndex method fails when + reading patch by patch. This problem did not show up in the AliHLTHough, + because there you have one AliHLTFileHandler per patch. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Check if the provided path is a rootfile or a directory by using the IsZombie() function; the file pointer is not zero if the provided string is a directory. @@ -1020,9 +1020,9 @@ 2002-09-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: Cosmetic + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Cosmetic - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Changed the row numbering in the patches to match the latest technical layout as much as possible. The numbers are taken from mapping tables provided by GSI (Dr.Frankenfeld). The implementation is still not identical @@ -1033,50 +1033,50 @@ 2002-09-04 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added boolean return values to Init, Make_Init_File and Read_Init function. Check for given root file. - * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Added ASVVERSION define. 2002-09-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Changing hardcoded values. 2002-09-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Changed from hardcoded param to a version which gets the param string from AliL3Transform::GetParamName(). + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Changed from hardcoded param to a version which gets the param string from AliHLTTransform::GetParamName(). 2002-09-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: More changes as a consequence of changing the pad geomtry in the new AliROOT. Some hardcoded values which were set to 176 has now been changed - to AliL3Transform::GetNRows() etc. Also the remaining hardcoded AliTPCParam - and digits tree object names has been changed in AliL3FileHandler. - There were and still are a bug in the AliL3Merger class in FillNTuppel, + to AliHLTTransform::GetNRows() etc. Also the remaining hardcoded AliTPCParam + and digits tree object names has been changed in AliHLTFileHandler. + There were and still are a bug in the AliHLTMerger class in FillNTuppel, which I was not able to figure out, so I switched off. This only affects the SlowMerging methods in the track mergers, and should be looked at more if needed in the future. 2002-09-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Bugfix in AliL3Transform. Changed the strings of the AliTPCParam and + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Bugfix in AliHLTTransform. Changed the strings of the AliTPCParam and Digitstree objects corresponding to the new AliROOT. 2002-08-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: Small bugfix + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Small bugfix 2002-08-25 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Little changes to make g++ version 3.2 compile the src library. Problems remaining for ALIROOT lib. - * /alice/cvs/hltcvs/level3code/src/AliL3StandardIncludes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTStandardIncludes.h: Standard include file to include different files for different compiler versions. * /alice/cvs/hltcvs/level3code/src/Makefile: @@ -1084,8 +1084,8 @@ 2002-07-11 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: - Changes for independant library of standalone l3 code. Most of them are by having #ifdef no_root preprocessor switches, but also added AliL3Stopwatch in AliL3Benchmark class. + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + Changes for independant library of standalone l3 code. Most of them are by having #ifdef no_root preprocessor switches, but also added AliHLTStopwatch in AliHLTBenchmark class. * /alice/cvs/hltcvs/level3code/src/Makefile: Changes for independant library of standalone l3 code. @@ -1095,27 +1095,27 @@ * /alice/cvs/hltcvs/level3code/src/Makefile: Added -Duse_root to USEPACKAGE=ALIROOT section. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added fBFACT=0.0029... value. GetBFieldValue() returns now fBField*fBFACT. 2002-07-03 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx: Solved little pointer bug that prevented logger classes to be used in standalone programs. 2002-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Minor changes and cosmetics according to Anders. 2002-07-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Cosmetic changes on top, to make hltm documentation in root to work 2002-07-02 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Minor changes, mostly cosmetic or comments * /alice/cvs/hltcvs/level3code/src/Makefile: @@ -1127,155 +1127,155 @@ 2002-06-14 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Solved bug to not merge clusters on the same pad. 2002-06-07 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx: Changes done to make the Cluser Finder calculate the errors in Pad and Time direction. Also minor changes to other classes, mainly cosmetic. 2002-06-06 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Have some new set functions. Remove deconv=true setting from init. 2002-05-31 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added getter GetNRows() * /alice/cvs/hltcvs/level3code/src/Makefile: Added a flag 2002-05-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: - Bugfix in AliL3FileHandler::GetDigitsTree. - Added a new function AliL3FileHandler::FreeDigitsTree(), in order + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: + Bugfix in AliHLTFileHandler::GetDigitsTree. + Added a new function AliHLTFileHandler::FreeDigitsTree(), in order to be able to clear the digits tree from memory, without deleting the object. Useful feature if you want to loop over several events in a single rootfile. 2002-05-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: - Moved some getters to AliL3MemHandler + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: + Moved some getters to AliHLTMemHandler - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: Smaller changes + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Smaller changes - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: - Made all AliL3FileHandler specific functions virtual in AliL3MemHandler. + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: + Made all AliHLTFileHandler specific functions virtual in AliHLTMemHandler. 2002-05-26 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Solved merge problem of last checkin. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/Makefile: Minor changes to make tracking work with new Aliroot version v3.07.03 2002-05-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: - Added AliL3Evaluate in case compiling with AliROOT + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: + Added AliHLTEvaluate in case compiling with AliROOT * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Switched on slow merging. 2002-05-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Bugfix from previos ci - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Do not give *row to Init - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Fix in AliDigits2Memory. Do not remove single timebins on one pad, because they can be a part of a bigger cluster... 2002-05-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: BField is now also read from configuration. 2002-05-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Bugfix in GetPadPitchWidth(patch). return inner width if patch < 2, not patch<=2. 2002-05-07 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Small change in GetCrossingAngle. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added some more datamembers, related to gas and electronics. Corresponding getters has been added, and they have also been added to the Init function, and exa/Make_Init.C. 2002-05-05 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Commented out cout in WriteClusters 2002-05-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Forgot to remove #include in previous checkin - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Moved all the constants from AliL3Defs.h to static AliL3Transform. No - longer need for AliL3Defs.h, and it has therefore been removed. + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Moved all the constants from AliHLTDefs.h to static AliHLTTransform. No + longer need for AliHLTDefs.h, and it has therefore been removed. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: - Added the magnetic field as a static member of the AliL3Transform class, + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: + Added the magnetic field as a static member of the AliHLTTransform class, together with setter and getter. This makes it possible to change the - field without recompiling. Earlier this had to be set in AliL3Defs.h as + field without recompiling. Earlier this had to be set in AliHLTDefs.h as a constant global variable. 2002-05-01 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: - Forgot to check in this the last time. Some changes in AliL3MemHandler as - a consequence of writing child class AliL3DataHandler. fInBinary and fOutBinary + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: + Forgot to check in this the last time. Some changes in AliHLTMemHandler as + a consequence of writing child class AliHLTDataHandler. fInBinary and fOutBinary has been made protected, and CompBinary2Memory and Memory2CompBinary has been made virtual. 2002-04-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: - Major changes in the AliL3Transform class. The class has been made completely + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + Major changes in the AliHLTTransform class. The class has been made completely static, which means that no objects needs to be created anymore. This has also made impact all classes which use this class (this is more or less all of them), - so that no private AliL3Transform* is needed anymore etc. I think I have managed + so that no private AliHLTTransform* is needed anymore etc. I think I have managed to implement the changes everywhere, at least it compiles successfully and exa/test.C runs smoothly. The only rather important thing one has to remember is to initialize - the correct detector parameters by calling AliL3Transform::Init(path). If not, + the correct detector parameters by calling AliHLTTransform::Init(path). If not, default parameters will be used (currently corresponding to AliROOT version 3.06). 2002-04-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h: Cleaning up. + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h: Cleaning up. 2002-04-24 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Some more comments. 2002-04-20 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added several GET-Functions, fixed bug in old config. 2002-04-19 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added fZLength and fZOffset, fixed a few bugs in the new init method. 2002-04-19 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Inserted image on top. 2002-04-18 Constantin Loizides @@ -1283,17 +1283,17 @@ * /alice/cvs/hltcvs/level3code/src/Makefile: Root objects are compiled in lib_ROOT from now on. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added fVersion field to differentiate the old and new config version. 2002-04-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: - Cleaned up some more in AliL3MemHandler, by removing the AliL3Transform in + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + Cleaned up some more in AliHLTMemHandler, by removing the AliHLTTransform in arguments of member functions. This also required some changes in AliLevel3, which make use of these functions. - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Changed AliLevel3::Init to public, and this should then be called after the ctor. Here one should provide the path where the data are located, and also the parameter file. Else, some cleaning where done, -> fOutputFile @@ -1310,42 +1310,42 @@ 2002-04-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: - Removed private member AliL3FileHandler::fTransformer, and moved AliL3MemHandler::fTransformer + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: + Removed private member AliHLTFileHandler::fTransformer, and moved AliHLTMemHandler::fTransformer to protected. This means that both the filehandler and memhandler always has to get - the transformer from AliL3MemHandler::Init(AliL3Transform *). + the transformer from AliHLTMemHandler::Init(AliHLTTransform *). 2002-04-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h: Added new Init(char *pathname) function to read a l3transform.config file. Old init kept for backward compatibility. 2002-04-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Last cosmetic changes - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: More cosmetic + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: More cosmetic 2002-04-18 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Cosmetic changes for the integration of doxygen 2002-04-17 Constantin Loizides - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Changed documentation for doxygen. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Comments updated and merge problems solved. 2002-04-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Comments formatted the way THtml likes it. - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Added more comments. 2002-04-16 Constantin Loizides @@ -1358,46 +1358,46 @@ * /alice/cvs/hltcvs/level3code/src/doit, /alice/cvs/hltcvs/level3code/src/speedtest.cxx, /alice/cvs/hltcvs/level3code/src/speedtest.h: moving into programs - * /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/Makefile: More improved Makefile, setting logging paths, TOPDIR and LIBDIR. 2002-04-15 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/Makefile: - Changed Makefile and AliL3RootTypes.h in order to define usepackage (ROOT, ALIROOT + * /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/Makefile: + Changed Makefile and AliHLTRootTypes.h in order to define usepackage (ROOT, ALIROOT do_mc) in Makefile only. 2002-04-09 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Added capability of searching neighboring digits for particle id in function AliDigits2RootFile. 2002-03-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: - Changed test in AliDigits2RootFile to check for charge below threshold, not charge==0. This function can then be used together with AliL3Compress::WriteRootFile. + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: + Changed test in AliDigits2RootFile to check for charge below threshold, not charge==0. This function can then be used together with AliHLTCompress::WriteRootFile. 2002-03-06 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Added new function, fTracker->InitVolumes() - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Bugfix in CalculateHelix(). Kappa is given proper sign, earlier it was always positive. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h: Remaining from previous co - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Changes and optimization for pp-running 2002-02-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h: The default should be not to save mcid - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3DigitData.h, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: - Added the possibility to save the particle id's through the chain, if detailed efficiency studies are needed. This work only in the case where you are reading digits from a alirootfile-> AliL3FileHandler::AliL3Digits2Memory. The id is saved in the digit structure and then in the space point structure. The option is switched on in do_mc in AliL3RootTypes.h + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTDigitData.h, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: + Added the possibility to save the particle id's through the chain, if detailed efficiency studies are needed. This work only in the case where you are reading digits from a alirootfile-> AliHLTFileHandler::AliHLTDigits2Memory. The id is saved in the digit structure and then in the space point structure. The option is switched on in do_mc in AliHLTRootTypes.h 2002-02-05 Anders Strand Vestbo @@ -1409,7 +1409,7 @@ * /alice/cvs/hltcvs/level3code/src/Makefile: Minor updates - * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/Makefile.AliROOT, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/Makefile.AliROOT, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Checking in for the weekend 2002-01-23 Anders Strand Vestbo @@ -1420,16 +1420,16 @@ * /alice/cvs/hltcvs/level3code/src/Makefile.AliROOT: Makefile from aliroot. The one that was used before. - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h: Only 1 file + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h: Only 1 file 2002-01-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Load digitstree only once 2002-01-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h: Smaller changes * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: @@ -1437,10 +1437,10 @@ 2002-01-07 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h: Changed to normal bfield - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Added debugs 2001-12-10 Anders Strand Vestbo @@ -1448,189 +1448,189 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Smaller changes - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Possible to switch onoff deconv - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: Smaller changes + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Smaller changes - * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h: - Adding AliL3Fitter + * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h: + Adding AliHLTFitter - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx: Check if track crosses more than one slice boundary, and if so merge them all. This will only be necessary if the magnetic field is higher than normally. - * /alice/cvs/hltcvs/level3code/src/AliL3Fitter.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Fitter.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFitter.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFitter.h: Refitting tracks after tracking 2001-12-06 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx: Multimerge: When doing global merging, take the parameters of the track which has the most hits - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h: Made it possible to use different cuts for nonvertex tracking * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Some changes to make is possible to run several events, and also some settings for possible nonvertex tracking options - * /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Added new function; GetClosest which calculates the point of closest approach to the vertex. - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h: Bugfix. Use local method CheckTracks instead of derived method TrackDiff in SlowMerge. This is because the tracks are in GLOBAL coordinates, not local as TrackDiff assumes. - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx: - Getting bfield from common file; AliL3Defs.h + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx: + Getting bfield from common file; AliHLTDefs.h 2001-12-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Possible to read several events from same rootfile 2001-11-29 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Added debug logging in SetPointers * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Don't specify fEta to tracker - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Same bugfix in raw2local 2001-11-28 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Bugfix in raw2local 2001-11-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Bugfix in DisplayTracks() * /alice/cvs/hltcvs/level3code/src/Makefile: Moved classes - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h: Addded possibilily to rotate track in AddTracks - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Bugfix in SetZ0, which is actually the first point - * /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.h, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx: Addons for html documentation 2001-11-16 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Bugfix in AddTracks - * /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Made CalculateHelix virtual - * /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h: Added possibility for Hough use - * /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: - Moved AliL3HoughTrack to hough + * /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/Makefile: + Moved AliHLTHoughTrack to hough - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx: Moving classes to /hough 2001-11-13 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Extended Global2Local to include slice as input - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Made UpdateRowPointer static - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Made some changes in DefineGoodparticles; Allowing to read good tracks from file - * /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Updates to aliroot V3.06 - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx: - Made Compare() and Set virtual in AliL3Track and derived classes + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx: + Made Compare() and Set virtual in AliHLTTrack and derived classes - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Some changes in AliDigits2RootFile 2001-11-01 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Modified AddTracks. Should be backward compatible 2001-10-25 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Logging.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h: Changed path to timm code 2001-10-23 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Bugfix in GetEta(padrow,pad,time) - * /alice/cvs/hltcvs/level3code/src/AliL3Logging.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h: Timms code compatible again - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: Bugfix in AliDigits2RootFile, and AliDigits2Memory 2001-10-12 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h: Added function AliDigits2RootFile - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Added function UpdateRowPointer 2001-09-21 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Changed to 6 patches 2001-09-18 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Added new funtion GetEta - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h: Added a static function GetCpuTime 2001-08-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Updates in EvaluatePoints - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: Optimization + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Optimization 2001-08-21 Anders Strand Vestbo * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Changed to new clusterfinder - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx: Bugfix + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx: Bugfix - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: bugfix + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: bugfix - * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h: + * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h: Added new clusterfinder - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: Added deconvolution 2001-08-20 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Fixing rounding error in digitMC info 2001-08-17 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Updates for AliROOT V3.05 - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinderNew.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinderNew.h: A new improved cluster finder 2001-08-17 Uli Frankenfeld @@ -1638,9 +1638,9 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: proteced against non existing inputfile - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: use memset + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: use memset - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: Initialize Memory in Function Write and Allocate 2001-08-15 Uli Frankenfeld @@ -1648,12 +1648,12 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: changed to 6 patches - * /alice/cvs/hltcvs/level3code/src/AliL3Logging.h: changed printout + * /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h: changed printout - * /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h: changed to n patches - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx: remove printout 2001-08-07 Anders Strand Vestbo @@ -1663,17 +1663,17 @@ 2001-08-07 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: New AliRoot Coordinate System 2001-07-31 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Changed path of geofile 2001-07-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: several bugfixes * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: @@ -1681,25 +1681,25 @@ 2001-07-30 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: V3.04 -> V3.05: Init and npadrow changed 2001-07-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h: Bugfixes - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx: Bugfix 2001-07-30 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx: Run with dummy Logging class 2001-07-30 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Update bugfixes * /alice/cvs/hltcvs/level3code/src/Makefile: @@ -1709,72 +1709,72 @@ 2001-07-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx: Updating 2001-07-26 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx: - changed (AliL3RandomDigitData **)new Int_t[] to new AliL3RandomDigitData *[] + * /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx: + changed (AliHLTRandomDigitData **)new Int_t[] to new AliHLTRandomDigitData *[] 2001-07-20 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx: Updating bugfixes and default values 2001-07-02 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: Bugfix + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Bugfix - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h: - Added function AddLast(AliL3Track *track) + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h: + Added function AddLast(AliHLTTrack *track) 2001-05-03 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: Minor changes + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Minor changes - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h: Removing obsolete code - * /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx: Some updates - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Changed max number if hits - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Added some functions 2001-05-01 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx: improved calculation of RMS - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: bugfix in CalcEdgePoint 2001-04-27 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h: Cleaning up some more - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h: Cleaning up after last changes 2001-04-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Changed number of timebins to 446 - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h: Added some functions - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: Added residual calc. and ntuppels 2001-04-06 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx: Simplification for Fast Simulator * /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: cleanup @@ -1782,10 +1782,10 @@ * /alice/cvs/hltcvs/level3code/src/Makefile, /alice/cvs/hltcvs/level3code/src/Makefile_Root: add mrproper and wipe - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h: minor changes, bugfix for FastSim - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: Changed max_num_of_hits to 120000 2001-04-04 Uli Frankenfeld @@ -1798,30 +1798,30 @@ * /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: Bugfix using Aliroot Inputfiles, changes in Init selectiong rows - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Bugfix in SetSize - * /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h: make use_aliroot default, comment if using Makefile_Root - * /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: + * /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx: removed class AliLevel3_Root, use AliLevel3 instead 2001-03-22 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx: cleanup in Read 2001-03-22 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx: Removed junk + * /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx: Removed junk - * /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx: Modified AddTracks 2001-03-22 Uli Frankenfeld - * /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx: change in file including 2001-03-22 Anders Strand Vestbo @@ -1832,69 +1832,69 @@ * /alice/cvs/hltcvs/level3code/src/.nfs002b88e300000129: Removed junk - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/speedtest.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/speedtest.h: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.h, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/speedtest.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.h, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.h, /alice/cvs/hltcvs/level3code/src/speedtest.h: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/speedtest.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/speedtest.cxx: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/speedtest.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3.cxx, /alice/cvs/hltcvs/level3code/src/AliLevel3_Root.cxx, /alice/cvs/hltcvs/level3code/src/Makefile_Root, /alice/cvs/hltcvs/level3code/src/speedtest.cxx: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/.nfs002b88e300000129: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/.nfs002b88e300000129: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Display.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Display.h, /alice/cvs/hltcvs/level3code/src/AliL3Track.h, /alice/cvs/hltcvs/level3code/src/.nfs002b88e300000129: + * /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTDisplay.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.h, /alice/cvs/hltcvs/level3code/src/.nfs002b88e300000129: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.h, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3FileHandler.h, /alice/cvs/hltcvs/level3code/src/AliL3Logging.h, /alice/cvs/hltcvs/level3code/src/AliL3RootTypes.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.h, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTFileHandler.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogging.h, /alice/cvs/hltcvs/level3code/src/AliHLTRootTypes.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.cxx, /alice/cvs/hltcvs/level3code/src/Makefile: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Track.cxx, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Transform.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.cxx: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Evaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliL3MemHandler.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTEvaluate.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTMemHandler.h: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliL3HoughTrack.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTHoughTrack.cxx: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/doit: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/doit: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Benchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliL3Logger.h, /alice/cvs/hltcvs/level3code/src/doit: + * /alice/cvs/hltcvs/level3code/src/AliHLTBenchmark.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.cxx, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.h, /alice/cvs/hltcvs/level3code/src/doit: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexData.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexData.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3Defs.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.h, /alice/cvs/hltcvs/level3code/src/AliL3SpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackArray.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3TrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliL3Transform.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexArray.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexData.h, /alice/cvs/hltcvs/level3code/src/AliL3VertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3Vertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: + * /alice/cvs/hltcvs/level3code/src/AliHLTDefs.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTSpacePointData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTTrackSegmentData.h, /alice/cvs/hltcvs/level3code/src/AliHLTTransform.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexArray.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexData.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertexFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTVertex.h, /alice/cvs/hltcvs/level3code/src/AliLevel3.h: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3DigitData.h, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTDigitData.h, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3ConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliL3DigitData.h, /alice/cvs/hltcvs/level3code/src/AliL3GlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3InterMerger.h, /alice/cvs/hltcvs/level3code/src/AliL3LinkDef.h, /alice/cvs/hltcvs/level3code/src/AliL3Merger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTConfMapper.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapPoint.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapTrack.h, /alice/cvs/hltcvs/level3code/src/AliHLTDigitData.h, /alice/cvs/hltcvs/level3code/src/AliHLTGlobalMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTInterMerger.h, /alice/cvs/hltcvs/level3code/src/AliHLTLinkDef.h, /alice/cvs/hltcvs/level3code/src/AliHLTMerger.cxx: New file. - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx: Imported the source files - * /alice/cvs/hltcvs/level3code/src/AliL3ClustFinder.h, /alice/cvs/hltcvs/level3code/src/AliL3ConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliL3Logger.cxx: + * /alice/cvs/hltcvs/level3code/src/AliHLTClustFinder.h, /alice/cvs/hltcvs/level3code/src/AliHLTConfMapFit.h, /alice/cvs/hltcvs/level3code/src/AliHLTLogger.cxx: New file. diff --git a/HLT/doc/changelog.top b/HLT/doc/changelog.top index c7f6c433d40..9980f394a50 100644 --- a/HLT/doc/changelog.top +++ b/HLT/doc/changelog.top @@ -17,7 +17,7 @@ in the track segment data structure. This is used for the new row transformer and probably only a temporary solution, as the proper way would be - to have a new AliL3HoughTrackRow class. + to have a new AliHLTHoughTrackRow class. By default the flag $ALIHLT_ROWHOUGH points to false, so there is no change to earlier versions. @@ -54,7 +54,7 @@ 2003-07-29 Constantin Loizides * /alice/cvs/hltcvs/level3code/Makefile.conf, /alice/cvs/hltcvs/level3code/Makefile.rules: - Removed ASV version, as the new AliL3FileHandler does not need (but still would be faster using the patched AliTPC class). + Removed ASV version, as the new AliHLTFileHandler does not need (but still would be faster using the patched AliTPC class). 2003-07-28 Constantin Loizides diff --git a/HLT/doc/changelog.trigger b/HLT/doc/changelog.trigger index f472dfa07a7..4f761d5156f 100644 --- a/HLT/doc/changelog.trigger +++ b/HLT/doc/changelog.trigger @@ -1,6 +1,6 @@ 2004-05-11 Gaute Ovrebekk - * /alice/cvs/hltcvs/level3code/trigger/AliBarrelRec_TPCparam.C, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.C, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.cxx, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.h, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderBkg_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderSgn_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliITSFindClustersV2.C, /alice/cvs/hltcvs/level3code/trigger/AliL3TriggerLinkDef.h, /alice/cvs/hltcvs/level3code/trigger/Makefile, /alice/cvs/hltcvs/level3code/trigger/RunD0offline.C: + * /alice/cvs/hltcvs/level3code/trigger/AliBarrelRec_TPCparam.C, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.C, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.cxx, /alice/cvs/hltcvs/level3code/trigger/AliD0Trigger.h, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderBkg_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderSgn_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliITSFindClustersV2.C, /alice/cvs/hltcvs/level3code/trigger/AliHLTTriggerLinkDef.h, /alice/cvs/hltcvs/level3code/trigger/Makefile, /alice/cvs/hltcvs/level3code/trigger/RunD0offline.C: removeing macros 2004-05-04 Gaute Ovrebekk @@ -52,7 +52,7 @@ 2003-07-22 Constantin Loizides - * /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.h, /alice/cvs/hltcvs/level3code/trigger/AliL3Trigger.h, /alice/cvs/hltcvs/level3code/trigger/AliL3TriggerLinkDef.h: + * /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.h, /alice/cvs/hltcvs/level3code/trigger/AliHLTTrigger.h, /alice/cvs/hltcvs/level3code/trigger/AliHLTTriggerLinkDef.h: Added html tags for documentation. * /alice/cvs/hltcvs/level3code/trigger/Makefile: @@ -60,16 +60,16 @@ 2003-05-30 Gaute Ovrebekk - * /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.cxx, /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.h, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderBkg_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderSgn_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliL3TriggerLinkDef.h, /alice/cvs/hltcvs/level3code/trigger/Makefile: + * /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.cxx, /alice/cvs/hltcvs/level3code/trigger/AliD0toKpi.h, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderBkg_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliD0vtxFinderSgn_pp_VTX.C, /alice/cvs/hltcvs/level3code/trigger/AliHLTTriggerLinkDef.h, /alice/cvs/hltcvs/level3code/trigger/Makefile: Added first verison of D0 TriggerCode 2002-04-26 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/trigger/AliL3Trigger.cxx, /alice/cvs/hltcvs/level3code/trigger/AliL3Trigger.h: - Changes as a result of making AliL3Transform static. + * /alice/cvs/hltcvs/level3code/trigger/AliHLTTrigger.cxx, /alice/cvs/hltcvs/level3code/trigger/AliHLTTrigger.h: + Changes as a result of making AliHLTTransform static. 2002-03-06 Anders Strand Vestbo - * /alice/cvs/hltcvs/level3code/trigger/AliL3Trigger.h, /alice/cvs/hltcvs/level3code/trigger/AliL3Trigger.cxx: + * /alice/cvs/hltcvs/level3code/trigger/AliHLTTrigger.h, /alice/cvs/hltcvs/level3code/trigger/AliHLTTrigger.cxx: Added trigger code. For the moment only preliminary code for pileup removal diff --git a/HLT/doc/l3transform-062003.config b/HLT/doc/l3transform-062003.config index 90ad4b90dbf..b6aaf8d6a4e 100644 --- a/HLT/doc/l3transform-062003.config +++ b/HLT/doc/l3transform-062003.config @@ -1,4 +1,4 @@ -void AliL3Transform::Init(){ +void AliHLTTransform::Init(){ fVersion = 10; fBFieldFactor = 1.000; fSolenoidBField = 4.000; diff --git a/HLT/doc/l3transform-cosmic-022003.config b/HLT/doc/l3transform-cosmic-022003.config index 7077a6917b3..337f4a40472 100644 --- a/HLT/doc/l3transform-cosmic-022003.config +++ b/HLT/doc/l3transform-cosmic-022003.config @@ -1,4 +1,4 @@ -void AliL3Transform::Init(){ +void AliHLTTransform::Init(){ fVersion = 100; fBFieldFactor = 0.000; fSolenoidBField = 2.000; diff --git a/HLT/exa/MakePileup.C b/HLT/exa/MakePileup.C index d9d61ae1594..3ef1596ae0d 100644 --- a/HLT/exa/MakePileup.C +++ b/HLT/exa/MakePileup.C @@ -16,10 +16,10 @@ */ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" +#include "AliHLTLogger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" #include #include #include @@ -139,10 +139,10 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup Int_t patch = -1; //All of slice. Int_t NEvents = npiles; //for compatibility with old version - AliL3FileHandler **hand=new AliL3FileHandler*[NEvents]; - AliL3DigitRowData **data=new AliL3DigitRowData*[NEvents]; - AliL3DigitData **rowData=new AliL3DigitData*[NEvents]; - AliL3DigitData *test; + AliHLTFileHandler **hand=new AliHLTFileHandler*[NEvents]; + AliHLTDigitRowData **data=new AliHLTDigitRowData*[NEvents]; + AliHLTDigitData **rowData=new AliHLTDigitData*[NEvents]; + AliHLTDigitData *test; Char_t Carry[1024]; Int_t DigitsTot = 0; Int_t tot_dig=0; @@ -151,14 +151,14 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup Byte_t *NData; const Int_t maxdigits=50000; - AliL3DigitData *temp[maxdigits]; - AliL3DigitData *temp2[maxdigits]; + AliHLTDigitData *temp[maxdigits]; + AliHLTDigitData *temp2[maxdigits]; //Create 1 filehander per event: sprintf(Carry,"%s/digitfile.root",path); for(Int_t event=0; eventSetAliInput(Carry)) cerr<<" Error opening file :"<GetDataPointer(size); + data[event] = (AliHLTDigitRowData*)hand[event]->GetDataPointer(size); //Pileup the event tot_dig=0; - for(Int_t row = 0 ; row < AliL3Transform::GetNRows(patch) ; row++){ + for(Int_t row = 0 ; row < AliHLTTransform::GetNRows(patch) ; row++){ DigitsPerRow = 0; for(Int_t event = 0; event < NEvents ; event++){ - rowData[event] = (AliL3DigitData *)data[event]->fDigitData; + rowData[event] = (AliHLTDigitData *)data[event]->fDigitData; for(UInt_t dig=0; digfNDigit; dig++) { Int_t time = rowData[event][dig].fTime + sign*Offset[event]; - if(time < AliL3Transform::GetNTimeBins() && time >= 0) + if(time < AliHLTTransform::GetNTimeBins() && time >= 0) DigitsPerRow++; } } @@ -221,11 +221,11 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup //because we have to sort them before storing them : MeVDigit = 0; for(Int_t event = 0; event < NEvents ; event++){ - rowData[event] = (AliL3DigitData *)data[event]->fDigitData; + rowData[event] = (AliHLTDigitData *)data[event]->fDigitData; for(UInt_t digit = 0; digit < data[event]->fNDigit ; digit++){ Int_t time = rowData[event][digit].fTime + sign*Offset[event]; - if(time >= AliL3Transform::GetNTimeBins() || time < 0) + if(time >= AliHLTTransform::GetNTimeBins() || time < 0) continue; temp[MeVDigit] = &rowData[event][digit]; @@ -270,7 +270,7 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup tot_dig+=final_count; AllRowData->fRow = row; AllRowData->fNDigit = final_count; - test = (AliL3DigitData *) AllRowData->fDigitData; + test = (AliHLTDigitData *) AllRowData->fDigitData; //and copy them to the new event: for(Int_t c=0; cDigitsTot) @@ -323,8 +323,8 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup hand[event]->FreeDigitsTree(); } - AliL3FileHandler *Out = new AliL3FileHandler(); - AllRowData = (AliL3DigitRowData*)NData; + AliHLTFileHandler *Out = new AliHLTFileHandler(); + AllRowData = (AliHLTDigitRowData*)NData; if(slice==0){ if(pileupdir[0]=='/') sprintf(Carry,"mkdir -p %s/",pileupdir); @@ -344,7 +344,7 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup return; } cout << "Writing to file: " << Carry <Memory2Binary(AliL3Transform::GetNRows(patch),AllRowData); + Out->Memory2Binary(AliHLTTransform::GetNRows(patch),AllRowData); Out->CloseBinaryOutput(); delete Out; delete [] NData; @@ -361,9 +361,9 @@ void MakePileup(Char_t *path,Int_t startev,Int_t endev,Char_t *pileupdir="pileup void QSort(void **dPt,Int_t first,Int_t last) { //General sorting routine. only sorting the pointers. - AliL3DigitData **a = (AliL3DigitData**)dPt; + AliHLTDigitData **a = (AliHLTDigitData**)dPt; - AliL3DigitData *tmp; + AliHLTDigitData *tmp; int i; int j; @@ -401,8 +401,8 @@ void QSort(void **dPt,Int_t first,Int_t last) Int_t CompareDigits(void *dPt1,void *dPt2) { - AliL3DigitData *a = (AliL3DigitData*)dPt1; - AliL3DigitData *b = (AliL3DigitData*)dPt2; + AliHLTDigitData *a = (AliHLTDigitData*)dPt1; + AliHLTDigitData *b = (AliHLTDigitData*)dPt2; if(a->fPad==b->fPad && a->fTime == b->fTime) return 0; if(a->fPadfPad) return -1; diff --git a/HLT/exa/SetFitParameters.C b/HLT/exa/SetFitParameters.C index 20004be5f54..8ff0a434fdb 100644 --- a/HLT/exa/SetFitParameters.C +++ b/HLT/exa/SetFitParameters.C @@ -1,6 +1,6 @@ //$Id$ -void SetFitParameters(AliL3ClusterFitter *fitter) +void SetFitParameters(AliHLTClusterFitter *fitter) { fitter->SetInnerWidthFactor(1,1); fitter->SetOuterWidthFactor(1,1); diff --git a/HLT/exa/SetHoughParameters.C b/HLT/exa/SetHoughParameters.C index 9d68bbe63ea..dc69f96e8e5 100644 --- a/HLT/exa/SetHoughParameters.C +++ b/HLT/exa/SetHoughParameters.C @@ -1,6 +1,6 @@ //$Id$ -void SetHoughParameters(AliL3Hough *hough,Char_t *path,Int_t tversion=1) +void SetHoughParameters(AliHLTHough *hough,Char_t *path,Int_t tversion=1) { bool binary = kTRUE; //binary files input int n_eta_segments=100; diff --git a/HLT/exa/SetTrackingParameters_2000bf02.C b/HLT/exa/SetTrackingParameters_2000bf02.C index 4b6841890a4..0cce5d1c809 100644 --- a/HLT/exa/SetTrackingParameters_2000bf02.C +++ b/HLT/exa/SetTrackingParameters_2000bf02.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 4; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_2000bf04.C b/HLT/exa/SetTrackingParameters_2000bf04.C index 0cc02eeb599..d395de55a44 100644 --- a/HLT/exa/SetTrackingParameters_2000bf04.C +++ b/HLT/exa/SetTrackingParameters_2000bf04.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 5; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_4000bf02.C b/HLT/exa/SetTrackingParameters_4000bf02.C index 801a99bbff7..784b4695d42 100644 --- a/HLT/exa/SetTrackingParameters_4000bf02.C +++ b/HLT/exa/SetTrackingParameters_4000bf02.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 10; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_4000bf04.C b/HLT/exa/SetTrackingParameters_4000bf04.C index 900044cca3e..852ecda537e 100644 --- a/HLT/exa/SetTrackingParameters_4000bf04.C +++ b/HLT/exa/SetTrackingParameters_4000bf04.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 10; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_8000bf02.C b/HLT/exa/SetTrackingParameters_8000bf02.C index e699ac7c85f..312ed53a0b2 100644 --- a/HLT/exa/SetTrackingParameters_8000bf02.C +++ b/HLT/exa/SetTrackingParameters_8000bf02.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 3; rowscopetrack = 15; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_8000bf04.C b/HLT/exa/SetTrackingParameters_8000bf04.C index 1ab340b4f8c..d7ab61313be 100644 --- a/HLT/exa/SetTrackingParameters_8000bf04.C +++ b/HLT/exa/SetTrackingParameters_8000bf04.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 15; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/SetTrackingParameters_pp.C b/HLT/exa/SetTrackingParameters_pp.C index fddc3fcca43..d756b153f55 100644 --- a/HLT/exa/SetTrackingParameters_pp.C +++ b/HLT/exa/SetTrackingParameters_pp.C @@ -12,7 +12,7 @@ void SetTrackingParameters(AliLevel3 *tracker) rowscopetracklet = 2; rowscopetrack = 2; min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); goodDist = 5; maxphi = 0.1; maxeta = 0.1; diff --git a/HLT/exa/binary.C b/HLT/exa/binary.C index 37a1660d530..0120073f849 100644 --- a/HLT/exa/binary.C +++ b/HLT/exa/binary.C @@ -12,7 +12,7 @@ binary(Char_t* inpath,Char_t *outpath,Int_t first,Int_t last,Int_t event,Bool_t sp=kFALSE,Bool_t altro=kTRUE){ - AliL3Transform::Init(inpath,kTRUE); + AliHLTTransform::Init(inpath,kTRUE); if(sp) { singlepatch(inpath,outpath,first,last,event,altro); @@ -23,7 +23,7 @@ binary(Char_t* inpath,Char_t *outpath,Int_t first,Int_t last,Int_t event,Bool_t const Int_t npatch = 6; sprintf(name,"%s/digitfile.root",inpath); - AliL3FileHandler *fFileHandler = new AliL3FileHandler(); + AliHLTFileHandler *fFileHandler = new AliHLTFileHandler(); fFileHandler->SetAliInput(name); for(Int_t slice=first; slice<=last; slice++){ @@ -45,7 +45,7 @@ void singlepatch(Char_t* inpath,Char_t *outpath,Int_t first=0, Int_t last=0,Int_ { Char_t name[256]; - AliL3FileHandler *fFileHandler = new AliL3FileHandler(); + AliHLTFileHandler *fFileHandler = new AliHLTFileHandler(); sprintf(name,"%s/digitfile.root",inpath); fFileHandler->SetAliInput(name); @@ -69,7 +69,7 @@ void write2rootfile(Char_t *in,Int_t first,Int_t last,Char_t *path) { //Write new rootfile, using data from the binary files. - AliL3Transform::Init(path); + AliHLTTransform::Init(path); char filename[1024]; sprintf(filename,"%s/digitfile.root",path); file = TFile::Open(filename,"READ"); @@ -82,7 +82,7 @@ void write2rootfile(Char_t *in,Int_t first,Int_t last,Char_t *path) { for(Int_t patch=0; patch<=5; patch++) { - c = new AliL3Compress(slice,patch,path); + c = new AliHLTCompress(slice,patch,path); c->WriteRootFile(filename,in); delete c; } @@ -91,5 +91,5 @@ void write2rootfile(Char_t *in,Int_t first,Int_t last,Char_t *path) } void make_init_file(Char_t *f,Char_t *path="./"){ - AliL3Transform::MakeInitFile(f,path); + AliHLTTransform::MakeInitFile(f,path); } diff --git a/HLT/exa/convert.C b/HLT/exa/convert.C index b6df74f3f81..d9d2ea3ad2b 100644 --- a/HLT/exa/convert.C +++ b/HLT/exa/convert.C @@ -7,10 +7,10 @@ void convert(Int_t sl=0,Int_t sh=35,Char_t *path1="./", Char_t *path2="./") { char fname[250]; - AliL3Logger l; - //l.UnSet(AliL3Logger::kDebug); - //l.UnSet(AliL3Logger::kAll); - //l.Set(AliL3Logger::kInformational); + AliHLTLogger l; + //l.UnSet(AliHLTLogger::kDebug); + //l.UnSet(AliHLTLogger::kAll); + //l.Set(AliHLTLogger::kInformational); l.UseStdout(); //l.UseStream(); @@ -18,7 +18,7 @@ void convert(Int_t sl=0,Int_t sh=35,Char_t *path1="./", Char_t *path2="./") { for(int patch=0; patch<6; patch++) { - file = new AliL3DataHandler(); + file = new AliHLTDataHandler(); file->Init(slice,patch); sprintf(fname,"%s/digits_%d_%d.raw",path1,slice,patch); file->SetBinaryInput(fname); @@ -36,15 +36,15 @@ void convert(Int_t sl=0,Int_t sh=35,Char_t *path1="./", Char_t *path2="./") #if 0 void read() { - AliL3MemHandler *file = new AliL3DataHandler(); + AliHLTMemHandler *file = new AliHLTDataHandler(); file->SetBinaryInput("/prog/alice/data/new/fixed-slice0/rawdata_8bit/1part/digits_c8_0_5.raw"); //file->SetBinaryInput("test.raw"); UInt_t ndigits; - AliL3DigitRowData *data = (AliL3DigitRowData*)file->CompBinary2Memory(ndigits); + AliHLTDigitRowData *data = (AliHLTDigitRowData*)file->CompBinary2Memory(ndigits); cout<<"Number of rows: "<fRow<SetReaderInput(name); for(Int_t slice=first; slice<=last; slice++){ diff --git a/HLT/exa/deconvclusters.C b/HLT/exa/deconvclusters.C index c2e4caabe8e..f8e2ca0c892 100644 --- a/HLT/exa/deconvclusters.C +++ b/HLT/exa/deconvclusters.C @@ -1,7 +1,7 @@ //$Id$ -/* Example of how to use the AliL3ClusterFitter to fit clusters - to the track candidates given as a AliL3TrackArray. +/* Example of how to use the AliHLTClusterFitter to fit clusters + to the track candidates given as a AliHLTTrackArray. The path "path" should contain the link to the digitsfile, and the directories called fitter (for the results) and hough @@ -15,16 +15,16 @@ */ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Track.h" -#include "AliL3Transform.h" -#include "AliL3Hough.h" -#include "AliL3Fitter.h" -#include "AliL3ClusterFitter.h" -#include "AliL3Vertex.h" -#include "AliL3TrackArray.h" +#include "AliHLTLogger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTHough.h" +#include "AliHLTFitter.h" +#include "AliHLTClusterFitter.h" +#include "AliHLTVertex.h" +#include "AliHLTTrackArray.h" #include #include #include @@ -37,15 +37,15 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent=1) { - AliL3Transform::Init(path,kTRUE); + AliHLTTransform::Init(path,kTRUE); Char_t filename[1024]; - AliL3FileHandler *file = new AliL3FileHandler(kTRUE); //static index + AliHLTFileHandler *file = new AliHLTFileHandler(kTRUE); //static index UInt_t ndigits=0; sprintf(filename,"%s/digitfile.root",path); file->SetAliInput(filename); - AliL3ClusterFitter *fitter = new AliL3ClusterFitter(path); + AliHLTClusterFitter *fitter = new AliHLTClusterFitter(path); #ifdef __CINT__ Char_t macroname[1024]; @@ -66,10 +66,10 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent TStopwatch trefitter;trefitter.Stop(); Int_t patch=-1; - Int_t rowrange[2] = {0,AliL3Transform::GetNRows()-1}; + Int_t rowrange[2] = {0,AliHLTTransform::GetNRows()-1}; for(Int_t ev=0; evLoadSeeds(rowrange,kFALSE,ev); //Takes input from global hough tracks for(Int_t slice=minslice; slice<=maxslice; slice++) @@ -77,7 +77,7 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent tloader.Start(0); file->Init(slice,-1); cout<<"Processing event "<AliAltroDigits2Memory(ndigits,ev); + AliHLTDigitRowData *digits = (AliHLTDigitRowData*)file->AliAltroDigits2Memory(ndigits,ev); fitter->Init(slice,patch); fitter->SetInputData(digits); tloader.Stop(); @@ -94,10 +94,10 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent //If you want a refit of the clusters;------------------------- tloader.Start(0); - AliL3Vertex vertex; - AliL3TrackArray *tracks = fitter->GetSeeds(); //The seeds are the + AliHLTVertex vertex; + AliHLTTrackArray *tracks = fitter->GetSeeds(); //The seeds are the //input tracks from circle HT - AliL3Fitter *ft = new AliL3Fitter(&vertex,1); + AliHLTFitter *ft = new AliHLTFitter(&vertex,1); sprintf(filename,"%s/fitter/",path); ft->LoadClusters(filename,0,kTRUE); tloader.Stop(); @@ -105,7 +105,7 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent trefitter.Start(0); for(Int_t i=0; iGetNTracks(); i++) { - AliL3Track *track = tracks->GetCheckedTrack(i); + AliHLTTrack *track = tracks->GetCheckedTrack(i); if(!track) continue; if(track->GetNHits() < 40) continue; ft->SortTrackClusters(track); @@ -131,15 +131,15 @@ void deconvclusters(Char_t *path,Int_t minslice=0,Int_t maxslice=35,Int_t nevent void deconvlocally(Char_t *path,Int_t minslice=0,Int_t maxslice=17) { - AliL3Transform::Init(path,kTRUE); + AliHLTTransform::Init(path,kTRUE); Char_t filename[1024]; - AliL3FileHandler *file = new AliL3FileHandler(kTRUE); + AliHLTFileHandler *file = new AliHLTFileHandler(kTRUE); UInt_t ndigits=0; sprintf(filename,"%s/digitfile.root",path); file->SetAliInput(filename); - AliL3ClusterFitter *fitter = new AliL3ClusterFitter(path); + AliHLTClusterFitter *fitter = new AliHLTClusterFitter(path); #ifdef __CINT__ Char_t macroname[1024]; @@ -162,7 +162,7 @@ void deconvlocally(Char_t *path,Int_t minslice=0,Int_t maxslice=17) { file->Init(slice,patch); cout<<"Processing slice "<AliAltroDigits2Memory(ndigits); + AliHLTDigitRowData *digits = (AliHLTDigitRowData*)file->AliAltroDigits2Memory(ndigits); fitter->Init(slice,patch); fitter->LoadLocalSegments(); diff --git a/HLT/exa/display.C b/HLT/exa/display.C index 2c277d88e48..84f1b5ae8e8 100644 --- a/HLT/exa/display.C +++ b/HLT/exa/display.C @@ -2,7 +2,7 @@ /** Macro for displaying L3 cluster/track or raw data. - Uses the AliL3Display class. + Uses the AliHLTDisplay class. */ void display(Int_t minslice,Int_t maxslice,Char_t *file="tracks.raw",Char_t *path="./",Char_t *gfile="$(ALIGEOPATH)/alice.geom") @@ -10,7 +10,7 @@ void display(Int_t minslice,Int_t maxslice,Char_t *file="tracks.raw",Char_t *pat gStyle->SetOptStat(0); Int_t slice[2] = {minslice,maxslice}; - AliL3Display *a = new AliL3Display(slice,gfile); + AliHLTDisplay *a = new AliHLTDisplay(slice,gfile); //a->Setup(file,path); a->Setup(file,path,0,kTRUE); @@ -32,7 +32,7 @@ void display_cl(Int_t ev=0,Char_t *path="./",Char_t *gfile="$(LEVEL3)/GEO/alice. Char_t file[1024]; sprintf(file,"%s/tracks_%d.raw",path,ev); - a = new AliL3Display(slice,gfile); + a = new AliHLTDisplay(slice,gfile); //a->Setup(file,path); a->Setup(file,path,ev,kTRUE); diff --git a/HLT/exa/evalrowhough.C b/HLT/exa/evalrowhough.C index 2c09cceb51a..d39473619e8 100644 --- a/HLT/exa/evalrowhough.C +++ b/HLT/exa/evalrowhough.C @@ -53,14 +53,14 @@ void evalrowhough(Char_t *path="./fitter",Char_t *offlinepath="./",Int_t ievent= Char_t fname[1024]; sprintf(fname,"%s/tracks_%d.raw",path,ievent); - AliL3FileHandler *tfile = new AliL3FileHandler(); + AliHLTFileHandler *tfile = new AliHLTFileHandler(); if(!tfile->SetBinaryInput(fname)){ - LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open") + LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open") <<"Inputfile "<Binary2TrackArray(fTracks); //fTracks->QSort(); tfile->CloseBinaryInput(); @@ -68,7 +68,7 @@ void evalrowhough(Char_t *path="./fitter",Char_t *offlinepath="./",Int_t ievent= for(Int_t i=0; iGetNTracks(); i++) { - AliL3HoughTrack *track = fTracks->GetCheckedTrack(i); + AliHLTHoughTrack *track = fTracks->GetCheckedTrack(i); if(!track) continue; track->SetEta(fTracks->GetCheckedTrack(i)->GetPseudoRapidity()); @@ -83,7 +83,7 @@ void evalrowhough(Char_t *path="./fitter",Char_t *offlinepath="./",Int_t ievent= ifstream in(filename); if(!in) { - cerr<<"AliL3Evaluate::GetGoodParticles : Problems opening file :"<GetNTracks(); k++) { - AliL3HoughTrack *track = (AliL3HoughTrack *)fTracks->GetCheckedTrack(k); + AliHLTHoughTrack *track = (AliHLTHoughTrack *)fTracks->GetCheckedTrack(k); if(!track) continue; // Int_t nHits = track->GetNumberOfPoints(); // if(nHits < fMinPointsOnTrack) break; diff --git a/HLT/exa/evaltracker.C b/HLT/exa/evaltracker.C index 7e84cf34ca6..ef6754c56e6 100644 --- a/HLT/exa/evaltracker.C +++ b/HLT/exa/evaltracker.C @@ -12,16 +12,16 @@ offlinepath : path to where the files containing lists of the simulated particles are located. This are files generated by the AliTPCComparison macro (good_tracks_tpc) - All efficiencies and ptresoutions are filled in histograms (see AliL3Evaluate::CreateHistograms) + All efficiencies and ptresoutions are filled in histograms (see AliHLTEvaluate::CreateHistograms) and written to file. */ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3Evaluate.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" +#include "AliHLTLogger.h" +#include "AliHLTEvaluate.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" #include "AliLevel3.h" #include #include @@ -40,19 +40,19 @@ void evaltracker(Char_t *path="./",Char_t *trackpath="./tracker/",char *offlinepath="./",int nevent=1) { //Make sure you got the correct parameters: - AliL3Transform::Init(path,kTRUE); + AliHLTTransform::Init(path,kTRUE); //Define which slices to include: Int_t slicerange[2]={0,35}; //Define which padrows to include (should normally be all) - //Int_t rowrange[2]={AliL3Transform::GetFirstRow(-1),AliL3Transform::GetLastRow(-1)}; + //Int_t rowrange[2]={AliHLTTransform::GetFirstRow(-1),AliHLTTransform::GetLastRow(-1)}; //Define the minimum number of clusters on a simulated track to be found: - Int_t good = (Int_t)(0.4*AliL3Transform::GetNRows()); + Int_t good = (Int_t)(0.4*AliHLTTransform::GetNRows()); //Define the minumum number of clusters on a found track to be found (should normally be the same as above) - Int_t nclusters = (Int_t)(0.4*AliL3Transform::GetNRows()); + Int_t nclusters = (Int_t)(0.4*AliHLTTransform::GetNRows()); //Define which pt range to include Float_t ptmin = 0.1; @@ -61,7 +61,7 @@ void evaltracker(Char_t *path="./",Char_t *trackpath="./tracker/",char *offlinep //Define the maximum ratio of false clusters which are allowed on a found track (default=0.1 -> 10%) Float_t maxfalseratio = 0.1; - AliL3Evaluate *a = new AliL3Evaluate(trackpath,nclusters,good,ptmin,ptmax,slicerange); + AliHLTEvaluate *a = new AliHLTEvaluate(trackpath,nclusters,good,ptmin,ptmax,slicerange); a->CreateHistos(20,0.1,4.1);//(nbins in pt,minpt,maxpt) -> the same as used by standard offline a->SetMaxFalseClusters(maxfalseratio); //a->SetStandardComparison(kFALSE); //use AliTPCComparison_HLT diff --git a/HLT/exa/fill_pp.C b/HLT/exa/fill_pp.C index 557d0f4439e..605d24a7d7c 100644 --- a/HLT/exa/fill_pp.C +++ b/HLT/exa/fill_pp.C @@ -23,14 +23,14 @@ void fill_pp(Int_t ev=0,Char_t *path="./",Char_t *rfile="pptracks.root",Int_t saveev=-1) { - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStdout(); //l.UseStream(); if(getenv("TRANSFORMCONFIGPATH")){ - AliL3Transform::Init(getenv("TRANSFORMCONFIGPATH")); - } else AliL3Transform::Init(path); + AliHLTTransform::Init(getenv("TRANSFORMCONFIGPATH")); + } else AliHLTTransform::Init(path); TNtuple *ntuppel = new TNtuple("ntuppel","pptracks","pt:phi:eta:xvert:yvert:zvert:imp:nhits:px:py:pz:event:mc"); Float_t meas[13]; @@ -38,19 +38,19 @@ void fill_pp(Int_t ev=0,Char_t *path="./",Char_t *rfile="pptracks.root",Int_t sa TFile file(rfile,"UPDATE"); Char_t name[1024]; - AliL3Evaluate *eval=new AliL3Evaluate(path,63,63); + AliHLTEvaluate *eval=new AliHLTEvaluate(path,63,63); eval->LoadData(ev,-1); eval->AssignIDs(); - AliL3TrackArray *a=eval->GetTracks(); + AliHLTTrackArray *a=eval->GetTracks(); a->Compress(); - AliL3Track t; + AliHLTTrack t; Float_t phi,pt,eta; Int_t id; Int_t nhits; - AliL3Vertex vertex; + AliHLTVertex vertex; Double_t xc,yc,zc,impact; Int_t ntracks=a.GetNTracks(); @@ -287,24 +287,24 @@ void plot_pp(Char_t *pfile, Int_t evi=0, Int_t eve=100) void eval_pp(Int_t ev=0,Char_t *path="./") { - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStdout(); //l.UseStream(); - AliL3Evaluate *eval=new AliL3Evaluate(path,63,63); + AliHLTEvaluate *eval=new AliHLTEvaluate(path,63,63); eval->LoadData(ev,-1); eval->AssignIDs(); - AliL3TrackArray *a=eval->GetTracks(); + AliHLTTrackArray *a=eval->GetTracks(); - AliL3Track t; + AliHLTTrack t; Float_t phi,pt,tgl,eta; Int_t id; Int_t nhits; Int_t abspos=0,pos=0,absneg=0,neg=0; //assume vertex around zero - AliL3Vertex vertex; + AliHLTVertex vertex; Double_t xc,yc,zc,impact; Int_t nents=0; @@ -495,31 +495,31 @@ void simple_eff_pp(Char_t *pfile, Char_t *reffile, Int_t evi=0, Int_t eve=100,In Store certain amount of track arrays in a root file for later access - okay needs to many changes - in AliL3TrackArray and AliL3Track + in AliHLTTrackArray and AliHLTTrack classes so stopped working on it (see fill_pp instead). */ void store_pp(Int_t evs=0,Int_t eve=100,Char_t *path="./",Char_t *rfile="tracks.root") { - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStdout(); //l.UseStream(); if(getenv("TRANSFORMCONFIGPATH")){ - AliL3Transform::Init(getenv("TRANSFORMCONFIGPATH")); + AliHLTTransform::Init(getenv("TRANSFORMCONFIGPATH")); } TFile file(rfile,"UPDATE"); Char_t name[1024]; for(Int_t i=evs;iLoadData(i,-1); eval->AssignIDs(); - AliL3TrackArray *a=eval->GetTracks(); + AliHLTTrackArray *a=eval->GetTracks(); sprintf(name,"tracks-%d",i); a->Compress(); a->Write(name); @@ -538,31 +538,31 @@ void store_pp(Int_t evs=0,Int_t eve=100,Char_t *path="./",Char_t *rfile="tracks. void load_pp(Int_t evs=0,Int_t eve=100,Char_t *path="./") { - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStdout(); //l.UseStream(); if(getenv("TRANSFORMCONFIGPATH")){ - AliL3Transform::Init(getenv("TRANSFORMCONFIGPATH")); + AliHLTTransform::Init(getenv("TRANSFORMCONFIGPATH")); } else { - AliL3Transform::Init(path); + AliHLTTransform::Init(path); } for(Int_t j=evs;jLoadData(j,-1); //load whole patch eval->AssignIDs(); - AliL3TrackArray *a=eval->GetTracks(); + AliHLTTrackArray *a=eval->GetTracks(); - AliL3Track t; + AliHLTTrack t; Float_t phi,pt,tgl,eta; Int_t id; Int_t nhits; - AliL3Vertex vertex; + AliHLTVertex vertex; Double_t xc,yc,zc,impact; Int_t nents=0; diff --git a/HLT/exa/read.C b/HLT/exa/read.C index 075c0d7ada9..f5947a9138d 100644 --- a/HLT/exa/read.C +++ b/HLT/exa/read.C @@ -5,10 +5,10 @@ #ifndef __CINT__ -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "AliL3Logger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" +#include "AliHLTLogger.h" #include #include #endif @@ -16,13 +16,13 @@ void read(Char_t *path="./",Int_t min=0,Int_t max=35) { - AliL3Transform::Init(path); + AliHLTTransform::Init(path); for(Int_t slice=0; slice<35; slice++) { Char_t fname[256]; sprintf(fname,"%s/digits_%d_0.raw",path,slice); - AliL3FileHandler *file = new AliL3FileHandler(); + AliHLTFileHandler *file = new AliHLTFileHandler(); if(!file->SetBinaryInput(fname)) { cerr<<"Error opening file "<Init(slice,0,row); UInt_t size; - AliL3DigitRowData *data = file->CompBinary2Memory(size); + AliHLTDigitRowData *data = file->CompBinary2Memory(size); for(Int_t r=0; r<175; r++) { UInt_t padrow=data->fRow; - AliL3DigitData *dPt = (AliL3DigitData*)data->fDigitData; + AliHLTDigitData *dPt = (AliHLTDigitData*)data->fDigitData; cout<<"padrow "<fNDigit<fNDigit; d++) @@ -59,12 +59,12 @@ void read(Char_t *path="./",Int_t min=0,Int_t max=35) void read_ali(Char_t *fname, Int_t sl=0, Int_t sh=35) { //need galice file or alirunfile.root link - if(AliL3Transform::Init(fname,kTRUE)) + if(AliHLTTransform::Init(fname,kTRUE)) { cout << "created temp init file!" << endl; } - AliL3FileHandler *fileHandler = new AliL3FileHandler(); + AliHLTFileHandler *fileHandler = new AliHLTFileHandler(); if(!fileHandler->SetAliInput(fname)) { @@ -76,13 +76,13 @@ void read_ali(Char_t *fname, Int_t sl=0, Int_t sh=35) UInt_t nrow=0; for(Int_t slice=sl; slice<=sl; slice++){ - for(Int_t patch=0;patchFree(); fileHandler->Init(slice,patch); - AliL3DigitRowData *data=fileHandler->AliDigits2Memory(nrow,event); + AliHLTDigitRowData *data=fileHandler->AliDigits2Memory(nrow,event); if(!data) cerr << "Obscure error while reading data." << endl; cerr<<" found "<< nrow << " rows" <SetBinaryInput(fname)) { cerr<<"Error opening file "<Init(slice,-1); UInt_t size; - AliL3DigitRowData *data; - data=(AliL3DigitRowData*)file->Allocate(); //size from binary input + AliHLTDigitRowData *data; + data=(AliHLTDigitRowData*)file->Allocate(); //size from binary input file->Binary2Memory(size,data); - for(Int_t r=AliL3Transform::GetFirstRow(-1); rfRow; - AliL3DigitData *dPt = (AliL3DigitData*)data->fDigitData; + AliHLTDigitData *dPt = (AliHLTDigitData*)data->fDigitData; cout<fNDigit<fNDigit; d++) @@ -136,7 +136,7 @@ void read_pp(Char_t *path="./",Int_t min=0,Int_t max=35,Int_t ev=0) void read_event_tree(Char_t *rootfile,Int_t startev=0) { - AliL3FileHandler *handler = new AliL3FileHandler(); + AliHLTFileHandler *handler = new AliHLTFileHandler(); if(!handler->SetAliInput(rootfile)){ cerr<<" Error opening file: "<Load("$(ALIHLT_MLUCDIR/lib/libMLUC"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Src"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Misc"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Hough"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Comp"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTSrc"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTMisc"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTHough"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTComp"); } else { if(strcmp("false",getenv("ALIHLT_NOLOGGING"))==0) gSystem->Load("$(ALIHLT_BASEDIR)/kip/MLUC/lib/linux-i386/libMLUC.so"); - gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliL3Src"); - gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliL3Misc"); - gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliL3Hough"); - gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliL3Comp"); + gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliHLTSrc"); + gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliHLTMisc"); + gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliHLTHough"); + gSystem->Load("$(ALIHLT_BASEDIR)/lib_$(USER)/libAliHLTComp"); } cout<<"HLT libraries loaded"<Load("$(ALIHLT_LIBDIR)/libAliL3Src"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Misc"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Hough"); - gSystem->Load("$(ALIHLT_LIBDIR)/libAliL3Comp"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTSrc"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTMisc"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTHough"); + gSystem->Load("$(ALIHLT_LIBDIR)/libAliHLTComp"); cout<<"HLT libraries loaded"<SetAliInput(digitfile); for(Int_t slice=0; slice<=35; slice++) { @@ -29,13 +29,13 @@ void runcf(Char_t *path) file->Init(slice,patch); UInt_t ndigits=0; UInt_t maxclusters=100000; - UInt_t pointsize = maxclusters*sizeof(AliL3SpacePointData); + UInt_t pointsize = maxclusters*sizeof(AliHLTSpacePointData); - AliL3SpacePointData *points = (AliL3SpacePointData*)memory->Allocate(pointsize); - AliL3DigitRowData *digits = (AliL3DigitRowData*)file->AliAltroDigits2Memory(ndigits,event); - AliL3ClustFinderNew *cf = new AliL3ClustFinderNew(); + AliHLTSpacePointData *points = (AliHLTSpacePointData*)memory->Allocate(pointsize); + AliHLTDigitRowData *digits = (AliHLTDigitRowData*)file->AliAltroDigits2Memory(ndigits,event); + AliHLTClustFinderNew *cf = new AliHLTClustFinderNew(); //cf->SetMatchWidth(2); - cf->InitSlice(slice,patch,AliL3Transform::GetFirstRow(patch),AliL3Transform::GetLastRow(patch),maxclusters); + cf->InitSlice(slice,patch,AliHLTTransform::GetFirstRow(patch),AliHLTTransform::GetLastRow(patch),maxclusters); cf->SetSTDOutput(kTRUE); cf->SetThreshold(5); cf->SetDeconv(kTRUE); diff --git a/HLT/exa/runhough.C b/HLT/exa/runhough.C index 786e4a95d2a..b43649bb2ef 100644 --- a/HLT/exa/runhough.C +++ b/HLT/exa/runhough.C @@ -2,7 +2,7 @@ /** Run this macro for Hough track candidate finder - (see steering class AliL3Hough). + (see steering class AliHLTHough). In argument path, you have to provide the path to the directory where the data files should be located. In case of reading from a rootfile, you have to @@ -20,14 +20,14 @@ */ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "AliL3Hough.h" -#include "AliL3TrackArray.h" -#include "AliL3Track.h" -#include "AliL3HoughTrack.h" +#include "AliHLTLogger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" +#include "AliHLTHough.h" +#include "AliHLTTrackArray.h" +#include "AliHLTTrack.h" +#include "AliHLTHoughTrack.h" #include #include #include @@ -40,7 +40,7 @@ void runhough(Char_t *path,Char_t *outpath,Int_t s1=0,Int_t s2=35,Int_t nevent=1) { - Bool_t isinit=AliL3Transform::Init(path,kTRUE); + Bool_t isinit=AliHLTTransform::Init(path,kTRUE); if(!isinit){ cerr << "Could not create transform settings, please check log for error messages!" << endl; return; @@ -49,7 +49,7 @@ void runhough(Char_t *path,Char_t *outpath,Int_t s1=0,Int_t s2=35,Int_t nevent=1 Int_t tversion=1; //0 = normal transformer //1 = LUT transformer - AliL3Hough *hough = new AliL3Hough(); + AliHLTHough *hough = new AliHLTHough(); #ifdef __CINT__ Char_t macroname[1024]; sprintf(macroname,"SetHoughParameters.C"); @@ -78,7 +78,7 @@ void runhough(Char_t *path,Char_t *outpath,Int_t s1=0,Int_t s2=35,Int_t nevent=1 for(Int_t ev=0; evAddTracks(); tfinder.Stop(); #if 0 /*print track list */ - AliL3TrackArray *tracks = (AliL3TrackArray*)hough->GetTracks(0); + AliHLTTrackArray *tracks = (AliHLTTrackArray*)hough->GetTracks(0); tracks->QSort(); for(int i=0; iGetNTracks(); i++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!track) continue; cout<<"pt "<GetPt()<<" psi "<GetPsi()<<" eta "<GetEta()<<" etaindex "<GetEtaIndex()<<" weight "<GetWeight()<WriteTracks(outpath); - AliL3FileHandler::SaveStaticIndex(0,ev); + AliHLTFileHandler::SaveStaticIndex(0,ev); } cout << " --- Timing values --- " << endl; diff --git a/HLT/exa/runkalman.C b/HLT/exa/runkalman.C index edb7d348223..8c7ad0a3215 100644 --- a/HLT/exa/runkalman.C +++ b/HLT/exa/runkalman.C @@ -7,9 +7,9 @@ void runkalman(Char_t *path = "/tmp/tvik") //with mult. and BField //for aliroot the path should point to a file //containing the tpc geometry called alirunfile.root - Bool_t isinit=AliL3Transform::Init("./",!binary); + Bool_t isinit=AliHLTTransform::Init("./",!binary); - AliL3Kalman *k = new AliL3Kalman(path,0,0); + AliHLTKalman *k = new AliHLTKalman(path,0,0); k->Init(); //k->DoMakeSeed(); k->LoadTracks(0,kTRUE); diff --git a/HLT/exa/runrowhough.C b/HLT/exa/runrowhough.C index 22996d04730..9e488da46ff 100644 --- a/HLT/exa/runrowhough.C +++ b/HLT/exa/runrowhough.C @@ -1,18 +1,18 @@ // $Id$ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "AliL3Hough.h" -#include "AliL3TrackArray.h" -#include "AliL3Track.h" -#include "AliL3HoughTrack.h" -#include "AliL3Fitter.h" -#include "AliL3ClusterFitter.h" -#include "AliL3Vertex.h" -#include "AliL3Benchmark.h" +#include "AliHLTLogger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" +#include "AliHLTHough.h" +#include "AliHLTTrackArray.h" +#include "AliHLTTrack.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTFitter.h" +#include "AliHLTClusterFitter.h" +#include "AliHLTVertex.h" +#include "AliHLTBenchmark.h" #include #include #include @@ -28,12 +28,12 @@ Int_t runrowhough(Char_t *path="./",Char_t *outpath="./fitter",int s1=0,int s2=35,int nevent=1,Bool_t skip=kTRUE) { - Bool_t isinit=AliL3Transform::Init(path,kTRUE); + Bool_t isinit=AliHLTTransform::Init(path,kTRUE); if(!isinit){ cerr << "Could not create transform settings, please check log for error messages!" << endl; return 1; } - Float_t ptmin = 0.1*AliL3Transform::GetSolenoidField(); + Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField(); Float_t zvertex; { @@ -55,8 +55,8 @@ Int_t runrowhough(Char_t *path="./",Char_t *outpath="./fitter",int s1=0,int s2=3 cout<<" Hough Tranform will run with ptmin="<Debug(); @@ -94,7 +94,7 @@ Int_t runrowhough(Char_t *path="./",Char_t *outpath="./fitter",int s1=0,int s2=3 // fitter->SetChiSqMax(5,kFALSE); //isolated clusters fitter->SetChiSqMax(5,kTRUE); //overlapping clusters - Int_t rowrange[2] = {0,AliL3Transform::GetNRows()-1}; + Int_t rowrange[2] = {0,AliHLTTransform::GetNRows()-1}; // Takes input from global hough tracks produced by HT fitter->LoadSeeds(rowrange,kFALSE,ev,zvertex); @@ -103,12 +103,12 @@ Int_t runrowhough(Char_t *path="./",Char_t *outpath="./fitter",int s1=0,int s2=3 for(int slice=s1; slice<=s2; slice++) { - for(Int_t ipatch = 0; ipatch < AliL3Transform::GetNPatches(); ipatch++) + for(Int_t ipatch = 0; ipatch < AliHLTTransform::GetNPatches(); ipatch++) { // Read digits hough->GetMemHandler(ipatch)->Free(); hough->GetMemHandler(ipatch)->Init(slice,ipatch); - AliL3DigitRowData *digits = (AliL3DigitRowData *)hough->GetMemHandler(ipatch)->AliAltroDigits2Memory(ndigits,ev); + AliHLTDigitRowData *digits = (AliHLTDigitRowData *)hough->GetMemHandler(ipatch)->AliAltroDigits2Memory(ndigits,ev); fBenchmark->Start("Fitter Init"); fitter->Init(slice,ipatch); @@ -122,16 +122,16 @@ Int_t runrowhough(Char_t *path="./",Char_t *outpath="./fitter",int s1=0,int s2=3 } // Refit of the clusters - AliL3Vertex vertex; + AliHLTVertex vertex; //The seeds are the input tracks from circle HT - AliL3TrackArray *tracks = fitter->GetSeeds(); - AliL3Fitter *ft = new AliL3Fitter(&vertex,1); + AliHLTTrackArray *tracks = fitter->GetSeeds(); + AliHLTFitter *ft = new AliHLTFitter(&vertex,1); ft->LoadClusters("./fitter/",ev,kFALSE); fBenchmark->Start("Track fitter"); for(Int_t i=0; iGetNTracks(); i++) { - AliL3Track *track = tracks->GetCheckedTrack(i); + AliHLTTrack *track = tracks->GetCheckedTrack(i); if(!track) continue; if(track->GetNHits() < 20) continue; ft->SortTrackClusters(track); diff --git a/HLT/exa/runtracker.C b/HLT/exa/runtracker.C index 1382d772d1a..931c0e5ff39 100644 --- a/HLT/exa/runtracker.C +++ b/HLT/exa/runtracker.C @@ -14,10 +14,10 @@ */ #ifndef __CINT__ -#include "AliL3Logger.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" +#include "AliHLTLogger.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" #include "AliLevel3.h" #include #include @@ -41,7 +41,7 @@ void runtracker(Int_t minslice=0,Int_t maxslice=35,Char_t* path="./",Int_t neven //for aliroot the path should point to a file //containing the tpc geometry called alirunfile.root - Bool_t isinit=AliL3Transform::Init(path,(filetype!=AliLevel3::kBinary)); + Bool_t isinit=AliHLTTransform::Init(path,(filetype!=AliLevel3::kBinary)); if(!isinit){ cerr << "Could not create transform settings, please check log for error messages!" << endl; return; @@ -80,7 +80,7 @@ void runtracker(Int_t minslice=0,Int_t maxslice=35,Char_t* path="./",Int_t neven rowscopetracklet = 2; //search range of rows for a tracklet rowscopetrack = 10; //search range of rows for a track min_pt_fit = 0; - maxangle = 0.1745; //AliL3Transform::Deg2Rad(10); + maxangle = 0.1745; //AliHLTTransform::Deg2Rad(10); //maximum angle for the three point look ahead goodDist = 5; //threshold distance between two hits when building tracklets maxphi=0.1; //maximum phi difference for neighboring hits diff --git a/HLT/exa/runtracker_pp.C b/HLT/exa/runtracker_pp.C index 10a9568c7db..aaf70753d38 100644 --- a/HLT/exa/runtracker_pp.C +++ b/HLT/exa/runtracker_pp.C @@ -7,8 +7,8 @@ void runtracker_pp(Int_t trigev,Char_t* path=0,Char_t *rootfile=0,Char_t *wpath="./") { - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStdout(); //l.UseStream(); @@ -20,8 +20,8 @@ void runtracker_pp(Int_t trigev,Char_t* path=0,Char_t *rootfile=0,Char_t *wpath= } else strcpy(path_to_use,path); if(getenv("TRANSFORMCONFIGPATH")){ - AliL3Transform::Init(getenv("TRANSFORMCONFIGPATH")); - } else AliL3Transform::Init(path_to_use); + AliHLTTransform::Init(getenv("TRANSFORMCONFIGPATH")); + } else AliHLTTransform::Init(path_to_use); Int_t phi_segments,eta_segments,trackletlength,tracklength; Int_t rowscopetracklet,rowscopetrack; diff --git a/HLT/exa/trigger_pp.C b/HLT/exa/trigger_pp.C index da238e3d6c7..37a282c99ee 100644 --- a/HLT/exa/trigger_pp.C +++ b/HLT/exa/trigger_pp.C @@ -440,8 +440,8 @@ void trigger_pp(char *outfile="results.root") //sprintf(fname,"aliruntfile.root"); //Get the tracks: - /*AliL3TrackArray *tracks = new AliL3TrackArray(); - AliL3FileHandler *file = new AliL3FileHandler(); + /*AliHLTTrackArray *tracks = new AliHLTTrackArray(); + AliHLTFileHandler *file = new AliHLTFileHandler(); file->SetBinaryInput(fname); file->Binary2TrackArray(tracks); file->CloseBinaryInput(); @@ -449,11 +449,11 @@ void trigger_pp(char *outfile="results.root") sprintf(fname,"/data1/AliRoot/pp/pileup/"); - AliL3Evaluate *eval=new AliL3Evaluate(fname,63,63); + AliHLTEvaluate *eval=new AliHLTEvaluate(fname,63,63); eval->LoadData(event,-1); eval->AssignIDs(); - AliL3TrackArray *tracks=eval->GetTracks(); + AliHLTTrackArray *tracks=eval->GetTracks(); sprintf(fname,"/data1/AliRoot/pp/pileup/"); //sprintf(fname,"/prog/alice/data/Rawdata/1_patch/pp/recon_%d/",event); @@ -461,15 +461,15 @@ void trigger_pp(char *outfile="results.root") Int_t ntracks=0; Double_t xc,yc,zc; Double_t impact; - AliL3Vertex vertex; + AliHLTVertex vertex; Int_t mcid = 0; - AliL3TrackArray *ftracks = new AliL3TrackArray(); + AliHLTTrackArray *ftracks = new AliHLTTrackArray(); for(int i=0; iGetNTracks(); i++) { - track = (AliL3Track*)tracks->GetCheckedTrack(i); + track = (AliHLTTrack*)tracks->GetCheckedTrack(i); if(!track) continue; //Assign MCid @@ -527,10 +527,10 @@ void trigger_pp(char *outfile="results.root") delete ntuppel; } -void display(AliL3TrackArray *tracks,char *path) +void display(AliHLTTrackArray *tracks,char *path) { int slice[2]={0,35}; - d = new AliL3Display(slice); + d = new AliHLTDisplay(slice); d->Setup("tracks_0.raw",path); d->SetTracks(tracks); //d->DisplayClusters(); diff --git a/HLT/hough/AliL3Histogram.cxx b/HLT/hough/AliHLTHistogram.cxx similarity index 71% rename from HLT/hough/AliL3Histogram.cxx rename to HLT/hough/AliHLTHistogram.cxx index e006985ed04..788a14c0a2c 100644 --- a/HLT/hough/AliL3Histogram.cxx +++ b/HLT/hough/AliHLTHistogram.cxx @@ -3,19 +3,19 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Histogram.h" +#include "AliHLTLogging.h" +#include "AliHLTHistogram.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3Histogram +/** \class AliHLTHistogram
 //_____________________________________________________________
-// AliL3Histogram
+// AliHLTHistogram
 //
 // 2D histogram class
 //
@@ -25,9 +25,9 @@ using namespace std;
 //uncomment if you want overflow checks
 //#define _IFON_
 
-ClassImp(AliL3Histogram)
+ClassImp(AliHLTHistogram)
 
-AliL3Histogram::AliL3Histogram()
+AliHLTHistogram::AliHLTHistogram()
 {
   // Default constructor
   fNxbins = 0;
@@ -51,7 +51,7 @@ AliL3Histogram::AliL3Histogram()
 #endif
 }
 
-AliL3Histogram::AliL3Histogram(Char_t *name,Char_t */*id*/,
+AliHLTHistogram::AliHLTHistogram(Char_t *name,Char_t */*id*/,
 			       Int_t nxbin,Double_t xmin,Double_t xmax,
 			       Int_t nybin,Double_t ymin,Double_t ymax) 
 {
@@ -82,7 +82,7 @@ AliL3Histogram::AliL3Histogram(Char_t *name,Char_t */*id*/,
   Reset();
 }
 
-AliL3Histogram::~AliL3Histogram()
+AliHLTHistogram::~AliHLTHistogram()
 {
   //Destructor
   if(fContent)
@@ -93,7 +93,7 @@ AliL3Histogram::~AliL3Histogram()
 #endif
 }
 
-void AliL3Histogram::Reset()
+void AliHLTHistogram::Reset()
 {
   // Reset histogram contents
   if(fContent)
@@ -102,7 +102,7 @@ void AliL3Histogram::Reset()
   fEntries=0;
 }
 
-void AliL3Histogram::Fill(Double_t x,Double_t y,Int_t weight)
+void AliHLTHistogram::Fill(Double_t x,Double_t y,Int_t weight)
 {
   // Fill the weight into a bin which correspond to x and y
   Int_t bin = FindBin(x,y);
@@ -114,7 +114,7 @@ void AliL3Histogram::Fill(Double_t x,Double_t y,Int_t weight)
   AddBinContent(bin,weight);
 }
 
-void AliL3Histogram::Fill(Double_t x,Int_t ybin,Int_t weight)
+void AliHLTHistogram::Fill(Double_t x,Int_t ybin,Int_t weight)
 {
   // Fill the weight into a bin which correspond to x and ybin
   Int_t xbin = FindXbin(x);
@@ -127,7 +127,7 @@ void AliL3Histogram::Fill(Double_t x,Int_t ybin,Int_t weight)
   AddBinContent(bin,weight);
 }
 
-void AliL3Histogram::Fill(Int_t xbin,Double_t y,Int_t weight)
+void AliHLTHistogram::Fill(Int_t xbin,Double_t y,Int_t weight)
 {
   // Fill the weight into a bin which correspond to xbin and y
   Int_t ybin = FindYbin(y);
@@ -140,7 +140,7 @@ void AliL3Histogram::Fill(Int_t xbin,Double_t y,Int_t weight)
   AddBinContent(bin,weight);
 }
 
-void AliL3Histogram::Fill(Int_t xbin,Int_t ybin,Int_t weight)
+void AliHLTHistogram::Fill(Int_t xbin,Int_t ybin,Int_t weight)
 {
   // Fill the weight into a bin which correspond to xbin and ybin
   Int_t bin = GetBin(xbin,ybin);
@@ -152,7 +152,7 @@ void AliL3Histogram::Fill(Int_t xbin,Int_t ybin,Int_t weight)
   AddBinContent(bin,weight);
 }
 
-Int_t AliL3Histogram::FindBin(Double_t x,Double_t y) const
+Int_t AliHLTHistogram::FindBin(Double_t x,Double_t y) const
 {
   // Finds the bin which correspond to x and y
   Int_t xbin = FindXbin(x);
@@ -165,7 +165,7 @@ Int_t AliL3Histogram::FindBin(Double_t x,Double_t y) const
   return GetBin(xbin,ybin);
 }
 
-Int_t AliL3Histogram::FindLabelBin(Double_t x,Double_t y) const
+Int_t AliHLTHistogram::FindLabelBin(Double_t x,Double_t y) const
 {
   // Returns the corresponding bin with the mc labels
   Int_t xbin = FindXbin(x);
@@ -178,7 +178,7 @@ Int_t AliL3Histogram::FindLabelBin(Double_t x,Double_t y) const
   return GetLabelBin(xbin,ybin);
 }
 
-Int_t AliL3Histogram::FindXbin(Double_t x) const
+Int_t AliHLTHistogram::FindXbin(Double_t x) const
 {
   // Finds the bin which correspond to x
   if(x < fXmin || x > fXmax)
@@ -187,7 +187,7 @@ Int_t AliL3Histogram::FindXbin(Double_t x) const
   return 1 + (Int_t)(fNxbins*(x-fXmin)/(fXmax-fXmin));
 }
 
-Int_t AliL3Histogram::FindYbin(Double_t y) const
+Int_t AliHLTHistogram::FindYbin(Double_t y) const
 {
   // Finds the bin which correspond to y
   if(y < fYmin || y > fYmax)
@@ -196,7 +196,7 @@ Int_t AliL3Histogram::FindYbin(Double_t y) const
   return 1 + (Int_t)(fNybins*(y-fYmin)/(fYmax-fYmin));
 }
 
-Int_t AliL3Histogram::GetBin(Int_t xbin,Int_t ybin) const
+Int_t AliHLTHistogram::GetBin(Int_t xbin,Int_t ybin) const
 {
   // Returns the bin which correspond to xbin and ybin
   if(xbin < fFirstXbin || xbin > fLastXbin)
@@ -207,7 +207,7 @@ Int_t AliL3Histogram::GetBin(Int_t xbin,Int_t ybin) const
   return xbin + ybin*(fNxbins+2);
 }
 
-Int_t AliL3Histogram::GetLabelBin(Int_t xbin,Int_t ybin) const
+Int_t AliHLTHistogram::GetLabelBin(Int_t xbin,Int_t ybin) const
 {
   // Returns the corresponding bin with the mc labels
   if(xbin < fFirstXbin || xbin > fLastXbin)
@@ -218,12 +218,12 @@ Int_t AliL3Histogram::GetLabelBin(Int_t xbin,Int_t ybin) const
   return (Int_t)(xbin/2) + ((Int_t)(ybin/2))*((Int_t)((fNxbins+3)/2));
 }
 
-Int_t AliL3Histogram::GetBinContent(Int_t bin) const
+Int_t AliHLTHistogram::GetBinContent(Int_t bin) const
 {
   // Return the bin content
   if(bin >= fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinContent","array")<= fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::SetBinContent","array")< fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::AddBinContent","array")<GetNbinsX()!=fNxbins || h1->GetNbinsY()!=fNybins)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::Add","array")<<
+      LOG(AliHLTLog::kError,"AliHLTHistogram::Add","array")<<
 	"Mismatch in the number of bins "<GetFirstXbin()!=fFirstXbin || h1->GetLastXbin()!=fLastXbin ||
      h1->GetFirstYbin()!=fFirstYbin || h1->GetLastYbin()!=fLastYbin)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::Add","array")<<
+      LOG(AliHLTLog::kError,"AliHLTHistogram::Add","array")<<
 	"Mismatch in the bin numbering "<GetNEntries();
 }
 
-Double_t AliL3Histogram::GetBinCenterX(Int_t xbin) const
+Double_t AliHLTHistogram::GetBinCenterX(Int_t xbin) const
 {
   // Returns the position of the center of a bin
   if(xbin < fFirstXbin || xbin > fLastXbin)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinCenterX","xbin")
+      LOG(AliHLTLog::kError,"AliHLTHistogram::GetBinCenterX","xbin")
 	<<"Bin-value out of range "< fLastYbin)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinCenterY","ybin")
+      LOG(AliHLTLog::kError,"AliHLTHistogram::GetBinCenterY","ybin")
 	<<"Bin-value out of range "< (fLastXbin+1.5))
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinCenterX","xbin")
+      LOG(AliHLTLog::kError,"AliHLTHistogram::GetBinCenterX","xbin")
 	<<"Bin-value out of range "< (fLastYbin+1.5))
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinCenterY","ybin")
+      LOG(AliHLTLog::kError,"AliHLTHistogram::GetBinCenterY","ybin")
 	<<"Bin-value out of range "<Draw(option);
   return;
 #else
-  cerr<<"AliL3Histogram::Draw : You need to compile with ROOT in order to draw histogram"<
 #endif
 
-class AliL3Histogram {
+class AliHLTHistogram {
  public:
 
-  AliL3Histogram();
-  AliL3Histogram(Char_t *name,Char_t *id,Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax);
-  virtual ~AliL3Histogram();
+  AliHLTHistogram();
+  AliHLTHistogram(Char_t *name,Char_t *id,Int_t nxbin,Double_t xmin,Double_t xmax,Int_t nybin,Double_t ymin,Double_t ymax);
+  virtual ~AliHLTHistogram();
   
   void Reset();
   virtual void Fill(Double_t x,Double_t y,Int_t weight=1);
@@ -34,13 +34,13 @@ class AliL3Histogram {
   void SetBinContent(Int_t bin,Int_t value);
   void AddBinContent(Int_t xbin,Int_t ybin,Int_t weight);
   void AddBinContent(Int_t bin,Int_t weight);
-  void Add(AliL3Histogram *h1,Double_t weight=1);
+  void Add(AliHLTHistogram *h1,Double_t weight=1);
   void SetThreshold(Int_t i) {fThreshold = i;}
   void CreateRootHisto();
   virtual void Draw(Char_t *option="hist");
   virtual void Print() const {};
 
-  friend ofstream& operator<< (ofstream &o, const AliL3Histogram &h);
+  friend ofstream& operator<< (ofstream &o, const AliHLTHistogram &h);
 
 #ifdef use_root
   TH2F *GetRootHisto();
@@ -94,25 +94,27 @@ class AliL3Histogram {
   Double_t fBinwidthX; // Bin width of the Hough space
   Double_t fBinwidthY; // Bin width of the Hough space
   
-  ClassDef(AliL3Histogram,1) //2D histogram class
+  ClassDef(AliHLTHistogram,1) //2D histogram class
     
 };
 
+typedef AliHLTHistogram AliL3Histogram; // for backward comaptibility
+
 #ifdef use_root
-inline TH2F *AliL3Histogram::GetRootHisto()
+inline TH2F *AliHLTHistogram::GetRootHisto()
 {
   if(!fRootHisto)
     {
-      STDCERR<<"AliL3Histogram::GetRootHisto() : You must first Draw histogram before accessing it"<
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3Logging.h"
-#include "AliL3Histogram1D.h"
+#include "AliHLTLogging.h"
+#include "AliHLTHistogram1D.h"
 
 #ifdef use_root
 #include 
@@ -18,13 +18,13 @@ using namespace std;
 #endif
 
 //_____________________________________________________________
-// AliL3Histogram1D
+// AliHLTHistogram1D
 //
 // 1D histogram class.
 
-ClassImp(AliL3Histogram1D)
+ClassImp(AliHLTHistogram1D)
 
-AliL3Histogram1D::AliL3Histogram1D()
+AliHLTHistogram1D::AliHLTHistogram1D()
 {
   //default ctor
   fNbins = 0;
@@ -40,7 +40,7 @@ AliL3Histogram1D::AliL3Histogram1D()
   
 }
   
-AliL3Histogram1D::AliL3Histogram1D(Char_t *name,Char_t */*id*/,Int_t nxbin,Double_t xmin,Double_t xmax)
+AliHLTHistogram1D::AliHLTHistogram1D(Char_t *name,Char_t */*id*/,Int_t nxbin,Double_t xmin,Double_t xmax)
 
 {
   //normal ctor
@@ -59,7 +59,7 @@ AliL3Histogram1D::AliL3Histogram1D(Char_t *name,Char_t */*id*/,Int_t nxbin,Doubl
   Reset();
 }
 
-AliL3Histogram1D::~AliL3Histogram1D()
+AliHLTHistogram1D::~AliHLTHistogram1D()
 {
   //Destructor
   if(fContent)
@@ -71,7 +71,7 @@ AliL3Histogram1D::~AliL3Histogram1D()
 }
 
 
-void AliL3Histogram1D::Reset()
+void AliHLTHistogram1D::Reset()
 {
   //Reset histogram contents
 #if defined(__DECCXX)
@@ -82,7 +82,7 @@ void AliL3Histogram1D::Reset()
   fEntries=0;
 }
 
-void AliL3Histogram1D::Fill(Double_t x,Int_t weight)
+void AliHLTHistogram1D::Fill(Double_t x,Int_t weight)
 {
   //Fill a given bin with weight
   Int_t bin = FindBin(x);
@@ -90,7 +90,7 @@ void AliL3Histogram1D::Fill(Double_t x,Int_t weight)
 }
 
 
-Int_t AliL3Histogram1D::FindBin(Double_t x) const
+Int_t AliHLTHistogram1D::FindBin(Double_t x) const
 {
   //Find a given bin
   if(x < fXmin || x > fXmax)
@@ -100,7 +100,7 @@ Int_t AliL3Histogram1D::FindBin(Double_t x) const
 
 }
 
-Int_t AliL3Histogram1D::GetMaximumBin() const
+Int_t AliHLTHistogram1D::GetMaximumBin() const
 {
   //Find the bin with the largest content
   Double_t maxvalue=0;
@@ -116,12 +116,12 @@ Int_t AliL3Histogram1D::GetMaximumBin() const
   return maxbin;
 }
 
-Double_t AliL3Histogram1D::GetBinContent(Int_t bin) const
+Double_t AliHLTHistogram1D::GetBinContent(Int_t bin) const
 {
   //Get bin content
   if(bin >= fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::GetBinContent","array")<= fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::SetBinContent","array")< fNcells)
     {
-      LOG(AliL3Log::kError,"AliL3Histogram::AddBinContent","array")<
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
-#include "AliL3Logging.h"
-#include "AliL3HistogramAdaptive.h"
-#include "AliL3Transform.h"
-#include "AliL3Track.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTHistogramAdaptive.h"
+#include "AliHLTTransform.h"
+#include "AliHLTTrack.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
 //_____________________________________________________________
-// AliL3HistogramAdaptive
+// AliHLTHistogramAdaptive
 //
 // 2D histogram class adapted for kappa and psi as used in the Circle Hough Transform.
 // The bins in kappa is not linear, but has a width which is specified by argument
 // ptres in the constructor. This gives the relative pt resolution which should
 // be kept throughout the kappa range. 
 
-ClassImp(AliL3HistogramAdaptive)
+ClassImp(AliHLTHistogramAdaptive)
 
-AliL3HistogramAdaptive::AliL3HistogramAdaptive() : AliL3Histogram()
+AliHLTHistogramAdaptive::AliHLTHistogramAdaptive() : AliHLTHistogram()
 {
   //default ctor
   fKappaBins=0;
 }
 
   
-AliL3HistogramAdaptive::AliL3HistogramAdaptive(Char_t *name,Double_t minpt,Double_t maxpt,Double_t ptres,
+AliHLTHistogramAdaptive::AliHLTHistogramAdaptive(Char_t *name,Double_t minpt,Double_t maxpt,Double_t ptres,
 					       Int_t nybins,Double_t ymin,Double_t ymax)
 {
   //normal ctor
   strcpy(fName,name);
   
   fPtres = ptres;
-  fXmin = -1*AliL3Transform::GetBFact()*AliL3Transform::GetBField()/minpt;
-  fXmax = AliL3Transform::GetBFact()*AliL3Transform::GetBField()/minpt;
+  fXmin = -1*AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/minpt;
+  fXmax = AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/minpt;
 
   fMinPt = minpt;
   fMaxPt = maxpt;
@@ -58,14 +58,14 @@ AliL3HistogramAdaptive::AliL3HistogramAdaptive(Char_t *name,Double_t minpt,Doubl
   Reset();
 }
 
-AliL3HistogramAdaptive::~AliL3HistogramAdaptive()
+AliHLTHistogramAdaptive::~AliHLTHistogramAdaptive()
 {
   //dtor
   if(fKappaBins)
     delete [] fKappaBins;
 }
 
-Int_t AliL3HistogramAdaptive::InitKappaBins()
+Int_t AliHLTHistogramAdaptive::InitKappaBins()
 {
   //Here a LUT for the kappa values created. This has to be done since
   //the binwidth in kappa is not constant, but change according to the
@@ -86,20 +86,20 @@ Int_t AliL3HistogramAdaptive::InitKappaBins()
   fKappaBins = new Double_t[bin+1];
   pt=fMinPt;
   bin=0;
-  fKappaBins[bin] = AliL3Transform::GetBFact()*AliL3Transform::GetBField()/fMinPt; 
+  fKappaBins[bin] = AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/fMinPt; 
   while(pt < fMaxPt)
     {
       localpt = pt;
       deltapt = fPtres*localpt*localpt;
       pt += 2*deltapt;                      //*2 because pt +- 1/2*deltapt is one bin
       bin++;
-      fKappaBins[bin] = AliL3Transform::GetBFact()*AliL3Transform::GetBField()/pt;
+      fKappaBins[bin] = AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/pt;
     }
   return (bin+1)*2; //Both negative and positive kappa.
 }
 
 
-void AliL3HistogramAdaptive::Fill(Double_t x,Double_t y,Int_t weight)
+void AliHLTHistogramAdaptive::Fill(Double_t x,Double_t y,Int_t weight)
 {
   //Fill a given bin in the histogram
   Int_t bin = FindBin(x,y);
@@ -109,7 +109,7 @@ void AliL3HistogramAdaptive::Fill(Double_t x,Double_t y,Int_t weight)
 
 }
 
-Int_t AliL3HistogramAdaptive::FindBin(Double_t x,Double_t y) const
+Int_t AliHLTHistogramAdaptive::FindBin(Double_t x,Double_t y) const
 {
   //Find a bin in the histogram  
   Int_t xbin = FindXbin(x);
@@ -120,7 +120,7 @@ Int_t AliL3HistogramAdaptive::FindBin(Double_t x,Double_t y) const
   return GetBin(xbin,ybin);
 }
 
-Int_t AliL3HistogramAdaptive::FindXbin(Double_t x) const
+Int_t AliHLTHistogramAdaptive::FindXbin(Double_t x) const
 {
   //Find X bin in the histogram
   if(x < fXmin || x > fXmax || fabs(x) < fKappaBins[(fNxbins/2-1)])
@@ -144,7 +144,7 @@ Int_t AliL3HistogramAdaptive::FindXbin(Double_t x) const
   
 }
 
-Int_t AliL3HistogramAdaptive::FindYbin(Double_t y) const
+Int_t AliHLTHistogramAdaptive::FindYbin(Double_t y) const
 {
   //Find Y bin in the histogram
   if(y < fYmin || y > fYmax)
@@ -153,12 +153,12 @@ Int_t AliL3HistogramAdaptive::FindYbin(Double_t y) const
   return 1 + (Int_t)(fNybins*(y-fYmin)/(fYmax-fYmin));
 }
 
-Double_t AliL3HistogramAdaptive::GetBinCenterX(Int_t xbin) const
+Double_t AliHLTHistogramAdaptive::GetBinCenterX(Int_t xbin) const
 {
   //Returns bin center in X
   if(xbin < fFirstXbin || xbin > fLastXbin)
     {
-      LOG(AliL3Log::kWarning,"AliL3HistogramAdaptive::GetBinCenterX","Bin-value")
+      LOG(AliHLTLog::kWarning,"AliHLTHistogramAdaptive::GetBinCenterX","Bin-value")
 	<<"XBinvalue out of range "< fLastYbin)
     {
-      LOG(AliL3Log::kError,"AliL3HistogramAdaptive::GetBinCenterY","ybin")
+      LOG(AliHLTLog::kError,"AliHLTHistogramAdaptive::GetBinCenterY","ybin")
 	<<"Bin-value out of range "<Draw(option);
   return;
 #else
-  cerr<<"AliL3HistogramAdaptive::Draw : You need to compile with ROOT in order to draw histogram"<
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 #include 
 
-#include "AliL3Logging.h"
-#include "AliL3HoughMerger.h"
-#include "AliL3HoughIntMerger.h"
-#include "AliL3HoughGlobalMerger.h"
-#include "AliL3Histogram.h"
-#include "AliL3Hough.h"
-#include "AliL3HoughTransformer.h"
-#include "AliL3HoughClusterTransformer.h"
-#include "AliL3HoughTransformerLUT.h"
-#include "AliL3HoughTransformerVhdl.h"
-#include "AliL3HoughTransformerRow.h"
-#include "AliL3HoughMaxFinder.h"
-#include "AliL3Benchmark.h"
+#include "AliHLTLogging.h"
+#include "AliHLTHoughMerger.h"
+#include "AliHLTHoughIntMerger.h"
+#include "AliHLTHoughGlobalMerger.h"
+#include "AliHLTHistogram.h"
+#include "AliHLTHough.h"
+#include "AliHLTHoughTransformer.h"
+#include "AliHLTHoughClusterTransformer.h"
+#include "AliHLTHoughTransformerLUT.h"
+#include "AliHLTHoughTransformerVhdl.h"
+#include "AliHLTHoughTransformerRow.h"
+#include "AliHLTHoughMaxFinder.h"
+#include "AliHLTBenchmark.h"
 #ifdef use_aliroot
-#include "AliL3FileHandler.h"
+#include "AliHLTFileHandler.h"
 #else
-#include "AliL3MemHandler.h"
+#include "AliHLTMemHandler.h"
 #endif
-#include "AliL3DataHandler.h"
-#include "AliL3DigitData.h"
-#include "AliL3HoughEval.h"
-#include "AliL3Transform.h"
-#include "AliL3TrackArray.h"
-#include "AliL3HoughTrack.h"
-#include "AliL3DDLDataFileHandler.h"
-#include "AliL3HoughKalmanTrack.h"
+#include "AliHLTDataHandler.h"
+#include "AliHLTDigitData.h"
+#include "AliHLTHoughEval.h"
+#include "AliHLTTransform.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTHoughTrack.h"
+#include "AliHLTDDLDataFileHandler.h"
+#include "AliHLTHoughKalmanTrack.h"
 
 #include "TThread.h"
 
@@ -39,28 +39,28 @@
 using namespace std;
 #endif
 
-/** /class AliL3Hough
+/** /class AliHLTHough
 //
 //_____________________________________________________________
-// AliL3Hough
+// AliHLTHough
 //
 // Interface class for the Hough transform
 //
 // Example how to use:
 //
-// AliL3Hough *hough = new AliL3Hough(path,kTRUE,NumberOfEtaSegments);
+// AliHLTHough *hough = new AliHLTHough(path,kTRUE,NumberOfEtaSegments);
 // hough->ReadData(slice);
 // hough->Transform();
 // hough->FindTrackCandidates();
 // 
-// AliL3TrackArray *tracks = hough->GetTracks(patch);
+// AliHLTTrackArray *tracks = hough->GetTracks(patch);
 //
 //
*/ -ClassImp(AliL3Hough) +ClassImp(AliHLTHough) -AliL3Hough::AliL3Hough() +AliHLTHough::AliHLTHough() { //Constructor @@ -100,7 +100,7 @@ AliL3Hough::AliL3Hough() SetPeakThreshold(); #ifdef use_aliroot //just be sure that index is empty for new event - AliL3FileHandler::CleanStaticIndex(); + AliHLTFileHandler::CleanStaticIndex(); #ifdef use_newio fRunLoader = 0; #endif @@ -108,7 +108,7 @@ AliL3Hough::AliL3Hough() fThread = 0; } -AliL3Hough::AliL3Hough(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8,Int_t tv,Char_t *infile,Char_t *ptr) +AliHLTHough::AliHLTHough(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8,Int_t tv,Char_t *infile,Char_t *ptr) { //Normal constructor fBinary = binary; @@ -137,7 +137,7 @@ AliL3Hough::AliL3Hough(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8 } #ifdef use_aliroot //just be sure that index is empty for new event - AliL3FileHandler::CleanStaticIndex(); + AliHLTFileHandler::CleanStaticIndex(); #ifdef use_newio fRunLoader = 0; #endif @@ -145,7 +145,7 @@ AliL3Hough::AliL3Hough(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8 fThread = 0; } -AliL3Hough::~AliL3Hough() +AliHLTHough::~AliHLTHough() { //dtor @@ -175,7 +175,7 @@ AliL3Hough::~AliL3Hough() } } -void AliL3Hough::CleanUp() +void AliHLTHough::CleanUp() { //Cleanup memory @@ -201,7 +201,7 @@ void AliL3Hough::CleanUp() //cout << "Cleaned class mem " << endl; } -void AliL3Hough::Init(Int_t netasegments,Int_t tv,AliRawEvent *rawevent,Float_t zvertex) +void AliHLTHough::Init(Int_t netasegments,Int_t tv,AliRawEvent *rawevent,Float_t zvertex) { //Normal constructor fNEtaSegments = netasegments; @@ -212,9 +212,9 @@ void AliL3Hough::Init(Int_t netasegments,Int_t tv,AliRawEvent *rawevent,Float_t Init(); } -void AliL3Hough::Init(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8,Int_t tv,Char_t *infile,Char_t *ptr,Float_t zvertex) +void AliHLTHough::Init(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8,Int_t tv,Char_t *infile,Char_t *ptr,Float_t zvertex) { - //Normal init of the AliL3Hough + //Normal init of the AliHLTHough fBinary = binary; strcpy(fPath,path); fNEtaSegments = netasegments; @@ -240,40 +240,40 @@ void AliL3Hough::Init(Char_t *path,Bool_t binary,Int_t netasegments,Bool_t bit8, Init(); //do the rest } -void AliL3Hough::Init(Bool_t doit, Bool_t addhists) +void AliHLTHough::Init(Bool_t doit, Bool_t addhists) { // Init fDoIterative = doit; fAddHistograms = addhists; - fNPatches = AliL3Transform::GetNPatches(); - fHoughTransformer = new AliL3HoughBaseTransformer*[fNPatches]; - fMemHandler = new AliL3MemHandler*[fNPatches]; + fNPatches = AliHLTTransform::GetNPatches(); + fHoughTransformer = new AliHLTHoughBaseTransformer*[fNPatches]; + fMemHandler = new AliHLTMemHandler*[fNPatches]; - fTracks = new AliL3TrackArray*[fNPatches]; - fEval = new AliL3HoughEval*[fNPatches]; + fTracks = new AliHLTTrackArray*[fNPatches]; + fEval = new AliHLTHoughEval*[fNPatches]; - fGlobalTracks = new AliL3TrackArray("AliL3HoughTrack"); + fGlobalTracks = new AliHLTTrackArray("AliHLTHoughTrack"); - AliL3HoughBaseTransformer *lasttransformer = 0; + AliHLTHoughBaseTransformer *lasttransformer = 0; for(Int_t i=0; iSetLastTransformer(lasttransformer); @@ -285,13 +285,13 @@ void AliL3Hough::Init(Bool_t doit, Bool_t addhists) fHoughTransformer[i]->SetLowerThreshold(fThreshold[i]); fHoughTransformer[i]->SetUpperThreshold(100); - LOG(AliL3Log::kInformational,"AliL3Hough::Init","Version") + LOG(AliHLTLog::kInformational,"AliHLTHough::Init","Version") <<"Initializing Hough transformer version "<SetReaderInput(fInputPtr,-1); } } else { /* In case of reading rawdata from ROOT file */ - fMemHandler[i] = new AliL3DDLDataFileHandler(); + fMemHandler[i] = new AliHLTDDLDataFileHandler(); fMemHandler[i]->SetReaderInput(fInputFile); } } else { /* In case of reading rawdata using AliRawEvent */ - fMemHandler[i] = new AliL3DDLDataFileHandler(); + fMemHandler[i] = new AliHLTDDLDataFileHandler(); fMemHandler[i]->SetReaderInput(fRawEvent); } } #else - fMemHandler[i] = new AliL3MemHandler(); + fMemHandler[i] = new AliHLTMemHandler(); #endif } - fPeakFinder = new AliL3HoughMaxFinder("KappaPhi",50000); + fPeakFinder = new AliHLTHoughMaxFinder("KappaPhi",50000); if(fVersion!=4) { - fMerger = new AliL3HoughMerger(fNPatches); - fInterMerger = new AliL3HoughIntMerger(); + fMerger = new AliHLTHoughMerger(fNPatches); + fInterMerger = new AliHLTHoughIntMerger(); } else { fMerger = 0; fInterMerger = 0; } fGlobalMerger = 0; - fBenchmark = new AliL3Benchmark(); + fBenchmark = new AliHLTBenchmark(); } -void AliL3Hough::SetTransformerParams(Float_t ptres,Float_t ptmin,Float_t ptmax,Int_t ny,Int_t patch) +void AliHLTHough::SetTransformerParams(Float_t ptres,Float_t ptmin,Float_t ptmax,Int_t ny,Int_t patch) { // Setup the parameters for the Hough Transformer // This includes the bin size and limits for @@ -362,12 +362,12 @@ void AliL3Hough::SetTransformerParams(Float_t ptres,Float_t ptmin,Float_t ptmax, if(patch==-1) mrow = 80; else - mrow = AliL3Transform::GetLastRow(patch); + mrow = AliHLTTransform::GetLastRow(patch); if(ptmin) { - Double_t lineradius = sqrt(pow(AliL3Transform::Row2X(mrow),2) + pow(AliL3Transform::GetMaxY(mrow),2)); - Double_t kappa = -1*AliL3Transform::GetBField()*AliL3Transform::GetBFact()/ptmin; - psi = AliL3Transform::Deg2Rad(10) - asin(lineradius*kappa/2); + Double_t lineradius = sqrt(pow(AliHLTTransform::Row2X(mrow),2) + pow(AliHLTTransform::GetMaxY(mrow),2)); + Double_t kappa = -1*AliHLTTransform::GetBField()*AliHLTTransform::GetBFact()/ptmin; + psi = AliHLTTransform::Deg2Rad(10) - asin(lineradius*kappa/2); cout<<"Calculated psi range "<Analyze(name); } -void AliL3Hough::Process(Int_t minslice,Int_t maxslice) +void AliHLTHough::Process(Int_t minslice,Int_t maxslice) { //Process all slices [minslice,maxslice]. - fGlobalMerger = new AliL3HoughGlobalMerger(minslice,maxslice); + fGlobalMerger = new AliHLTHoughGlobalMerger(minslice,maxslice); for(Int_t i=minslice; i<=maxslice; i++) { @@ -537,13 +537,13 @@ void AliL3Hough::Process(Int_t minslice,Int_t maxslice) } } -void AliL3Hough::ReadData(Int_t slice,Int_t eventnr) +void AliHLTHough::ReadData(Int_t slice,Int_t eventnr) { //Read data from files, binary or root. #ifdef use_aliroot if(fEvent!=eventnr) //just be sure that index is empty for new event - AliL3FileHandler::CleanStaticIndex(); + AliHLTFileHandler::CleanStaticIndex(); #endif fCurrentSlice = slice; @@ -551,7 +551,7 @@ void AliL3Hough::ReadData(Int_t slice,Int_t eventnr) { fMemHandler[i]->Free(); UInt_t ndigits=0; - AliL3DigitRowData *digits =0; + AliHLTDigitRowData *digits =0; Char_t name[256]; fMemHandler[i]->Init(slice,i); if(fBinary)//take input data from binary files @@ -562,7 +562,7 @@ void AliL3Hough::ReadData(Int_t slice,Int_t eventnr) sprintf(name,"%s/binaries/digits_%d_%d_%d.raw",fPath,eventnr,slice,i); fMemHandler[i]->SetBinaryInput(name); - digits = (AliL3DigitRowData *)fMemHandler[i]->CompBinary2Memory(ndigits); + digits = (AliHLTDigitRowData *)fMemHandler[i]->CompBinary2Memory(ndigits); fMemHandler[i]->CloseBinaryInput(); } else //read data from root file @@ -570,7 +570,7 @@ void AliL3Hough::ReadData(Int_t slice,Int_t eventnr) #ifdef use_aliroot if(fEvent!=eventnr) fMemHandler[i]->FreeDigitsTree();//or else the new event is not loaded - digits=(AliL3DigitRowData *)fMemHandler[i]->AliAltroDigits2Memory(ndigits,eventnr); + digits=(AliHLTDigitRowData *)fMemHandler[i]->AliAltroDigits2Memory(ndigits,eventnr); #else cerr<<"You cannot read from rootfile now"<MergePatches(kTRUE); } -void AliL3Hough::MergeInternally() +void AliHLTHough::MergeInternally() { // Merge patches internally if(fAddHistograms) @@ -646,7 +646,7 @@ void AliL3Hough::MergeInternally() fInterMerger->MMerge(); } -void AliL3Hough::ProcessSliceIter() +void AliHLTHough::ProcessSliceIter() { //Process current slice (after ReadData(slice)) iteratively. @@ -665,15 +665,15 @@ void AliL3Hough::ProcessSliceIter() Transform(); AddAllHistograms(); InitEvaluate(); - AliL3HoughBaseTransformer *tr = fHoughTransformer[0]; + AliHLTHoughBaseTransformer *tr = fHoughTransformer[0]; for(Int_t j=0; jGetHistogram(j); + AliHLTHistogram *hist = tr->GetHistogram(j); if(hist->GetNEntries()==0) continue; fPeakFinder->Reset(); fPeakFinder->SetHistogram(hist); fPeakFinder->FindAbsMaxima(); - AliL3HoughTrack *track = (AliL3HoughTrack*)fTracks[0]->NextTrack(); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)fTracks[0]->NextTrack(); track->SetTrackParameters(fPeakFinder->GetXPeak(0),fPeakFinder->GetYPeak(0),fPeakFinder->GetWeight(0)); track->SetEtaIndex(j); track->SetEta(tr->GetEta(j,fCurrentSlice)); @@ -698,21 +698,21 @@ void AliL3Hough::ProcessSliceIter() } } -void AliL3Hough::ProcessPatchIter(Int_t patch) +void AliHLTHough::ProcessPatchIter(Int_t patch) { //Process patch in a iterative way. //transform + peakfinding + evaluation + transform +... Int_t numoftries = 5; - AliL3HoughBaseTransformer *tr = fHoughTransformer[patch]; - AliL3TrackArray *tracks = fTracks[patch]; + AliHLTHoughBaseTransformer *tr = fHoughTransformer[patch]; + AliHLTTrackArray *tracks = fTracks[patch]; tracks->Reset(); - AliL3HoughEval *ev = fEval[patch]; + AliHLTHoughEval *ev = fEval[patch]; ev->InitTransformer(tr); //ev->RemoveFoundTracks(); ev->SetNumOfRowsToMiss(3); ev->SetNumOfPadsToLook(2); - AliL3Histogram *hist; + AliHLTHistogram *hist; for(Int_t t=0; tReset(); @@ -725,7 +725,7 @@ void AliL3Hough::ProcessPatchIter(Int_t patch) fPeakFinder->SetHistogram(hist); fPeakFinder->FindAbsMaxima(); //fPeakFinder->FindPeak1(); - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->NextTrack(); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->NextTrack(); track->SetTrackParameters(fPeakFinder->GetXPeak(0),fPeakFinder->GetYPeak(0),fPeakFinder->GetWeight(0)); track->SetEtaIndex(i); track->SetEta(tr->GetEta(i,fCurrentSlice)); @@ -740,11 +740,11 @@ void AliL3Hough::ProcessPatchIter(Int_t patch) } } fTracks[0]->QSort(); - LOG(AliL3Log::kInformational,"AliL3Hough::ProcessPatch","NTracks") - <GetNTracks()<<" tracks in patch "<GetNTracks()<<" tracks in patch "<Start("Add Histograms"); for(Int_t i=0; iGetHistogram(i); + AliHLTHistogram *hist0 = fHoughTransformer[0]->GetHistogram(i); for(Int_t j=1; jGetHistogram(i); + AliHLTHistogram *hist = fHoughTransformer[j]->GetHistogram(i); hist0->Add(hist); } } fBenchmark->Stop("Add Histograms"); fAddHistograms = kTRUE; cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Hough::AddAllHistograms()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTHough::AddAllHistograms()","Timing") <<"Adding histograms in "<Start("Add HistogramsRows"); - UChar_t lastpatchlastrow = AliL3Transform::GetLastRowOnDDL(fLastPatch)+1; + UChar_t lastpatchlastrow = AliHLTTransform::GetLastRowOnDDL(fLastPatch)+1; - UChar_t *tracklastrow = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetTrackLastRow(); + UChar_t *tracklastrow = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetTrackLastRow(); for(Int_t i=0; iGetGapCount(i); - UChar_t *currentrowcount = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetCurrentRowCount(i); + UChar_t *gapcount = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetGapCount(i); + UChar_t *currentrowcount = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetCurrentRowCount(i); - AliL3Histogram *hist = fHoughTransformer[0]->GetHistogram(i); + AliHLTHistogram *hist = fHoughTransformer[0]->GetHistogram(i); Int_t xmin = hist->GetFirstXbin(); Int_t xmax = hist->GetLastXbin(); Int_t ymin = hist->GetFirstYbin(); @@ -817,11 +817,11 @@ void AliL3Hough::AddAllHistogramsRows() fBenchmark->Stop("Add HistogramsRows"); fAddHistograms = kTRUE; cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Hough::AddAllHistogramsRows()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTHough::AddAllHistogramsRows()","Timing") <<"Adding histograms in "<GetTrackFirstRow(); - UChar_t *tracklastrow = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetTrackLastRow(); + UChar_t *trackfirstrow = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetTrackFirstRow(); + UChar_t *tracklastrow = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetTrackLastRow(); for(Int_t i=0; iGetGapCount(i); - UChar_t *currentrowcount = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetCurrentRowCount(i); - UChar_t *prevbin = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetPrevBin(i); - UChar_t *nextbin = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetNextBin(i); - UChar_t *nextrow = ((AliL3HoughTransformerRow *)fHoughTransformer[0])->GetNextRow(i); + UChar_t *gapcount = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetGapCount(i); + UChar_t *currentrowcount = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetCurrentRowCount(i); + UChar_t *prevbin = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetPrevBin(i); + UChar_t *nextbin = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetNextBin(i); + UChar_t *nextrow = ((AliHLTHoughTransformerRow *)fHoughTransformer[0])->GetNextRow(i); - AliL3Histogram *hist = fHoughTransformer[0]->GetHistogram(i); + AliHLTHistogram *hist = fHoughTransformer[0]->GetHistogram(i); Int_t xmin = hist->GetFirstXbin(); Int_t xmax = hist->GetLastXbin(); Int_t ymin = hist->GetFirstYbin(); @@ -964,18 +964,18 @@ void AliL3Hough::PrepareForNextPatch(Int_t nextpatch) fBenchmark->Stop(buf); } -void AliL3Hough::AddTracks() +void AliHLTHough::AddTracks() { // Add current slice slice tracks to the global list of found tracks if(!fTracks[0]) { - cerr<<"AliL3Hough::AddTracks : No tracks"<GetNTracks(); i++) { - AliL3Track *track = tracks->GetCheckedTrack(i); + AliHLTTrack *track = tracks->GetCheckedTrack(i); if(!track) continue; if(track->GetNHits()!=1) cerr<<"NHITS "<GetNHits()<GetHitNumbers(); @@ -985,11 +985,11 @@ void AliL3Hough::AddTracks() fGlobalTracks->AddTracks(fTracks[0],0,fCurrentSlice); } -void AliL3Hough::FindTrackCandidatesRow() +void AliHLTHough::FindTrackCandidatesRow() { - // Find AliL3HoughTransformerRow track candidates + // Find AliHLTHoughTransformerRow track candidates if(fVersion != 4) { - LOG(AliL3Log::kError,"AliL3Hough::FindTrackCandidatesRow()","") + LOG(AliHLTLog::kError,"AliHLTHough::FindTrackCandidatesRow()","") <<"Incompatible Peak Finder version!"<Start("Find Maxima"); for(Int_t i=0; iGetHistogram(0); - Float_t deltax = h->GetBinWidthX()*AliL3HoughTransformerRow::GetDAlpha(); - Float_t deltay = h->GetBinWidthY()*AliL3HoughTransformerRow::GetDAlpha(); - Float_t deltaeta = (tr->GetEtaMax()-tr->GetEtaMin())/tr->GetNEtaSegments()*AliL3HoughTransformerRow::GetDEta(); + AliHLTHoughBaseTransformer *tr = fHoughTransformer[i]; + AliHLTHistogram *h = tr->GetHistogram(0); + Float_t deltax = h->GetBinWidthX()*AliHLTHoughTransformerRow::GetDAlpha(); + Float_t deltay = h->GetBinWidthY()*AliHLTHoughTransformerRow::GetDAlpha(); + Float_t deltaeta = (tr->GetEtaMax()-tr->GetEtaMin())/tr->GetNEtaSegments()*AliHLTHoughTransformerRow::GetDEta(); Float_t zvertex = tr->GetZVertex(); fTracks[i]->Reset(); fPeakFinder->Reset(); for(Int_t j=0; jGetHistogram(j); + AliHLTHistogram *hist = tr->GetHistogram(j); if(hist->GetNEntries()==0) continue; fPeakFinder->SetHistogram(hist); fPeakFinder->SetEtaSlice(j); - fPeakFinder->SetTrackLUTs(((AliL3HoughTransformerRow *)tr)->GetTrackNRows(),((AliL3HoughTransformerRow *)tr)->GetTrackFirstRow(),((AliL3HoughTransformerRow *)tr)->GetTrackLastRow(),((AliL3HoughTransformerRow *)tr)->GetNextRow(j)); + fPeakFinder->SetTrackLUTs(((AliHLTHoughTransformerRow *)tr)->GetTrackNRows(),((AliHLTHoughTransformerRow *)tr)->GetTrackFirstRow(),((AliHLTHoughTransformerRow *)tr)->GetTrackLastRow(),((AliHLTHoughTransformerRow *)tr)->GetNextRow(j)); #ifdef do_mc - LOG(AliL3Log::kInformational,"AliL3Hough::FindTrackCandidates()","") + LOG(AliHLTLog::kInformational,"AliHLTHough::FindTrackCandidates()","") <<"Starting "<SetThreshold(fPeakThreshold[i]); @@ -1033,7 +1033,7 @@ void AliL3Hough::FindTrackCandidatesRow() for(Int_t k=0; kGetEntries(); k++) { // if(fPeakFinder->GetWeight(k) < 0) continue; - AliL3HoughTrack *track = (AliL3HoughTrack*)fTracks[i]->NextTrack(); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)fTracks[i]->NextTrack(); Double_t starteta = tr->GetEta(fPeakFinder->GetStartEta(k),fCurrentSlice); Double_t endeta = tr->GetEta(fPeakFinder->GetEndEta(k),fCurrentSlice); Double_t eta = (starteta+endeta)/2.0; @@ -1044,7 +1044,7 @@ void AliL3Hough::FindTrackCandidatesRow() Int_t etaindex = (fPeakFinder->GetStartEta(k)+fPeakFinder->GetEndEta(k))/2; track->SetEtaIndex(etaindex); Int_t rows[2]; - ((AliL3HoughTransformerRow *)tr)->GetTrackLength(fPeakFinder->GetXPeak(k),fPeakFinder->GetYPeak(k),rows); + ((AliHLTHoughTransformerRow *)tr)->GetTrackLength(fPeakFinder->GetXPeak(k),fPeakFinder->GetYPeak(k),rows); track->SetRowRange(rows[0],rows[1]); track->SetSector(fCurrentSlice); track->SetSlice(fCurrentSlice); @@ -1053,21 +1053,21 @@ void AliL3Hough::FindTrackCandidatesRow() track->SetMCid(label); #endif } - LOG(AliL3Log::kInformational,"AliL3Hough::FindTrackCandidates()","") + LOG(AliHLTLog::kInformational,"AliHLTHough::FindTrackCandidates()","") <<"Found "<GetNTracks()<<" tracks in slice "<QSort(); } fBenchmark->Stop("Find Maxima"); cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Hough::FindTrackCandidates()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTHough::FindTrackCandidates()","Timing") <<"Maxima finding done in "<Start("Find Maxima"); for(Int_t i=0; iReset(); for(Int_t j=0; jGetHistogram(j); + AliHLTHistogram *hist = tr->GetHistogram(j); if(hist->GetNEntries()==0) continue; fPeakFinder->Reset(); fPeakFinder->SetHistogram(hist); @@ -1100,11 +1100,11 @@ void AliL3Hough::FindTrackCandidates() for(Int_t k=0; kGetEntries(); k++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)fTracks[i]->NextTrack(); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)fTracks[i]->NextTrack(); track->SetTrackParameters(fPeakFinder->GetXPeak(k),fPeakFinder->GetYPeak(k),fPeakFinder->GetWeight(k)); track->SetEtaIndex(j); track->SetEta(tr->GetEta(j,fCurrentSlice)); - track->SetRowRange(AliL3Transform::GetFirstRow(0),AliL3Transform::GetLastRow(5)); + track->SetRowRange(AliHLTTransform::GetFirstRow(0),AliHLTTransform::GetLastRow(5)); } } cout<<"Found "<GetNTracks()<<" tracks in patch "<Stop("Find Maxima"); cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Hough::FindTrackCandidates()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTHough::FindTrackCandidates()","Timing") <<"Maxima finding done in "<InitTransformer(fHoughTransformer[i]); } -Int_t AliL3Hough::Evaluate(Int_t roadwidth,Int_t nrowstomiss) +Int_t AliHLTHough::Evaluate(Int_t roadwidth,Int_t nrowstomiss) { //Evaluate the tracks, by looking along the road in the raw data. //If track does not cross all padrows - rows2miss, it is removed from the arrray. @@ -1141,20 +1141,20 @@ Int_t AliL3Hough::Evaluate(Int_t roadwidth,Int_t nrowstomiss) if(!fTracks[0]) { - LOG(AliL3Log::kError,"AliL3Hough::Evaluate","Track Array") + LOG(AliHLTLog::kError,"AliHLTHough::Evaluate","Track Array") <<"No tracks to work with..."<GetNTracks(); i++) { - AliL3Track *track = tracks->GetCheckedTrack(i); + AliHLTTrack *track = tracks->GetCheckedTrack(i); if(!track) continue; track->SetNHits(0); } @@ -1170,9 +1170,9 @@ Int_t AliL3Hough::Evaluate(Int_t roadwidth,Int_t nrowstomiss) { for(Int_t j=0; jGetNTracks(); j++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(j); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(j); - if(track->GetNHits() < AliL3Transform::GetNRows() - nrowstomiss) + if(track->GetNHits() < AliHLTTransform::GetNRows() - nrowstomiss) { tracks->Remove(j); removedtracks++; @@ -1185,7 +1185,7 @@ Int_t AliL3Hough::Evaluate(Int_t roadwidth,Int_t nrowstomiss) return removedtracks; } -void AliL3Hough::EvaluatePatch(Int_t i,Int_t roadwidth,Int_t nrowstomiss) +void AliHLTHough::EvaluatePatch(Int_t i,Int_t roadwidth,Int_t nrowstomiss) { //Evaluate patch i. @@ -1194,7 +1194,7 @@ void AliL3Hough::EvaluatePatch(Int_t i,Int_t roadwidth,Int_t nrowstomiss) fEval[i]->SetNumOfRowsToMiss(nrowstomiss); //fEval[i]->RemoveFoundTracks(); - AliL3TrackArray *tracks=0; + AliHLTTrackArray *tracks=0; if(!fAddHistograms) tracks = fTracks[i]; @@ -1204,15 +1204,15 @@ void AliL3Hough::EvaluatePatch(Int_t i,Int_t roadwidth,Int_t nrowstomiss) Int_t nrows=0; for(Int_t j=0; jGetNTracks(); j++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(j); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(j); if(!track) { - LOG(AliL3Log::kWarning,"AliL3Hough::EvaluatePatch","Track array") + LOG(AliHLTLog::kWarning,"AliHLTHough::EvaluatePatch","Track array") <<"Track object missing!"<LookInsideRoad(track,nrows,rowrange); if(fAddHistograms) { @@ -1230,25 +1230,25 @@ void AliL3Hough::EvaluatePatch(Int_t i,Int_t roadwidth,Int_t nrowstomiss) } -void AliL3Hough::MergeEtaSlices() +void AliHLTHough::MergeEtaSlices() { //Merge tracks found in neighbouring eta slices. //Removes the track with the lower weight. fBenchmark->Start("Merge Eta-slices"); - AliL3TrackArray *tracks = fTracks[0]; + AliHLTTrackArray *tracks = fTracks[0]; if(!tracks) { - cerr<<"AliL3Hough::MergeEtaSlices : No tracks "<GetNTracks(); j++) { - AliL3HoughTrack *track1 = (AliL3HoughTrack*)tracks->GetCheckedTrack(j); + AliHLTHoughTrack *track1 = (AliHLTHoughTrack*)tracks->GetCheckedTrack(j); if(!track1) continue; for(Int_t k=j+1; kGetNTracks(); k++) { - AliL3HoughTrack *track2 = (AliL3HoughTrack*)tracks->GetCheckedTrack(k); + AliHLTHoughTrack *track2 = (AliHLTHoughTrack*)tracks->GetCheckedTrack(k); if(!track2) continue; if(abs(track1->GetEtaIndex() - track2->GetEtaIndex()) != 1) continue; if(fabs(track1->GetKappa()-track2->GetKappa()) < 0.006 && @@ -1266,26 +1266,26 @@ void AliL3Hough::MergeEtaSlices() tracks->Compress(); } -void AliL3Hough::WriteTracks(Char_t *path) +void AliHLTHough::WriteTracks(Char_t *path) { // Write found tracks into file - //cout<<"AliL3Hough::WriteTracks : Sorting the tracsk"<QSort(); Char_t filename[1024]; sprintf(filename,"%s/tracks_%d.raw",path,fEvent); - AliL3MemHandler mem; + AliHLTMemHandler mem; mem.SetBinaryOutput(filename); mem.TrackArray2Binary(fGlobalTracks); mem.CloseBinaryOutput(); fGlobalTracks->Reset(); } -void AliL3Hough::WriteTracks(Int_t slice,Char_t *path) +void AliHLTHough::WriteTracks(Int_t slice,Char_t *path) { // Write found tracks slice by slice into file - AliL3MemHandler mem; + AliHLTMemHandler mem; Char_t fname[100]; if(fAddHistograms) { @@ -1307,7 +1307,7 @@ void AliL3Hough::WriteTracks(Int_t slice,Char_t *path) } #ifdef use_aliroot -Int_t AliL3Hough::FillESD(AliESD *esd) +Int_t AliHLTHough::FillESD(AliESD *esd) { // Fill the found hough transform tracks // into the ESD. The tracks are stored as @@ -1324,11 +1324,11 @@ Int_t AliL3Hough::FillESD(AliESD *esd) Int_t nglobaltracks = 0; for(Int_t i=0; iGetNTracks(); i++) { - AliL3HoughTrack *tpt = (AliL3HoughTrack *)fGlobalTracks->GetCheckedTrack(i); + AliHLTHoughTrack *tpt = (AliHLTHoughTrack *)fGlobalTracks->GetCheckedTrack(i); if(!tpt) continue; if(tpt->GetWeight()<0) continue; - AliL3HoughKalmanTrack *tpctrack = new AliL3HoughKalmanTrack(*tpt); + AliHLTHoughKalmanTrack *tpctrack = new AliHLTHoughKalmanTrack(*tpt); if(!tpctrack) continue; AliESDtrack *esdtrack2 = new AliESDtrack() ; esdtrack2->UpdateTrackParams(tpctrack,AliESDtrack::kTPCin); @@ -1342,23 +1342,23 @@ Int_t AliL3Hough::FillESD(AliESD *esd) } #endif -void AliL3Hough::WriteDigits(Char_t *outfile) +void AliHLTHough::WriteDigits(Char_t *outfile) { //Write the current data to a new rootfile. #ifdef use_aliroot for(Int_t i=0; iGetDataPointer(); + AliHLTDigitRowData *tempPt = (AliHLTDigitRowData*)fHoughTransformer[i]->GetDataPointer(); fMemHandler[i]->AliDigits2RootFile(tempPt,outfile); } #else - cerr<<"AliL3Hough::WriteDigits : You need to compile with AliROOT!"<GetMinSlice(); Int_t maxslice = instance->GetMaxSlice(); for(Int_t i=minslice; i<=maxslice; i++) @@ -1385,7 +1385,7 @@ void *AliL3Hough::ProcessInThread(void *args) return (void *)0; } -void AliL3Hough::StartProcessInThread(Int_t minslice,Int_t maxslice) +void AliHLTHough::StartProcessInThread(Int_t minslice,Int_t maxslice) { // Starts the Hough transform tracking as a // separate thread. Takes as parameters the @@ -1402,7 +1402,7 @@ void AliL3Hough::StartProcessInThread(Int_t minslice,Int_t maxslice) return; } -Int_t AliL3Hough::WaitForThreadFinish() +Int_t AliHLTHough::WaitForThreadFinish() { // Routine is used in case we run the // Hough transform tracking in several diff --git a/HLT/hough/AliL3Hough.h b/HLT/hough/AliHLTHough.h similarity index 73% rename from HLT/hough/AliL3Hough.h rename to HLT/hough/AliHLTHough.h index 67a6f600418..bd360869e3d 100644 --- a/HLT/hough/AliL3Hough.h +++ b/HLT/hough/AliHLTHough.h @@ -3,19 +3,19 @@ #ifndef ALIL3HOUGH_H #define ALIL3HOUGH_H -#include "AliL3RootTypes.h" - -class AliL3HoughMaxFinder; -class AliL3HoughBaseTransformer; -class AliL3Histogram; -class AliL3MemHandler; -class AliL3FileHandler; -class AliL3HoughEval; -class AliL3TrackArray; -class AliL3HoughMerger; -class AliL3HoughIntMerger; -class AliL3HoughGlobalMerger; -class AliL3Benchmark; +#include "AliHLTRootTypes.h" + +class AliHLTHoughMaxFinder; +class AliHLTHoughBaseTransformer; +class AliHLTHistogram; +class AliHLTMemHandler; +class AliHLTFileHandler; +class AliHLTHoughEval; +class AliHLTTrackArray; +class AliHLTHoughMerger; +class AliHLTHoughIntMerger; +class AliHLTHoughGlobalMerger; +class AliHLTBenchmark; #include "TThread.h" #ifdef use_newio @@ -27,12 +27,12 @@ class AliL3Benchmark; #include #endif -class AliL3Hough { +class AliHLTHough { public: - AliL3Hough(); - AliL3Hough(Char_t *path,Bool_t binary,Int_t netasegments=100,Bool_t bit8=kFALSE,Int_t tv=0,Char_t *infile=0,Char_t *ptr=0); - virtual ~AliL3Hough(); + AliHLTHough(); + AliHLTHough(Char_t *path,Bool_t binary,Int_t netasegments=100,Bool_t bit8=kFALSE,Int_t tv=0,Char_t *infile=0,Char_t *ptr=0); + virtual ~AliHLTHough(); #ifdef use_newio void SetRunLoader(AliRunLoader *runloader) {fRunLoader = runloader;} @@ -86,13 +86,13 @@ class AliL3Hough { void SetPeakParameters(Int_t kspread,Float_t pratio) {fKappaSpread=kspread; fPeakRatio=pratio;} //Getters - AliL3HoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];} - AliL3TrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];} - AliL3HoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];} - AliL3HoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;} - AliL3HoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;} - AliL3MemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];} - AliL3HoughMaxFinder *GetMaxFinder() {return fPeakFinder;} + AliHLTHoughBaseTransformer *GetTransformer(Int_t i) {if(!fHoughTransformer[i]) return 0; return fHoughTransformer[i];} + AliHLTTrackArray *GetTracks(Int_t i) {if(!fTracks[i]) return 0; return fTracks[i];} + AliHLTHoughEval *GetEval(Int_t i) {if(!fEval[i]) return 0; return fEval[i];} + AliHLTHoughMerger *GetMerger() {if(!fMerger) return 0; return fMerger;} + AliHLTHoughIntMerger *GetInterMerger() {if(!fInterMerger) return 0; return fInterMerger;} + AliHLTMemHandler *GetMemHandler(Int_t i) {if(!fMemHandler[i]) return 0; return fMemHandler[i];} + AliHLTHoughMaxFinder *GetMaxFinder() {return fPeakFinder;} //Special methods for executing Hough Transform as a thread static void *ProcessInThread(void *args); @@ -138,16 +138,16 @@ class AliL3Hough { Int_t fMinSlice; // First TPC slice (sector) to process while running in a thread Int_t fMaxSlice; // Last TPC slice (sector) to process while running in a thread - AliL3MemHandler **fMemHandler; //! - AliL3HoughBaseTransformer **fHoughTransformer; //! - AliL3HoughEval **fEval; //! - AliL3HoughMaxFinder *fPeakFinder; //! - AliL3TrackArray **fTracks; //! - AliL3TrackArray *fGlobalTracks; //! - AliL3HoughMerger *fMerger; //! - AliL3HoughIntMerger *fInterMerger; //! - AliL3HoughGlobalMerger *fGlobalMerger; //! - AliL3Benchmark *fBenchmark; //! + AliHLTMemHandler **fMemHandler; //! + AliHLTHoughBaseTransformer **fHoughTransformer; //! + AliHLTHoughEval **fEval; //! + AliHLTHoughMaxFinder *fPeakFinder; //! + AliHLTTrackArray **fTracks; //! + AliHLTTrackArray *fGlobalTracks; //! + AliHLTHoughMerger *fMerger; //! + AliHLTHoughIntMerger *fInterMerger; //! + AliHLTHoughGlobalMerger *fGlobalMerger; //! + AliHLTBenchmark *fBenchmark; //! #ifdef use_newio AliRunLoader *fRunLoader; // Run Loader @@ -158,9 +158,11 @@ class AliL3Hough { TThread *fThread; // Pointer to the TThread object in case of running in a thread - ClassDef(AliL3Hough,1) //Hough transform base class + ClassDef(AliHLTHough,1) //Hough transform base class }; +typedef AliHLTHough AliL3Hough; // for backward comaptibility + #endif diff --git a/HLT/hough/AliL3HoughBaseTransformer.cxx b/HLT/hough/AliHLTHoughBaseTransformer.cxx similarity index 62% rename from HLT/hough/AliL3HoughBaseTransformer.cxx rename to HLT/hough/AliHLTHoughBaseTransformer.cxx index 9b9aff2d2f7..1d835e4976f 100644 --- a/HLT/hough/AliL3HoughBaseTransformer.cxx +++ b/HLT/hough/AliHLTHoughBaseTransformer.cxx @@ -3,20 +3,20 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group //------------------------------------------------------------------------- -// Implementation of the AliL3HoughBaseTransformer class -// that is the base class for AliL3HoughTransformer, -// AliL3HoughTransformerVhdl, AliL3HoughTransformerGlobal, -// AliL3HoughTransformerRow +// Implementation of the AliHLTHoughBaseTransformer class +// that is the base class for AliHLTHoughTransformer, +// AliHLTHoughTransformerVhdl, AliHLTHoughTransformerGlobal, +// AliHLTHoughTransformerRow //------------------------------------------------------------------------- -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3HoughBaseTransformer.h" +#include "AliHLTHoughBaseTransformer.h" -/** \class AliL3HoughBaseTransformer +/** \class AliHLTHoughBaseTransformer
 //_____________________________________________________________
-// AliL3HoughBaseTransformer
+// AliHLTHoughBaseTransformer
 //
 // The base class for implementations of Hough Transform on ALICE TPC data.
 //
@@ -26,9 +26,9 @@
 
*/ -ClassImp(AliL3HoughBaseTransformer) +ClassImp(AliHLTHoughBaseTransformer) -AliL3HoughBaseTransformer::AliL3HoughBaseTransformer() +AliHLTHoughBaseTransformer::AliHLTHoughBaseTransformer() { //Default constructor fDigitRowData = 0; @@ -45,7 +45,7 @@ AliL3HoughBaseTransformer::AliL3HoughBaseTransformer() fZVertex = 0.0; } -AliL3HoughBaseTransformer::AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t netasegments,Float_t zvertex) +AliHLTHoughBaseTransformer::AliHLTHoughBaseTransformer(Int_t slice,Int_t patch,Int_t netasegments,Float_t zvertex) { //normal ctor fDigitRowData = 0; @@ -63,12 +63,12 @@ AliL3HoughBaseTransformer::AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int Init(slice,patch,netasegments); } -AliL3HoughBaseTransformer::~AliL3HoughBaseTransformer() +AliHLTHoughBaseTransformer::~AliHLTHoughBaseTransformer() { //dtor } -void AliL3HoughBaseTransformer::Init(Int_t slice,Int_t patch,Int_t netasegments,Int_t /*n_seqs*/) +void AliHLTHoughBaseTransformer::Init(Int_t slice,Int_t patch,Int_t netasegments,Int_t /*n_seqs*/) { //Transformer init fSlice = slice; diff --git a/HLT/hough/AliL3HoughBaseTransformer.h b/HLT/hough/AliHLTHoughBaseTransformer.h similarity index 76% rename from HLT/hough/AliL3HoughBaseTransformer.h rename to HLT/hough/AliHLTHoughBaseTransformer.h index 4437611b55b..923ff48a28d 100644 --- a/HLT/hough/AliL3HoughBaseTransformer.h +++ b/HLT/hough/AliHLTHoughBaseTransformer.h @@ -4,37 +4,37 @@ #define ALIL3HOUGHBASETRANSFORMER_H //------------------------------------------------------------------------- -// Class AliL3HoughBaseTransformer +// Class AliHLTHoughBaseTransformer // This is the base class for all the Hough Transformer tracking // algorithms for HLT. //------------------------------------------------------------------------- -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" #ifdef do_mc const UInt_t MaxTrack=120; -struct AliL3TrackIndex { +struct AliHLTTrackIndex { Int_t fLabel[MaxTrack];//MC label UChar_t fNHits[MaxTrack];//Number of different mc labels UChar_t fCurrentRow[MaxTrack];//Index of the current row while filling Hough space }; -typedef struct AliL3TrackIndex AliL3TrackIndex; +typedef struct AliHLTTrackIndex AliHLTTrackIndex; #endif -class AliL3DigitRowData; -class AliL3Histogram; +class AliHLTDigitRowData; +class AliHLTHistogram; #include "AliTPCRawStream.h" -class AliL3HoughBaseTransformer { +class AliHLTHoughBaseTransformer { public: - AliL3HoughBaseTransformer(); - AliL3HoughBaseTransformer(Int_t slice,Int_t patch,Int_t netasegments,Float_t zvertex=0.0); - virtual ~AliL3HoughBaseTransformer(); + AliHLTHoughBaseTransformer(); + AliHLTHoughBaseTransformer(Int_t slice,Int_t patch,Int_t netasegments,Float_t zvertex=0.0); + virtual ~AliHLTHoughBaseTransformer(); - void SetInputData(UInt_t /*ndigits*/,AliL3DigitRowData *ptr) {fDigitRowData = ptr;} + void SetInputData(UInt_t /*ndigits*/,AliHLTDigitRowData *ptr) {fDigitRowData = ptr;} //this is for adaptave histograms virtual void CreateHistograms(Float_t /*ptmin*/,Float_t /*ptmax*/,Float_t /*pres*/,Int_t /*nybin*/,Float_t /*psi*/) @@ -59,7 +59,7 @@ class AliL3HoughBaseTransformer { Int_t GetSlice() const {return fSlice;} Int_t GetPatch() const {return fPatch;} Int_t GetLastPatch() const {return fLastPatch;} - AliL3HoughBaseTransformer *GetLastTransfromer() const {return fLastTransformer;} + AliHLTHoughBaseTransformer *GetLastTransfromer() const {return fLastTransformer;} Int_t GetNEtaSegments() const {return fNEtaSegments;} Int_t GetLowerThreshold() const {return fLowerThreshold;} Int_t GetUpperThreshold() const {return fUpperThreshold;} @@ -67,12 +67,12 @@ class AliL3HoughBaseTransformer { Double_t GetEtaMax() const {return fEtaMax;} Float_t GetZVertex() const {return fZVertex;} - AliL3DigitRowData *GetDataPointer() {return fDigitRowData;} + AliHLTDigitRowData *GetDataPointer() {return fDigitRowData;} virtual Int_t GetEtaIndex(Double_t eta) const = 0; virtual void GetEtaIndexes(Double_t /*eta*/,Int_t */*indexes*/) const {STDCERR<<"GetEtaIndexes not implemented for this Transformer class"< //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3HoughClusterTransformer.h" -#include "AliL3MemHandler.h" -#include "AliL3SpacePointData.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3Histogram.h" -#include "AliL3ClustFinderNew.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughClusterTransformer.h" +#include "AliHLTMemHandler.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTHistogram.h" +#include "AliHLTClustFinderNew.h" #if __GNUC__ >= 3 using namespace std; #endif //_____________________________________________________________ -// AliL3HoughClusterTransformer +// AliHLTHoughClusterTransformer // // Hough transformation class. // @@ -27,9 +27,9 @@ using namespace std; // Therefore, it first finds the clusters using the HLT cluster finder, and // then uses these as input for the transform. -ClassImp(AliL3HoughClusterTransformer) +ClassImp(AliHLTHoughClusterTransformer) -AliL3HoughClusterTransformer::AliL3HoughClusterTransformer() +AliHLTHoughClusterTransformer::AliHLTHoughClusterTransformer() { //Default constructor fParamSpace = 0; @@ -41,7 +41,7 @@ AliL3HoughClusterTransformer::AliL3HoughClusterTransformer() #endif } -AliL3HoughClusterTransformer::AliL3HoughClusterTransformer(Int_t slice,Int_t patch,Int_t netasegments) : AliL3HoughBaseTransformer(slice,patch,netasegments) +AliHLTHoughClusterTransformer::AliHLTHoughClusterTransformer(Int_t slice,Int_t patch,Int_t netasegments) : AliHLTHoughBaseTransformer(slice,patch,netasegments) { //Normal constructor fParamSpace = 0; @@ -53,7 +53,7 @@ AliL3HoughClusterTransformer::AliL3HoughClusterTransformer(Int_t slice,Int_t pat #endif } -AliL3HoughClusterTransformer::~AliL3HoughClusterTransformer() +AliHLTHoughClusterTransformer::~AliHLTHoughClusterTransformer() { //dtor DeleteHistograms(); @@ -72,9 +72,9 @@ AliL3HoughClusterTransformer::~AliL3HoughClusterTransformer() #endif } -//void AliL3HoughClusterTransformer::Init(Int_t slice=0,Int_t patch=0,Int_t netasegments=100){} +//void AliHLTHoughClusterTransformer::Init(Int_t slice=0,Int_t patch=0,Int_t netasegments=100){} -void AliL3HoughClusterTransformer::DeleteHistograms() +void AliHLTHoughClusterTransformer::DeleteHistograms() { //Delete hough space histograms if(fParamSpace) @@ -88,7 +88,7 @@ void AliL3HoughClusterTransformer::DeleteHistograms() } } -void AliL3HoughClusterTransformer::CreateHistograms(Int_t nxbin,Float_t ptmin, +void AliHLTHoughClusterTransformer::CreateHistograms(Int_t nxbin,Float_t ptmin, Int_t nybin,Float_t phimin,Float_t phimax) { //Create the histograms (parameter space). @@ -100,40 +100,40 @@ void AliL3HoughClusterTransformer::CreateHistograms(Int_t nxbin,Float_t ptmin, //phimin = mimimum phi0 (degrees) //phimax = maximum phi0 (degrees) - Double_t x = AliL3Transform::GetBFact()*AliL3Transform::GetBField()/ptmin; - Double_t torad = AliL3Transform::Pi()/180; + Double_t x = AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/ptmin; + Double_t torad = AliHLTTransform::Pi()/180; CreateHistograms(nxbin,-1.*x,x,nybin,phimin*torad,phimax*torad); } -void AliL3HoughClusterTransformer::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, +void AliHLTHoughClusterTransformer::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, Int_t nybin,Float_t ymin,Float_t ymax) { //Create histograms which contain hough space Char_t histname[256]; - fParamSpace = new AliL3Histogram*[GetNEtaSegments()]; + fParamSpace = new AliHLTHistogram*[GetNEtaSegments()]; for(Int_t i=0; iGetNbinsX()+2)*(hist->GetNbinsY()+2); for(Int_t i=0; i= GetNEtaSegments() || etaindex < 0) @@ -172,7 +172,7 @@ inline AliL3Histogram *AliL3HoughClusterTransformer::GetHistogram(Int_t etaindex return fParamSpace[etaindex]; } -Double_t AliL3HoughClusterTransformer::GetEta(Int_t etaindex,Int_t slice) const +Double_t AliHLTHoughClusterTransformer::GetEta(Int_t etaindex,Int_t slice) const { //Returns eta associated with given eta slice Double_t etaslice = (GetEtaMax()-GetEtaMin())/GetNEtaSegments(); @@ -181,22 +181,22 @@ Double_t AliL3HoughClusterTransformer::GetEta(Int_t etaindex,Int_t slice) const return eta; } -void AliL3HoughClusterTransformer::FindClusters() +void AliHLTHoughClusterTransformer::FindClusters() { //Find the clusters if(!GetDataPointer()) { - cerr<<"AliL3HoughClusterTransformer::FindClusters : Zero data pointer"<Allocate(kPointsize); - AliL3ClustFinderNew *cf = new AliL3ClustFinderNew(); - cf->InitSlice(0,GetPatch(),AliL3Transform::GetFirstRow(GetPatch()),AliL3Transform::GetLastRow(GetPatch()),kMaxpoints); + fMemHandler = new AliHLTMemHandler(); + fClusters = (AliHLTSpacePointData*)fMemHandler->Allocate(kPointsize); + AliHLTClustFinderNew *cf = new AliHLTClustFinderNew(); + cf->InitSlice(0,GetPatch(),AliHLTTransform::GetFirstRow(GetPatch()),AliHLTTransform::GetLastRow(GetPatch()),kMaxpoints); cf->SetDeconv(kFALSE); cf->SetOutputArray(fClusters); cf->Read(1,GetDataPointer()); @@ -205,7 +205,7 @@ void AliL3HoughClusterTransformer::FindClusters() delete cf; } -void AliL3HoughClusterTransformer::TransformCircle() +void AliHLTHoughClusterTransformer::TransformCircle() { //Transform the input data with a circle HT. //The function loops over all the data, and transforms each cluster with the equations: @@ -221,7 +221,7 @@ void AliL3HoughClusterTransformer::TransformCircle() FindClusters(); if(!fClusters) { - LOG(AliL3Log::kError,"AliL3HoughClusterTransformer::TransformCircle","Data") + LOG(AliHLTLog::kError,"AliHLTHoughClusterTransformer::TransformCircle","Data") <<"No input data "<= GetNEtaSegments()) continue; - AliL3Histogram *hist = fParamSpace[etaindex]; + AliHLTHistogram *hist = fParamSpace[etaindex]; //Do the transformation: Double_t r = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); - Double_t phi = AliL3Transform::GetPhi(xyz); + Double_t phi = AliHLTTransform::GetPhi(xyz); //Fill the histogram along the phirange for(Int_t b=hist->GetFirstYbin(); b<=hist->GetLastYbin(); b++) @@ -259,7 +259,7 @@ void AliL3HoughClusterTransformer::TransformCircle() for(c=0; c= GetNEtaSegments()) continue; @@ -298,11 +298,11 @@ void AliL3HoughClusterTransformer::TransformCircleC(Int_t */*row_range*/,Int_t / xyz[0] = fClusters[j].fX; xyz[1] = fClusters[j].fY; xyz[2] = fClusters[j].fZ; - eta = AliL3Transform::GetEta(xyz); + eta = AliHLTTransform::GetEta(xyz); index2 = GetEtaIndex(eta); if(index1 != index2) continue; - AliL3Histogram *hist = fParamSpace[index1]; + AliHLTHistogram *hist = fParamSpace[index1]; r2 = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); phi2 = atan2(xyz[1],xyz[0]); @@ -324,7 +324,7 @@ void AliL3HoughClusterTransformer::TransformCircleC(Int_t */*row_range*/,Int_t / for(c=0; c GetNEtaSegments()) { - cerr<<"AliL3HoughClusterTransformer::GetTrackID : Wrong etaindex "<FindBin(kappa,psi); Int_t label=-1; Int_t max=0; @@ -361,10 +361,10 @@ Int_t AliL3HoughClusterTransformer::GetTrackID(Int_t etaindex,Double_t kappa,Dou } return label; #else - Int_t AliL3HoughClusterTransformer::GetTrackID(Int_t /*etaindex*/,Double_t /*kappa*/,Double_t /*psi*/) const + Int_t AliHLTHoughClusterTransformer::GetTrackID(Int_t /*etaindex*/,Double_t /*kappa*/,Double_t /*psi*/) const { // Does nothing if do_mc undefinde - cout<<"AliL3HoughClusterTransformer::GetTrackID : Compile with do_mc flag!"< #include -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3DigitData.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3HoughTrack.h" -#include "AliL3TrackArray.h" -#include "AliL3MemHandler.h" -#include "AliL3HoughDisplay.h" -#include "AliL3DigitData.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTDigitData.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTrackArray.h" +#include "AliHLTMemHandler.h" +#include "AliHLTHoughDisplay.h" +#include "AliHLTDigitData.h" #if __GNUC__ >= 3 using namespace std; @@ -31,10 +31,10 @@ using namespace std; //_____________________________________________________________ // Display class for Hough transform code -ClassImp(AliL3HoughDisplay) +ClassImp(AliHLTHoughDisplay) -AliL3HoughDisplay::AliL3HoughDisplay() +AliHLTHoughDisplay::AliHLTHoughDisplay() { //default ctor fTracks = 0; @@ -44,40 +44,40 @@ AliL3HoughDisplay::AliL3HoughDisplay() fPatch = -1; } -AliL3HoughDisplay::~AliL3HoughDisplay() +AliHLTHoughDisplay::~AliHLTHoughDisplay() { //dtor if(fTracks) delete fTracks; } -void AliL3HoughDisplay::Init(Char_t *trackfile, Char_t *gfile) +void AliHLTHoughDisplay::Init(Char_t *trackfile, Char_t *gfile) { //Init hough display TFile *file = TFile::Open(gfile); if(!file->IsOpen()) - cerr<<"AliL3HoughDisplay::AliL3HoughDisplay : Geometry file " << gfile << " does not exist"<Get("AliceGeom"); file->Close(); - fTracks = new AliL3TrackArray(); - AliL3MemHandler *tfile = new AliL3MemHandler(); + fTracks = new AliHLTTrackArray(); + AliHLTMemHandler *tfile = new AliHLTMemHandler(); tfile->SetBinaryInput(trackfile); tfile->Binary2TrackArray(fTracks); tfile->CloseBinaryInput(); delete tfile; } -void AliL3HoughDisplay::GenerateHits(AliL3Track *track,Float_t *x,Float_t *y,Float_t *z,Int_t &n) +void AliHLTHoughDisplay::GenerateHits(AliHLTTrack *track,Float_t *x,Float_t *y,Float_t *z,Int_t &n) { //Generate hits according to the track parameters n=0; Float_t xyz[3]; - for(Int_t i=AliL3Transform::GetFirstRow(0); iGetCrossingPoint(i,xyz)) { - AliL3Transform::Local2Global(xyz,0); + AliHLTTransform::Local2Global(xyz,0); x[n] = xyz[0]; y[n] = xyz[1]; z[n] = xyz[2]; @@ -88,22 +88,22 @@ void AliL3HoughDisplay::GenerateHits(AliL3Track *track,Float_t *x,Float_t *y,Flo } } -TPolyMarker3D *AliL3HoughDisplay::LoadDigits() +TPolyMarker3D *AliHLTHoughDisplay::LoadDigits() { //Load digits - AliL3DigitRowData *tempPt = fDigitRowData; + AliHLTDigitRowData *tempPt = fDigitRowData; if(!tempPt) { - cerr<<"AliL3HoughDisplay::LoadDigits : No data"<fNDigit; - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } tempPt = fDigitRowData; TPolyMarker3D *pm = new TPolyMarker3D(count); @@ -112,29 +112,29 @@ TPolyMarker3D *AliL3HoughDisplay::LoadDigits() count=0; for(UInt_t i=0; ifDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; Int_t padrow = (Int_t)tempPt->fRow; for(UInt_t j=0; jfNDigit; j++) { - AliL3Transform::Slice2Sector(fShowSlice,padrow,sector,row); - AliL3Transform::Raw2Global(xyz,sector,row,(Int_t)digPt->fPad,(Int_t)digPt->fTime); + AliHLTTransform::Slice2Sector(fShowSlice,padrow,sector,row); + AliHLTTransform::Raw2Global(xyz,sector,row,(Int_t)digPt->fPad,(Int_t)digPt->fTime); pm->SetPoint(count,xyz[0],xyz[1],xyz[2]); count++; } - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } cout<<"Displaying "<GetCheckedTrack(j); + AliHLTTrack *track = fTracks->GetCheckedTrack(j); if(!track) continue; track->CalculateHelix(); GenerateHits(track,x,y,z,n); diff --git a/HLT/hough/AliHLTHoughDisplay.h b/HLT/hough/AliHLTHoughDisplay.h new file mode 100644 index 00000000000..7074866f313 --- /dev/null +++ b/HLT/hough/AliHLTHoughDisplay.h @@ -0,0 +1,48 @@ +// @(#) $Id$ + +#ifndef ALIL3HOUGHDISPLAY_H +#define ALIL3HOUGHDISPLAY_H + +class TGeometry; +class AliHLTTrackArray; +class AliHLTDigitRowData; +class TPolyMarker3D; +class AliHLTTrack; + +class AliHLTHoughDisplay { + + public: + AliHLTHoughDisplay(); + virtual ~AliHLTHoughDisplay(); + + void Init(Char_t *trackfile, Char_t *gfile="$(LEVEL3)/GEO/alice.geom"); + void DisplayEvent(); + void ShowData(AliHLTDigitRowData *data,UInt_t size,Int_t slice,Int_t patch); + + private: + + TGeometry *fGeom; //! + AliHLTTrackArray *fTracks; //! + AliHLTDigitRowData *fDigitRowData; //! + UInt_t fNDigitRowData; //! + Int_t fShowSlice; //Which slice to show + Int_t fPatch;//Which patch to show + + void GenerateHits(AliHLTTrack *track,Float_t *x,Float_t *y,Float_t *z,Int_t &n); + + TPolyMarker3D *LoadDigits(); + + ClassDef(AliHLTHoughDisplay,1) +}; + +typedef AliHLTHoughDisplay AliL3HoughDisplay; // for backward comaptibility + +inline void AliHLTHoughDisplay::ShowData(AliHLTDigitRowData *data,UInt_t size,Int_t slice,Int_t patch) +{ + fShowSlice = slice; + fPatch = patch; + fDigitRowData = data; + fNDigitRowData = size; +} + +#endif diff --git a/HLT/hough/AliL3HoughEval.cxx b/HLT/hough/AliHLTHoughEval.cxx similarity index 67% rename from HLT/hough/AliL3HoughEval.cxx rename to HLT/hough/AliHLTHoughEval.cxx index cfb807c7c22..b00969470e0 100644 --- a/HLT/hough/AliL3HoughEval.cxx +++ b/HLT/hough/AliHLTHoughEval.cxx @@ -3,41 +3,41 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" #ifdef use_root #include #include #endif -#include "AliL3Logging.h" -#include "AliL3HoughEval.h" -#include "AliL3MemHandler.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughBaseTransformer.h" -#include "AliL3DigitData.h" -#include "AliL3HoughTrack.h" -#include "AliL3Transform.h" -#include "AliL3Histogram.h" -#include "AliL3Histogram1D.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughEval.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughBaseTransformer.h" +#include "AliHLTDigitData.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTHistogram.h" +#include "AliHLTHistogram1D.h" #if __GNUC__ == 3 using namespace std; #endif -/** /class AliL3HoughEval +/** /class AliHLTHoughEval //
 //_____________________________________________________________
-// AliL3HoughEval
+// AliHLTHoughEval
 //
 // Evaluation class for tracklets produced by the Hough transform.
 //
 
*/ -ClassImp(AliL3HoughEval) +ClassImp(AliHLTHoughEval) -AliL3HoughEval::AliL3HoughEval() +AliHLTHoughEval::AliHLTHoughEval() { //default ctor fRemoveFoundTracks = kFALSE; @@ -48,7 +48,7 @@ AliL3HoughEval::AliL3HoughEval() } -AliL3HoughEval::~AliL3HoughEval() +AliHLTHoughEval::~AliHLTHoughEval() { //dtor fHoughTransformer = 0; @@ -60,13 +60,13 @@ AliL3HoughEval::~AliL3HoughEval() } } -void AliL3HoughEval::InitTransformer(AliL3HoughBaseTransformer *transformer) +void AliHLTHoughEval::InitTransformer(AliHLTHoughBaseTransformer *transformer) { //Init hough transformer fHoughTransformer = transformer; fSlice = fHoughTransformer->GetSlice(); fPatch = fHoughTransformer->GetPatch(); - fNrows = AliL3Transform::GetLastRow(fPatch) - AliL3Transform::GetFirstRow(fPatch) + 1; + fNrows = AliHLTTransform::GetLastRow(fPatch) - AliHLTTransform::GetFirstRow(fPatch) + 1; fNEtaSegments = fHoughTransformer->GetNEtaSegments(); fEtaMin = fHoughTransformer->GetEtaMin(); fEtaMax = fHoughTransformer->GetEtaMax(); @@ -74,27 +74,27 @@ void AliL3HoughEval::InitTransformer(AliL3HoughBaseTransformer *transformer) GenerateLUT(); } -void AliL3HoughEval::GenerateLUT() +void AliHLTHoughEval::GenerateLUT() { //Generate a Look-up table, to limit the access to raw data if(!fRowPointers) - fRowPointers = new AliL3DigitRowData*[fNrows]; + fRowPointers = new AliHLTDigitRowData*[fNrows]; - AliL3DigitRowData *tempPt = (AliL3DigitRowData*)fHoughTransformer->GetDataPointer(); + AliHLTDigitRowData *tempPt = (AliHLTDigitRowData*)fHoughTransformer->GetDataPointer(); if(!tempPt) - printf("\nAliL3HoughEval::GenerateLUT : Zero data pointer\n"); + printf("\nAliHLTHoughEval::GenerateLUT : Zero data pointer\n"); - for(Int_t i=AliL3Transform::GetFirstRow(fPatch); i<=AliL3Transform::GetLastRow(fPatch); i++) + for(Int_t i=AliHLTTransform::GetFirstRow(fPatch); i<=AliHLTTransform::GetLastRow(fPatch); i++) { - Int_t prow = i - AliL3Transform::GetFirstRow(fPatch); + Int_t prow = i - AliHLTTransform::GetFirstRow(fPatch); fRowPointers[prow] = tempPt; - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } } -Bool_t AliL3HoughEval::LookInsideRoad(AliL3HoughTrack *track,Int_t &nrowscrossed,Int_t *rowrange,Bool_t remove) +Bool_t AliHLTHoughEval::LookInsideRoad(AliHLTHoughTrack *track,Int_t &nrowscrossed,Int_t *rowrange,Bool_t remove) { //Look at rawdata along the road specified by the track candidates. //If track is good, return true, if not return false. @@ -106,10 +106,10 @@ Bool_t AliL3HoughEval::LookInsideRoad(AliL3HoughTrack *track,Int_t &nrowscrossed Int_t totalcharge=0;//total charge along the road - //for(Int_t padrow = AliL3Transform::GetFirstRow(fPatch); padrow <= AliL3Transform::GetLastRow(fPatch); padrow++) + //for(Int_t padrow = AliHLTTransform::GetFirstRow(fPatch); padrow <= AliHLTTransform::GetLastRow(fPatch); padrow++) for(Int_t padrow = rowrange[0]; padrow<=rowrange[1]; padrow++) { - Int_t prow = padrow - AliL3Transform::GetFirstRow(fPatch); + Int_t prow = padrow - AliHLTTransform::GetFirstRow(fPatch); if(track->IsHelix()) { if(!track->GetCrossingPoint(padrow,xyz)) @@ -120,28 +120,28 @@ Bool_t AliL3HoughEval::LookInsideRoad(AliL3HoughTrack *track,Int_t &nrowscrossed else { track->GetLineCrossingPoint(padrow,xyz); - xyz[0] += AliL3Transform::Row2X(track->GetFirstRow()); + xyz[0] += AliHLTTransform::Row2X(track->GetFirstRow()); Float_t r = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); xyz[2] = r*track->GetTgl(); } - AliL3Transform::Slice2Sector(fSlice,padrow,sector,row); - AliL3Transform::Local2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(fSlice,padrow,sector,row); + AliHLTTransform::Local2Raw(xyz,sector,row); npixs=0; //Get the timebins for this pad - AliL3DigitRowData *tempPt = fRowPointers[prow]; + AliHLTDigitRowData *tempPt = fRowPointers[prow]; if(!tempPt) { - printf("AliL3HoughEval::LookInsideRoad : Zero data pointer\n"); + printf("AliHLTHoughEval::LookInsideRoad : Zero data pointer\n"); continue; } //Look at both sides of the pad: for(Int_t p=(Int_t)rint(xyz[1])-fNumOfPadsToLook; p<=(Int_t)rint(xyz[1])+fNumOfPadsToLook; p++) { - AliL3DigitData *digPt = tempPt->fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { Int_t pad = digPt[j].fPad; @@ -150,7 +150,7 @@ Bool_t AliL3HoughEval::LookInsideRoad(AliL3HoughTrack *track,Int_t &nrowscrossed if(pad < p) continue; if(pad > p) break; UShort_t time = digPt[j].fTime; - Double_t eta = AliL3Transform::GetEta(fSlice,padrow,pad,time); + Double_t eta = AliHLTTransform::GetEta(fSlice,padrow,pad,time); Int_t pixelindex = fHoughTransformer->GetEtaIndex(eta); if(pixelindex != track->GetEtaIndex()) continue; totalcharge += digPt[j].fCharge; @@ -183,52 +183,52 @@ Bool_t AliL3HoughEval::LookInsideRoad(AliL3HoughTrack *track,Int_t &nrowscrossed return kFALSE; } -void AliL3HoughEval::FindEta(AliL3TrackArray *tracks) +void AliHLTHoughEval::FindEta(AliHLTTrackArray *tracks) { //Find the corresponding eta slice hough space Int_t sector,row; Float_t xyz[3]; Int_t ntracks = tracks->GetNTracks(); - fEtaHistos = new AliL3Histogram1D*[ntracks]; + fEtaHistos = new AliHLTHistogram1D*[ntracks]; Char_t hname[100]; for(Int_t i=0; iGetCheckedTrack(ntr); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(ntr); if(!track) continue; - for(Int_t padrow = AliL3Transform::GetFirstRow(fPatch); padrow <= AliL3Transform::GetLastRow(fPatch); padrow++) + for(Int_t padrow = AliHLTTransform::GetFirstRow(fPatch); padrow <= AliHLTTransform::GetLastRow(fPatch); padrow++) { - Int_t prow = padrow - AliL3Transform::GetFirstRow(fPatch); + Int_t prow = padrow - AliHLTTransform::GetFirstRow(fPatch); if(!track->GetCrossingPoint(padrow,xyz)) { - printf("AliL3HoughEval::LookInsideRoad : Track does not cross line!!\n"); + printf("AliHLTHoughEval::LookInsideRoad : Track does not cross line!!\n"); continue; } - AliL3Transform::Slice2Sector(fSlice,padrow,sector,row); - AliL3Transform::Local2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(fSlice,padrow,sector,row); + AliHLTTransform::Local2Raw(xyz,sector,row); //Get the timebins for this pad - AliL3DigitRowData *tempPt = fRowPointers[prow]; + AliHLTDigitRowData *tempPt = fRowPointers[prow]; if(!tempPt) { - printf("AliL3HoughEval::LookInsideRoad : Zero data pointer\n"); + printf("AliHLTHoughEval::LookInsideRoad : Zero data pointer\n"); continue; } //Look at both sides of the pad: for(Int_t p=(Int_t)rint(xyz[1])-fNumOfPadsToLook; p<=(Int_t)rint(xyz[1])+fNumOfPadsToLook; p++) { - AliL3DigitData *digPt = tempPt->fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { UChar_t pad = digPt[j].fPad; @@ -237,7 +237,7 @@ void AliL3HoughEval::FindEta(AliL3TrackArray *tracks) if(pad < p) continue; if(pad > p) break; UShort_t time = digPt[j].fTime; - Double_t eta = AliL3Transform::GetEta(fSlice,padrow,pad,time); + Double_t eta = AliHLTTransform::GetEta(fSlice,padrow,pad,time); Int_t pixelindex = (Int_t)(eta/etaslice); if(pixelindex > track->GetEtaIndex()+1) continue; if(pixelindex < track->GetEtaIndex()-1) break; @@ -249,10 +249,10 @@ void AliL3HoughEval::FindEta(AliL3TrackArray *tracks) for(Int_t i=0; iGetMaximumBin(); Double_t maxvalue = hist->GetBinContent(maxbin); - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!track) continue; if(hist->GetBinContent(maxbin-1)GetBinContent(maxbin+1)fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if((Int_t)tempPt->fRow != padrow) { - printf("\nAliL3HoughEval::DisplayEtaSlice : Mismatching padrows!!!\n"); + printf("\nAliHLTHoughEval::DisplayEtaSlice : Mismatching padrows!!!\n"); return; } for(UInt_t j=0; jfNDigit; j++) @@ -308,10 +308,10 @@ void AliL3HoughEval::DisplayEtaSlice(Int_t etaindex,AliL3Histogram *hist) if((Int_t)charge <= fHoughTransformer->GetLowerThreshold() || (Int_t)charge >= fHoughTransformer->GetUpperThreshold()) continue; Float_t xyz[3]; Int_t sector,row; - AliL3Transform::Slice2Sector(fSlice,padrow,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Slice2Sector(fSlice,padrow,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); xyz[2] -= fZVertex; - Double_t eta = AliL3Transform::GetEta(xyz); + Double_t eta = AliHLTTransform::GetEta(xyz); Int_t pixelindex = fHoughTransformer->GetEtaIndex(eta);//(Int_t)(eta/etaslice); if(pixelindex != etaindex) continue; hist->Fill(xyz[0],xyz[1],charge); @@ -321,7 +321,7 @@ void AliL3HoughEval::DisplayEtaSlice(Int_t etaindex,AliL3Histogram *hist) } #ifdef use_root -void AliL3HoughEval::CompareMC(AliL3TrackArray */*tracks*/,Char_t */*trackfile*/,Int_t /*threshold*/) +void AliHLTHoughEval::CompareMC(AliHLTTrackArray */*tracks*/,Char_t */*trackfile*/,Int_t /*threshold*/) { /* struct GoodTrack goodtracks[15000]; @@ -343,14 +343,14 @@ void AliL3HoughEval::CompareMC(AliL3TrackArray */*tracks*/,Char_t */*trackfile*/ } if (!in.eof()) { - LOG(AliL3Log::kError,"AliL3HoughEval::CompareMC","Input file") + LOG(AliHLTLog::kError,"AliHLTHoughEval::CompareMC","Input file") <<"Error in file reading"<GetNTracks(); i++) { - AliL3HoughTrack *tr = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *tr = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!tr) continue; if(tr->GetWeight()GetEtaIndex(); diff --git a/HLT/hough/AliHLTHoughEval.h b/HLT/hough/AliHLTHoughEval.h new file mode 100644 index 00000000000..051664e3413 --- /dev/null +++ b/HLT/hough/AliHLTHoughEval.h @@ -0,0 +1,65 @@ +// @(#) $Id$ + +#ifndef ALIL3HOUGHEVAL_H +#define ALIL3HOUGHEVAL_H + +#include "AliHLTRootTypes.h" + +class AliHLTTrackArray; +class AliHLTHoughBaseTransformer; +class AliHLTHoughTrack; +class AliHLTDigitRowData; +class AliHLTHistogram; +class AliHLTHistogram1D; + +class AliHLTHoughEval { + + public: + AliHLTHoughEval(); + virtual ~AliHLTHoughEval(); + + void InitTransformer(AliHLTHoughBaseTransformer *transformer); + void GenerateLUT(); + void DisplayEtaSlice(Int_t etaindex,AliHLTHistogram *hist); + Bool_t LookInsideRoad(AliHLTHoughTrack *track,Int_t &nrowscrossed,Int_t *rowrange,Bool_t remove=kFALSE); +#ifdef use_root + void CompareMC(AliHLTTrackArray *tracks,Char_t *goodtracks="good_tracks",Int_t treshold=0); +#endif + void FindEta(AliHLTTrackArray *tracks); + + //Getters + AliHLTHistogram1D *GetEtaHisto(Int_t i) {if(!fEtaHistos) return 0; if(!fEtaHistos[i]) return 0; return fEtaHistos[i];} + + //Setters: + void RemoveFoundTracks() {fRemoveFoundTracks = kTRUE;} + void SetNumOfRowsToMiss(Int_t i) {fNumOfRowsToMiss = i;} + void SetNumOfPadsToLook(Int_t i) {fNumOfPadsToLook = i;} + void SetSlice(Int_t i) {fSlice=i;} + void SetZVertex(Float_t zvertex) {fZVertex=zvertex;} + + private: + + Int_t fSlice;//Index of the slice being processed + Int_t fPatch;//Index of the patch being processed + Int_t fNrows;//Number of padrows inside the patch + Int_t fNEtaSegments;//Number of eta slices + Double_t fEtaMin;//Minimum allowed eta + Double_t fEtaMax;//Maximum allowed eta + Int_t fNumOfPadsToLook;//Padrow search window + Int_t fNumOfRowsToMiss;//Maximum numbers of padrow which could be missed + AliHLTHistogram1D **fEtaHistos; //! + Float_t fZVertex;//Z position of the primary vertex + + //Flags + Bool_t fRemoveFoundTracks;//Remove the found tracks or not? + + AliHLTHoughBaseTransformer *fHoughTransformer; //! + AliHLTDigitRowData **fRowPointers; //! + + ClassDef(AliHLTHoughEval,1) //Hough transform verfication class + +}; + +typedef AliHLTHoughEval AliL3HoughEval; // for backward comaptibility + +#endif diff --git a/HLT/hough/AliHLTHoughGlobalMerger.cxx b/HLT/hough/AliHLTHoughGlobalMerger.cxx new file mode 100644 index 00000000000..4d96fed445e --- /dev/null +++ b/HLT/hough/AliHLTHoughGlobalMerger.cxx @@ -0,0 +1,72 @@ +// @(#) $Id$ + +// Author: Anders Vestbo +//*-- Copyright © ALICE HLT Group + +#include "AliHLTStandardIncludes.h" + +#include "AliHLTLogging.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTHoughGlobalMerger.h" +#include "AliHLTTrack.h" +#include "AliHLTTrackArray.h" +#include "AliHLTTransform.h" + +//_____________________________________________________________ +// Merging Hough tracks across slices + +ClassImp(AliHLTHoughGlobalMerger) + +AliHLTHoughGlobalMerger::AliHLTHoughGlobalMerger() +{ + fTracks = 0; +} + +AliHLTHoughGlobalMerger::AliHLTHoughGlobalMerger(Int_t first,Int_t last) +{ + fNSlices = last-first+1; + fTracks = new AliHLTTrackArray*[fNSlices]; + for(Int_t i=0; iAddTracks(tracks,kTRUE,slice); + +} + +void AliHLTHoughGlobalMerger::Merge() +{ + for(Int_t slice=0; sliceGetNTracks(); i++) + { + + } + } + +} diff --git a/HLT/hough/AliHLTHoughGlobalMerger.h b/HLT/hough/AliHLTHoughGlobalMerger.h new file mode 100644 index 00000000000..2a665016ffd --- /dev/null +++ b/HLT/hough/AliHLTHoughGlobalMerger.h @@ -0,0 +1,30 @@ +// @(#) $Id$ + +#ifndef ALIL3_HOUGHGLOBALMERGER_H +#define ALIL3_HOUGHGLOBALMERGER_H + +#include "AliHLTMerger.h" + +class AliHLTTrackArray; +class AliHLTTrack; + +class AliHLTHoughGlobalMerger { + + private: + AliHLTTrackArray **fTracks; //! + Int_t fNSlices; + + public: + AliHLTHoughGlobalMerger(); + AliHLTHoughGlobalMerger(Int_t first,Int_t last); + virtual ~AliHLTHoughGlobalMerger(); + + void FillTracks(AliHLTTrackArray *tracks,Int_t i); + void Merge(); + + ClassDef(AliHLTHoughGlobalMerger,1) +}; + +typedef AliHLTHoughGlobalMerger AliL3HoughGlobalMerger; // for backward compatibility + +#endif diff --git a/HLT/hough/AliL3HoughIntMerger.cxx b/HLT/hough/AliHLTHoughIntMerger.cxx similarity index 57% rename from HLT/hough/AliL3HoughIntMerger.cxx rename to HLT/hough/AliHLTHoughIntMerger.cxx index 4458240032e..da50e183e67 100644 --- a/HLT/hough/AliL3HoughIntMerger.cxx +++ b/HLT/hough/AliHLTHoughIntMerger.cxx @@ -3,14 +3,14 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3HoughIntMerger.h" -#include "AliL3HoughTrack.h" -#include "AliL3TrackSegmentData.h" -#include "AliL3Transform.h" -#include "AliL3TrackArray.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughIntMerger.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTrackSegmentData.h" +#include "AliHLTTransform.h" +#include "AliHLTTrackArray.h" #if __GNUC__ >= 3 using namespace std; @@ -20,25 +20,25 @@ using namespace std; // Hough Inter merger // Merging of multiple reconstructed tracks -ClassImp(AliL3HoughIntMerger) +ClassImp(AliHLTHoughIntMerger) -AliL3HoughIntMerger::AliL3HoughIntMerger() +AliHLTHoughIntMerger::AliHLTHoughIntMerger() { //Default constructor - InitMerger(1,"AliL3HoughTrack"); + InitMerger(1,"AliHLTHoughTrack"); fRowMax = fRowMin = 0; SetParameters(0.001,0.05,10); Is2Global(kFALSE); } -AliL3HoughIntMerger::~AliL3HoughIntMerger() +AliHLTHoughIntMerger::~AliHLTHoughIntMerger() { //Destructor } -void AliL3HoughIntMerger::SetParameters(Double_t maxkappa, Double_t maxphi0, Double_t maxtgl) +void AliHLTHoughIntMerger::SetParameters(Double_t maxkappa, Double_t maxphi0, Double_t maxtgl) { //Set merger params fMaxKappa = maxkappa; @@ -46,23 +46,23 @@ void AliL3HoughIntMerger::SetParameters(Double_t maxkappa, Double_t maxphi0, Dou fMaxTgl = maxtgl; } -void AliL3HoughIntMerger::FillTracks(AliL3TrackArray *tracks) +void AliHLTHoughIntMerger::FillTracks(AliHLTTrackArray *tracks) { //Fills tracks into merger if(tracks->GetNTracks()==0) - LOG(AliL3Log::kWarning,"AliL3HoughIntMerger::FillTracks","Track Array") + LOG(AliHLTLog::kWarning,"AliHLTHoughIntMerger::FillTracks","Track Array") <<"Adding empty track array"<AddTracks(tracks,kFALSE);//Copy tracks printf("Filling %d tracks to intermerger\n",tracks->GetNTracks()); } -Bool_t AliL3HoughIntMerger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrack) +Bool_t AliHLTHoughIntMerger::IsTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack) { //Check if the tracks can be merged, called by the track merger - AliL3HoughTrack *tr1 = (AliL3HoughTrack*)innertrack; - AliL3HoughTrack *tr2 = (AliL3HoughTrack*)outertrack; + AliHLTHoughTrack *tr1 = (AliHLTHoughTrack*)innertrack; + AliHLTHoughTrack *tr2 = (AliHLTHoughTrack*)outertrack; if(abs(tr1->GetEtaIndex() - tr2->GetEtaIndex()) > 1) return kFALSE; if(tr1->GetCharge()!=tr2->GetCharge()) return kFALSE; @@ -72,22 +72,22 @@ Bool_t AliL3HoughIntMerger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrac return kTRUE;//Tracks could be merged } -AliL3Track *AliL3HoughIntMerger::MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t /*ntrack*/) +AliHLTTrack *AliHLTHoughIntMerger::MultiMerge(AliHLTTrackArray *mergedtrack,AliHLTTrack **tracks, Int_t /*ntrack*/) { //Called by the track merger - AliL3HoughTrack *newtrack = (AliL3HoughTrack*)mergedtrack->NextTrack(); - AliL3HoughTrack **trs = (AliL3HoughTrack**)tracks; + AliHLTHoughTrack *newtrack = (AliHLTHoughTrack*)mergedtrack->NextTrack(); + AliHLTHoughTrack **trs = (AliHLTHoughTrack**)tracks; - AliL3HoughTrack *tpt=trs[0];//this is the "best" track - //AliL3HoughTrack *tpl=trs[ntrack-1]; + AliHLTHoughTrack *tpt=trs[0];//this is the "best" track + //AliHLTHoughTrack *tpl=trs[ntrack-1]; newtrack->Set(tpt); - return (AliL3Track*)newtrack; + return (AliHLTTrack*)newtrack; } -void AliL3HoughIntMerger::MMerge() +void AliHLTHoughIntMerger::MMerge() { //Track merging?? GetInTracks(0)->QSort(); @@ -95,21 +95,21 @@ void AliL3HoughIntMerger::MMerge() GetOutTracks()->AddTracks(GetInTracks(0)); } -Int_t AliL3HoughIntMerger::Merge() +Int_t AliHLTHoughIntMerger::Merge() { //Track merging?? - AliL3TrackArray * tracks = GetInTracks(0); + AliHLTTrackArray * tracks = GetInTracks(0); const Int_t kNIn =tracks->GetNTracks(); - AliL3Track *tr[2]; + AliHLTTrack *tr[2]; for(Int_t out=0;outGetCheckedTrack(out); + AliHLTHoughTrack *outertrack=(AliHLTHoughTrack*)tracks->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in=0;inGetCheckedTrack(in); + AliHLTHoughTrack *innertrack=(AliHLTHoughTrack*)tracks->GetCheckedTrack(in); if(!innertrack) continue; if(IsTrack(innertrack,outertrack)) { @@ -125,8 +125,8 @@ Int_t AliL3HoughIntMerger::Merge() } } Int_t nmerged = tracks->GetNTracks()-kNIn; - LOG(AliL3Log::kInformational,"AliL3HoughIntMerger::Merge","Result") - <AddTracks(GetInTracks(0)); @@ -134,11 +134,11 @@ Int_t AliL3HoughIntMerger::Merge() return nmerged; } -void AliL3HoughIntMerger::Print(AliL3Track **tracks) +void AliHLTHoughIntMerger::Print(AliHLTTrack **tracks) { //Prints merger results - AliL3HoughTrack *tr1 = (AliL3HoughTrack*)tracks[0]; - AliL3HoughTrack *tr2 = (AliL3HoughTrack*)tracks[1]; + AliHLTHoughTrack *tr1 = (AliHLTHoughTrack*)tracks[0]; + AliHLTHoughTrack *tr2 = (AliHLTHoughTrack*)tracks[1]; Double_t kappadiff = fabs(tr1->GetKappa()-tr2->GetKappa()); Double_t phi0diff = fabs(tr1->GetPhi0()-tr2->GetPhi0()); cout << "---------Difference in intermerged tracks---------"< -class AliL3HoughTrack; -class AliL3HoughBaseTransformer; +class AliHLTHoughTrack; +class AliHLTHoughBaseTransformer; -class AliL3HoughKalmanTrack : public AliTPCtrack { +class AliHLTHoughKalmanTrack : public AliTPCtrack { public: - AliL3HoughKalmanTrack(const AliL3HoughTrack& t) throw (const Char_t *); + AliHLTHoughKalmanTrack(const AliHLTHoughTrack& t) throw (const Char_t *); - ClassDef(AliL3HoughKalmanTrack,1) //HLT TPC Hough track + ClassDef(AliHLTHoughKalmanTrack,1) //HLT TPC Hough track }; +typedef AliHLTHoughKalmanTrack AliL3HoughKalmanTrack; // for backward compatibility + #endif diff --git a/HLT/hough/AliHLTHoughLinkDef.h b/HLT/hough/AliHLTHoughLinkDef.h new file mode 100644 index 00000000000..f7823cdd0e1 --- /dev/null +++ b/HLT/hough/AliHLTHoughLinkDef.h @@ -0,0 +1,67 @@ +// @(#) $Id$ + +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ typedef AliL3Hough; +#pragma link C++ typedef AliL3HoughBaseTransformer; +#pragma link C++ typedef AliL3HoughTransformer; +#pragma link C++ typedef AliL3HoughTransformerLUT; +#pragma link C++ typedef AliL3HoughTransformerVhdl; +#pragma link C++ typedef AliL3HoughTransformerNew; +#pragma link C++ typedef AliL3HoughTransformerRow; +#ifndef macosx +#pragma link C++ typedef AliL3HoughTrack; +#pragma link C++ typedef AliL3HoughKalmanTrack; +#endif +#pragma link C++ typedef AliL3HoughMaxFinder; +#pragma link C++ typedef AliL3HoughEval; +#pragma link C++ typedef AliL3Histogram; +#pragma link C++ typedef AliL3Histogram1D; +#pragma link C++ typedef AliL3HoughMerger; +#pragma link C++ typedef AliL3HoughIntMerger; +#pragma link C++ typedef AliL3HoughGlobalMerger; +#pragma link C++ typedef AliL3HoughDisplay; +#pragma link C++ typedef AliL3HoughClusterTransformer; +#pragma link C++ typedef AliL3HistogramAdaptive; +#ifndef macosx +#pragma link C++ typedef AliL3HoughTest; +#endif + +#ifdef use_aliroot +#pragma link C++ typedef AliL3HoughTransformerGlobal; +#endif + +#pragma link C++ class AliHLTHough; +#pragma link C++ class AliHLTHoughBaseTransformer; +#pragma link C++ class AliHLTHoughTransformer; +#pragma link C++ class AliHLTHoughTransformerLUT; +#pragma link C++ class AliHLTHoughTransformerVhdl; +#pragma link C++ class AliHLTHoughTransformerNew; +#pragma link C++ class AliHLTHoughTransformerRow; +#ifndef macosx +#pragma link C++ class AliHLTHoughTrack; +#pragma link C++ class AliHLTHoughKalmanTrack; +#endif +#pragma link C++ class AliHLTHoughMaxFinder; +#pragma link C++ class AliHLTHoughEval; +#pragma link C++ class AliHLTHistogram; +#pragma link C++ class AliHLTHistogram1D; +#pragma link C++ class AliHLTHoughMerger; +#pragma link C++ class AliHLTHoughIntMerger; +#pragma link C++ class AliHLTHoughGlobalMerger; +#pragma link C++ class AliHLTHoughDisplay; +#pragma link C++ class AliHLTHoughClusterTransformer; +#pragma link C++ class AliHLTHistogramAdaptive; +#ifndef macosx +#pragma link C++ class AliHLTHoughTest; +#endif + +#ifdef use_aliroot +#pragma link C++ class AliHLTHoughTransformerGlobal; +#endif + +#endif diff --git a/HLT/hough/AliL3HoughMaxFinder.cxx b/HLT/hough/AliHLTHoughMaxFinder.cxx similarity index 89% rename from HLT/hough/AliL3HoughMaxFinder.cxx rename to HLT/hough/AliHLTHoughMaxFinder.cxx index 55ea266e53b..9b3f8083560 100644 --- a/HLT/hough/AliL3HoughMaxFinder.cxx +++ b/HLT/hough/AliHLTHoughMaxFinder.cxx @@ -4,39 +4,39 @@ //*-- Copyright © ALICE HLT Group #include -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" #ifndef no_root #include #include #endif -#include "AliL3Logging.h" -#include "AliL3HoughMaxFinder.h" -#include "AliL3Histogram.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughTrack.h" -#include "AliL3Transform.h" -#include "AliL3HoughTransformerRow.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughMaxFinder.h" +#include "AliHLTHistogram.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTHoughTransformerRow.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3HoughMaxFinder +/** \class AliHLTHoughMaxFinder
 //_____________________________________________________________
-// AliL3HoughMaxFinder
+// AliHLTHoughMaxFinder
 //
 // Maximum finder
 //
 
*/ -ClassImp(AliL3HoughMaxFinder) +ClassImp(AliHLTHoughMaxFinder) -AliL3HoughMaxFinder::AliL3HoughMaxFinder() +AliHLTHoughMaxFinder::AliHLTHoughMaxFinder() { //Default constructor fThreshold = 0; @@ -62,11 +62,11 @@ AliL3HoughMaxFinder::AliL3HoughMaxFinder() #endif } -AliL3HoughMaxFinder::AliL3HoughMaxFinder(Char_t *histotype,Int_t nmax,AliL3Histogram *hist) +AliHLTHoughMaxFinder::AliHLTHoughMaxFinder(Char_t *histotype,Int_t nmax,AliHLTHistogram *hist) { //Constructor - //fTracks = new AliL3TrackArray("AliL3HoughTrack"); + //fTracks = new AliHLTTrackArray("AliHLTHoughTrack"); if(strcmp(histotype,"KappaPhi")==0) fHistoType='c'; if(strcmp(histotype,"DPsi")==0) fHistoType='l'; @@ -93,7 +93,7 @@ AliL3HoughMaxFinder::AliL3HoughMaxFinder(Char_t *histotype,Int_t nmax,AliL3Histo fThreshold=0; } -AliL3HoughMaxFinder::~AliL3HoughMaxFinder() +AliHLTHoughMaxFinder::~AliHLTHoughMaxFinder() { //Destructor if(fXPeaks) @@ -120,7 +120,7 @@ AliL3HoughMaxFinder::~AliL3HoughMaxFinder() #endif } -void AliL3HoughMaxFinder::Reset() +void AliHLTHoughMaxFinder::Reset() { // Method to reinit the Peak Finder for(Int_t i=0; iWrite(); @@ -165,15 +165,15 @@ void AliL3HoughMaxFinder::WriteNtuppel(Char_t *filename) #endif } -void AliL3HoughMaxFinder::FindAbsMaxima() +void AliHLTHoughMaxFinder::FindAbsMaxima() { // Simple Peak Finder in the Hough space if(!fCurrentHisto) { - cerr<<"AliL3HoughMaxFinder::FindAbsMaxima : No histogram"<GetNEntries() == 0) return; @@ -206,7 +206,7 @@ void AliL3HoughMaxFinder::FindAbsMaxima() if(fNPeaks > fNMax) { - cerr<<"AliL3HoughMaxFinder::FindAbsMaxima : Array out of range : "<GetNEntries() == 0) return; @@ -272,7 +272,7 @@ void AliL3HoughMaxFinder::FindBigMaxima() //Found maxima if(fNPeaks > fNMax) { - cerr<<"AliL3HoughMaxFinder::FindBigMaxima : Array out of range "<= fNMax) { - cout<<"AliL3HoughMaxFinder::FindMaxima : Array out of range "<GetNbinsY()]; + AliHLTWindow **localmaxima = new AliHLTWindow*[hist->GetNbinsY()]; Short_t *nmaxs = new Short_t[hist->GetNbinsY()]; Int_t n,lastsum,sum; Bool_t sumwasrising; for(Int_t ybin=ymin; ybin<=ymax; ybin++) { - localmaxima[ybin-ymin] = new AliL3Window[hist->GetNbinsX()]; + localmaxima[ybin-ymin] = new AliHLTWindow[hist->GetNbinsX()]; nmaxs[ybin-ymin] = 0; sumwasrising=0; lastsum=0; @@ -665,7 +665,7 @@ void AliL3HoughMaxFinder::FindAdaptedPeaks(Int_t kappawindow,Float_t cutratio) delete [] maxs; } -struct AliL3PreYPeak +struct AliHLTPreYPeak { Int_t fStartPosition; // Start position in X Int_t fEndPosition; // End position in X @@ -676,14 +676,14 @@ struct AliL3PreYPeak Int_t fRightValue; // Neighbour values }; -void AliL3HoughMaxFinder::FindAdaptedRowPeaks(Int_t kappawindow,Int_t xsize,Int_t ysize) +void AliHLTHoughMaxFinder::FindAdaptedRowPeaks(Int_t kappawindow,Int_t xsize,Int_t ysize) { - // Peak finder which is working over the Hough Space provided by the AliL3HoughTransformerRow class - AliL3Histogram *hist = fCurrentHisto; + // Peak finder which is working over the Hough Space provided by the AliHLTHoughTransformerRow class + AliHLTHistogram *hist = fCurrentHisto; if(!hist) { - cerr<<"AliL3HoughMaxFinder : No histogram!"<GetNbinsY()]; + AliHLTPreYPeak **localmaxima = new AliHLTPreYPeak*[hist->GetNbinsY()]; Short_t *nmaxs = new Short_t[hist->GetNbinsY()]; memset(nmaxs,0,hist->GetNbinsY()*sizeof(Short_t)); Int_t lastvalue=0,value=0; for(Int_t ybin=fNextRow[ymin]; ybin<=ymax; ybin = fNextRow[ybin+1]) { - localmaxima[ybin-ymin] = new AliL3PreYPeak[nxbins-2]; + localmaxima[ybin-ymin] = new AliHLTPreYPeak[nxbins-2]; lastvalue = 0; Bool_t found = 0; for(Int_t xbin=xmin; xbin<=xmax; xbin++) @@ -760,7 +760,7 @@ void AliL3HoughMaxFinder::FindAdaptedRowPeaks(Int_t kappawindow,Int_t xsize,Int_ } } - AliL3Pre2DPeak maxima[500]; + AliHLTPre2DPeak maxima[500]; Int_t nmaxima = 0; for(Int_t ybin=ymax; ybin >= ymin; ybin--) @@ -915,7 +915,7 @@ void AliL3HoughMaxFinder::FindAdaptedRowPeaks(Int_t kappawindow,Int_t xsize,Int_ delete [] nmaxs; } -void AliL3HoughMaxFinder::FindPeak1(Int_t ywindow,Int_t xbinsides) +void AliHLTHoughMaxFinder::FindPeak1(Int_t ywindow,Int_t xbinsides) { //Testing mutliple peakfinding. //The algorithm searches the histogram for prepreaks by looking in windows @@ -926,7 +926,7 @@ void AliL3HoughMaxFinder::FindPeak1(Int_t ywindow,Int_t xbinsides) if(!fCurrentHisto) { - printf("AliL3HoughMaxFinder::FindPeak1 : No input histogram\n"); + printf("AliHLTHoughMaxFinder::FindPeak1 : No input histogram\n"); return; } if(fCurrentHisto->GetNEntries()==0) @@ -946,16 +946,16 @@ void AliL3HoughMaxFinder::FindPeak1(Int_t ywindow,Int_t xbinsides) Int_t ymax = fCurrentHisto->GetLastYbin(); Int_t nbinsx = fCurrentHisto->GetNbinsX()+1; - AliL3AxisWindow **windowPt = new AliL3AxisWindow*[nbinsx]; - AliL3AxisWindow **anotherPt = new AliL3AxisWindow*[nbinsx]; + AliHLTAxisWindow **windowPt = new AliHLTAxisWindow*[nbinsx]; + AliHLTAxisWindow **anotherPt = new AliHLTAxisWindow*[nbinsx]; for(Int_t i=0; ifWeight < b->fWeight) return 1; @@ -1133,7 +1133,7 @@ Int_t AliL3HoughMaxFinder::PeakCompare(struct AliL3AxisWindow *a,struct AliL3Axi return 0; } -void AliL3HoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) +void AliHLTHoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) { //Attempt of a more sophisticated peak finder. //Finds the best peak in the histogram, and returns the corresponding @@ -1141,10 +1141,10 @@ void AliL3HoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) if(!fCurrentHisto) { - printf("AliL3HoughMaxFinder::FindPeak : No histogram!!\n"); + printf("AliHLTHoughMaxFinder::FindPeak : No histogram!!\n"); return; } - AliL3Histogram *hist = fCurrentHisto; + AliHLTHistogram *hist = fCurrentHisto; if(hist->GetNEntries()==0) return; @@ -1257,7 +1257,7 @@ void AliL3HoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) Int_t xu = xl + 1; if(hist->GetBinCenterX(xl) > xpeak || hist->GetBinCenterX(xu) <= xpeak) - printf("\nAliL3HoughMaxFinder::FindPeak : Wrong xrange %f %f %f\n\n",hist->GetBinCenterX(xl),xpeak,hist->GetBinCenterX(xu)); + printf("\nAliHLTHoughMaxFinder::FindPeak : Wrong xrange %f %f %f\n\n",hist->GetBinCenterX(xl),xpeak,hist->GetBinCenterX(xu)); //printf("\nxlow %f xup %f\n",hist->GetBinCenterX(xl),hist->GetBinCenterX(xu)); @@ -1299,7 +1299,7 @@ void AliL3HoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) //bin = hist->FindBin(xpeak,ypeak); //Int_t weight = (Int_t)hist->GetBinContent(bin); - //AliL3HoughTrack *track = new AliL3HoughTrack(); + //AliHLTHoughTrack *track = new AliHLTHoughTrack(); //track->SetTrackParameters(xpeak,ypeak,weight); fXPeaks[fNPeaks]=xpeak; fYPeaks[fNPeaks]=ypeak; @@ -1313,35 +1313,35 @@ void AliL3HoughMaxFinder::FindPeak(Int_t t1,Double_t t2,Int_t t3) //return track; } -Float_t AliL3HoughMaxFinder::GetXPeakSize(Int_t i) const +Float_t AliHLTHoughMaxFinder::GetXPeakSize(Int_t i) const { // Get X size of a peak if(i<0 || i>fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetXPeakSize : Invalid index "<GetBinWidthX(); return binwidth*(fENDXPeaks[i]-fSTARTXPeaks[i]+1); } -Float_t AliL3HoughMaxFinder::GetYPeakSize(Int_t i) const +Float_t AliHLTHoughMaxFinder::GetYPeakSize(Int_t i) const { // Get Y size of a peak if(i<0 || i>fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetYPeak : Invalid index "<GetBinWidthY(); return binwidth*(fENDYPeaks[i]-fSTARTYPeaks[i]+1); } -Bool_t AliL3HoughMaxFinder::MergeRowPeaks(AliL3Pre2DPeak *maxima1, AliL3Pre2DPeak *maxima2, Float_t distance) +Bool_t AliHLTHoughMaxFinder::MergeRowPeaks(AliHLTPre2DPeak *maxima1, AliHLTPre2DPeak *maxima2, Float_t distance) { // Check the distance between tracks corresponding to given Hough space peaks and if the // distance is smaller than some threshold value marks the smaller peak as fake - AliL3Histogram *hist = fCurrentHisto; + AliHLTHistogram *hist = fCurrentHisto; Int_t nxbins = hist->GetNbinsX()+2; Int_t xtrack1=0,xtrack2=0,ytrack1=0,ytrack2=0; @@ -1380,30 +1380,30 @@ Bool_t AliL3HoughMaxFinder::MergeRowPeaks(AliL3Pre2DPeak *maxima1, AliL3Pre2DPea else lastrow = lastrow1; - AliL3HoughTrack track1; + AliHLTHoughTrack track1; Float_t x1 = hist->GetPreciseBinCenterX(xtrack1); Float_t y1 = hist->GetPreciseBinCenterY(ytrack1); - Float_t psi1 = atan((x1-y1)/(AliL3HoughTransformerRow::GetBeta1()-AliL3HoughTransformerRow::GetBeta2())); - Float_t kappa1 = 2.0*(x1*cos(psi1)-AliL3HoughTransformerRow::GetBeta1()*sin(psi1)); + Float_t psi1 = atan((x1-y1)/(AliHLTHoughTransformerRow::GetBeta1()-AliHLTHoughTransformerRow::GetBeta2())); + Float_t kappa1 = 2.0*(x1*cos(psi1)-AliHLTHoughTransformerRow::GetBeta1()*sin(psi1)); track1.SetTrackParameters(kappa1,psi1,1); Float_t firsthit1[3]; if(!track1.GetCrossingPoint(firstrow,firsthit1)) return kFALSE; Float_t lasthit1[3]; if(!track1.GetCrossingPoint(lastrow,lasthit1)) return kFALSE; - AliL3HoughTrack track2; + AliHLTHoughTrack track2; Float_t x2 = hist->GetPreciseBinCenterX(xtrack2); Float_t y2 = hist->GetPreciseBinCenterY(ytrack2); - Float_t psi2 = atan((x2-y2)/(AliL3HoughTransformerRow::GetBeta1()-AliL3HoughTransformerRow::GetBeta2())); - Float_t kappa2 = 2.0*(x2*cos(psi2)-AliL3HoughTransformerRow::GetBeta1()*sin(psi2)); + Float_t psi2 = atan((x2-y2)/(AliHLTHoughTransformerRow::GetBeta1()-AliHLTHoughTransformerRow::GetBeta2())); + Float_t kappa2 = 2.0*(x2*cos(psi2)-AliHLTHoughTransformerRow::GetBeta1()*sin(psi2)); track2.SetTrackParameters(kappa2,psi2,1); Float_t firsthit2[3]; if(!track2.GetCrossingPoint(firstrow,firsthit2)) return kFALSE; Float_t lasthit2[3]; if(!track2.GetCrossingPoint(lastrow,lasthit2)) return kFALSE; - Float_t padpitchlow = AliL3Transform::GetPadPitchWidth(AliL3Transform::GetPatch(firstrow)); - Float_t padpitchup = AliL3Transform::GetPadPitchWidth(AliL3Transform::GetPatch(lastrow)); + Float_t padpitchlow = AliHLTTransform::GetPadPitchWidth(AliHLTTransform::GetPatch(firstrow)); + Float_t padpitchup = AliHLTTransform::GetPadPitchWidth(AliHLTTransform::GetPatch(lastrow)); // check the distance between tracks at the edges // cout<<"Check "<fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetXPeak : Invalid index "<fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetYPeak : Invalid index "<fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetWeight : Invalid index "<fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetStartEta : Invalid index "<fNMax) { - STDCERR<<"AliL3HoughMaxFinder::GetStartEta : Invalid index "< //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughTrack.h" -#include "AliL3HoughMerger.h" -#include "AliL3HoughTransformer.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTHoughMerger.h" +#include "AliHLTHoughTransformer.h" #if __GNUC__ >= 3 using namespace std; #endif //_____________________________________________________________ -// AliL3HoughMerger +// AliHLTHoughMerger // // Patch merging class for Hough tracklets -ClassImp(AliL3HoughMerger) +ClassImp(AliHLTHoughMerger) -AliL3HoughMerger::AliL3HoughMerger() +AliHLTHoughMerger::AliHLTHoughMerger() { //Default constructor } -AliL3HoughMerger::AliL3HoughMerger(Int_t nsubsectors) +AliHLTHoughMerger::AliHLTHoughMerger(Int_t nsubsectors) { //Constructor - InitMerger(nsubsectors,"AliL3HoughTrack"); + InitMerger(nsubsectors,"AliHLTHoughTrack"); Is2Global(kFALSE); SetParameters(0.001,0.1,0.05); } -AliL3HoughMerger::~AliL3HoughMerger() +AliHLTHoughMerger::~AliHLTHoughMerger() { //dtor } -void AliL3HoughMerger::FillTracks(AliL3TrackArray *tracks,Int_t patch) +void AliHLTHoughMerger::FillTracks(AliHLTTrackArray *tracks,Int_t patch) { //Fills tracks into merger if(tracks->GetNTracks()==0) - LOG(AliL3Log::kWarning,"AliL3HoughMerger::FillTracks","Track Array") + LOG(AliHLTLog::kWarning,"AliHLTHoughMerger::FillTracks","Track Array") <<"Adding empty track array"<AddTracks(tracks,kFALSE);//Copy tracks printf("Filling %d tracks to merger\n",tracks->GetNTracks()); } -void AliL3HoughMerger::SetParameters(Double_t maxkappa,Double_t maxpsi,Double_t maxphi0) +void AliHLTHoughMerger::SetParameters(Double_t maxkappa,Double_t maxpsi,Double_t maxphi0) { //Set merger params fMaxKappa = maxkappa; @@ -63,12 +63,12 @@ void AliL3HoughMerger::SetParameters(Double_t maxkappa,Double_t maxpsi,Double_t fMaxPhi0 = maxphi0; } -Bool_t AliL3HoughMerger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrack) +Bool_t AliHLTHoughMerger::IsTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack) { //Check if the tracks can be merged, called by the track merger - AliL3HoughTrack *tr1 = (AliL3HoughTrack*)innertrack; - AliL3HoughTrack *tr2 = (AliL3HoughTrack*)outertrack; + AliHLTHoughTrack *tr1 = (AliHLTHoughTrack*)innertrack; + AliHLTHoughTrack *tr2 = (AliHLTHoughTrack*)outertrack; if( (!tr1->IsPoint()) || (!tr2->IsPoint()) ) return kFALSE; if(abs(tr1->GetEtaIndex() - tr2->GetEtaIndex()) > 1) return kFALSE; @@ -88,28 +88,28 @@ Bool_t AliL3HoughMerger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrack) return kTRUE;//Tracks could be merged } -void AliL3HoughMerger::AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track) +void AliHLTHoughMerger::AddTrack(AliHLTTrackArray *mergedtrack,AliHLTTrack *track) { //Adds track to an already merged one - AliL3Track *t[1]; + AliHLTTrack *t[1]; t[0] = track; MultiMerge(mergedtrack,t,1); } -AliL3Track *AliL3HoughMerger::MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack) +AliHLTTrack *AliHLTHoughMerger::MultiMerge(AliHLTTrackArray *mergedtrack,AliHLTTrack **tracks, Int_t ntrack) { //Called by the track merger - AliL3HoughTrack *newtrack = (AliL3HoughTrack*)mergedtrack->NextTrack(); - AliL3HoughTrack **trs = (AliL3HoughTrack**)tracks; + AliHLTHoughTrack *newtrack = (AliHLTHoughTrack*)mergedtrack->NextTrack(); + AliHLTHoughTrack **trs = (AliHLTHoughTrack**)tracks; Int_t weight=0; //Sum up the total weight: for(Int_t i=ntrack-1; i>=0; i--) weight += trs[i]->GetWeight(); - AliL3HoughTrack *tpt=trs[0];//This is the innermost track - AliL3HoughTrack *tpl=trs[ntrack-1]; + AliHLTHoughTrack *tpt=trs[0];//This is the innermost track + AliHLTHoughTrack *tpl=trs[ntrack-1]; newtrack->SetTrackParameters(tpt->GetKappa(),tpt->GetPhi0(),weight); newtrack->SetEtaIndex(tpt->GetEtaIndex()); newtrack->SetEta(tpt->GetEta()); @@ -121,23 +121,23 @@ AliL3Track *AliL3HoughMerger::MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track newtrack->SetCharge(tpt->GetCharge()); newtrack->SetRowRange(tpt->GetFirstRow(),tpl->GetLastRow()); - return (AliL3Track*)newtrack; + return (AliHLTTrack*)newtrack; } -void AliL3HoughMerger::MergePatches(Bool_t slow) +void AliHLTHoughMerger::MergePatches(Bool_t slow) { //Merge tracks from across the patches. fSlow = slow; - AliL3TrackArray *tracks; - AliL3HoughTrack *track; + AliHLTTrackArray *tracks; + AliHLTHoughTrack *track; for(Int_t i=0; iGetNTracks(); j++) { - track = (AliL3HoughTrack*)tracks->GetCheckedTrack(j); + track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(j); if(!track) continue; track->UpdateToFirstRow(); } @@ -146,23 +146,23 @@ void AliL3HoughMerger::MergePatches(Bool_t slow) } -void AliL3HoughMerger::Merge() +void AliHLTHoughMerger::Merge() { //Merging of tracks - Double_t edge0 = AliL3Transform::Pi()/18; + Double_t edge0 = AliHLTTransform::Pi()/18; //Double_t edge1 = 2*PI - edge0; - AliL3TrackArray *ttt = GetOutTracks(); + AliHLTTrackArray *ttt = GetOutTracks(); Int_t subsec = GetNIn() - 2; for(Int_t i=subsec;i>=0;i--){ - AliL3TrackArray *tout = GetOutTracks(); + AliHLTTrackArray *tout = GetOutTracks(); if(i==subsec) tout = GetInTracks(subsec+1); - AliL3TrackArray *tin = GetInTracks(i); - Double_t xval = AliL3Transform::Row2X(AliL3Transform::GetLastRow(i)); - //Double_t xmax = AliL3Transform::Row2X(AliL3Transform::GetLastRow(i+1)); + AliHLTTrackArray *tin = GetInTracks(i); + Double_t xval = AliHLTTransform::Row2X(AliHLTTransform::GetLastRow(i)); + //Double_t xmax = AliHLTTransform::Row2X(AliHLTTransform::GetLastRow(i+1)); Double_t ymax = xval*tan(edge0); for(Int_t out=0;outGetNTracks();out++){ - AliL3Track *outtrack=tout->GetCheckedTrack(out); + AliHLTTrack *outtrack=tout->GetCheckedTrack(out); if(!outtrack) continue; //outtrack->CalculateHelix(); outtrack->CalculatePoint(xval); @@ -172,7 +172,7 @@ void AliL3HoughMerger::Merge() } // tout->Compress(); for(Int_t in=0;inGetNTracks();in++){ - AliL3Track *intrack=(AliL3Track*)tin->GetTrack(in); + AliHLTTrack *intrack=(AliHLTTrack*)tin->GetTrack(in); //intrack->CalculateHelix(); intrack->CalculatePoint(xval); } @@ -185,7 +185,7 @@ void AliL3HoughMerger::Merge() /* //Add the tracks that cross the sector boundary: for(Int_t in=0;inGetNTracks();in++){ - AliL3Track *intrack=(AliL3Track*)tin->GetCheckedTrack(in); + AliHLTTrack *intrack=(AliHLTTrack*)tin->GetCheckedTrack(in); if(!intrack) continue; if(intrack->CalculateEdgePoint(edge0)){ if(intrack->GetPointX()GetNPresent() + LOG(AliHLTLog::kInformational,"AliHLTHoughMerger::Merge","Result") + <GetNPresent() <GetNTracks(); const Int_t kNIn =tracksin->GetNTracks(); const Int_t kNMerged =mergedtrack->GetNTracks(); @@ -222,11 +222,11 @@ Int_t AliL3HoughMerger::Merge(AliL3TrackArray* mergedtrack,AliL3TrackArray *trac for(Int_t out =0;outGetCheckedTrack(out); + AliHLTTrack *outertrack=(AliHLTTrack*)tracksout->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in =0;inGetCheckedTrack(in); + AliHLTTrack *innertrack=(AliHLTTrack*)tracksin->GetCheckedTrack(in); if(!innertrack) continue; if(outertrack==innertrack) continue; @@ -247,30 +247,30 @@ Int_t AliL3HoughMerger::Merge(AliL3TrackArray* mergedtrack,AliL3TrackArray *trac } Int_t nmerged = mergedtrack->GetNTracks()-kNMerged; - LOG(AliL3Log::kInformational,"AliL3HoughMerger::Merge","Result") - <GetNTracks(); const Int_t kNIn =tracksin->GetNTracks(); const Int_t kNMerged =mergedtrack->GetNTracks(); - AliL3Track *tracks[2]; + AliHLTTrack *tracks[2]; Bool_t merge = kTRUE; while(merge){ Int_t inmin=-1,outmin=-1; Double_t min=10; for(Int_t out=0;outGetCheckedTrack(out); + AliHLTTrack *outertrack=tracksout->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in=0;inGetCheckedTrack(in); + AliHLTTrack *innertrack=tracksin->GetCheckedTrack(in); if(!innertrack) continue; Double_t diff = TrackDiff(innertrack,outertrack); if(diff>=0&&diff=0&&outmin>=0){ - AliL3Track *outertrack=tracksout->GetTrack(outmin); - AliL3Track *innertrack=tracksin->GetTrack(inmin); + AliHLTTrack *outertrack=tracksout->GetTrack(outmin); + AliHLTTrack *innertrack=tracksin->GetTrack(inmin); tracks[0]=innertrack; tracks[1]=outertrack; SortTracks(tracks,2); @@ -298,8 +298,8 @@ void AliL3HoughMerger::SlowMerge(AliL3TrackArray *mergedtrack,AliL3TrackArray *t } else merge = kFALSE; } - LOG(AliL3Log::kInformational,"AliL3HoughMerger::SlowMerge","Result") - <GetNTracks()-kNMerged<GetKappa()-tr2->GetKappa()); Double_t phi0diff = fabs(tr1->GetPhi0()-tr2->GetPhi0()); cout << "---------Difference in merged tracks---------"< //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" -#include "AliL3HoughTest.h" -#include "AliL3ModelTrack.h" -#include "AliL3Transform.h" -#include "AliL3Histogram.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughTrack.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTHoughTest.h" +#include "AliHLTModelTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTHistogram.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughTrack.h" #include #include @@ -22,35 +22,35 @@ using namespace std; #endif //_____________________________________________________________ -// AliL3HoughTest +// AliHLTHoughTest -ClassImp(AliL3HoughTest) +ClassImp(AliHLTHoughTest) -AliL3HoughTest::AliL3HoughTest() +AliHLTHoughTest::AliHLTHoughTest() { //ctor fData=0; } -AliL3HoughTest::~AliL3HoughTest() +AliHLTHoughTest::~AliHLTHoughTest() { //dtor if(fData) delete [] fData; } -Bool_t AliL3HoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,Int_t sign,Int_t patch,Int_t minhits) +Bool_t AliHLTHoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,Int_t sign,Int_t patch,Int_t minhits) { //Generate digits according to given track parameters? fCurrentPatch=patch; if(fData) delete fData; - fData = new AliL3SimData[AliL3Transform::GetNRows(patch)]; - memset(fData,0,AliL3Transform::GetNRows(patch)*sizeof(AliL3SimData)); + fData = new AliHLTSimData[AliHLTTransform::GetNRows(patch)]; + memset(fData,0,AliHLTTransform::GetNRows(patch)*sizeof(AliHLTSimData)); - AliL3ModelTrack *track = new AliL3ModelTrack(); + AliHLTModelTrack *track = new AliHLTModelTrack(); track->Init(0,patch); track->SetPt(pt); track->SetPsi(psi); @@ -60,24 +60,24 @@ Bool_t AliL3HoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,I track->CalculateHelix(); Int_t temp[200]; - // Int_t temp2[AliL3Transform::GetNTimeBins()]; - Int_t * temp2 = new Int_t[AliL3Transform::GetNTimeBins()]; + // Int_t temp2[AliHLTTransform::GetNTimeBins()]; + Int_t * temp2 = new Int_t[AliHLTTransform::GetNTimeBins()]; Int_t entries=100; Int_t clustercharge=100; Int_t hitcounter=0; - for(Int_t i=AliL3Transform::GetFirstRow(patch); i<=AliL3Transform::GetLastRow(patch); i++) + for(Int_t i=AliHLTTransform::GetFirstRow(patch); i<=AliHLTTransform::GetLastRow(patch); i++) { Float_t xyz[3]; if(!track->GetCrossingPoint(i,xyz)) continue; - Int_t rowindex = i - AliL3Transform::GetFirstRow(patch); + Int_t rowindex = i - AliHLTTransform::GetFirstRow(patch); Int_t sector,row; - AliL3Transform::Slice2Sector(0,i,sector,row); - AliL3Transform::Local2Raw(xyz,sector,row); + AliHLTTransform::Slice2Sector(0,i,sector,row); + AliHLTTransform::Local2Raw(xyz,sector,row); - if(xyz[1] < 0 || xyz[1] >= AliL3Transform::GetNPads(i) || xyz[2] < 0 || xyz[2] >= AliL3Transform::GetNTimeBins()) + if(xyz[1] < 0 || xyz[1] >= AliHLTTransform::GetNPads(i) || xyz[2] < 0 || xyz[2] >= AliHLTTransform::GetNTimeBins()) continue; hitcounter++; track->SetPadHit(i,xyz[1]); @@ -88,7 +88,7 @@ Bool_t AliL3HoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,I track->CalculateClusterWidths(i); memset(temp,0,200*sizeof(Int_t)); - memset(temp2,0,AliL3Transform::GetNTimeBins()*sizeof(Int_t)); + memset(temp2,0,AliHLTTransform::GetNTimeBins()*sizeof(Int_t)); Double_t xysigma = sqrt(track->GetParSigmaY2(i)); Double_t zsigma = sqrt(track->GetParSigmaZ2(i)); @@ -98,7 +98,7 @@ Bool_t AliL3HoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,I { Int_t pad = TMath::Nint(gRandom->Gaus(xyz[1],xysigma)); Int_t time = TMath::Nint(gRandom->Gaus(xyz[2],zsigma)); - if(pad < 0 || pad >= AliL3Transform::GetNPads(i) || time < 0 || time >= AliL3Transform::GetNTimeBins()) + if(pad < 0 || pad >= AliHLTTransform::GetNPads(i) || time < 0 || time >= AliHLTTransform::GetNTimeBins()) continue; temp[pad]++; temp2[time]++; @@ -116,19 +116,19 @@ Bool_t AliL3HoughTest::GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,I if(index < 0 || index >= 10) { - cerr<<"AliL3HoughTest::GenerateTrackData : Wrong index "<= 10) { - cerr<<"AliL3HoughTest::GenerateTrackData : Wrong timeindex "<GetFirstYbin(); k<=hist->GetLastYbin(); k++) { @@ -191,19 +191,19 @@ void AliL3HoughTest::Transform2Circle(AliL3Histogram *hist) } } -void AliL3HoughTest::Transform2CircleC(AliL3Histogram *hist) +void AliHLTHoughTest::Transform2CircleC(AliHLTHistogram *hist) { //Hough transform if(!fData) { - cerr<<"AliL3HoughTest::TransformC : No data"<rowrange[1]) break; - Int_t rowindex = i - AliL3Transform::GetFirstRow(fCurrentPatch); + Int_t rowindex = i - AliHLTTransform::GetFirstRow(fCurrentPatch); for(Int_t d=0; dGetFirstXbin(); xbinGetLastXbin(); xbin++) { @@ -344,12 +344,12 @@ void AliL3HoughTest::Transform2Line(AliL3Histogram *hist,Int_t *rowrange) } } -void AliL3HoughTest::Transform2LineC(AliL3Histogram *hist,Int_t *rowrange) +void AliHLTHoughTest::Transform2LineC(AliHLTHistogram *hist,Int_t *rowrange) { //Hough transform? if(!fData) { - cerr<<"AliL3HoughTest::Transform2Line : No data"<=0) if(i != displayrow) continue; @@ -425,8 +425,8 @@ void AliL3HoughTest::FillImage(TH2 *hist,Int_t displayrow) //cout<=0) hist->Fill(pad,time,charge); else @@ -438,18 +438,18 @@ void AliL3HoughTest::FillImage(TH2 *hist,Int_t displayrow) } } -void AliL3HoughTest::Transform2Line3D(TH3 *hist,Int_t *rowrange,Float_t *phirange) +void AliHLTHoughTest::Transform2Line3D(TH3 *hist,Int_t *rowrange,Float_t *phirange) { //HT in 3D? if(!fData) { - cerr<<"AliL3HoughTest::Transform2Line : No data"<rowrange[1]) break; - Int_t rowindex = i - AliL3Transform::GetFirstRow(fCurrentPatch); + Int_t rowindex = i - AliHLTTransform::GetFirstRow(fCurrentPatch); for(Int_t d=0; d phirange[1]) continue; - hit[0] = hit[0] - AliL3Transform::Row2X(rowrange[0]); - Float_t x = hit[0] + AliL3Transform::Row2X(rowrange[0]); + hit[0] = hit[0] - AliHLTTransform::Row2X(rowrange[0]); + Float_t x = hit[0] + AliHLTTransform::Row2X(rowrange[0]); r = sqrt(x*x + hit[1]*hit[1]); delta = atan(hit[2]/r); @@ -489,24 +489,24 @@ void AliL3HoughTest::Transform2Line3D(TH3 *hist,Int_t *rowrange,Float_t *phirang } } -void AliL3HoughTest::Transform2LineC3D(TH3 *hist,Int_t *rowrange) +void AliHLTHoughTest::Transform2LineC3D(TH3 *hist,Int_t *rowrange) { //HT in 3D? if(!fData) { - cerr<<"AliL3HoughTest::Transform2Line : No data"<rowrange[1]) break; - Int_t rowindex1 = i - AliL3Transform::GetFirstRow(fCurrentPatch); + Int_t rowindex1 = i - AliHLTTransform::GetFirstRow(fCurrentPatch); for(Int_t d1=0; d1GetNTracks(); i++) { - AliL3HoughTrack *tr = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *tr = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!tr) continue; Int_t middlerow = (Int_t)(tr->GetFirstRow()+(tr->GetLastRow()-tr->GetFirstRow())/2); Float_t hit[3]; tr->GetLineCrossingPoint(middlerow,hit); - hit[0] += AliL3Transform::Row2X(tr->GetFirstRow()); + hit[0] += AliHLTTransform::Row2X(tr->GetFirstRow()); Float_t r = sqrt(hit[0]*hit[0] + hit[1]*hit[1]); hit[2] = r*tr->GetTgl(); Float_t phi = atan2(hit[1],hit[0]); - Float_t theta = tr->GetPsiLine() - AliL3Transform::Pi()/2; + Float_t theta = tr->GetPsiLine() - AliHLTTransform::Pi()/2; Float_t psi = 2*phi - theta; Float_t kappa = 2/r*sin(phi-psi); Float_t delta = atan(hit[2]/r); @@ -573,21 +573,21 @@ void AliL3HoughTest::TransformLines2Circle(TH3 *hist,AliL3TrackArray *tracks) } } -void AliL3HoughTest::Transform2Center(AliL3Histogram *hist) +void AliHLTHoughTest::Transform2Center(AliHLTHistogram *hist) { //Choose parameter space to be center of curvature. if(!fData) { - cerr<<"AliL3HoughTest::TransformC : No data"<Project3D("z"); diff --git a/HLT/hough/AliHLTHoughTest.h b/HLT/hough/AliHLTHoughTest.h new file mode 100644 index 00000000000..66388e5937b --- /dev/null +++ b/HLT/hough/AliHLTHoughTest.h @@ -0,0 +1,57 @@ +// @(#) $Id$ + +#ifndef ALIL3HOUGHTEST_H +#define ALIL3HOUGHTEST_H + +#include "AliHLTRootTypes.h" + +struct AliHLTSimData { + Int_t fPads[10][10];//maximum 10 pads width + Int_t fNPads; //number of pads + Int_t fMinpad; //?? + Int_t fMintime; //?? +}; + +class AliHLTHistogram; +class TH2; +class TH3; +class AliHLTTrackArray; + +class AliHLTHoughTest { + + public: + + AliHLTHoughTest(); + virtual ~AliHLTHoughTest(); + + Bool_t GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,Int_t sign,Int_t patch,Int_t minhits); + void FillImage(TH2 *hist,Int_t row=-1); + void Transform2Circle(AliHLTHistogram *hist); + void Transform2CircleC(AliHLTHistogram *hist); + void Transform2CircleF(AliHLTHistogram *hist); + void Transform2Line(AliHLTHistogram *hist,Int_t *rowrange); + void Transform2LineC(AliHLTHistogram *hist,Int_t *rowrange); + void Transform2Line3D(TH3 *hist,Int_t *rowrange,Float_t *phirange); + void Transform2LineC3D(TH3 *hist,Int_t *rowrange); + void TransformLines2Circle(TH3 *hist,AliHLTTrackArray *tracks); + void Transform2Center(AliHLTHistogram *hist); + + void FindAbsMaxima(TH3 *hist,Int_t zsearch,Float_t &maxx,Float_t &maxy,Float_t &maxz,Int_t &maxvalue) const; + + private: + AliHLTSimData *fData; //?? + Int_t fCurrentPatch; //index of the current patch + + ClassDef(AliHLTHoughTest,1) //Hough transform base class +}; + +typedef AliHLTHoughTest AliL3HoughTest; // for backward compatibility + +#endif + + + + + + + diff --git a/HLT/hough/AliL3HoughTrack.cxx b/HLT/hough/AliHLTHoughTrack.cxx similarity index 68% rename from HLT/hough/AliL3HoughTrack.cxx rename to HLT/hough/AliHLTHoughTrack.cxx index c28cbbcd278..866915d1851 100644 --- a/HLT/hough/AliL3HoughTrack.cxx +++ b/HLT/hough/AliHLTHoughTrack.cxx @@ -3,32 +3,32 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Track.h" -#include "AliL3HoughTrack.h" -#include "AliL3Transform.h" -#include "AliL3HoughTransformerRow.h" +#include "AliHLTLogging.h" +#include "AliHLTTrack.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTHoughTransformerRow.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3HoughTrack +/** \class AliHLTHoughTrack
 //_____________________________________________________________
-// AliL3HoughTrack
+// AliHLTHoughTrack
 //
 // Track class for Hough tracklets
 //
 
*/ -ClassImp(AliL3HoughTrack) +ClassImp(AliHLTHoughTrack) - AliL3HoughTrack::AliL3HoughTrack() : AliL3Track() + AliHLTHoughTrack::AliHLTHoughTrack() : AliHLTTrack() { //Constructor @@ -42,15 +42,15 @@ ClassImp(AliL3HoughTrack) ComesFromMainVertex(kTRUE); } -AliL3HoughTrack::~AliL3HoughTrack() +AliHLTHoughTrack::~AliHLTHoughTrack() { //dtor } -void AliL3HoughTrack::Set(AliL3Track *track) +void AliHLTHoughTrack::Set(AliHLTTrack *track) { //Basically copy constructor - AliL3HoughTrack *tpt = (AliL3HoughTrack*)track; + AliHLTHoughTrack *tpt = (AliHLTHoughTrack*)track; SetTrackParameters(tpt->GetKappa(),tpt->GetPsi(),tpt->GetWeight()); SetEtaIndex(tpt->GetEtaIndex()); SetEta(tpt->GetEta()); @@ -80,27 +80,27 @@ void AliL3HoughTrack::Set(AliL3Track *track) // fIsHelix = false; } -Int_t AliL3HoughTrack::Compare(const AliL3Track *tpt) const +Int_t AliHLTHoughTrack::Compare(const AliHLTTrack *tpt) const { //Compare 2 hough tracks according to their weight - AliL3HoughTrack *track = (AliL3HoughTrack*)tpt; + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tpt; if(track->GetWeight() < GetWeight()) return 1; if(track->GetWeight() > GetWeight()) return -1; return 0; } -void AliL3HoughTrack::SetEta(Double_t f) +void AliHLTHoughTrack::SetEta(Double_t f) { //Set eta, and calculate fTanl, which is the tan of dipangle fEta = f; Double_t theta = 2*atan(exp(-1.*fEta)); - Double_t dipangle = AliL3Transform::PiHalf() - theta; + Double_t dipangle = AliHLTTransform::PiHalf() - theta; Double_t tgl = tan(dipangle); SetTgl(tgl); } -void AliL3HoughTrack::UpdateToFirstRow() +void AliHLTHoughTrack::UpdateToFirstRow() { //Update the track parameters to the point where track cross //its first padrow.` @@ -108,8 +108,8 @@ void AliL3HoughTrack::UpdateToFirstRow() //Get the crossing point with the first padrow: Float_t xyz[3]; if(!GetCrossingPoint(GetFirstRow(),xyz)) - LOG(AliL3Log::kWarning,"AliL3HoughTrack::UpdateToFirstRow()","Track parameters") - < radius || fabs(sfac+rc) < radius ) { - LOG(AliL3Log::kError,"AliL3HoughTrack::UpdateToFirstRow","Tracks")< AliL3Transform::TwoPi() ) deltat -= AliL3Transform::TwoPi(); + if ( td < 0 ) td = td + AliHLTTransform::TwoPi(); + Double_t deltat = fmod((-GetCharge()*td + GetCharge()*tPhi0),AliHLTTransform::TwoPi()); + if ( deltat < 0. ) deltat += AliHLTTransform::TwoPi(); + else if ( deltat > AliHLTTransform::TwoPi() ) deltat -= AliHLTTransform::TwoPi(); Double_t z = GetZ0() + rc * GetTgl() * deltat ; Double_t xExtra = radius * cos(phi) ; @@ -156,9 +156,9 @@ void AliL3HoughTrack::UpdateToFirstRow() Double_t tPhi = atan2(yExtra-yc,xExtra-xc); //if ( tPhi < 0 ) tPhi += 2. * M_PI ; - Double_t tPsi = tPhi - GetCharge() * AliL3Transform::PiHalf() / abs(GetCharge()) ; - if ( tPsi > AliL3Transform::TwoPi() ) tPsi -= AliL3Transform::TwoPi() ; - else if ( tPsi < 0. ) tPsi += AliL3Transform::TwoPi(); + Double_t tPsi = tPhi - GetCharge() * AliHLTTransform::PiHalf() / abs(GetCharge()) ; + if ( tPsi > AliHLTTransform::TwoPi() ) tPsi -= AliHLTTransform::TwoPi() ; + else if ( tPsi < 0. ) tPsi += AliHLTTransform::TwoPi(); //And finally, update the track parameters SetR0(radius); @@ -176,13 +176,13 @@ void AliL3HoughTrack::UpdateToFirstRow() //printf("last point %f %f %f\n",xyz[0],xyz[1],xyz[2]); } -void AliL3HoughTrack::SetTrackParameters(Double_t kappa,Double_t eangle,Int_t weight) +void AliHLTHoughTrack::SetTrackParameters(Double_t kappa,Double_t eangle,Int_t weight) { //Set track parameters - sort of ctor fWeight = weight; fMinDist = 100000; SetKappa(kappa); - Double_t pt = fabs(AliL3Transform::GetBFieldValue()/kappa); + Double_t pt = fabs(AliHLTTransform::GetBFieldValue()/kappa); SetPt(pt); Double_t radius = 1/fabs(kappa); SetRadius(radius); @@ -192,7 +192,7 @@ void AliL3HoughTrack::SetTrackParameters(Double_t kappa,Double_t eangle,Int_t we SetR0(0); Double_t charge = -1.*kappa; SetCharge((Int_t)copysign(1.,charge)); - Double_t trackPhi0 = GetPsi() + charge*0.5*AliL3Transform::Pi()/fabs(charge); + Double_t trackPhi0 = GetPsi() + charge*0.5*AliHLTTransform::Pi()/fabs(charge); Double_t xc = GetFirstPointX() - GetRadius() * cos(trackPhi0) ; Double_t yc = GetFirstPointY() - GetRadius() * sin(trackPhi0) ; SetCenterX(xc); @@ -201,17 +201,17 @@ void AliL3HoughTrack::SetTrackParameters(Double_t kappa,Double_t eangle,Int_t we fIsHelix = true; } -void AliL3HoughTrack::SetTrackParametersRow(Double_t alpha1,Double_t alpha2,Double_t eta,Int_t weight) +void AliHLTHoughTrack::SetTrackParametersRow(Double_t alpha1,Double_t alpha2,Double_t eta,Int_t weight) { //Set track parameters for HoughTransformerRow //This includes curvature,emission angle and eta - Double_t psi = atan((alpha1-alpha2)/(AliL3HoughTransformerRow::GetBeta1()-AliL3HoughTransformerRow::GetBeta2())); - Double_t kappa = 2.0*(alpha1*cos(psi)-AliL3HoughTransformerRow::GetBeta1()*sin(psi)); + Double_t psi = atan((alpha1-alpha2)/(AliHLTHoughTransformerRow::GetBeta1()-AliHLTHoughTransformerRow::GetBeta2())); + Double_t kappa = 2.0*(alpha1*cos(psi)-AliHLTHoughTransformerRow::GetBeta1()*sin(psi)); SetTrackParameters(kappa,psi,weight); Double_t zovr; - Double_t etaparam1 = AliL3HoughTransformerRow::GetEtaCalcParam1(); - Double_t etaparam2 = AliL3HoughTransformerRow::GetEtaCalcParam2(); + Double_t etaparam1 = AliHLTHoughTransformerRow::GetEtaCalcParam1(); + Double_t etaparam2 = AliHLTHoughTransformerRow::GetEtaCalcParam2(); if(eta>0) zovr = (etaparam1 - sqrt(etaparam1*etaparam1 - 4.*etaparam2*eta))/(2.*etaparam2); else @@ -221,7 +221,7 @@ void AliL3HoughTrack::SetTrackParametersRow(Double_t alpha1,Double_t alpha2,Doub SetEta(exacteta); } -void AliL3HoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int_t *rowrange,Int_t /*ref_row*/) +void AliHLTHoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int_t *rowrange,Int_t /*ref_row*/) { //Initialize a track piece, not yet a track //Used in case of straight line transformation @@ -238,7 +238,7 @@ void AliL3HoughTrack::SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int fIsHelix = false; } -void AliL3HoughTrack::SetBestMCid(Int_t mcid,Double_t mindist) +void AliHLTHoughTrack::SetBestMCid(Int_t mcid,Double_t mindist) { //Finds and set the closest mc label if(mindist < fMinDist) @@ -248,16 +248,16 @@ void AliL3HoughTrack::SetBestMCid(Int_t mcid,Double_t mindist) } } -void AliL3HoughTrack::GetLineCrossingPoint(Int_t padrow,Float_t *xy) +void AliHLTHoughTrack::GetLineCrossingPoint(Int_t padrow,Float_t *xy) { //Returns the crossing point of the track with a given padrow if(fIsHelix) { - printf("AliL3HoughTrack::GetLineCrossingPoint : Track is not a line\n"); + printf("AliHLTHoughTrack::GetLineCrossingPoint : Track is not a line\n"); return; } - Float_t xhit = AliL3Transform::Row2X(padrow) - AliL3Transform::Row2X(GetFirstRow()); + Float_t xhit = AliHLTTransform::Row2X(padrow) - AliHLTTransform::Row2X(GetFirstRow()); Float_t a = -1/tan(fPsiLine); Float_t b = fDLine/sin(fPsiLine); Float_t yhit = a*xhit + b; diff --git a/HLT/hough/AliL3HoughTrack.h b/HLT/hough/AliHLTHoughTrack.h similarity index 84% rename from HLT/hough/AliL3HoughTrack.h rename to HLT/hough/AliHLTHoughTrack.h index c5e084bc14c..80b1f7fff99 100644 --- a/HLT/hough/AliL3HoughTrack.h +++ b/HLT/hough/AliHLTHoughTrack.h @@ -3,16 +3,16 @@ #ifndef ALIL3HOUGHTRACK_H #define ALIL3HOUGHTRACK_H -#include "AliL3Track.h" +#include "AliHLTTrack.h" -class AliL3HoughTrack : public AliL3Track { +class AliHLTHoughTrack : public AliHLTTrack { public: - AliL3HoughTrack(); - virtual ~AliL3HoughTrack(); + AliHLTHoughTrack(); + virtual ~AliHLTHoughTrack(); - virtual void Set(AliL3Track *track); - virtual Int_t Compare(const AliL3Track *track) const; + virtual void Set(AliHLTTrack *track); + virtual Int_t Compare(const AliHLTTrack *track) const; Bool_t IsHelix() const {return fIsHelix;} void UpdateToFirstRow(); @@ -60,8 +60,10 @@ class AliL3HoughTrack : public AliL3Track { Float_t fBinX,fBinY,fSizeX,fSizeY;//Size and position of the hough space peak - ClassDef(AliL3HoughTrack,1) //Track class for Hough tracklets + ClassDef(AliHLTHoughTrack,1) //Track class for Hough tracklets }; +typedef AliHLTHoughTrack AliL3HoughTrack; // for backward comaptibility + #endif diff --git a/HLT/hough/AliL3HoughTransformer.cxx b/HLT/hough/AliHLTHoughTransformer.cxx similarity index 56% rename from HLT/hough/AliL3HoughTransformer.cxx rename to HLT/hough/AliHLTHoughTransformer.cxx index da5a65016e4..f6c62e87eb9 100644 --- a/HLT/hough/AliL3HoughTransformer.cxx +++ b/HLT/hough/AliHLTHoughTransformer.cxx @@ -3,32 +3,32 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -/** \class AliL3HoughTransformer +/** \class AliHLTHoughTransformer
 //_____________________________________________________________
-// AliL3HoughTransformer
+// AliHLTHoughTransformer
 //
 // Hough transformation class
 //
 
*/ -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3HoughTransformer.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3HistogramAdaptive.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughTransformer.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTHistogramAdaptive.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3HoughTransformer) +ClassImp(AliHLTHoughTransformer) -AliL3HoughTransformer::AliL3HoughTransformer() +AliHLTHoughTransformer::AliHLTHoughTransformer() { //Default constructor fParamSpace = 0; @@ -39,7 +39,7 @@ AliL3HoughTransformer::AliL3HoughTransformer() #endif } -AliL3HoughTransformer::AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t netasegments,Bool_t DoEtaOverlap,Bool_t /*DoMC*/) : AliL3HoughBaseTransformer(slice,patch,netasegments) +AliHLTHoughTransformer::AliHLTHoughTransformer(Int_t slice,Int_t patch,Int_t netasegments,Bool_t DoEtaOverlap,Bool_t /*DoMC*/) : AliHLTHoughBaseTransformer(slice,patch,netasegments) { //Normal constructor fParamSpace = 0; @@ -51,7 +51,7 @@ AliL3HoughTransformer::AliL3HoughTransformer(Int_t slice,Int_t patch,Int_t netas #endif } -AliL3HoughTransformer::~AliL3HoughTransformer() +AliHLTHoughTransformer::~AliHLTHoughTransformer() { // Dtor DeleteHistograms(); @@ -68,7 +68,7 @@ AliL3HoughTransformer::~AliL3HoughTransformer() #endif } -void AliL3HoughTransformer::DeleteHistograms() +void AliHLTHoughTransformer::DeleteHistograms() { // Clean up if(!fParamSpace) @@ -82,7 +82,7 @@ void AliL3HoughTransformer::DeleteHistograms() fParamSpace = 0; } -void AliL3HoughTransformer::CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t ptres, +void AliHLTHoughTransformer::CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t ptres, Int_t nybin,Float_t psi) { //Create histograms. @@ -91,26 +91,26 @@ void AliL3HoughTransformer::CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t if(ptmin > ptmax) { - cerr<<"AliL3HoughTransformer::CreateHistograms: Error in ptrange "<GetNbinsX()+2)*(hist->GetNbinsY()+2); - cout<<"Transformer: Allocating "<GetNbinsX()+2)*(hist->GetNbinsY()+2); for(Int_t i=0; i= GetNEtaSegments() || etaindex < 0) @@ -221,7 +221,7 @@ AliL3Histogram *AliL3HoughTransformer::GetHistogram(Int_t etaindex) return fParamSpace[etaindex]; } -Double_t AliL3HoughTransformer::GetEta(Int_t etaindex,Int_t /*slice*/) const +Double_t AliHLTHoughTransformer::GetEta(Int_t etaindex,Int_t /*slice*/) const { // Return eta calculated in the middle of the eta slice Double_t etaslice = (GetEtaMax()-GetEtaMin())/GetNEtaSegments(); @@ -236,7 +236,7 @@ Double_t AliL3HoughTransformer::GetEta(Int_t etaindex,Int_t /*slice*/) const return eta; } -void AliL3HoughTransformer::TransformCircle() +void AliHLTHoughTransformer::TransformCircle() { //Transform the input data with a circle HT. //The function loops over all the data, and transforms each pixel with the equations: @@ -250,22 +250,22 @@ void AliL3HoughTransformer::TransformCircle() //and the proper histogram index is found by GetEtaIndex(eta). - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) { - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformCircle","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformCircle","Data") <<"No input data "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if(i != (Int_t)tempPt->fRow) { - cerr<<"AliL3HoughTransform::TransformCircle : Mismatching padrow numbering "<fRow<fRow<= AliL3Transform::GetLastRow(GetPatch())) - minrow = AliL3Transform::GetFirstRow(GetPatch()); - if(maxrow < AliL3Transform::GetFirstRow(GetPatch()) || maxrow >= AliL3Transform::GetLastRow(GetPatch())) - maxrow = AliL3Transform::GetLastRow(GetPatch()); + if(minrow < AliHLTTransform::GetFirstRow(GetPatch()) || minrow >= AliHLTTransform::GetLastRow(GetPatch())) + minrow = AliHLTTransform::GetFirstRow(GetPatch()); + if(maxrow < AliHLTTransform::GetFirstRow(GetPatch()) || maxrow >= AliHLTTransform::GetLastRow(GetPatch())) + maxrow = AliHLTTransform::GetLastRow(GetPatch()); if(minrow > maxrow || maxrow==minrow) { - cerr<<"AliL3HoughTransformer::TransformCircleC : Bad row range "<fNDigit; - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } - Int_t bound = (GetNEtaSegments()+1)*(AliL3Transform::GetNRows(GetPatch())+1); - AliL3EtaContainer *etaPt = new AliL3EtaContainer[bound]; - memset(etaPt,0,bound*sizeof(AliL3EtaContainer)); + Int_t bound = (GetNEtaSegments()+1)*(AliHLTTransform::GetNRows(GetPatch())+1); + AliHLTEtaContainer *etaPt = new AliHLTEtaContainer[bound]; + memset(etaPt,0,bound*sizeof(AliHLTEtaContainer)); - AliL3Digit *digits = new AliL3Digit[counter]; - cout<<"Allocating "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; for(UInt_t di=0; difNDigit; di++) { charge = digPt[di].fCharge; pad = digPt[di].fPad; time = digPt[di].fTime; - AliL3Transform::Slice2Sector(GetSlice(),i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); - eta = AliL3Transform::GetEta(xyz); + AliHLTTransform::Slice2Sector(GetSlice(),i,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); + eta = AliHLTTransform::GetEta(xyz); digits[counter].fRow = i; digits[counter].fR = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); @@ -433,7 +433,7 @@ void AliL3HoughTransformer::TransformCircleC(Int_t *rowrange,Int_t every) { Int_t etaindex = GetEtaIndex(eta); - Int_t index = (GetNEtaSegments()+1)*(i-AliL3Transform::GetFirstRow(GetPatch())) + etaindex; + Int_t index = (GetNEtaSegments()+1)*(i-AliHLTTransform::GetFirstRow(GetPatch())) + etaindex; if(index > 0 && index < bound) { @@ -449,8 +449,8 @@ void AliL3HoughTransformer::TransformCircleC(Int_t *rowrange,Int_t every) Int_t etaindex[2]; GetEtaIndexes(eta,etaindex); Int_t index[2]; - index[0] = (GetNEtaSegments()+1)*(i-AliL3Transform::GetFirstRow(GetPatch())) + etaindex[0]; - index[1] = (GetNEtaSegments()+1)*(i-AliL3Transform::GetFirstRow(GetPatch())) + etaindex[1]; + index[0] = (GetNEtaSegments()+1)*(i-AliHLTTransform::GetFirstRow(GetPatch())) + etaindex[0]; + index[1] = (GetNEtaSegments()+1)*(i-AliHLTTransform::GetFirstRow(GetPatch())) + etaindex[1]; if(index[0] == index[1]) { cerr<<"Same etaindexes "<fNext) + for(dPt1 = (AliHLTDigit*)etaPt[index1].fFirst; dPt1 != 0; dPt1 = (AliHLTDigit*)dPt1->fNext) { for(Int_t j=i+every; j<=maxrow; j+=every) { - Int_t index2 = (GetNEtaSegments()+1)*(j-AliL3Transform::GetFirstRow(GetPatch())) + e; + Int_t index2 = (GetNEtaSegments()+1)*(j-AliHLTTransform::GetFirstRow(GetPatch())) + e; - for(dPt2 = (AliL3Digit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliL3Digit*)dPt2->fNext) + for(dPt2 = (AliHLTDigit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliHLTDigit*)dPt2->fNext) { if(dPt1->fRow == dPt2->fRow) { @@ -508,10 +508,10 @@ void AliL3HoughTransformer::TransformCircleC(Int_t *rowrange,Int_t every) } //Get the correct histogrampointer: - AliL3Histogram *hist = fParamSpace[e]; + AliHLTHistogram *hist = fParamSpace[e]; if(!hist) { - printf("AliL3HoughTransformer::TransformCircleC() : No histogram at index %d\n",i); + printf("AliHLTHoughTransformer::TransformCircleC() : No histogram at index %d\n",i); continue; } @@ -537,42 +537,42 @@ void AliL3HoughTransformer::TransformCircleC(Int_t *rowrange,Int_t every) } -void AliL3HoughTransformer::TransformLine(Int_t *rowrange,Float_t *phirange) +void AliHLTHoughTransformer::TransformLine(Int_t *rowrange,Float_t *phirange) { //Do a line transform on the data. - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) { - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformLine","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformLine","Data") <<"No input data "<= AliL3Transform::GetLastRow(GetPatch())) - minrow = AliL3Transform::GetFirstRow(GetPatch()); - if(maxrow < AliL3Transform::GetFirstRow(GetPatch()) || maxrow >= AliL3Transform::GetLastRow(GetPatch())) - maxrow = AliL3Transform::GetLastRow(GetPatch()); + if(minrow < AliHLTTransform::GetFirstRow(GetPatch()) || minrow >= AliHLTTransform::GetLastRow(GetPatch())) + minrow = AliHLTTransform::GetFirstRow(GetPatch()); + if(maxrow < AliHLTTransform::GetFirstRow(GetPatch()) || maxrow >= AliHLTTransform::GetLastRow(GetPatch())) + maxrow = AliHLTTransform::GetLastRow(GetPatch()); if(minrow > maxrow || maxrow==minrow) { - cerr<<"AliL3HoughTransformer::TransformCircleC : Bad row range "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if(i != (Int_t)tempPt->fRow) { - printf("AliL3HoughTransform::TransformLine : Mismatching padrow numbering\n"); + printf("AliHLTHoughTransform::TransformLine : Mismatching padrow numbering\n"); continue; } for(UInt_t j=0; jfNDigit; j++) @@ -584,27 +584,27 @@ void AliL3HoughTransformer::TransformLine(Int_t *rowrange,Float_t *phirange) continue; Int_t sector,row; Float_t xyz[3]; - AliL3Transform::Slice2Sector(GetSlice(),i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); + AliHLTTransform::Slice2Sector(GetSlice(),i,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); if(phirange) { - Float_t phi = AliL3Transform::GetPhi(xyz); + Float_t phi = AliHLTTransform::GetPhi(xyz); if(phi < phirange[0] || phi > phirange[1]) continue; } - Float_t eta = AliL3Transform::GetEta(xyz); + Float_t eta = AliHLTTransform::GetEta(xyz); Int_t etaindex = GetEtaIndex(eta);//(Int_t)(eta/etaslice); if(etaindex < 0 || etaindex >= GetNEtaSegments()) continue; - xyz[0] = xyz[0] - AliL3Transform::Row2X(minrow); + xyz[0] = xyz[0] - AliHLTTransform::Row2X(minrow); //Get the correct histogram: - AliL3Histogram *hist = fParamSpace[etaindex]; + AliHLTHistogram *hist = fParamSpace[etaindex]; if(!hist) { - printf("AliL3HoughTransformer::TransformLine : Error getting histogram in index %d\n",etaindex); + printf("AliHLTHoughTransformer::TransformLine : Error getting histogram in index %d\n",etaindex); continue; } for(Int_t xbin=hist->GetFirstXbin(); xbinGetLastXbin(); xbin++) @@ -614,44 +614,44 @@ void AliL3HoughTransformer::TransformLine(Int_t *rowrange,Float_t *phirange) hist->Fill(theta,rho,charge); } } - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } } -struct AliL3LDigit { +struct AliHLTLDigit { Int_t fRow; // Digit rowpad Int_t fCharge; // Digit charge Float_t fY; // Y position of the digit in the local coor system - AliL3LDigit *fNext; // Next digit + AliHLTLDigit *fNext; // Next digit }; -struct AliL3LEtaContainer { - AliL3LDigit *fFirst; //First digit - AliL3LDigit *fLast; //Last digit +struct AliHLTLEtaContainer { + AliHLTLDigit *fFirst; //First digit + AliHLTLDigit *fLast; //Last digit }; -void AliL3HoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) +void AliHLTHoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) { //Circle transform ?? - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformCircleC","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformCircleC","Data") <<"No input data "<fNDigit; - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } - Int_t bound = (GetNEtaSegments()+1)*(AliL3Transform::GetNRows(GetPatch())+1); - AliL3LEtaContainer *etaPt = new AliL3LEtaContainer[bound]; - memset(etaPt,0,bound*sizeof(AliL3LEtaContainer)); + Int_t bound = (GetNEtaSegments()+1)*(AliHLTTransform::GetNRows(GetPatch())+1); + AliHLTLEtaContainer *etaPt = new AliHLTLEtaContainer[bound]; + memset(etaPt,0,bound*sizeof(AliHLTLEtaContainer)); - AliL3LDigit *digits = new AliL3LDigit[counter]; - cout<<"Allocating "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; for(UInt_t di=0; difNDigit; di++) { Int_t charge = digPt[di].fCharge; Int_t pad = digPt[di].fPad; Int_t time = digPt[di].fTime; - AliL3Transform::Slice2Sector(GetSlice(),i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); - Double_t eta = AliL3Transform::GetEta(xyz); + AliHLTTransform::Slice2Sector(GetSlice(),i,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); + Double_t eta = AliHLTTransform::GetEta(xyz); Float_t phi = atan2(xyz[1],xyz[0]); if(phi < phirange[0] || phi > phirange[1]) continue; @@ -680,7 +680,7 @@ void AliL3HoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) digits[counter].fCharge = charge; Int_t etaindex = GetEtaIndex(eta); - Int_t index = (GetNEtaSegments()+1)*(i-AliL3Transform::GetFirstRow(GetPatch())) + etaindex; + Int_t index = (GetNEtaSegments()+1)*(i-AliHLTTransform::GetFirstRow(GetPatch())) + etaindex; if(index > 0 && index < bound) { @@ -692,26 +692,26 @@ void AliL3HoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) } counter++; } - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } cout<<"Doing the combinatorics"<fNext) + for(dPt1 = (AliHLTLDigit*)etaPt[index1].fFirst; dPt1 != 0; dPt1 = (AliHLTLDigit*)dPt1->fNext) { for(Int_t j=i+1; j<=rowrange[1]; j++) { - Int_t index2 = (GetNEtaSegments()+1)*(j-AliL3Transform::GetFirstRow(GetPatch())) + e; + Int_t index2 = (GetNEtaSegments()+1)*(j-AliHLTTransform::GetFirstRow(GetPatch())) + e; - for(dPt2 = (AliL3LDigit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliL3LDigit*)dPt2->fNext) + for(dPt2 = (AliHLTLDigit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliHLTLDigit*)dPt2->fNext) { if(dPt1->fRow == dPt2->fRow) { @@ -720,16 +720,16 @@ void AliL3HoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) } //Get the correct histogrampointer: - AliL3Histogram *hist = fParamSpace[e]; + AliHLTHistogram *hist = fParamSpace[e]; if(!hist) { - printf("AliL3HoughTransformer::TransformCircleC() : No histogram at index %d\n",i); + printf("AliHLTHoughTransformer::TransformCircleC() : No histogram at index %d\n",i); continue; } //Do the transform: - float x1 = AliL3Transform::Row2X(dPt1->fRow) - AliL3Transform::Row2X(rowrange[0]); - float x2 = AliL3Transform::Row2X(dPt2->fRow) - AliL3Transform::Row2X(rowrange[0]); + float x1 = AliHLTTransform::Row2X(dPt1->fRow) - AliHLTTransform::Row2X(rowrange[0]); + float x2 = AliHLTTransform::Row2X(dPt2->fRow) - AliHLTTransform::Row2X(rowrange[0]); float y1 = dPt1->fY; float y2 = dPt2->fY; float theta = atan2(x2-x1,y1-y2); @@ -747,21 +747,21 @@ void AliL3HoughTransformer::TransformLineC(Int_t *rowrange,Float_t *phirange) } #ifdef do_mc -Int_t AliL3HoughTransformer::GetTrackID(Int_t etaindex,Double_t kappa,Double_t psi) const +Int_t AliHLTHoughTransformer::GetTrackID(Int_t etaindex,Double_t kappa,Double_t psi) const { // Returns the MC label for a given peak found in the Hough space if(!fDoMC) { - cerr<<"AliL3HoughTransformer::GetTrackID : Flag switched off"< GetNEtaSegments()) { - cerr<<"AliL3HoughTransformer::GetTrackID : Wrong etaindex "<FindBin(kappa,psi); Int_t label=-1; Int_t max=0; @@ -778,16 +778,16 @@ Int_t AliL3HoughTransformer::GetTrackID(Int_t etaindex,Double_t kappa,Double_t p //nhits = max; return label; #else - Int_t AliL3HoughTransformer::GetTrackID(Int_t /*etaindex*/,Double_t /*kappa*/,Double_t /*psi*/) const + Int_t AliHLTHoughTransformer::GetTrackID(Int_t /*etaindex*/,Double_t /*kappa*/,Double_t /*psi*/) const { // Returns the MC label for a given peak found in the Hough space if(!fDoMC) { - cerr<<"AliL3HoughTransformer::GetTrackID : Flag switched off"< //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3HoughTransformerGlobal.h" -#include "AliL3FileHandler.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3Track.h" -#include "AliL3Histogram.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughMaxFinder.h" -#include "AliL3HoughTrack.h" -#include "AliL3SpacePointData.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughTransformerGlobal.h" +#include "AliHLTFileHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTTrack.h" +#include "AliHLTHistogram.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughMaxFinder.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTSpacePointData.h" #include @@ -24,14 +24,14 @@ using namespace std; #endif //_____________________________________________________________ -// AliL3HoughTransformerGlobal +// AliHLTHoughTransformerGlobal // // Hough transformation class // -ClassImp(AliL3HoughTransformerGlobal) +ClassImp(AliHLTHoughTransformerGlobal) -AliL3HoughTransformerGlobal::AliL3HoughTransformerGlobal() +AliHLTHoughTransformerGlobal::AliHLTHoughTransformerGlobal() { //default ctor fPadMin=0; @@ -46,7 +46,7 @@ AliL3HoughTransformerGlobal::AliL3HoughTransformerGlobal() fSeedPadRow=-1; } -AliL3HoughTransformerGlobal::AliL3HoughTransformerGlobal(Char_t *path,Int_t event) +AliHLTHoughTransformerGlobal::AliHLTHoughTransformerGlobal(Char_t *path,Int_t event) { //normal ctor strcpy(fPath,path); @@ -57,11 +57,11 @@ AliL3HoughTransformerGlobal::AliL3HoughTransformerGlobal(Char_t *path,Int_t even fPsi=0; fPtMin=0; fNActiveSlice=0; - fTracks = new AliL3TrackArray("AliL3HoughTrack"); - fPeakFinder = new AliL3HoughMaxFinder("KappaPhi",1000); + fTracks = new AliHLTTrackArray("AliHLTHoughTrack"); + fPeakFinder = new AliHLTHoughMaxFinder("KappaPhi",1000); } -AliL3HoughTransformerGlobal::~AliL3HoughTransformerGlobal() +AliHLTHoughTransformerGlobal::~AliHLTHoughTransformerGlobal() { //dtor if(fPadMin) @@ -76,22 +76,22 @@ AliL3HoughTransformerGlobal::~AliL3HoughTransformerGlobal() } -void AliL3HoughTransformerGlobal::CreateHistograms(Float_t /*ptmin*/,Int_t nxbin,Int_t nybin) +void AliHLTHoughTransformerGlobal::CreateHistograms(Float_t /*ptmin*/,Int_t nxbin,Int_t nybin) { //create histograms for HT if(fPsi==0) { - cerr<<"AliL3HoughTransformerGlobal::CreateHistograms : Call DefineRegion first"<GetDataPointer(dummy); + AliHLTDigitRowData *rowPt = (AliHLTDigitRowData*)fMemHandler[i++]->GetDataPointer(dummy); - for(Int_t padrow=0; padrowfDigitData; + AliHLTDigitData *digits = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { @@ -130,17 +130,17 @@ void AliL3HoughTransformerGlobal::TransformCircleC() if(charge > GetUpperThreshold() || charge < GetLowerThreshold()) continue; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); Rotate(xyz,i-1-fNActiveSlice); - AliL3Transform::XYZtoRPhiEta(rpe,xyz); + AliHLTTransform::XYZtoRPhiEta(rpe,xyz); rpe[0] = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); Int_t etaindex = GetEtaIndex(rpe[2]); - AliL3Histogram *hist = GetHistogram(etaindex); + AliHLTHistogram *hist = GetHistogram(etaindex); for(Int_t l=0; lFill(kappa,psi,charge); } } - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); } } delete [] clusters; } -void AliL3HoughTransformerGlobal::TransformCircle() +void AliHLTHoughTransformerGlobal::TransformCircle() { //Hough Transform Int_t i=0,sector,row,slice; @@ -177,12 +177,12 @@ void AliL3HoughTransformerGlobal::TransformCircle() slice = sl; cout<<"Transforming in slice "<GetDataPointer(dummy); + AliHLTDigitRowData *rowPt = (AliHLTDigitRowData*)fMemHandler[i++]->GetDataPointer(dummy); - for(Int_t padrow=0; padrowfDigitData; + AliHLTDigitData *digits = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { @@ -199,17 +199,17 @@ void AliL3HoughTransformerGlobal::TransformCircle() if(charge > GetUpperThreshold() || charge < GetLowerThreshold()) continue; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); Rotate(xyz,i-1-fNActiveSlice); - AliL3Transform::XYZtoRPhiEta(rpe,xyz); + AliHLTTransform::XYZtoRPhiEta(rpe,xyz); rpe[0] = sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); Int_t etaindex = GetEtaIndex(rpe[2]); - AliL3Histogram *hist = GetHistogram(etaindex); + AliHLTHistogram *hist = GetHistogram(etaindex); for(Int_t b=hist->GetFirstYbin(); b<=hist->GetLastYbin(); b++) { @@ -223,39 +223,39 @@ void AliL3HoughTransformerGlobal::TransformCircle() //hist->Fill(kappa,psi,(int)rint(log((Float_t)charge))); } } - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); } } } -void AliL3HoughTransformerGlobal::VerifyTracks(AliL3TrackArray *tracks,Int_t &index) +void AliHLTHoughTransformerGlobal::VerifyTracks(AliHLTTrackArray *tracks,Int_t &index) { //remove tracks which do not cross the seed padrow for(int i=index; iGetNTracks(); i++) { - AliL3HoughTrack *tr = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *tr = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!tr) continue; Float_t angle=0; - AliL3Transform::Local2GlobalAngle(&angle,GetSlice()); - if(!tr->CalculateReferencePoint(angle,AliL3Transform::Row2X(fSeedPadRow))) + AliHLTTransform::Local2GlobalAngle(&angle,GetSlice()); + if(!tr->CalculateReferencePoint(angle,AliHLTTransform::Row2X(fSeedPadRow))) { tracks->Remove(i); continue; } Int_t sector,row; - AliL3Transform::Slice2Sector(GetSlice(),fSeedPadRow,sector,row); + AliHLTTransform::Slice2Sector(GetSlice(),fSeedPadRow,sector,row); float xyz[3] = {tr->GetPointX(),tr->GetPointY(),tr->GetPointZ()}; - AliL3Transform::Global2Raw(xyz,sector,row); - if(xyz[1]<0 || xyz[1]>=AliL3Transform::GetNPads(fSeedPadRow) || - xyz[2]<0 || xyz[2]>=AliL3Transform::GetNTimeBins()) + AliHLTTransform::Global2Raw(xyz,sector,row); + if(xyz[1]<0 || xyz[1]>=AliHLTTransform::GetNPads(fSeedPadRow) || + xyz[2]<0 || xyz[2]>=AliHLTTransform::GetNTimeBins()) tracks->Remove(i); } tracks->Compress(); index = tracks->GetNTracks(); } -void AliL3HoughTransformerGlobal::FindPeaks(AliL3Histogram *hist,Float_t eta) +void AliHLTHoughTransformerGlobal::FindPeaks(AliHLTHistogram *hist,Float_t eta) { //Peak Finder fPeakFinder->Reset(); @@ -264,26 +264,26 @@ void AliL3HoughTransformerGlobal::FindPeaks(AliL3Histogram *hist,Float_t eta) if(fPeakFinder->GetWeight(0) < 1000) return; - AliL3HoughTrack *track = (AliL3HoughTrack*)fTracks->NextTrack(); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)fTracks->NextTrack(); track->SetTrackParameters(fPeakFinder->GetXPeak(0),fPeakFinder->GetYPeak(0),fPeakFinder->GetWeight(0)); track->SetEta(eta); - track->SetRowRange(AliL3Transform::GetFirstRow(0),AliL3Transform::GetLastRow(5)); + track->SetRowRange(AliHLTTransform::GetFirstRow(0),AliHLTTransform::GetLastRow(5)); } -void AliL3HoughTransformerGlobal::Rotate(Float_t *xyz,Int_t relslice) +void AliHLTHoughTransformerGlobal::Rotate(Float_t *xyz,Int_t relslice) { //Rotate coordinates from one slice to the slice relative to it; //-1 means lower //1 means upper - Float_t angle = (Float_t)relslice*AliL3Transform::Deg2Rad(20); + Float_t angle = (Float_t)relslice*AliHLTTransform::Deg2Rad(20); Float_t x=xyz[0],y=xyz[1]; xyz[0] = x*cos(angle) - y*sin(angle); xyz[1] = x*sin(angle) + y*cos(angle); } -void AliL3HoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/,Int_t seedpadrow) +void AliHLTHoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/,Int_t seedpadrow) { //Setup the region to be included in the transform //This function should be called only once, since it is the same for all slices. @@ -291,8 +291,8 @@ void AliL3HoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/ fSeedPadRow=seedpadrow; fPtMin = minpt; - fPadMin = new Int_t[AliL3Transform::GetNRows()]; - fPadMax = new Int_t[AliL3Transform::GetNRows()]; + fPadMin = new Int_t[AliHLTTransform::GetNRows()]; + fPadMax = new Int_t[AliHLTTransform::GetNRows()]; //Phirange of data which should be included in the transform //Here we assume a min pt to define it; fPtMin @@ -308,22 +308,22 @@ void AliL3HoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/ if(phi2 > phi) phi = phi2; - cout<<"Phiangle "<= 0) { - AliL3Transform::Raw2Local(xyz,sector,row,pad,0); - if(AliL3Transform::GetPhi(xyz) > -1.*phi + AliL3Transform::Deg2Rad(rotangle)) + AliHLTTransform::Raw2Local(xyz,sector,row,pad,0); + if(AliHLTTransform::GetPhi(xyz) > -1.*phi + AliHLTTransform::Deg2Rad(rotangle)) fPadMin[i] = pad; else break; @@ -332,10 +332,10 @@ void AliL3HoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/ //Upper boundary pad = 0; - while(pad < AliL3Transform::GetNPads(i)) + while(pad < AliHLTTransform::GetNPads(i)) { - AliL3Transform::Raw2Local(xyz,sector,row,pad,0); - if(AliL3Transform::GetPhi(xyz) < phi - AliL3Transform::Deg2Rad(rotangle)) + AliHLTTransform::Raw2Local(xyz,sector,row,pad,0); + if(AliHLTTransform::GetPhi(xyz) < phi - AliHLTTransform::Deg2Rad(rotangle)) fPadMax[i] = pad; else break; @@ -347,28 +347,28 @@ void AliL3HoughTransformerGlobal::DefineRegion(Float_t minpt,Float_t /*linephi*/ } -Float_t AliL3HoughTransformerGlobal::CalculateBorder(Float_t *xyz,Int_t charge) +Float_t AliHLTHoughTransformerGlobal::CalculateBorder(Float_t *xyz,Int_t charge) { //Define Hough space borders - Double_t lineradius = sqrt(pow(AliL3Transform::Row2X(fSeedPadRow),2) + pow(AliL3Transform::GetMaxY(fSeedPadRow),2)); + Double_t lineradius = sqrt(pow(AliHLTTransform::Row2X(fSeedPadRow),2) + pow(AliHLTTransform::GetMaxY(fSeedPadRow),2)); - Double_t kappa = -charge*AliL3Transform::GetBField()*AliL3Transform::GetBFact()/fPtMin; + Double_t kappa = -charge*AliHLTTransform::GetBField()*AliHLTTransform::GetBFact()/fPtMin; //Calculate the psi angle of the track = emission angle with x-axis in origo if( fabs(lineradius*kappa/2) > 1) { - cerr<<"AliL3TransformerGlobal::DefineRegion : Angle too big"< 0) fPsi=psi; cout<<"Calculated psi-angle "<0) { - cerr<<"AliL3HoughTransformerGlobal::DefineRegion : Wrong pad, probably a deadzone... "<= AliL3Transform::GetNPads(crossingrow)) //Here the range is even one more slice away + if(xyz[1] >= AliHLTTransform::GetNPads(crossingrow)) //Here the range is even one more slice away { cerr<<"One more slice with pad "<Init(slice,-1); if(binary) { @@ -486,7 +486,7 @@ void AliL3HoughTransformerGlobal::LoadActiveSlices(Bool_t binary) } -void AliL3HoughTransformerGlobal::UnloadActiveSlices() +void AliHLTHoughTransformerGlobal::UnloadActiveSlices() { //Unload active slices if(!fMemHandler) @@ -500,20 +500,20 @@ void AliL3HoughTransformerGlobal::UnloadActiveSlices() fMemHandler=0; } -Int_t AliL3HoughTransformerGlobal::LoadClusterSeeds(AliL3Seed *seeds) +Int_t AliHLTHoughTransformerGlobal::LoadClusterSeeds(AliHLTSeed *seeds) { //Load cluster seeds Char_t filename[1024]; UInt_t npoints; sprintf(filename,"%s/hough/points_%d_%d_%d.raw",fPath,fEvent,GetSlice(),-1); //sprintf(filename,"../tracker/points_%d_%d_%d.raw",fEvent,GetSlice(),-1); - AliL3MemHandler mem; + AliHLTMemHandler mem; if(!mem.SetBinaryInput(filename)) { - cerr<<"AliL3HoughTransformerGlobal::LoadClusterSeeds : Cannot open file "< fSeedPadRow) break; - if(fabs(points[i].fY) > AliL3Transform::GetMaxY(lrow)) + if(fabs(points[i].fY) > AliHLTTransform::GetMaxY(lrow)) { - cerr<<"AliL3HoughTransformerGlobal::LoadClusterSeeds : Seeds seems not to be in local coordinates: " + cerr<<"AliHLTHoughTransformerGlobal::LoadClusterSeeds : Seeds seems not to be in local coordinates: " <GetDataPointer(dummy); - for(Int_t padrow=0; padrowGetDataPointer(dummy); + for(Int_t padrow=0; padrowfDigitData; + AliHLTDigitData *digits = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++) { Int_t pad = digits[j].fPad; @@ -569,16 +569,16 @@ void AliL3HoughTransformerGlobal::DisplayActiveRegion(TH2F *hist,Int_t etaindex) if(i==fNActiveSlice*2+1 && pad>fPadMax[padrow]) continue; Int_t time = digits[j].fTime; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); Rotate(xyz,i-1-fNActiveSlice); - Double_t eta = AliL3Transform::GetEta(xyz); + Double_t eta = AliHLTTransform::GetEta(xyz); if(GetEtaIndex(eta) == etaindex) hist->Fill(xyz[0],xyz[1]); } - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); } } } diff --git a/HLT/hough/AliL3HoughTransformerGlobal.h b/HLT/hough/AliHLTHoughTransformerGlobal.h similarity index 54% rename from HLT/hough/AliL3HoughTransformerGlobal.h rename to HLT/hough/AliHLTHoughTransformerGlobal.h index a8a96fd9ad3..8432f8a92bb 100644 --- a/HLT/hough/AliL3HoughTransformerGlobal.h +++ b/HLT/hough/AliHLTHoughTransformerGlobal.h @@ -3,48 +3,48 @@ #ifndef ALIL3HOUGHTRANSFORMERGLOBAL_H #define ALIL3HOUGHTRANSFORMERGLOBAL_H -#include "AliL3RootTypes.h" -#include "AliL3HoughTransformer.h" +#include "AliHLTRootTypes.h" +#include "AliHLTHoughTransformer.h" -class AliL3Histogram; -class AliL3MemHandler; -class AliL3TrackArray; -class AliL3HoughMaxFinder; +class AliHLTHistogram; +class AliHLTMemHandler; +class AliHLTTrackArray; +class AliHLTHoughMaxFinder; class TH2F; -struct AliL3Seed { +struct AliHLTSeed { Float_t fPhi;//Track emission angle Float_t fRadius;//Track radius Float_t fEta;//Track eta Int_t fIndex;//index? }; -class AliL3HoughTransformerGlobal : public AliL3HoughTransformer { +class AliHLTHoughTransformerGlobal : public AliHLTHoughTransformer { public: - AliL3HoughTransformerGlobal(); - AliL3HoughTransformerGlobal(Char_t *path,Int_t event=0); - virtual ~AliL3HoughTransformerGlobal(); + AliHLTHoughTransformerGlobal(); + AliHLTHoughTransformerGlobal(Char_t *path,Int_t event=0); + virtual ~AliHLTHoughTransformerGlobal(); void CreateHistograms(Float_t ptmin,Int_t nxbin,Int_t nybin); void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) { - AliL3HoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi); + AliHLTHoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi); } void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) { - AliL3HoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); + AliHLTHoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); } void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, Int_t nybin,Float_t ymin,Float_t ymax) { - AliL3HoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); + AliHLTHoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); } - void VerifyTracks(AliL3TrackArray *tracks,Int_t &index); + void VerifyTracks(AliHLTTrackArray *tracks,Int_t &index); void TransformCircle(); void TransformCircle(Int_t *row_range,Int_t every) { - AliL3HoughTransformer::TransformCircle(row_range,every); + AliHLTHoughTransformer::TransformCircle(row_range,every); } void TransformCircleC(); void TransformCircleC(Int_t *rowrange,Int_t every){ - AliL3HoughTransformer::TransformCircleC(rowrange,every); + AliHLTHoughTransformer::TransformCircleC(rowrange,every); } void DefineRegion(Float_t ptmin,Float_t linephi,Int_t seedpadrow); void LoadActiveSlices(Bool_t binary=kTRUE); @@ -53,7 +53,7 @@ class AliL3HoughTransformerGlobal : public AliL3HoughTransformer { void SetSeedPadRow(Int_t i) {fSeedPadRow=i;} - AliL3TrackArray *GetTracks() {return fTracks;} + AliHLTTrackArray *GetTracks() {return fTracks;} private: Int_t fEvent;//Event index @@ -64,19 +64,21 @@ class AliL3HoughTransformerGlobal : public AliL3HoughTransformer { Float_t fPsi;//psi range Float_t fPtMin;//minimum pt Int_t fSeedPadRow;//? - AliL3MemHandler **fMemHandler; //! - AliL3TrackArray *fTracks; //! - AliL3HoughMaxFinder *fPeakFinder; //! + AliHLTMemHandler **fMemHandler; //! + AliHLTTrackArray *fTracks; //! + AliHLTHoughMaxFinder *fPeakFinder; //! void Rotate(Float_t *xyz,Int_t relslice); - void FindPeaks(AliL3Histogram *hist,Float_t eta); - Int_t LoadClusterSeeds(AliL3Seed *seeds); + void FindPeaks(AliHLTHistogram *hist,Float_t eta); + Int_t LoadClusterSeeds(AliHLTSeed *seeds); Float_t CalculateBorder(Float_t *xyz,Int_t charge); - ClassDef(AliL3HoughTransformerGlobal,1) + ClassDef(AliHLTHoughTransformerGlobal,1) }; +typedef AliHLTHoughTransformerGlobal AliL3HoughTransformerGlobal; // for backward compatibility + #endif diff --git a/HLT/hough/AliL3HoughTransformerLUT.cxx b/HLT/hough/AliHLTHoughTransformerLUT.cxx similarity index 71% rename from HLT/hough/AliL3HoughTransformerLUT.cxx rename to HLT/hough/AliHLTHoughTransformerLUT.cxx index c2895ad621f..cf8a1de8ae3 100644 --- a/HLT/hough/AliL3HoughTransformerLUT.cxx +++ b/HLT/hough/AliHLTHoughTransformerLUT.cxx @@ -2,33 +2,33 @@ // Author: Constantin Loizides //*-- Copyright © ALICE HLT Group -/** /class AliL3HoughTransformerLUT +/** /class AliHLTHoughTransformerLUT //
 //_____________________________________________________________
-// AliL3HoughTransformerLUT
+// AliHLTHoughTransformerLUT
 //
 // Hough transformation class using Look-UP-Tables
 //
 //
*/ -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3HoughTransformerLUT.h" -#include "AliL3Transform.h" -#include "AliL3MemHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Histogram.h" -#include "AliL3HistogramAdaptive.h" +#include "AliHLTLogging.h" +#include "AliHLTHoughTransformerLUT.h" +#include "AliHLTTransform.h" +#include "AliHLTMemHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTHistogram.h" +#include "AliHLTHistogramAdaptive.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3HoughTransformerLUT) +ClassImp(AliHLTHoughTransformerLUT) -AliL3HoughTransformerLUT::AliL3HoughTransformerLUT() : AliL3HoughBaseTransformer() +AliHLTHoughTransformerLUT::AliHLTHoughTransformerLUT() : AliHLTHoughBaseTransformer() { // default contructor fParamSpace=0; @@ -62,7 +62,7 @@ AliL3HoughTransformerLUT::AliL3HoughTransformerLUT() : AliL3HoughBaseTransformer fX=fY=0.; } -AliL3HoughTransformerLUT::AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t nEtaSegments) : AliL3HoughBaseTransformer(slice,patch,nEtaSegments) +AliHLTHoughTransformerLUT::AliHLTHoughTransformerLUT(Int_t slice,Int_t patch,Int_t nEtaSegments) : AliHLTHoughBaseTransformer(slice,patch,nEtaSegments) { // constructor fParamSpace=0; @@ -97,7 +97,7 @@ AliL3HoughTransformerLUT::AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t Init(slice,patch,nEtaSegments); } -AliL3HoughTransformerLUT::~AliL3HoughTransformerLUT() +AliHLTHoughTransformerLUT::~AliHLTHoughTransformerLUT() { // destructor DeleteHistograms(); @@ -115,7 +115,7 @@ AliL3HoughTransformerLUT::~AliL3HoughTransformerLUT() } } -void AliL3HoughTransformerLUT::DeleteHistograms() +void AliHLTHoughTransformerLUT::DeleteHistograms() { // deletes all histograms if(fNPhi0){ @@ -140,10 +140,10 @@ void AliL3HoughTransformerLUT::DeleteHistograms() } } -void AliL3HoughTransformerLUT::Init(Int_t slice,Int_t patch,Int_t nEtaSegments,Int_t /*nSeqs*/) +void AliHLTHoughTransformerLUT::Init(Int_t slice,Int_t patch,Int_t nEtaSegments,Int_t /*nSeqs*/) { // Initialization - AliL3HoughBaseTransformer::Init(slice,patch,nEtaSegments); + AliHLTHoughBaseTransformer::Init(slice,patch,nEtaSegments); //delete old LUT tables if(fNRows){ @@ -158,26 +158,26 @@ void AliL3HoughTransformerLUT::Init(Int_t slice,Int_t patch,Int_t nEtaSegments,I } //member values - fMinRow=AliL3Transform::GetFirstRow(patch);; - fMaxRow=AliL3Transform::GetLastRow(patch);; - fNRows=AliL3Transform::GetNRows(patch);; + fMinRow=AliHLTTransform::GetFirstRow(patch);; + fMaxRow=AliHLTTransform::GetLastRow(patch);; + fNRows=AliHLTTransform::GetNRows(patch);; fNEtas=nEtaSegments; if(fNEtas!=GetNEtaSegments()) { - cerr << "AliL3HoughTransformerLUT::Init -> Error: Number of Etas must be equal!" << endl; + cerr << "AliHLTHoughTransformerLUT::Init -> Error: Number of Etas must be equal!" << endl; exit(1); } - AliL3Transform::Slice2Sector(slice,fMinRow,fSector,fSectorRow); - fZSign = slice < 18 ? 1:-1; //see AliL3Transformer + AliHLTTransform::Slice2Sector(slice,fMinRow,fSector,fSectorRow); + fZSign = slice < 18 ? 1:-1; //see AliHLTTransformer fSlice = slice; - fZLengthPlusOff=AliL3Transform::GetZLength()+AliL3Transform::GetZOffset(); - fTimeWidth=AliL3Transform::GetZWidth(); + fZLengthPlusOff=AliHLTTransform::GetZLength()+AliHLTTransform::GetZOffset(); + fTimeWidth=AliHLTTransform::GetZWidth(); fPadPitch=0; - if(fSector ptmax) { - cerr<<"AliL3HoughTransformerLUT::CreateHistograms: Error in ptrange "<GetFirstYbin(); b<=hist->GetLastYbin(); b++) { @@ -250,7 +250,7 @@ void AliL3HoughTransformerLUT::CreateHistograms(Float_t ptmin,Float_t ptmax,Floa } } -void AliL3HoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t ptMin,Int_t nybin,Float_t phimin,Float_t phimax) +void AliHLTHoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t ptMin,Int_t nybin,Float_t phimin,Float_t phimax) { //Create the histograms (parameter space). //These are 2D histograms, span by kappa (curvature of track) and phi0 (emission angle with x-axis). @@ -261,20 +261,20 @@ void AliL3HoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t ptMin,Int_t //phi_min = mimimum phi0 (degrees) //phi_max = maximum phi0 (degrees) - Double_t x = AliL3Transform::GetBFact()*AliL3Transform::GetBField()/ptMin; - //Double_t torad = AliL3Transform::Pi()/180; + Double_t x = AliHLTTransform::GetBFact()*AliHLTTransform::GetBField()/ptMin; + //Double_t torad = AliHLTTransform::Pi()/180; CreateHistograms(nxbin,-1.*x,x,nybin,phimin/**torad*/,phimax/**torad*/); } -void AliL3HoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,Int_t nybin,Float_t ymin,Float_t ymax) +void AliHLTHoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,Int_t nybin,Float_t ymin,Float_t ymax) { - fParamSpace = new AliL3Histogram*[fNEtas]; + fParamSpace = new AliHLTHistogram*[fNEtas]; Char_t histname[256]; for(Int_t i=0; iGetFirstYbin(); b<=hist->GetLastYbin(); b++) { @@ -298,13 +298,13 @@ void AliL3HoughTransformerLUT::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t } } -void AliL3HoughTransformerLUT::Reset() +void AliHLTHoughTransformerLUT::Reset() { //Reset all the histograms if(!fParamSpace) { - LOG(AliL3Log::kWarning,"AliL3HoughTransformer::Reset","Histograms") + LOG(AliHLTLog::kWarning,"AliHLTHoughTransformer::Reset","Histograms") <<"No histograms to reset"<Reset(); } -Int_t AliL3HoughTransformerLUT::GetEtaIndex(Double_t eta) const +Int_t AliHLTHoughTransformerLUT::GetEtaIndex(Double_t eta) const { //Return the histogram index of the corresponding eta. @@ -328,7 +328,7 @@ Int_t AliL3HoughTransformerLUT::GetEtaIndex(Double_t eta) const #endif } -AliL3Histogram *AliL3HoughTransformerLUT::GetHistogram(Int_t etaIndex) +AliHLTHistogram *AliHLTHoughTransformerLUT::GetHistogram(Int_t etaIndex) { // gets hitogram if(!fParamSpace || etaIndex >= fNEtas || etaIndex < 0) @@ -338,22 +338,22 @@ AliL3Histogram *AliL3HoughTransformerLUT::GetHistogram(Int_t etaIndex) return fParamSpace[etaIndex]; } -Double_t AliL3HoughTransformerLUT::GetEta(Int_t etaIndex,Int_t slice) const +Double_t AliHLTHoughTransformerLUT::GetEta(Int_t etaIndex,Int_t slice) const { // gets eta if(etaIndex >= fNEtas || etaIndex < 0){ - LOG(AliL3Log::kWarning,"AliL3HoughTransformerLUT::GetEta","Index") << "Index out of range."<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if(i != (Int_t)tempPt->fRow) { - LOG(AliL3Log::kError,"AliL3HoughTransformerLUT::TransformCircle","Data") - <<"AliL3HoughTransformerLUT::TransformCircle : Mismatching padrow numbering "<0) AddCurveToHistogram(-1); //Move the data pointer to the next padrow: - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } } -void AliL3HoughTransformerLUT::Print() +void AliHLTHoughTransformerLUT::Print() { // debug printout cout << "fSlice: " << GetSlice() << endl; diff --git a/HLT/hough/AliL3HoughTransformerLUT.h b/HLT/hough/AliHLTHoughTransformerLUT.h similarity index 73% rename from HLT/hough/AliL3HoughTransformerLUT.h rename to HLT/hough/AliHLTHoughTransformerLUT.h index d7f930d26b1..c5ea8cf2db6 100644 --- a/HLT/hough/AliL3HoughTransformerLUT.h +++ b/HLT/hough/AliHLTHoughTransformerLUT.h @@ -3,21 +3,21 @@ #ifndef ALIL3_HOUGHTRANSFORMERLUT #define ALIL3_HOUGHTRANSFORMERLUT -#include "AliL3RootTypes.h" -#include "AliL3HoughBaseTransformer.h" -#include "AliL3Histogram.h" +#include "AliHLTRootTypes.h" +#include "AliHLTHoughBaseTransformer.h" +#include "AliHLTHistogram.h" /* use if you also want the eta index to be looked up and linear searched */ //#define FULLLUT -class AliL3HoughTransformerLUT : public AliL3HoughBaseTransformer { +class AliHLTHoughTransformerLUT : public AliHLTHoughBaseTransformer { public: - AliL3HoughTransformerLUT(); - AliL3HoughTransformerLUT(Int_t slice,Int_t patch,Int_t nEtaSegments); - virtual ~AliL3HoughTransformerLUT(); + AliHLTHoughTransformerLUT(); + AliHLTHoughTransformerLUT(Int_t slice,Int_t patch,Int_t nEtaSegments); + virtual ~AliHLTHoughTransformerLUT(); void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi); void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax); @@ -26,18 +26,18 @@ class AliL3HoughTransformerLUT : public AliL3HoughBaseTransformer { void TransformCircle(); void TransformCircle(Int_t *row_range,Int_t every) { - AliL3HoughBaseTransformer::TransformCircle(row_range,every); + AliHLTHoughBaseTransformer::TransformCircle(row_range,every); } Int_t GetEtaIndex(Double_t eta) const; - AliL3Histogram *GetHistogram(Int_t etaIndex); + AliHLTHistogram *GetHistogram(Int_t etaIndex); Double_t GetEta(Int_t etaIndex,Int_t slice) const; void Print(); void Init(Int_t slice=0,Int_t patch=0,Int_t nEtaSegments=100,Int_t nSeqs=-1); protected: - AliL3Histogram **fParamSpace; //! + AliHLTHistogram **fParamSpace; //! void DeleteHistograms(); @@ -78,11 +78,13 @@ class AliL3HoughTransformerLUT : public AliL3HoughBaseTransformer { Int_t FindIndex(Float_t rz2, Int_t start=-100) const; void AddCurveToHistogram(Int_t newEtaIndex=-1); - ClassDef(AliL3HoughTransformerLUT,1) //LUT Hough transformation class + ClassDef(AliHLTHoughTransformerLUT,1) //LUT Hough transformation class }; -inline Float_t AliL3HoughTransformerLUT::CalcRoverZ2(Float_t eta) const +typedef AliHLTHoughTransformerLUT AliL3HoughTransformerLUT; // for backward comaptibility + +inline Float_t AliHLTHoughTransformerLUT::CalcRoverZ2(Float_t eta) const { Float_t e=exp(2*eta); Float_t ret=(e+1)/(e-1); @@ -90,7 +92,7 @@ inline Float_t AliL3HoughTransformerLUT::CalcRoverZ2(Float_t eta) const return ret; } -inline Float_t AliL3HoughTransformerLUT::CalcEta(Float_t roverz2) const +inline Float_t AliHLTHoughTransformerLUT::CalcEta(Float_t roverz2) const { Float_t rz=sqrt(roverz2); if(fZSign<0) rz=-rz; @@ -99,17 +101,17 @@ inline Float_t AliL3HoughTransformerLUT::CalcEta(Float_t roverz2) const return ret; } -inline Float_t AliL3HoughTransformerLUT::CalcX(Int_t row) const +inline Float_t AliHLTHoughTransformerLUT::CalcX(Int_t row) const { return fLUTX[row]; } -inline Float_t AliL3HoughTransformerLUT::CalcY(Int_t pad,Int_t row) const +inline Float_t AliHLTHoughTransformerLUT::CalcY(Int_t pad,Int_t row) const { return pad*fPadPitch-fLUTY[row]; } -inline Float_t AliL3HoughTransformerLUT::CalcZ(Int_t time) const +inline Float_t AliHLTHoughTransformerLUT::CalcZ(Int_t time) const { Float_t ret=time*fTimeWidth; if(fZSign>0) ret=fZLengthPlusOff-ret; @@ -117,10 +119,10 @@ inline Float_t AliL3HoughTransformerLUT::CalcZ(Int_t time) const return ret; } -inline void AliL3HoughTransformerLUT::AddCurveToHistogram(Int_t newEtaIndex) +inline void AliHLTHoughTransformerLUT::AddCurveToHistogram(Int_t newEtaIndex) { //get correct histogrampointer - AliL3Histogram *hist = fParamSpace[fLastIndex]; + AliHLTHistogram *hist = fParamSpace[fLastIndex]; //Fill the histogram along the phirange Float_t r2=fX*fX+fY*fY; @@ -134,7 +136,7 @@ inline void AliL3HoughTransformerLUT::AddCurveToHistogram(Int_t newEtaIndex) fLastIndex=newEtaIndex; } -inline Int_t AliL3HoughTransformerLUT::FindIndex(Float_t rz2, Int_t start) const +inline Int_t AliHLTHoughTransformerLUT::FindIndex(Float_t rz2, Int_t start) const { //could improve search through devide and conquere strategy diff --git a/HLT/hough/AliL3HoughTransformerNew.cxx b/HLT/hough/AliHLTHoughTransformerNew.cxx similarity index 50% rename from HLT/hough/AliL3HoughTransformerNew.cxx rename to HLT/hough/AliHLTHoughTransformerNew.cxx index f7c8a8a7a9b..c40ef758396 100644 --- a/HLT/hough/AliL3HoughTransformerNew.cxx +++ b/HLT/hough/AliHLTHoughTransformerNew.cxx @@ -3,51 +3,51 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" - -#include "AliL3Logging.h" -#include "AliL3HoughTransformerNew.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3HistogramAdaptive.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughTrack.h" -#include "AliL3SpacePointData.h" -#include "AliL3Vertex.h" -#include "AliL3Fitter.h" +#include "AliHLTStandardIncludes.h" + +#include "AliHLTLogging.h" +#include "AliHLTHoughTransformerNew.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTHistogramAdaptive.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTVertex.h" +#include "AliHLTFitter.h" #if __GNUC__ >= 3 using namespace std; #endif //_____________________________________________________________ -// AliL3HoughTransformerNew +// AliHLTHoughTransformerNew // // Hough transformation class // -ClassImp(AliL3HoughTransformerNew) +ClassImp(AliHLTHoughTransformerNew) -AliL3HoughTransformerNew::AliL3HoughTransformerNew() +AliHLTHoughTransformerNew::AliHLTHoughTransformerNew() { //default ctor fParamSpace3D=0; } -AliL3HoughTransformerNew::AliL3HoughTransformerNew(Int_t slice,Int_t patch,Int_t netasegments) : AliL3HoughTransformer(slice,patch,netasegments) +AliHLTHoughTransformerNew::AliHLTHoughTransformerNew(Int_t slice,Int_t patch,Int_t netasegments) : AliHLTHoughTransformer(slice,patch,netasegments) { //normal ctor fParamSpace3D=0; } -AliL3HoughTransformerNew::~AliL3HoughTransformerNew() +AliHLTHoughTransformerNew::~AliHLTHoughTransformerNew() { //dtor if(fParamSpace3D) delete fParamSpace3D; } -void AliL3HoughTransformerNew::CreateHistograms(Int_t nxbins,Float_t xlow,Float_t xup, +void AliHLTHoughTransformerNew::CreateHistograms(Int_t nxbins,Float_t xlow,Float_t xup, Int_t nybins,Float_t ylow,Float_t yup, Int_t nzbins,Float_t zlow,Float_t zup) { @@ -57,7 +57,7 @@ void AliL3HoughTransformerNew::CreateHistograms(Int_t nxbins,Float_t xlow,Float_ fParamSpace3D = new TH3F(name,"",nxbins,xlow,xup,nybins,ylow,yup,nzbins,zlow,zup); } -void AliL3HoughTransformerNew::Reset() +void AliHLTHoughTransformerNew::Reset() { //Reset Hough space fParamSpace3D->Reset(); @@ -65,31 +65,31 @@ void AliL3HoughTransformerNew::Reset() -void AliL3HoughTransformerNew::TransformLine(Int_t *rowrange,Float_t *phirange) +void AliHLTHoughTransformerNew::TransformLine(Int_t *rowrange,Float_t *phirange) { //Hough Transform - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) { - LOG(AliL3Log::kError,"AliL3HoughTransformerNew::TransformLine","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformerNew::TransformLine","Data") <<"No input data "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if(i < rowrange[0]) { - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); continue; } else if(i > rowrange[1]) break; if(i != (Int_t)tempPt->fRow) { - printf("AliL3HoughTransform::TransformLine : Mismatching padrow numbering\n"); + printf("AliHLTHoughTransform::TransformLine : Mismatching padrow numbering\n"); continue; } for(UInt_t j=0; jfNDigit; j++) @@ -101,15 +101,15 @@ void AliL3HoughTransformerNew::TransformLine(Int_t *rowrange,Float_t *phirange) Int_t sector,row; Float_t xyz[3]; - AliL3Transform::Slice2Sector(GetSlice(),i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); + AliHLTTransform::Slice2Sector(GetSlice(),i,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); - Float_t phi = AliL3Transform::GetPhi(xyz); + Float_t phi = AliHLTTransform::GetPhi(xyz); if(phi < phirange[0] || phi > phirange[1]) continue; - xyz[0] = xyz[0] - AliL3Transform::Row2X(rowrange[0]); - Float_t x = xyz[0] + AliL3Transform::Row2X(rowrange[0]); + xyz[0] = xyz[0] - AliHLTTransform::Row2X(rowrange[0]); + Float_t x = xyz[0] + AliHLTTransform::Row2X(rowrange[0]); Float_t r = sqrt(x*x + xyz[1]*xyz[1]); Float_t delta = atan(xyz[2]/r); for(Int_t xbin=hist->GetXaxis()->GetFirst(); xbin<=hist->GetXaxis()->GetLast(); xbin++) @@ -119,46 +119,46 @@ void AliL3HoughTransformerNew::TransformLine(Int_t *rowrange,Float_t *phirange) hist->Fill(theta,rho,delta,charge); } } - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } } -struct AliL3Digit { +struct AliHLTDigit { Int_t fRow;//padrow index Int_t fCharge;//digits charge Float_t fY;//Y coordinate of the digit Float_t fZ;//Z coordinate of the digit - AliL3Digit *fNext;//pointer to the next digit + AliHLTDigit *fNext;//pointer to the next digit }; -struct AliL3EtaContainer { +struct AliHLTEtaContainer { void *fFirst;//pointer to the first digit in a sequence void *fLast;//pointer to the last digit in a sequence }; -void AliL3HoughTransformerNew::TransformLineC(Int_t *rowrange,Float_t *phirange) +void AliHLTHoughTransformerNew::TransformLineC(Int_t *rowrange,Float_t *phirange) { //Hough Transform - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformCircleC","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformCircleC","Data") <<"No input data "<fNDigit; - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } - Int_t bound = (GetNEtaSegments()+1)*(AliL3Transform::GetNRows(GetPatch())+1); - AliL3EtaContainer *etaPt = new AliL3EtaContainer[bound]; - memset(etaPt,0,bound*sizeof(AliL3EtaContainer)); + Int_t bound = (GetNEtaSegments()+1)*(AliHLTTransform::GetNRows(GetPatch())+1); + AliHLTEtaContainer *etaPt = new AliHLTEtaContainer[bound]; + memset(etaPt,0,bound*sizeof(AliHLTEtaContainer)); - AliL3Digit *digits = new AliL3Digit[counter]; - cout<<"Allocating "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; for(UInt_t di=0; difNDigit; di++) { Int_t charge = digPt[di].fCharge; Int_t pad = digPt[di].fPad; Int_t time = digPt[di].fTime; - AliL3Transform::Slice2Sector(GetSlice(),i,sector,row); - AliL3Transform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); - Double_t eta = AliL3Transform::GetEta(xyz); + AliHLTTransform::Slice2Sector(GetSlice(),i,sector,row); + AliHLTTransform::Raw2Local(xyz,sector,row,(Int_t)pad,(Int_t)time); + Double_t eta = AliHLTTransform::GetEta(xyz); Float_t phi = atan2(xyz[1],xyz[0]); if(phi < phirange[0] || phi > phirange[1]) continue; @@ -188,38 +188,38 @@ void AliL3HoughTransformerNew::TransformLineC(Int_t *rowrange,Float_t *phirange) digits[counter].fCharge = charge; Int_t etaindex = GetEtaIndex(eta); - Int_t index = (GetNEtaSegments()+1)*(i-AliL3Transform::GetFirstRow(GetPatch())) + etaindex; + Int_t index = (GetNEtaSegments()+1)*(i-AliHLTTransform::GetFirstRow(GetPatch())) + etaindex; if(index > 0 && index < bound) { if(etaPt[index].fFirst == 0) etaPt[index].fFirst = (void*)(&digits[counter]); else - ((AliL3Digit*)(etaPt[index].fLast))->fNext = &digits[counter]; + ((AliHLTDigit*)(etaPt[index].fLast))->fNext = &digits[counter]; etaPt[index].fLast = (void*)(&digits[counter]); } counter++; } - AliL3MemHandler::UpdateRowPointer(tempPt); + AliHLTMemHandler::UpdateRowPointer(tempPt); } cout<<"Doing the combinatorics"<fNext) + for(dPt1 = (AliHLTDigit*)etaPt[index1].fFirst; dPt1 != 0; dPt1 = (AliHLTDigit*)dPt1->fNext) { for(Int_t j=i+1; j<=rowrange[1]; j++) { - Int_t index2 = (GetNEtaSegments()+1)*(j-AliL3Transform::GetFirstRow(GetPatch())) + e; + Int_t index2 = (GetNEtaSegments()+1)*(j-AliHLTTransform::GetFirstRow(GetPatch())) + e; - for(dPt2 = (AliL3Digit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliL3Digit*)dPt2->fNext) + for(dPt2 = (AliHLTDigit*)etaPt[index2].fFirst; dPt2 != 0; dPt2 = (AliHLTDigit*)dPt2->fNext) { if(dPt1->fRow == dPt2->fRow) { @@ -228,15 +228,15 @@ void AliL3HoughTransformerNew::TransformLineC(Int_t *rowrange,Float_t *phirange) } //Do the transform: - Float_t x1 = AliL3Transform::Row2X(dPt1->fRow) - AliL3Transform::Row2X(rowrange[0]); - Float_t x2 = AliL3Transform::Row2X(dPt2->fRow) - AliL3Transform::Row2X(rowrange[0]); + Float_t x1 = AliHLTTransform::Row2X(dPt1->fRow) - AliHLTTransform::Row2X(rowrange[0]); + Float_t x2 = AliHLTTransform::Row2X(dPt2->fRow) - AliHLTTransform::Row2X(rowrange[0]); Float_t y1 = dPt1->fY; Float_t y2 = dPt2->fY; Float_t theta = atan2(x2-x1,y1-y2); Float_t rho = x1*cos(theta)+y1*sin(theta); - Float_t r1 = sqrt(pow(AliL3Transform::Row2X(dPt1->fRow),2) + pow(y1,2)); + Float_t r1 = sqrt(pow(AliHLTTransform::Row2X(dPt1->fRow),2) + pow(y1,2)); Float_t delta1 = atan2(dPt1->fZ,r1); - Float_t r2 = sqrt(pow(AliL3Transform::Row2X(dPt2->fRow),2) + pow(y2,2)); + Float_t r2 = sqrt(pow(AliHLTTransform::Row2X(dPt2->fRow),2) + pow(y2,2)); Float_t delta2 = atan2(dPt2->fZ,r2); Float_t delta = (dPt1->fCharge*delta1+dPt2->fCharge*delta2)/(dPt1->fCharge+dPt2->fCharge); hist->Fill(theta,rho,delta,dPt1->fCharge+dPt2->fCharge); diff --git a/HLT/hough/AliL3HoughTransformerNew.h b/HLT/hough/AliHLTHoughTransformerNew.h similarity index 50% rename from HLT/hough/AliL3HoughTransformerNew.h rename to HLT/hough/AliHLTHoughTransformerNew.h index 3df0b6ebb75..3df78e2232a 100644 --- a/HLT/hough/AliL3HoughTransformerNew.h +++ b/HLT/hough/AliHLTHoughTransformerNew.h @@ -3,30 +3,30 @@ #ifndef ALIL3HOUGHTRANSFORMERNEW_H #define ALIL3HOUGHTRANSFORMERNEW_H -#include "AliL3RootTypes.h" -#include "AliL3HoughTransformer.h" +#include "AliHLTRootTypes.h" +#include "AliHLTHoughTransformer.h" #include -class AliL3TrackArray; -class AliL3HoughTrack; +class AliHLTTrackArray; +class AliHLTHoughTrack; -class AliL3HoughTransformerNew : public AliL3HoughTransformer { +class AliHLTHoughTransformerNew : public AliHLTHoughTransformer { public: - AliL3HoughTransformerNew(); - AliL3HoughTransformerNew(Int_t slice,Int_t patch,Int_t netasegments); - virtual ~AliL3HoughTransformerNew(); + AliHLTHoughTransformerNew(); + AliHLTHoughTransformerNew(Int_t slice,Int_t patch,Int_t netasegments); + virtual ~AliHLTHoughTransformerNew(); void Reset(); void CreateHistograms(Float_t ptmin,Float_t ptmax,Float_t pres,Int_t nybin,Float_t psi) { - AliL3HoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi); + AliHLTHoughTransformer::CreateHistograms(ptmin,ptmax,pres,nybin,psi); } void CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) { - AliL3HoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); + AliHLTHoughTransformer::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); } void CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax,Int_t nybin,Float_t ymin,Float_t ymax) { - AliL3HoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); + AliHLTHoughTransformer::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); } void CreateHistograms(Int_t nxbins,Float_t xlow,Float_t xup, Int_t nybins,Float_t ylow,Float_t yup, @@ -35,18 +35,20 @@ class AliL3HoughTransformerNew : public AliL3HoughTransformer { void TransformLineC(Int_t *rowrange,Float_t *phirange); TH3 *GetHistogram() {return fParamSpace3D;} - AliL3Histogram *GetHistogram(Int_t etaindex){ - return AliL3HoughTransformer::GetHistogram(etaindex); + AliHLTHistogram *GetHistogram(Int_t etaindex){ + return AliHLTHoughTransformer::GetHistogram(etaindex); } private: TH3 *fParamSpace3D;//Histogram containing the hough space - ClassDef(AliL3HoughTransformerNew,1) //Normal Hough transformation class + ClassDef(AliHLTHoughTransformerNew,1) //Normal Hough transformation class }; +typedef AliHLTHoughTransformerNew AliL3HoughTransformerNew; // for backward comaptibility + #endif diff --git a/HLT/hough/AliL3HoughTransformerRow.cxx b/HLT/hough/AliHLTHoughTransformerRow.cxx similarity index 76% rename from HLT/hough/AliL3HoughTransformerRow.cxx rename to HLT/hough/AliHLTHoughTransformerRow.cxx index cf5a6c1bdca..88780ea581d 100644 --- a/HLT/hough/AliL3HoughTransformerRow.cxx +++ b/HLT/hough/AliHLTHoughTransformerRow.cxx @@ -3,39 +3,39 @@ // Author: Cvetan Cheshkov -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3HistogramAdaptive.h" -#include "AliL3HoughTrack.h" -#include "AliL3HoughTransformerRow.h" +#include "AliHLTLogging.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTHistogramAdaptive.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTHoughTransformerRow.h" #if __GNUC__ >= 3 using namespace std; #endif //_____________________________________________________________ -// AliL3HoughTransformerRow +// AliHLTHoughTransformerRow // // Impelementation of the so called "TPC rows Hough transformation" class // // Transforms the TPC data into the hough space and counts the missed TPC // rows corresponding to each track cnadidate - hough space bin -ClassImp(AliL3HoughTransformerRow) +ClassImp(AliHLTHoughTransformerRow) -Float_t AliL3HoughTransformerRow::fgBeta1 = 1.0/AliL3Transform::Row2X(84); -Float_t AliL3HoughTransformerRow::fgBeta2 = 1.0/(AliL3Transform::Row2X(158)*(1.0+tan(AliL3Transform::Pi()*10/180)*tan(AliL3Transform::Pi()*10/180))); -Float_t AliL3HoughTransformerRow::fgDAlpha = 0.22; -Float_t AliL3HoughTransformerRow::fgDEta = 0.40; -Double_t AliL3HoughTransformerRow::fgEtaCalcParam1 = 1.0289; -Double_t AliL3HoughTransformerRow::fgEtaCalcParam2 = 0.15192; -Double_t AliL3HoughTransformerRow::fgEtaCalcParam3 = 1./(32.*600.*600.); +Float_t AliHLTHoughTransformerRow::fgBeta1 = 1.0/AliHLTTransform::Row2X(84); +Float_t AliHLTHoughTransformerRow::fgBeta2 = 1.0/(AliHLTTransform::Row2X(158)*(1.0+tan(AliHLTTransform::Pi()*10/180)*tan(AliHLTTransform::Pi()*10/180))); +Float_t AliHLTHoughTransformerRow::fgDAlpha = 0.22; +Float_t AliHLTHoughTransformerRow::fgDEta = 0.40; +Double_t AliHLTHoughTransformerRow::fgEtaCalcParam1 = 1.0289; +Double_t AliHLTHoughTransformerRow::fgEtaCalcParam2 = 0.15192; +Double_t AliHLTHoughTransformerRow::fgEtaCalcParam3 = 1./(32.*600.*600.); -AliL3HoughTransformerRow::AliL3HoughTransformerRow() +AliHLTHoughTransformerRow::AliHLTHoughTransformerRow() { //Default constructor fParamSpace = 0; @@ -62,7 +62,7 @@ AliL3HoughTransformerRow::AliL3HoughTransformerRow() } -AliL3HoughTransformerRow::AliL3HoughTransformerRow(Int_t slice,Int_t patch,Int_t netasegments,Bool_t /*DoMC*/,Float_t zvertex) : AliL3HoughBaseTransformer(slice,patch,netasegments,zvertex) +AliHLTHoughTransformerRow::AliHLTHoughTransformerRow(Int_t slice,Int_t patch,Int_t netasegments,Bool_t /*DoMC*/,Float_t zvertex) : AliHLTHoughBaseTransformer(slice,patch,netasegments,zvertex) { //Normal constructor fParamSpace = 0; @@ -90,7 +90,7 @@ AliL3HoughTransformerRow::AliL3HoughTransformerRow(Int_t slice,Int_t patch,Int_t } -AliL3HoughTransformerRow::~AliL3HoughTransformerRow() +AliHLTHoughTransformerRow::~AliHLTHoughTransformerRow() { //Destructor if(fLastTransformer) return; @@ -180,7 +180,7 @@ AliL3HoughTransformerRow::~AliL3HoughTransformerRow() } if(fStartPadParams) { - for(Int_t i = AliL3Transform::GetFirstRow(0); i<=AliL3Transform::GetLastRow(5); i++) + for(Int_t i = AliHLTTransform::GetFirstRow(0); i<=AliHLTTransform::GetLastRow(5); i++) { if(!fStartPadParams[i]) continue; delete [] fStartPadParams[i]; @@ -190,7 +190,7 @@ AliL3HoughTransformerRow::~AliL3HoughTransformerRow() } if(fEndPadParams) { - for(Int_t i = AliL3Transform::GetFirstRow(0); i<=AliL3Transform::GetLastRow(5); i++) + for(Int_t i = AliHLTTransform::GetFirstRow(0); i<=AliHLTTransform::GetLastRow(5); i++) { if(!fEndPadParams[i]) continue; delete [] fEndPadParams[i]; @@ -200,7 +200,7 @@ AliL3HoughTransformerRow::~AliL3HoughTransformerRow() } if(fLUTr) { - for(Int_t i = AliL3Transform::GetFirstRow(0); i<=AliL3Transform::GetLastRow(5); i++) + for(Int_t i = AliHLTTransform::GetFirstRow(0); i<=AliHLTTransform::GetLastRow(5); i++) { if(!fLUTr[i]) continue; delete [] fLUTr[i]; @@ -220,7 +220,7 @@ AliL3HoughTransformerRow::~AliL3HoughTransformerRow() } } -void AliL3HoughTransformerRow::DeleteHistograms() +void AliHLTHoughTransformerRow::DeleteHistograms() { // Clean up if(!fParamSpace) @@ -233,7 +233,7 @@ void AliL3HoughTransformerRow::DeleteHistograms() delete [] fParamSpace; } -struct AliL3TrackLength { +struct AliHLTTrackLength { // Structure is used for temporarely storage of the LUT // which contains the track lengths associated to each hough // space bin @@ -243,7 +243,7 @@ struct AliL3TrackLength { Float_t fTrackPt; // Pt of the track }; -void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, +void AliHLTHoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, Int_t nybin,Float_t ymin,Float_t ymax) { //Create the histograms (parameter space) @@ -251,38 +251,38 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t //nybin = #bins in Y //xmin xmax ymin ymax = histogram limits in X and Y if(fLastTransformer) { - SetTransformerArrays((AliL3HoughTransformerRow *)fLastTransformer); + SetTransformerArrays((AliHLTHoughTransformerRow *)fLastTransformer); return; } - fParamSpace = new AliL3Histogram*[GetNEtaSegments()]; + fParamSpace = new AliHLTHistogram*[GetNEtaSegments()]; Char_t histname[256]; for(Int_t i=0; iGetNbinsX()+3)/2; Int_t ncellsy = (hist->GetNbinsY()+3)/2; Int_t ncells = ncellsx*ncellsy; if(!fTrackID) { - LOG(AliL3Log::kInformational,"AliL3HoughTransformerRow::CreateHistograms()","") - <<"Transformer: Allocating "<GetNbinsX()+2)*(hist->GetNbinsY()+2); if(!fGapCount) { - LOG(AliL3Log::kInformational,"AliL3HoughTransformerRow::CreateHistograms()","") + LOG(AliHLTLog::kInformational,"AliHLTHoughTransformerRow::CreateHistograms()","") <<"Transformer: Allocating "<GetNbinsY()+2; if(!fNextRow) { - LOG(AliL3Log::kInformational,"AliL3HoughTransformerRow::CreateHistograms()","") + LOG(AliHLTLog::kInformational,"AliHLTHoughTransformerRow::CreateHistograms()","") <<"Transformer: Allocating "<GetFirstXbin(); Int_t xmax = hist->GetLastXbin(); Int_t xmiddle = (hist->GetNbinsX()+1)/2; @@ -348,8 +348,8 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t Int_t nxgrid = (hist->GetNbinsX()+3)/2+1; Int_t nygrid = hist->GetNbinsY()+3; - AliL3TrackLength *tracklength = new AliL3TrackLength[nxgrid*nygrid]; - memset(tracklength,0,nxgrid*nygrid*sizeof(AliL3TrackLength)); + AliHLTTrackLength *tracklength = new AliHLTTrackLength[nxgrid*nygrid]; + memset(tracklength,0,nxgrid*nygrid*sizeof(AliHLTTrackLength)); for(Int_t ybin=ymin-1; ybin<=(ymax+1); ybin++) { @@ -359,7 +359,7 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t for(Int_t deltay = 0; deltay <= 1; deltay++) { for(Int_t deltax = 0; deltax <= 1; deltax++) { - AliL3TrackLength *curtracklength = &tracklength[(xbin + deltax) + (ybin + deltay)*nxgrid]; + AliHLTTrackLength *curtracklength = &tracklength[(xbin + deltax) + (ybin + deltay)*nxgrid]; UInt_t maxfirstrow = 0; UInt_t maxlastrow = 0; Float_t maxtrackpt = 0; @@ -376,7 +376,7 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t Float_t kappa = 2.0*(xtrack*cos(psi)-fgBeta1*sin(psi)); track.SetTrackParameters(kappa,psi,1); maxtrackpt = track.GetPt(); - if(maxtrackpt < 0.9*0.1*AliL3Transform::GetSolenoidField()) + if(maxtrackpt < 0.9*0.1*AliHLTTransform::GetSolenoidField()) { maxfirstrow = maxlastrow = 0; curtracklength->fIsFilled = kTRUE; @@ -394,11 +394,11 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t Double_t centery = track.GetCenterY(); Double_t radius = track.GetRadius(); - for(Int_t j=AliL3Transform::GetFirstRow(0); j<=AliL3Transform::GetLastRow(5); j++) + for(Int_t j=AliHLTTransform::GetFirstRow(0); j<=AliHLTTransform::GetLastRow(5); j++) { Float_t hit[3]; // if(!track.GetCrossingPoint(j,hit)) continue; - hit[0] = AliL3Transform::Row2X(j); + hit[0] = AliHLTTransform::Row2X(j); Double_t aa = (hit[0] - centerx)*(hit[0] - centerx); Double_t r2 = radius*radius; if(aa > r2) @@ -412,9 +412,9 @@ void AliL3HoughTransformerRow::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t hit[2] = 0; - AliL3Transform::LocHLT2Raw(hit,0,j); + AliHLTTransform::LocHLT2Raw(hit,0,j); hit[1] += 0.5; - if(hit[1]>=0 && hit[1]=0 && hit[1]GetNbinsX()+2; Int_t firstbin = hist->GetFirstYbin(); Int_t lastbin = hist->GetLastYbin(); - for(Int_t i=AliL3Transform::GetFirstRow(0); i<=AliL3Transform::GetLastRow(5); i++) + for(Int_t i=AliHLTTransform::GetFirstRow(0); i<=AliHLTTransform::GetLastRow(5); i++) { - Int_t npads = AliL3Transform::GetNPads(i); - Int_t ipatch = AliL3Transform::GetPatch(i); - Double_t padpitch = AliL3Transform::GetPadPitchWidth(ipatch); - Float_t x = AliL3Transform::Row2X(i); + Int_t npads = AliHLTTransform::GetNPads(i); + Int_t ipatch = AliHLTTransform::GetPatch(i); + Double_t padpitch = AliHLTTransform::GetPadPitchWidth(ipatch); + Float_t x = AliHLTTransform::Row2X(i); Float_t x2 = x*x; - fStartPadParams[i] = new AliL3PadHoughParams[npads]; - fEndPadParams[i] = new AliL3PadHoughParams[npads]; + fStartPadParams[i] = new AliHLTPadHoughParams[npads]; + fEndPadParams[i] = new AliHLTPadHoughParams[npads]; fLUTr[i] = new Float_t[npads]; for(Int_t pad=0; padGetNbinsX()+3)/2; Int_t ncellsy = (hist->GetNbinsY()+3)/2; Int_t ncells = ncellsx*ncellsy; for(Int_t i=0; iGetNbinsX()+2)*(hist->GetNbinsY()+2); for(Int_t i=0; i= GetNEtaSegments() || etaindex < 0) @@ -656,7 +656,7 @@ inline AliL3Histogram *AliL3HoughTransformerRow::GetHistogram(Int_t etaindex) return fParamSpace[etaindex]; } -Double_t AliL3HoughTransformerRow::GetEta(Int_t etaindex,Int_t /*slice*/) const +Double_t AliHLTHoughTransformerRow::GetEta(Int_t etaindex,Int_t /*slice*/) const { // Return eta calculated in the middle of the eta slice Double_t etaslice = (GetEtaMax()-GetEtaMin())/GetNEtaSegments(); @@ -665,7 +665,7 @@ Double_t AliL3HoughTransformerRow::GetEta(Int_t etaindex,Int_t /*slice*/) const return eta; } -void AliL3HoughTransformerRow::TransformCircle() +void AliHLTHoughTransformerRow::TransformCircle() { // This method contains the hough transformation // Depending on the option selected, it reads as an input @@ -676,7 +676,7 @@ void AliL3HoughTransformerRow::TransformCircle() else if(fTPCRawStream) TransformCircleFromRawStream(); } -void AliL3HoughTransformerRow::TransformCircleFromDigitArray() +void AliHLTHoughTransformerRow::TransformCircleFromDigitArray() { //Do the Hough Transform @@ -692,7 +692,7 @@ void AliL3HoughTransformerRow::TransformCircleFromDigitArray() Int_t lowerthreshold = GetLowerThreshold(); //Assumes that all the etaslice histos are the same! - AliL3Histogram *h = fParamSpace[0]; + AliHLTHistogram *h = fParamSpace[0]; Int_t firstbiny = h->GetFirstYbin(); Int_t firstbinx = h->GetFirstXbin(); Int_t lastbinx = h->GetLastXbin(); @@ -700,12 +700,12 @@ void AliL3HoughTransformerRow::TransformCircleFromDigitArray() UChar_t lastpad; Int_t lastetaindex=-1; - AliL3EtaRow *etaclust = new AliL3EtaRow[netasegments]; + AliHLTEtaRow *etaclust = new AliHLTEtaRow[netasegments]; - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) { - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformCircle","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformCircle","Data") <<"No input data "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if((Int_t)i != (Int_t)tempPt->fRow) { - LOG(AliL3Log::kError,"AliL3HoughTransformerRow::TransformCircle","Data") - <<"AliL3HoughTransform::TransformCircle : Mismatching padrow numbering "<<(Int_t)i<<" "<<(Int_t)tempPt->fRow<fRow<GetFirstYbin(); Int_t firstbinx = h->GetFirstXbin(); Int_t lastbinx = h->GetLastXbin(); Int_t nbinx = h->GetNbinsX()+2; Int_t lastetaindex = -1; - AliL3EtaRow *etaclust = new AliL3EtaRow[netasegments]; + AliHLTEtaRow *etaclust = new AliHLTEtaRow[netasegments]; if(!fTPCRawStream) { - LOG(AliL3Log::kError,"AliL3HoughTransformer::TransformCircle","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformer::TransformCircle","Data") <<"No input data "<GetSector(); Int_t row=fTPCRawStream->GetRow(); Int_t slice,srow; - AliL3Transform::Sector2Slice(slice,srow,sector,row); + AliHLTTransform::Sector2Slice(slice,srow,sector,row); if(slice!=islice){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Slice") - <GetPad(); /* if((pad<0)||(pad>=(npads+1))){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Pad") - <GetTime(); /* if((time<0)||(time>=ntimebins)){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Time") - < GetNEtaSegments()) { - LOG(AliL3Log::kWarning,"AliL3HoughTransformerRow::GetTrackID","Data") + LOG(AliHLTLog::kWarning,"AliHLTHoughTransformerRow::GetTrackID","Data") <<"Wrong etaindex "<FindLabelBin(alpha1,alpha2); if(bin==-1) { - LOG(AliL3Log::kWarning,"AliL3HoughTransformerRow::GetTrackID()","") + LOG(AliHLTLog::kWarning,"AliHLTHoughTransformerRow::GetTrackID()","") <<"Track candidate outside Hough space boundaries: "<FindBin(alpha1,alpha2); if(bin==-1) { - LOG(AliL3Log::kWarning,"AliL3HoughTransformerRow::GetTrackLength()","") + LOG(AliHLTLog::kWarning,"AliHLTHoughTransformerRow::GetTrackLength()","") <<"Track candidate outside Hough space boundaries: "<fAlpha; Float_t deltaalpha1 = startparams->fDeltaAlpha; @@ -1153,7 +1153,7 @@ inline void AliL3HoughTransformerRow::FillCluster(UChar_t i,Int_t etaindex,AliL3 if(binx2>lastbinx) binx2 = lastbinx; #ifdef do_mc if(binx2lastbinx) binx2 = lastbinx; #ifdef do_mc if(binx2 //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" -#include "AliL3DigitData.h" -#include "AliL3HoughTransformerVhdl.h" -#include "AliL3FFloat.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTDigitData.h" +#include "AliHLTHoughTransformerVhdl.h" +#include "AliHLTFFloat.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3HoughTransformerVhdl +/** \class AliHLTHoughTransformerVhdl //
 //_____________________________________________________________
-// AliL3HoughTransformerVhdl
+// AliHLTHoughTransformerVhdl
 //
 // Hough transformation class for VHDL comparism.
 //
 //
*/ -ClassImp(AliL3HoughTransformerVhdl) +ClassImp(AliHLTHoughTransformerVhdl) -AliL3HoughTransformerVhdl::AliL3HoughTransformerVhdl() - : AliL3HoughTransformerLUT() +AliHLTHoughTransformerVhdl::AliHLTHoughTransformerVhdl() + : AliHLTHoughTransformerLUT() { //default ctor @@ -41,8 +41,8 @@ AliL3HoughTransformerVhdl::AliL3HoughTransformerVhdl() fIts=0; } -AliL3HoughTransformerVhdl::AliL3HoughTransformerVhdl(Int_t slice,Int_t patch,Int_t netasegments,Int_t nits) - : AliL3HoughTransformerLUT(slice,patch,netasegments) +AliHLTHoughTransformerVhdl::AliHLTHoughTransformerVhdl(Int_t slice,Int_t patch,Int_t netasegments,Int_t nits) + : AliHLTHoughTransformerLUT(slice,patch,netasegments) { //normal ctor fEpsilon=0; @@ -51,22 +51,22 @@ AliL3HoughTransformerVhdl::AliL3HoughTransformerVhdl(Int_t slice,Int_t patch,Int fIts=nits; } -AliL3HoughTransformerVhdl::~AliL3HoughTransformerVhdl() +AliHLTHoughTransformerVhdl::~AliHLTHoughTransformerVhdl() { //dtor } -void AliL3HoughTransformerVhdl::CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) +void AliHLTHoughTransformerVhdl::CreateHistograms(Int_t nxbin,Float_t ptmin,Int_t nybin,Float_t phimin,Float_t phimax) { //Create histograms containing the hough space - AliL3HoughTransformerLUT::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); + AliHLTHoughTransformerLUT::CreateHistograms(nxbin,ptmin,nybin,phimin,phimax); } -void AliL3HoughTransformerVhdl::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, +void AliHLTHoughTransformerVhdl::CreateHistograms(Int_t nxbin,Float_t xmin,Float_t xmax, Int_t nybin,Float_t ymin,Float_t ymax) { //Create histograms containing the hough space - AliL3HoughTransformerLUT::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); + AliHLTHoughTransformerLUT::CreateHistograms(nxbin,xmin,xmax,nybin,ymin,ymax); fEpsilon=(ymax-ymin)/nybin; fSinEpsilon=sin(fEpsilon); @@ -81,13 +81,13 @@ void AliL3HoughTransformerVhdl::CreateHistograms(Int_t nxbin,Float_t xmin,Float_ //cout << fEpsilon << " - " << (xmax-xmin)/nxbin << endl; } -void AliL3HoughTransformerVhdl::Init(Int_t slice,Int_t patch,Int_t netasegments,Int_t /*nits*/) +void AliHLTHoughTransformerVhdl::Init(Int_t slice,Int_t patch,Int_t netasegments,Int_t /*nits*/) { //Init hough transformer - AliL3HoughTransformerLUT::Init(slice,patch,netasegments); + AliHLTHoughTransformerLUT::Init(slice,patch,netasegments); } -void AliL3HoughTransformerVhdl::TransformCircle() +void AliHLTHoughTransformerVhdl::TransformCircle() { //Transform the input data with a circle HT. //The function loops over all the data, and transforms each pixel with the equation: @@ -101,10 +101,10 @@ void AliL3HoughTransformerVhdl::TransformCircle() //and the proper histogram index is found by GetEtaIndex(eta). - AliL3DigitRowData *tempPt = GetDataPointer(); + AliHLTDigitRowData *tempPt = GetDataPointer(); if(!tempPt) { - LOG(AliL3Log::kError,"AliL3HoughTransformerVhdl::TransformCircle","Data") + LOG(AliHLTLog::kError,"AliHLTHoughTransformerVhdl::TransformCircle","Data") <<"No input data "<fDigitData; + AliHLTDigitData *digPt = tempPt->fDigitData; if(i != (Int_t)tempPt->fRow) { - LOG(AliL3Log::kError,"AliL3HoughTransformerVhdl::TransformCircle","Data") - <<"AliL3HoughTransformerLUT::TransformCircle : Mismatching padrow numbering "< -//*-- Copyright © ALICE HLT Group - -#include "AliL3StandardIncludes.h" - -#include "AliL3Logging.h" -#include "AliL3HoughTrack.h" -#include "AliL3HoughGlobalMerger.h" -#include "AliL3Track.h" -#include "AliL3TrackArray.h" -#include "AliL3Transform.h" - -//_____________________________________________________________ -// Merging Hough tracks across slices - -ClassImp(AliL3HoughGlobalMerger) - -AliL3HoughGlobalMerger::AliL3HoughGlobalMerger() -{ - fTracks = 0; -} - -AliL3HoughGlobalMerger::AliL3HoughGlobalMerger(Int_t first,Int_t last) -{ - fNSlices = last-first+1; - fTracks = new AliL3TrackArray*[fNSlices]; - for(Int_t i=0; iAddTracks(tracks,kTRUE,slice); - -} - -void AliL3HoughGlobalMerger::Merge() -{ - for(Int_t slice=0; sliceGetNTracks(); i++) - { - - } - } - -} diff --git a/HLT/hough/AliL3HoughGlobalMerger.h b/HLT/hough/AliL3HoughGlobalMerger.h deleted file mode 100644 index ea8edd27973..00000000000 --- a/HLT/hough/AliL3HoughGlobalMerger.h +++ /dev/null @@ -1,28 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3_HOUGHGLOBALMERGER_H -#define ALIL3_HOUGHGLOBALMERGER_H - -#include "AliL3Merger.h" - -class AliL3TrackArray; -class AliL3Track; - -class AliL3HoughGlobalMerger { - - private: - AliL3TrackArray **fTracks; //! - Int_t fNSlices; - - public: - AliL3HoughGlobalMerger(); - AliL3HoughGlobalMerger(Int_t first,Int_t last); - virtual ~AliL3HoughGlobalMerger(); - - void FillTracks(AliL3TrackArray *tracks,Int_t i); - void Merge(); - - ClassDef(AliL3HoughGlobalMerger,1) -}; - -#endif diff --git a/HLT/hough/AliL3HoughIntMerger.h b/HLT/hough/AliL3HoughIntMerger.h deleted file mode 100644 index 8469564b7d7..00000000000 --- a/HLT/hough/AliL3HoughIntMerger.h +++ /dev/null @@ -1,40 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3HOUGHINTMERGER_H -#define ALIL3HOUGHINTMERGER_H - -#include "AliL3Merger.h" - -class AliL3HoughTrack; -class AliL3Track; -class AliL3TrackArray; - -class AliL3HoughIntMerger : public AliL3Merger { - - public: - AliL3HoughIntMerger(); - virtual ~AliL3HoughIntMerger(); - - - AliL3Track *MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack); - Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack); - void FillTracks(AliL3TrackArray *tracks); - void Init(Int_t *row,Int_t p){fRowMin=row[0];fRowMax=row[1];fPatch=p;} - Int_t Merge(); - void MMerge(); //Loop over tracks from different subsectors - void SetParameters(Double_t maxkappa=0.001, Double_t maxpsi=0.05, Double_t maxtgl=0.1); - void SortTracks(AliL3Track **tracks, Int_t ntrack) const; - void Print(AliL3Track **tracks); - - private: - Int_t fPatch;//Index of the current patch - Int_t fRowMin;//First padrow inside the patch - Int_t fRowMax;//Last padrow inside the patch - Double_t fMaxKappa;//Maximum track curvature - Double_t fMaxPhi0;//Maximum phi0?? - Double_t fMaxTgl;//?? - - ClassDef(AliL3HoughIntMerger,1) -}; - -#endif diff --git a/HLT/hough/AliL3HoughLinkDef.h b/HLT/hough/AliL3HoughLinkDef.h deleted file mode 100644 index 7389df00e25..00000000000 --- a/HLT/hough/AliL3HoughLinkDef.h +++ /dev/null @@ -1,38 +0,0 @@ -// @(#) $Id$ - -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ class AliL3Hough; -#pragma link C++ class AliL3HoughBaseTransformer; -#pragma link C++ class AliL3HoughTransformer; -#pragma link C++ class AliL3HoughTransformerLUT; -#pragma link C++ class AliL3HoughTransformerVhdl; -#pragma link C++ class AliL3HoughTransformerNew; -#pragma link C++ class AliL3HoughTransformerRow; -#ifndef macosx -#pragma link C++ class AliL3HoughTrack; -#pragma link C++ class AliL3HoughKalmanTrack; -#endif -#pragma link C++ class AliL3HoughMaxFinder; -#pragma link C++ class AliL3HoughEval; -#pragma link C++ class AliL3Histogram; -#pragma link C++ class AliL3Histogram1D; -#pragma link C++ class AliL3HoughMerger; -#pragma link C++ class AliL3HoughIntMerger; -#pragma link C++ class AliL3HoughGlobalMerger; -#pragma link C++ class AliL3HoughDisplay; -#pragma link C++ class AliL3HoughClusterTransformer; -#pragma link C++ class AliL3HistogramAdaptive; -#ifndef macosx -#pragma link C++ class AliL3HoughTest; -#endif - -#ifdef use_aliroot -#pragma link C++ class AliL3HoughTransformerGlobal; -#endif - -#endif diff --git a/HLT/hough/AliL3HoughMerger.h b/HLT/hough/AliL3HoughMerger.h deleted file mode 100644 index 9562aeffd3b..00000000000 --- a/HLT/hough/AliL3HoughMerger.h +++ /dev/null @@ -1,47 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3HOUGHMERGER_H -#define ALIL3HOUGHMERGER_H - -#include "AliL3RootTypes.h" -#include "AliL3Merger.h" - -class AliL3TrackArray; -class AliL3Track; - -class AliL3HoughMerger : public AliL3Merger { - - public: - AliL3HoughMerger(); - AliL3HoughMerger(Int_t nsubsectors); - virtual ~AliL3HoughMerger(); - - virtual Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack); - virtual AliL3Track *MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack); - virtual void AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track); - void FillTracks(AliL3TrackArray *tracks,Int_t patch); - - void MergePatches(Bool_t slow=kTRUE); - void MergeEtaSlices(Int_t /*patch*/) {}; - void MergeTracks(AliL3TrackArray */*intracks*/,Int_t /*i*/,Int_t /*j*/) {}; - void Print(AliL3Track **tracks); - void SetParameters(Double_t maxkappa=0.001, Double_t maxpsi=0.05,Double_t maxphi0=0.1); - - private: - Double_t fMaxY;//maximum Y - Double_t fMaxZ;//maximum Z - Double_t fMaxKappa;//maximum track curvature - Double_t fMaxPsi;//maximum track emission angle - Double_t fMaxTgl;//?? - Double_t fMaxPhi0;//?? - Bool_t fSlow;//?? - - void Merge(); - Int_t Merge(AliL3TrackArray* mergedtrack,AliL3TrackArray *tracksin,AliL3TrackArray *tracksout); - void SlowMerge(AliL3TrackArray *mergedtrack,AliL3TrackArray *tracksin,AliL3TrackArray *tracksout,Double_t xval); - - ClassDef(AliL3HoughMerger,1) //Patch merger for Hough tracklets - -}; - -#endif diff --git a/HLT/hough/AliL3HoughTest.h b/HLT/hough/AliL3HoughTest.h deleted file mode 100644 index d057c54afdc..00000000000 --- a/HLT/hough/AliL3HoughTest.h +++ /dev/null @@ -1,55 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3HOUGHTEST_H -#define ALIL3HOUGHTEST_H - -#include "AliL3RootTypes.h" - -struct AliL3SimData { - Int_t fPads[10][10];//maximum 10 pads width - Int_t fNPads; //number of pads - Int_t fMinpad; //?? - Int_t fMintime; //?? -}; - -class AliL3Histogram; -class TH2; -class TH3; -class AliL3TrackArray; - -class AliL3HoughTest { - - public: - - AliL3HoughTest(); - virtual ~AliL3HoughTest(); - - Bool_t GenerateTrackData(Double_t pt,Double_t psi,Double_t tgl,Int_t sign,Int_t patch,Int_t minhits); - void FillImage(TH2 *hist,Int_t row=-1); - void Transform2Circle(AliL3Histogram *hist); - void Transform2CircleC(AliL3Histogram *hist); - void Transform2CircleF(AliL3Histogram *hist); - void Transform2Line(AliL3Histogram *hist,Int_t *rowrange); - void Transform2LineC(AliL3Histogram *hist,Int_t *rowrange); - void Transform2Line3D(TH3 *hist,Int_t *rowrange,Float_t *phirange); - void Transform2LineC3D(TH3 *hist,Int_t *rowrange); - void TransformLines2Circle(TH3 *hist,AliL3TrackArray *tracks); - void Transform2Center(AliL3Histogram *hist); - - void FindAbsMaxima(TH3 *hist,Int_t zsearch,Float_t &maxx,Float_t &maxy,Float_t &maxz,Int_t &maxvalue) const; - - private: - AliL3SimData *fData; //?? - Int_t fCurrentPatch; //index of the current patch - - ClassDef(AliL3HoughTest,1) //Hough transform base class -}; - -#endif - - - - - - - diff --git a/HLT/hough/Makefile b/HLT/hough/Makefile index c0ff61c47af..aad557975c6 100644 --- a/HLT/hough/Makefile +++ b/HLT/hough/Makefile @@ -6,7 +6,7 @@ # Constantin Loizides # ################################ -MODNAME = AliL3Hough +MODNAME = AliHLTHough ifndef ALIHLT_TOPDIR ALIHLT_TOPDIR = $(shell pwd)/.. @@ -14,25 +14,25 @@ endif include $(ALIHLT_TOPDIR)/Makefile.conf -SRCS = AliL3HoughTransformer.cxx AliL3HoughClusterTransformer.cxx \ - AliL3HoughEval.cxx AliL3HoughMerger.cxx AliL3HoughBaseTransformer.cxx \ - AliL3HoughIntMerger.cxx AliL3HoughGlobalMerger.cxx AliL3HoughTransformerVhdl.cxx \ - AliL3Histogram.cxx AliL3Histogram1D.cxx AliL3HoughMaxFinder.cxx AliL3Hough.cxx \ - AliL3HoughTransformerLUT.cxx AliL3HoughTransformerRow.cxx AliL3HistogramAdaptive.cxx +SRCS = AliHLTHoughTransformer.cxx AliHLTHoughClusterTransformer.cxx \ + AliHLTHoughEval.cxx AliHLTHoughMerger.cxx AliHLTHoughBaseTransformer.cxx \ + AliHLTHoughIntMerger.cxx AliHLTHoughGlobalMerger.cxx AliHLTHoughTransformerVhdl.cxx \ + AliHLTHistogram.cxx AliHLTHistogram1D.cxx AliHLTHoughMaxFinder.cxx AliHLTHough.cxx \ + AliHLTHoughTransformerLUT.cxx AliHLTHoughTransformerRow.cxx AliHLTHistogramAdaptive.cxx ifneq ($(ARCH),macosx) ## for macosx put into src as symbolic link -SRCS += AliL3HoughTrack.cxx +SRCS += AliHLTHoughTrack.cxx endif ifeq ($(ALIHLT_USEPACKAGE),ROOT) -SRCS += AliL3HoughDisplay.cxx AliL3HoughTest.cxx AliL3HoughTransformerNew.cxx AliL3HoughTransformerGlobal.cxx +SRCS += AliHLTHoughDisplay.cxx AliHLTHoughTest.cxx AliHLTHoughTransformerNew.cxx AliHLTHoughTransformerGlobal.cxx HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(DICTO) endif ifeq ($(ALIHLT_USEPACKAGE),ALIROOT) -SRCS += AliL3HoughDisplay.cxx AliL3HoughTest.cxx AliL3HoughTransformerNew.cxx AliL3HoughTransformerGlobal.cxx +SRCS += AliHLTHoughDisplay.cxx AliHLTHoughTest.cxx AliHLTHoughTransformerNew.cxx AliHLTHoughTransformerGlobal.cxx HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(DICTO) endif diff --git a/HLT/kalman/AliL3Kalman.cxx b/HLT/kalman/AliHLTKalman.cxx similarity index 73% rename from HLT/kalman/AliL3Kalman.cxx rename to HLT/kalman/AliHLTKalman.cxx index 20fe3f665c3..bb8fc6e6c9e 100644 --- a/HLT/kalman/AliL3Kalman.cxx +++ b/HLT/kalman/AliHLTKalman.cxx @@ -1,33 +1,33 @@ // $Id$ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" #include #include #include -#include "AliL3Track.h" -#include "AliL3KalmanTrack.h" -#include "AliL3Benchmark.h" -#include "AliL3MemHandler.h" -#include "AliL3FileHandler.h" -#include "AliL3DataHandler.h" -#include "AliL3Transform.h" -#include "AliL3SpacePointData.h" -#include "AliL3DigitData.h" -#include "AliL3Logging.h" -#include "AliL3TrackArray.h" -#include "AliL3TrackSegmentData.h" -#include "AliL3InterMerger.h" -#include "AliL3TrackMerger.h" -#include "AliL3Kalman.h" +#include "AliHLTTrack.h" +#include "AliHLTKalmanTrack.h" +#include "AliHLTBenchmark.h" +#include "AliHLTMemHandler.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDataHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTDigitData.h" +#include "AliHLTLogging.h" +#include "AliHLTTrackArray.h" +#include "AliHLTTrackSegmentData.h" +#include "AliHLTInterMerger.h" +#include "AliHLTTrackMerger.h" +#include "AliHLTKalman.h" /* - AliL3Kalman + AliHLTKalman */ -ClassImp(AliL3Kalman) +ClassImp(AliHLTKalman) -AliL3Kalman::AliL3Kalman(Char_t *datapath, Int_t *slice, Int_t min_clusters = 0){ +AliHLTKalman::AliHLTKalman(Char_t *datapath, Int_t *slice, Int_t min_clusters = 0){ // Constructor if (slice) { @@ -48,24 +48,24 @@ AliL3Kalman::AliL3Kalman(Char_t *datapath, Int_t *slice, Int_t min_clusters = 0) // NB! fNrow under only for single-patch, must include other possibilities // later on. ?? Maybe better also to put it in an Init-function fRow[0][0] = 0; - fRow[0][1] = AliL3Transform::GetLastRow(-1); + fRow[0][1] = AliHLTTransform::GetLastRow(-1); fWriteOut = kTRUE; fBenchmark = 0; } -AliL3Kalman::~AliL3Kalman() +AliHLTKalman::~AliHLTKalman() { // Destructor if (fBenchmark) delete fBenchmark; } -void AliL3Kalman::Init() +void AliHLTKalman::Init() { - fBenchmark = new AliL3Benchmark(); + fBenchmark = new AliHLTBenchmark(); } -void AliL3Kalman::LoadTracks(Int_t event, Bool_t sp) +void AliHLTKalman::LoadTracks(Int_t event, Bool_t sp) { // Load space points and tracks from conformal tracker // Must also be possible to take seeds (and clusters) from Hough-transform?? @@ -76,10 +76,10 @@ void AliL3Kalman::LoadTracks(Int_t event, Bool_t sp) // Load space points Char_t fname[1024]; - AliL3FileHandler *clusterfile[36][6]; + AliHLTFileHandler *clusterfile[36][6]; for(Int_t s=fMinSlice; s<=fMaxSlice; s++) { - for(Int_t p=0; pSetBinaryInput(fname)) { - LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open") + LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open") <<"Inputfile "<Allocate(); + fClusters[s][p] = (AliHLTSpacePointData*)clusterfile[s][p]->Allocate(); clusterfile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]); clusterfile[s][p]->CloseBinaryInput(); if(sp==kTRUE) @@ -113,26 +113,26 @@ void AliL3Kalman::LoadTracks(Int_t event, Bool_t sp) // Load tracks //sprintf(fname,"%s/kalmantracks_%d.raw",fPath,event); sprintf(fname,"%s/tracks_%d.raw",fPath,event); - AliL3FileHandler *tfile = new AliL3FileHandler(); + AliHLTFileHandler *tfile = new AliHLTFileHandler(); if(!tfile->SetBinaryInput(fname)){ - LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open") + LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open") <<"Inputfile "<Binary2TrackArray(fTracks); tfile->CloseBinaryInput(); delete tfile; fBenchmark->Stop("Load tracks"); cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Kalman::LoadTracks()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTKalman::LoadTracks()","Timing") <<"Loading tracks in "<QSort(); - fKalmanTracks = new AliL3TrackArray(); + fKalmanTracks = new AliHLTTrackArray(); // Make a ntuple to store state vector, covariance matrix and chisquare // Will eventually not need a TTree?? @@ -163,11 +163,11 @@ void AliL3Kalman::ProcessTracks() initTime = GetCpuTime(); fBenchmark->Start("Process tracks");*/ - AliL3Track *track = (AliL3Track*)fTracks->GetCheckedTrack(iTrack); + AliHLTTrack *track = (AliHLTTrack*)fTracks->GetCheckedTrack(iTrack); if (!track) continue; if (track->GetNumberOfPoints() < fMinPointsOnTrack) continue; - AliL3KalmanTrack *kalmantrack = new AliL3KalmanTrack(); + AliHLTKalmanTrack *kalmantrack = new AliHLTKalmanTrack(); Bool_t save = kTRUE; @@ -217,14 +217,14 @@ void AliL3Kalman::ProcessTracks() meas[20] = chisq; // Add the track to the trackarray - AliL3Track *outtrack = (AliL3Track*)fKalmanTracks->NextTrack(); + AliHLTTrack *outtrack = (AliHLTTrack*)fKalmanTracks->NextTrack(); outtrack->Set(track); // SET THE PARAMETERS ACCORDING TO KALMAN FILTER outtrack->SetTgl(x[3]); // The factor 2 in the expression for Pt is not included in the similar offline expression. However // it should be like this if I use a factor 1/2 in the calculation of par4?? - //outtrack->SetPt(1/(2*TMath::Abs(1e-9*TMath::Abs(x[4])/x[4] + x[4])/(0.0029980*AliL3Transform::GetBField()))); - //outtrack->SetPt(1/(TMath::Abs(x[4])/0.0029980*AliL3Transform::GetBField())); + //outtrack->SetPt(1/(2*TMath::Abs(1e-9*TMath::Abs(x[4])/x[4] + x[4])/(0.0029980*AliHLTTransform::GetBField()))); + //outtrack->SetPt(1/(TMath::Abs(x[4])/0.0029980*AliHLTTransform::GetBField())); outtrack->SetPsi(x[2]); //outtrack->Set(track); @@ -238,20 +238,20 @@ void AliL3Kalman::ProcessTracks() /*fBenchmark->Stop("Process tracks"); cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Kalman::ProcessTracks()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTKalman::ProcessTracks()","Timing") <<"Processed track "<Stop("Process tracks"); cpuTime = GetCpuTime() - initTime; - LOG(AliL3Log::kInformational,"AliL3Kalman::ProcessTracks()","Timing") + LOG(AliHLTLog::kInformational,"AliHLTKalman::ProcessTracks()","Timing") <<"Process tracks in "<SetBinaryOutput(tname); mem->TrackArray2Binary(fKalmanTracks); mem->CloseBinaryOutput(); @@ -267,7 +267,7 @@ void AliL3Kalman::ProcessTracks() } -Int_t AliL3Kalman::MakeKalmanSeed(AliL3KalmanTrack *kalmantrack, AliL3Track *track) +Int_t AliHLTKalman::MakeKalmanSeed(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track) { Int_t num_of_clusters = track->GetNumberOfPoints(); @@ -278,24 +278,24 @@ Int_t AliL3Kalman::MakeKalmanSeed(AliL3KalmanTrack *kalmantrack, AliL3Track *tra Int_t slice0 = (id>>25) & 0x7f; Int_t patch0 = (id>>22) & 0x7; UInt_t pos0 = id&0x3fffff; - AliL3SpacePointData *points0 = fClusters[slice0][patch0]; + AliHLTSpacePointData *points0 = fClusters[slice0][patch0]; id = hitnum[Int_t(num_of_clusters/2)]; Int_t slice1 = (id>>25) & 0x7f; Int_t patch1 = (id>>22) & 0x7; UInt_t pos1 = id&0x3fffff; - AliL3SpacePointData *points1 = fClusters[slice1][patch1]; + AliHLTSpacePointData *points1 = fClusters[slice1][patch1]; id = hitnum[num_of_clusters-1]; Int_t slice2 = (id>>25) & 0x7f; Int_t patch2 = (id>>22) & 0x7; UInt_t pos2 = id&0x3fffff; - AliL3SpacePointData *points2 = fClusters[slice2][patch2]; + AliHLTSpacePointData *points2 = fClusters[slice2][patch2]; return kalmantrack->MakeSeed(track, points0, pos0, slice0, points1, pos1, slice1, points2, pos2, slice2); } -Int_t AliL3Kalman::InitKalmanTrack(AliL3KalmanTrack *kalmantrack, AliL3Track *track) +Int_t AliHLTKalman::InitKalmanTrack(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track) { UInt_t *hitnum = track->GetHitNumbers(); UInt_t id; @@ -304,12 +304,12 @@ Int_t AliL3Kalman::InitKalmanTrack(AliL3KalmanTrack *kalmantrack, AliL3Track *tr Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; return kalmantrack->Init(track, points, pos, slice); } -Int_t AliL3Kalman::Propagate(AliL3KalmanTrack *kalmantrack, AliL3Track *track) +Int_t AliHLTKalman::Propagate(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track) { // This function propagtes the kalmantrack to the next cluster of the loaded // track @@ -326,7 +326,7 @@ Int_t AliL3Kalman::Propagate(AliL3KalmanTrack *kalmantrack, AliL3Track *track) Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; if (!points) continue; if (kalmantrack->Propagate(points,pos,slice) == 0) { @@ -340,7 +340,7 @@ Int_t AliL3Kalman::Propagate(AliL3KalmanTrack *kalmantrack, AliL3Track *track) return 1; } -Double_t AliL3Kalman::GetCpuTime() +Double_t AliHLTKalman::GetCpuTime() { //Return the Cputime in seconds. struct timeval tv; diff --git a/HLT/kalman/AliHLTKalman.h b/HLT/kalman/AliHLTKalman.h new file mode 100644 index 00000000000..afab1f7c298 --- /dev/null +++ b/HLT/kalman/AliHLTKalman.h @@ -0,0 +1,52 @@ +// @(#) $Id$ + +#ifndef ALIL3_KALMAN +#define ALIL3_KALMAN + + +class AliHLTSpacePointData; +class AliHLTTrackArray; +class AliHLTBenchmark; +class AliHLTTrackSegmentData; +class AliHLTKalmanTrack; +class AliHLTTrack; + +class AliHLTKalman { + + private: + + Int_t fMinSlice; + Int_t fMaxSlice; + AliHLTSpacePointData *fClusters[36][6]; + Char_t fPath[1024]; + UInt_t fNcl[36][6]; + AliHLTTrackArray *fTracks; + AliHLTTrackArray *fKalmanTracks; + AliHLTTrackArray *fSeeds; + + AliHLTBenchmark *fBenchmark; + Int_t fMinPointsOnTrack; + Int_t fRow[6][2]; + Char_t fWriteOutPath[256]; + Bool_t fWriteOut; + Int_t fEvent; + + public: + + AliHLTKalman(Char_t *datapath, Int_t *slice, Int_t min_clusters); + virtual ~AliHLTKalman(); + void Init(); + void LoadTracks(Int_t event, Bool_t sp); + void ProcessTracks(); + Int_t MakeKalmanSeed(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track); + Int_t InitKalmanTrack(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track); + Int_t Propagate(AliHLTKalmanTrack *kalmantrack, AliHLTTrack *track); + Int_t Update(AliHLTSpacePointData *points, UInt_t pos, AliHLTKalmanTrack *kalmantrack); + void WriteFiles(Char_t *path="data"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);} + Double_t GetCpuTime(); + AliHLTTrackArray *GetTracks() {return fKalmanTracks;} +}; + +typedef AliHLTKalman AliL3Kalman; // for backward compatibility + +#endif diff --git a/HLT/kalman/AliHLTKalmanLinkDef.h b/HLT/kalman/AliHLTKalmanLinkDef.h new file mode 100644 index 00000000000..e5534a96342 --- /dev/null +++ b/HLT/kalman/AliHLTKalmanLinkDef.h @@ -0,0 +1,13 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ typedef AliL3Kalman; +#pragma link C++ typedef AliL3KalmanTrack; + +#pragma link C++ class AliHLTKalman; +#pragma link C++ class AliHLTKalmanTrack; + +#endif diff --git a/HLT/kalman/AliL3KalmanTrack.cxx b/HLT/kalman/AliHLTKalmanTrack.cxx similarity index 89% rename from HLT/kalman/AliL3KalmanTrack.cxx rename to HLT/kalman/AliHLTKalmanTrack.cxx index 10214fe734b..21757102074 100644 --- a/HLT/kalman/AliL3KalmanTrack.cxx +++ b/HLT/kalman/AliHLTKalmanTrack.cxx @@ -1,9 +1,9 @@ #include "TMath.h" -#include "AliL3KalmanTrack.h" -#include "AliL3SpacePointData.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3StandardIncludes.h" +#include "AliHLTKalmanTrack.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTStandardIncludes.h" // includes for offline comparison, will be removed #include "AliTPCtrack.h" @@ -12,11 +12,11 @@ #include "Riostream.h" -ClassImp(AliL3KalmanTrack) +ClassImp(AliHLTKalmanTrack) // Class for kalman tracks -AliL3KalmanTrack::AliL3KalmanTrack() +AliHLTKalmanTrack::AliHLTKalmanTrack() { fX = 0; @@ -24,31 +24,31 @@ AliL3KalmanTrack::AliL3KalmanTrack() // Constructor } -AliL3KalmanTrack::~AliL3KalmanTrack() +AliHLTKalmanTrack::~AliHLTKalmanTrack() { // Destructor } -Int_t AliL3KalmanTrack::MakeSeed(AliL3Track *track, AliL3SpacePointData *points0, UInt_t pos0, Int_t slice0, AliL3SpacePointData *points1, UInt_t pos1, Int_t slice1, AliL3SpacePointData *points2, UInt_t pos2, Int_t slice2) +Int_t AliHLTKalmanTrack::MakeSeed(AliHLTTrack *track, AliHLTSpacePointData *points0, UInt_t pos0, Int_t slice0, AliHLTSpacePointData *points1, UInt_t pos1, Int_t slice1, AliHLTSpacePointData *points2, UInt_t pos2, Int_t slice2) { Float_t xyz[3]; xyz[0] = points0[pos0].fX; xyz[1] = points0[pos0].fY; - AliL3Transform::Global2LocHLT(xyz,slice0); + AliHLTTransform::Global2LocHLT(xyz,slice0); fX = xyz[0]; fP0 = xyz[1]; fP1 = points0[pos0].fZ; xyz[0] = points1[pos1].fX; xyz[1] = points1[pos1].fY; - AliL3Transform::Global2LocHLT(xyz,slice1); + AliHLTTransform::Global2LocHLT(xyz,slice1); Float_t x2 = xyz[0]; Float_t y2 = xyz[1]; Float_t z2 = points1[pos1].fZ; xyz[0] = points2[pos2].fX; xyz[1] = points2[pos2].fY; - AliL3Transform::Global2LocHLT(xyz,slice2); + AliHLTTransform::Global2LocHLT(xyz,slice2); Float_t x3 = 0;//xyz[0]; Float_t y3 = 0;//xyz[1]; Float_t z3 = 0;//points2[pos2].fZ; @@ -88,7 +88,7 @@ Int_t AliL3KalmanTrack::MakeSeed(AliL3Track *track, AliL3SpacePointData *points0 return 1; } -Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UInt_t pos, Int_t slice) +Int_t AliHLTKalmanTrack::Init(AliHLTTrack *track, AliHLTSpacePointData *points, UInt_t pos, Int_t slice) { // Can also find seed for x4 by track->CalculateHelix() and fP4 = track->GetKappa() @@ -98,7 +98,7 @@ Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UIn Float_t xyz[3]; xyz[0] = points[pos].fX; xyz[1] = points[pos].fY; - AliL3Transform::Global2LocHLT(xyz,slice); + AliHLTTransform::Global2LocHLT(xyz,slice); fX = xyz[0]; @@ -111,8 +111,8 @@ Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UIn // Is this consistent with what's used in AliTPCtrack and AliTPCtracker ?? // Except for the factor 0.5, it is somewhat consistent with the calculation of Pt in AliTPCtrack. // When I plot fP4, it is more consistent with offline if the factor 1/2 is included. - //fP4 = (-track->GetCharge()*1./(track->GetPt()/(0.0029980*AliL3Transform::GetBField()))); - fP4 = 0.5*(-track->GetCharge()*1./(track->GetPt()/(0.0029980*AliL3Transform::GetBField()))); + //fP4 = (-track->GetCharge()*1./(track->GetPt()/(0.0029980*AliHLTTransform::GetBField()))); + fP4 = 0.5*(-track->GetCharge()*1./(track->GetPt()/(0.0029980*AliHLTTransform::GetBField()))); //cout << fP4 << endl; //fP4 = 0.5*track->GetKappa(); if (TMath::Abs(fP4) >= 0.0066) return 0; // From AliTPCtrackerMI @@ -120,10 +120,10 @@ Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UIn /*Float_t firstXY[2]; firstXY[0] = track->GetFirstPointX(); firstXY[1] = track->GetFirstPointY(); - AliL3Transform::Global2LocHLT(firstXY,slice); + AliHLTTransform::Global2LocHLT(firstXY,slice); */ - //Float_t centerX = track->GetFirstPointX() - ((track->GetPt()/(0.0029980*AliL3Transform::GetBField())) * TMath::Cos(track->GetPsi() + track->GetCharge() * 0.5 * 3.14159265358979323846)); - //Float_t centerX = firstXY[0] - ((track->GetPt()/(0.0029980*AliL3Transform::GetBField())) * TMath::Cos(track->GetPsi() + track->GetCharge() * 0.5 * 3.14159265358979323846)); + //Float_t centerX = track->GetFirstPointX() - ((track->GetPt()/(0.0029980*AliHLTTransform::GetBField())) * TMath::Cos(track->GetPsi() + track->GetCharge() * 0.5 * 3.14159265358979323846)); + //Float_t centerX = firstXY[0] - ((track->GetPt()/(0.0029980*AliHLTTransform::GetBField())) * TMath::Cos(track->GetPsi() + track->GetCharge() * 0.5 * 3.14159265358979323846)); //fP2 = fP4*centerX; // Curvature times center of curvature // track->GetPointPsi() is almost always zero, why??. Still it's good for seed. @@ -135,7 +135,7 @@ Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UIn return 0; } - //cout << "AliL3KalmanTrack::Init, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; + //cout << "AliHLTKalmanTrack::Init, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; //Float_t num = 12; fC00 = points[pos].fSigmaY2; @@ -158,7 +158,7 @@ Int_t AliL3KalmanTrack::Init(AliL3Track *track, AliL3SpacePointData *points, UIn return 1; } -Int_t AliL3KalmanTrack::Propagate(AliL3SpacePointData *points, UInt_t pos, Int_t slice) +Int_t AliHLTKalmanTrack::Propagate(AliHLTSpacePointData *points, UInt_t pos, Int_t slice) { // Propagates track to the plane of the next found cluster Float_t Xold = fX; // X position for previous space point @@ -190,8 +190,8 @@ Int_t AliL3KalmanTrack::Propagate(AliL3SpacePointData *points, UInt_t pos, Int_t xyz[0] = points[pos].fX; xyz[1] = points[pos].fY; - //AliL3Transform::Global2Local(xyz,slice); - AliL3Transform::Global2LocHLT(xyz,slice); + //AliHLTTransform::Global2Local(xyz,slice); + AliHLTTransform::Global2LocHLT(xyz,slice); Float_t Xnew = xyz[0]; Float_t dx = Xnew - Xold; //cout << Xnew << endl; @@ -342,7 +342,7 @@ Int_t AliL3KalmanTrack::Propagate(AliL3SpacePointData *points, UInt_t pos, Int_t //return UpdateTrack(points, pos, slice); } -Int_t AliL3KalmanTrack::UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int_t slice) +Int_t AliHLTKalmanTrack::UpdateTrack(AliHLTSpacePointData *points, UInt_t pos, Int_t slice) { // Update the track parameters with the measured values @@ -351,8 +351,8 @@ Int_t AliL3KalmanTrack::UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int xyz[0] = points[pos].fX; xyz[1] = points[pos].fY; - //AliL3Transform::Global2Local(xyz,slice); - AliL3Transform::Global2LocHLT(xyz,slice); + //AliHLTTransform::Global2Local(xyz,slice); + AliHLTTransform::Global2LocHLT(xyz,slice); //fX = points[pos].fX; fX = xyz[0]; @@ -415,7 +415,7 @@ Int_t AliL3KalmanTrack::UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int fP2 = eta; fP3 += k30*dy + k31*dz; //cout << "update " << fP3 << endl; fP4 = cur; - //cout << "AliL3KalmanTrack::Update, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; + //cout << "AliHLTKalmanTrack::Update, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; //cout << "Measured, " << points[pos].fY << " " << points[pos].fZ << endl; Float_t c10 = fC10; @@ -467,7 +467,7 @@ Int_t AliL3KalmanTrack::UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int /* sigmaY2 = sigmaY2*det; sigmaZ2 = sigmaZ2*det; sigmaYZ = sigmaYZ*det;*/ - //cout << "AliL3KalmanTrack::Update, Chi2 = " << GetChisq() << endl; + //cout << "AliHLTKalmanTrack::Update, Chi2 = " << GetChisq() << endl; //cout << "AliKalmanTrack::Update, sigmaY2 = " << sigmaY2 << " sigmaZ2 = " << sigmaZ2 << " sigmaYZ = " << sigmaYZ << " dy = " << dy << " dz = " << dz << endl; // Calculate increase of chisquare @@ -482,8 +482,8 @@ Int_t AliL3KalmanTrack::UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int return 1; } -//Float_t AliL3KalmanTrack::GetChisqIncrement(AliL3SpacePointData *points, UInt_t pos) -Float_t AliL3KalmanTrack::GetChisqIncrement(Float_t y, Float_t error_y, Float_t z, Float_t error_z) +//Float_t AliHLTKalmanTrack::GetChisqIncrement(AliHLTSpacePointData *points, UInt_t pos) +Float_t AliHLTKalmanTrack::GetChisqIncrement(Float_t y, Float_t error_y, Float_t z, Float_t error_z) { // This function calculates a predicted chi2 increment. //----------------------------------------------------------------- @@ -505,7 +505,7 @@ Float_t AliL3KalmanTrack::GetChisqIncrement(Float_t y, Float_t error_y, Float_t return (dy*r00*dy + 2*r01*dy*dz + dz*r11*dz)/det; } -Float_t AliL3KalmanTrack::f2(Float_t x1,Float_t y1, +Float_t AliHLTKalmanTrack::f2(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t x3,Float_t y3) { @@ -524,7 +524,7 @@ Float_t AliL3KalmanTrack::f2(Float_t x1,Float_t y1, return -a/(d*y1-b)*xr/sqrt(xr*xr+yr*yr); } -Float_t AliL3KalmanTrack::f3(Float_t x1,Float_t y1, +Float_t AliHLTKalmanTrack::f3(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t z1,Float_t z2) { @@ -535,7 +535,7 @@ Float_t AliL3KalmanTrack::f3(Float_t x1,Float_t y1, return (z1 - z2)/sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } -Float_t AliL3KalmanTrack::f4(Float_t x1,Float_t y1, +Float_t AliHLTKalmanTrack::f4(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t x3,Float_t y3) { @@ -554,10 +554,10 @@ Float_t AliL3KalmanTrack::f4(Float_t x1,Float_t y1, return -xr*yr/sqrt(xr*xr+yr*yr); } -void AliL3KalmanTrack::Set(AliL3KalmanTrack *track) +void AliHLTKalmanTrack::Set(AliHLTKalmanTrack *track) { - AliL3KalmanTrack *tpt = (AliL3KalmanTrack*)track; + AliHLTKalmanTrack *tpt = (AliHLTKalmanTrack*)track; SetX0(tpt->GetX0()); SetX1(tpt->GetX1()); SetX2(tpt->GetX2()); @@ -583,7 +583,7 @@ void AliL3KalmanTrack::Set(AliL3KalmanTrack *track) SetNHits(tpt->GetNHits()); } -Int_t AliL3KalmanTrack::PropagateOfflineTrack(Double_t x, Double_t y, Double_t z, Double_t ey, Double_t ez) +Int_t AliHLTKalmanTrack::PropagateOfflineTrack(Double_t x, Double_t y, Double_t z, Double_t ey, Double_t ez) { // Propagates track to the plane of the next found cluster Float_t Xold = fX; // X position for previous space point @@ -732,7 +732,7 @@ Int_t AliL3KalmanTrack::PropagateOfflineTrack(Double_t x, Double_t y, Double_t z } -Int_t AliL3KalmanTrack::UpdateOfflineTrack(Double_t x, Double_t y, Double_t z, Double_t ey, Double_t ez) +Int_t AliHLTKalmanTrack::UpdateOfflineTrack(Double_t x, Double_t y, Double_t z, Double_t ey, Double_t ez) { // Update the track parameters with the measured values //fX = x; @@ -780,7 +780,7 @@ Int_t AliL3KalmanTrack::UpdateOfflineTrack(Double_t x, Double_t y, Double_t z, D fP2 = eta; fP3 += k30*dy + k31*dz; //cout << "update " << fP3 << endl; fP4 = cur; - //cout << "AliL3KalmanTrack::Update, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; + //cout << "AliHLTKalmanTrack::Update, " << fP0 << " " << fP1 << " " << fP2 << " " << fP3 << " " << fP4 << endl; //cout << "Measured, " << points[pos].fY << " " << points[pos].fZ << endl; Float_t c01 = fC10; @@ -808,12 +808,12 @@ Int_t AliL3KalmanTrack::UpdateOfflineTrack(Double_t x, Double_t y, Double_t z, D fC44 -= k40*c04 + k41*c14; - //cout << "AliL3KalmanTrack::Update, error " << fC00 << " " << fC11 << " " << fC22 << " " << fC33 << " " << fC44 << endl; + //cout << "AliHLTKalmanTrack::Update, error " << fC00 << " " << fC11 << " " << fC22 << " " << fC33 << " " << fC44 << endl; sigmaY2 = sigmaY2*det; sigmaZ2 = sigmaZ2*det; sigmaYZ = sigmaYZ*det; - //cout << "AliL3KalmanTrack::Update, Chi2 = " << GetChisq() << endl; + //cout << "AliHLTKalmanTrack::Update, Chi2 = " << GetChisq() << endl; fChisq = GetChisq() + GetChisqIncrementOfflineTrack(y,z,ey,ez); //cout << "fChisq = " << fChisq << endl; @@ -825,7 +825,7 @@ Int_t AliL3KalmanTrack::UpdateOfflineTrack(Double_t x, Double_t y, Double_t z, D } -Float_t AliL3KalmanTrack::GetChisqIncrementOfflineTrack(Double_t y, Double_t z, Double_t ey, Double_t ez) +Float_t AliHLTKalmanTrack::GetChisqIncrementOfflineTrack(Double_t y, Double_t z, Double_t ey, Double_t ez) { // This function calculates a predicted chi2 increment. //----------------------------------------------------------------- diff --git a/HLT/kalman/AliL3KalmanTrack.h b/HLT/kalman/AliHLTKalmanTrack.h similarity index 83% rename from HLT/kalman/AliL3KalmanTrack.h rename to HLT/kalman/AliHLTKalmanTrack.h index de3b124fd29..8da173430d2 100644 --- a/HLT/kalman/AliL3KalmanTrack.h +++ b/HLT/kalman/AliHLTKalmanTrack.h @@ -22,17 +22,17 @@ * GetCovariance(Float_t xx[15]) */ -#include "AliL3RootTypes.h" -#include "AliL3Track.h" +#include "AliHLTRootTypes.h" +#include "AliHLTTrack.h" // includes for offline comparison, will be removed #include "AliTPCtrack.h" // includes for offline comparison, will be removed -class AliL3SpacePointData; +class AliHLTSpacePointData; -class AliL3KalmanTrack : public AliL3Track { -//class AliL3KalmanTrack { +class AliHLTKalmanTrack : public AliHLTTrack { +//class AliHLTKalmanTrack { private: @@ -57,13 +57,13 @@ class AliL3KalmanTrack : public AliL3Track { public: - AliL3KalmanTrack(); - virtual ~AliL3KalmanTrack(); -Int_t MakeSeed(AliL3Track *track, AliL3SpacePointData *points0, UInt_t pos0, Int_t slice0, AliL3SpacePointData *points1, UInt_t pos1, Int_t slice1, AliL3SpacePointData *points2, UInt_t pos2, Int_t slice2); - Int_t Init(AliL3Track *track, AliL3SpacePointData *points, UInt_t pos,Int_t slice); - Int_t Propagate(AliL3SpacePointData *points, UInt_t pos, Int_t slice); - Int_t UpdateTrack(AliL3SpacePointData *points, UInt_t pos, Int_t slice); - Int_t UpdateTrackII(AliL3SpacePointData *points, UInt_t pos); + AliHLTKalmanTrack(); + virtual ~AliHLTKalmanTrack(); +Int_t MakeSeed(AliHLTTrack *track, AliHLTSpacePointData *points0, UInt_t pos0, Int_t slice0, AliHLTSpacePointData *points1, UInt_t pos1, Int_t slice1, AliHLTSpacePointData *points2, UInt_t pos2, Int_t slice2); + Int_t Init(AliHLTTrack *track, AliHLTSpacePointData *points, UInt_t pos,Int_t slice); + Int_t Propagate(AliHLTSpacePointData *points, UInt_t pos, Int_t slice); + Int_t UpdateTrack(AliHLTSpacePointData *points, UInt_t pos, Int_t slice); + Int_t UpdateTrackII(AliHLTSpacePointData *points, UInt_t pos); void AddTrack(); // Float_t GetStateVector(Float_t xx[5]) const { void GetStateVector(Float_t xx[5]) const { @@ -138,12 +138,12 @@ Int_t MakeSeed(AliL3Track *track, AliL3SpacePointData *points0, UInt_t pos0, Int fC44 = f[14];} void SetChisq(Float_t f) {fChisq = f;} void SetMaxChi2(Float_t f) {fMaxChi2 = f;} - //Float_t GetChisqIncrement(AliL3SpacePointData *points, UInt_t pos); + //Float_t GetChisqIncrement(AliHLTSpacePointData *points, UInt_t pos); Float_t GetChisqIncrement(Float_t y, Float_t error_y, Float_t z, Float_t error_z); Float_t f2(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t x3,Float_t y3); Float_t f3(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t z1,Float_t z2); Float_t f4(Float_t x1,Float_t y1, Float_t x2,Float_t y2, Float_t x3,Float_t y3); - void Set(AliL3KalmanTrack *track); + void Set(AliHLTKalmanTrack *track); Int_t GetNHits() const {return fNHits;} void SetNHits(Int_t f) {fNHits = f;} @@ -154,4 +154,6 @@ Int_t MakeSeed(AliL3Track *track, AliL3SpacePointData *points0, UInt_t pos0, Int }; +typedef AliHLTKalmanTrack AliL3KalmanTrack; // for backward compatibility + #endif diff --git a/HLT/kalman/AliL3Kalman.h b/HLT/kalman/AliL3Kalman.h deleted file mode 100644 index 29fadcdf320..00000000000 --- a/HLT/kalman/AliL3Kalman.h +++ /dev/null @@ -1,50 +0,0 @@ -// @(#) $Id$ - -#ifndef ALIL3_KALMAN -#define ALIL3_KALMAN - - -class AliL3SpacePointData; -class AliL3TrackArray; -class AliL3Benchmark; -class AliL3TrackSegmentData; -class AliL3KalmanTrack; -class AliL3Track; - -class AliL3Kalman { - - private: - - Int_t fMinSlice; - Int_t fMaxSlice; - AliL3SpacePointData *fClusters[36][6]; - Char_t fPath[1024]; - UInt_t fNcl[36][6]; - AliL3TrackArray *fTracks; - AliL3TrackArray *fKalmanTracks; - AliL3TrackArray *fSeeds; - - AliL3Benchmark *fBenchmark; - Int_t fMinPointsOnTrack; - Int_t fRow[6][2]; - Char_t fWriteOutPath[256]; - Bool_t fWriteOut; - Int_t fEvent; - - public: - - AliL3Kalman(Char_t *datapath, Int_t *slice, Int_t min_clusters); - virtual ~AliL3Kalman(); - void Init(); - void LoadTracks(Int_t event, Bool_t sp); - void ProcessTracks(); - Int_t MakeKalmanSeed(AliL3KalmanTrack *kalmantrack, AliL3Track *track); - Int_t InitKalmanTrack(AliL3KalmanTrack *kalmantrack, AliL3Track *track); - Int_t Propagate(AliL3KalmanTrack *kalmantrack, AliL3Track *track); - Int_t Update(AliL3SpacePointData *points, UInt_t pos, AliL3KalmanTrack *kalmantrack); - void WriteFiles(Char_t *path="data"){fWriteOut = kTRUE; sprintf(fWriteOutPath,"%s",path);} - Double_t GetCpuTime(); - AliL3TrackArray *GetTracks() {return fKalmanTracks;} -}; - -#endif diff --git a/HLT/kalman/AliL3KalmanLinkDef.h b/HLT/kalman/AliL3KalmanLinkDef.h deleted file mode 100644 index 1b16c6babda..00000000000 --- a/HLT/kalman/AliL3KalmanLinkDef.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ class AliL3Kalman; -#pragma link C++ class AliL3KalmanTrack; - -#endif diff --git a/HLT/kalman/Makefile b/HLT/kalman/Makefile index 012f12fb96f..253be7f1d00 100644 --- a/HLT/kalman/Makefile +++ b/HLT/kalman/Makefile @@ -6,7 +6,7 @@ # Constantin Loizides # ################################ -MODNAME = AliL3Kalman +MODNAME = AliHLTKalman ifndef ALIHLT_TOPDIR ALIHLT_TOPDIR = $(shell pwd)/.. @@ -14,7 +14,7 @@ endif include $(ALIHLT_TOPDIR)/Makefile.conf -SRCS = AliL3Kalman.cxx AliL3KalmanTrack.cxx +SRCS = AliHLTKalman.cxx AliHLTKalmanTrack.cxx ifeq ($(ALIHLT_USEPACKAGE),ROOT) HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h diff --git a/HLT/libAliL3Comp.pkg b/HLT/libAliL3Comp.pkg deleted file mode 100644 index 45d04d15f13..00000000000 --- a/HLT/libAliL3Comp.pkg +++ /dev/null @@ -1,28 +0,0 @@ -#-*- Mode: Makefile -*- -# $Id$ - -include HLT/hlt.conf - -SRCS:= comp/AliL3ClusterFitter.cxx \ -comp/AliL3Compress.cxx \ -comp/AliL3DataCompressor.cxx \ -comp/AliL3DataCompressorHelper.cxx \ -comp/AliL3ModelTrack.cxx \ -comp/AliL3Modeller.cxx \ -comp/AliL3OfflineDataCompressor.cxx \ -comp/AliL3CompressAC.cxx - -CSRCS:= comp/AliL3FitUtilities.c comp/bitio.c comp/errhand.c - -HDRS:= $(SRCS:.cxx=.h) - -CHDRS:= $(CSRCS:.c=.h) - -DHDR:= comp/AliL3CompLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE+= HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/libAliL3Hough.pkg b/HLT/libAliL3Hough.pkg deleted file mode 100644 index b5783b7d8d4..00000000000 --- a/HLT/libAliL3Hough.pkg +++ /dev/null @@ -1,38 +0,0 @@ -#-*- Mode: Makefile -*- -# $Id$ - -include HLT/hlt.conf - -SRCS:= hough/AliL3Histogram.cxx \ -hough/AliL3Histogram1D.cxx \ -hough/AliL3HistogramAdaptive.cxx \ -hough/AliL3Hough.cxx \ -hough/AliL3HoughBaseTransformer.cxx \ -hough/AliL3HoughClusterTransformer.cxx \ -hough/AliL3HoughDisplay.cxx \ -hough/AliL3HoughEval.cxx \ -hough/AliL3HoughGlobalMerger.cxx \ -hough/AliL3HoughIntMerger.cxx \ -hough/AliL3HoughMaxFinder.cxx \ -hough/AliL3HoughMerger.cxx \ -hough/AliL3HoughTest.cxx \ -hough/AliL3HoughTrack.cxx \ -hough/AliL3HoughKalmanTrack.cxx \ -hough/AliL3HoughTransformer.cxx \ -hough/AliL3HoughTransformerGlobal.cxx \ -hough/AliL3HoughTransformerLUT.cxx \ -hough/AliL3HoughTransformerNew.cxx \ -hough/AliL3HoughTransformerRow.cxx \ -hough/AliL3HoughTransformerVhdl.cxx - - -HDRS:= $(SRCS:.cxx=.h) $(HLTEHDRS) - -DHDR:= hough/AliL3HoughLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE+= HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/libAliL3ITS.pkg b/HLT/libAliL3ITS.pkg deleted file mode 100644 index 7daedf63ee9..00000000000 --- a/HLT/libAliL3ITS.pkg +++ /dev/null @@ -1,16 +0,0 @@ -#-*- Mode: Makefile -*- - -include HLT/hlt.conf - -SRCS:= ITS/AliL3ITStrack.cxx ITS/AliL3ITStracker.cxx ITS/AliL3ITSVertexerZ.cxx ITS/AliL3ITSclusterer.cxx - -HDRS:= $(SRCS:.cxx=.h) $(HLTEHDRS) - -DHDR:= ITS/AliL3ITSLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE += HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/libAliL3MUON.pkg b/HLT/libAliL3MUON.pkg deleted file mode 100644 index b07981613e0..00000000000 --- a/HLT/libAliL3MUON.pkg +++ /dev/null @@ -1,46 +0,0 @@ -#-*- Mode: Makefile -*- - -include HLT/hlt.conf - -SRCS += MUON/src/AliRoot/Region.cxx \ -MUON/src/AliRoot/Point.cxx \ -MUON/src/AliRoot/TriggerRecord.cxx \ -MUON/src/AliRoot/ADCStream.cxx \ -MUON/src/AliRoot/Track.cxx \ -MUON/src/AliRoot/ADCStreamSource.cxx \ -MUON/src/AliRoot/TriggerSource.cxx \ -MUON/src/AliRoot/ClusterSource.cxx \ -MUON/src/AliRoot/TrackSink.cxx \ -MUON/src/AliRoot/TrackerCallback.cxx \ -MUON/src/AliRoot/ClusterFinderCallback.cxx \ -MUON/src/AliRoot/MicrodHLT.cxx - -HDRS:= $(SRCS:.cxx=.hpp) \ -MUON/src/AliRoot/TrackerInterface.hpp \ -MUON/src/AliRoot/ClusterFinderInterface.hpp \ -MUON/src/AliRoot/AliHLTMUONTracker.h \ -MUON/src/AliRoot/Tracker.hpp \ -MUON/src/AliRoot/ClusterFinder.hpp \ - -SRCS += MUON/src/AliHLTMUONUtils.cxx \ -MUON/src/AliHLTMUONOutOfMemory.cxx \ -MUON/src/Version/Version.cxx \ -MUON/src/AliHLTMUONCoreRegionOfInterest.cxx \ -MUON/src/Tracking/Calculations.cxx \ -MUON/src/Tracking/MansoTracker.cxx \ -MUON/src/Clustering/CenterOfGravityFinder.cxx \ -MUON/src/AliRoot/TrackerProxy.cxx \ -MUON/src/AliRoot/ClusterFinderProxy.cxx \ -MUON/src/AliRoot/convert.cxx \ -MUON/src/AliRoot/AliHLTMUONTracker.cxx \ -MUON/src/Debug/AliHLTMUONPrint.cxx - - -DHDR:= MUON/src/AliRoot/HLTMUONLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE += HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/libAliL3Misc.pkg b/HLT/libAliL3Misc.pkg deleted file mode 100644 index 292f26fa1b0..00000000000 --- a/HLT/libAliL3Misc.pkg +++ /dev/null @@ -1,27 +0,0 @@ -#-*- Mode: Makefile -*- -# $Id$ - -include HLT/hlt.conf - -SRCS:= misc/AliL3AltroMemHandler.cxx \ -misc/AliL3DDLDataFileHandler.cxx \ -misc/AliL3DDLRawReader.cxx \ -misc/AliL3DDLRawReaderFile.cxx \ -misc/AliL3DDLTPCRawStream.cxx \ -misc/AliL3DataHandler.cxx \ -misc/AliL3FFloat.cxx \ -misc/AliL3Stopwatch.cxx \ -misc/AliL3TPCMapping.cxx \ -misc/AliL3TransBit.cxx \ -misc/AliL3VHDLClusterFinder.cxx - -HDRS:= $(SRCS:.cxx=.h) $(HLTEHDRS) - -DHDR:= misc/AliL3MiscLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE+= HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/libAliL3Src.pkg b/HLT/libAliL3Src.pkg deleted file mode 100644 index 4c4f52e82e0..00000000000 --- a/HLT/libAliL3Src.pkg +++ /dev/null @@ -1,44 +0,0 @@ -#-*- Mode: Makefile -*- -# $Id$ - -include HLT/hlt.conf - -SRCS:= src/AliL3Benchmark.cxx \ -src/AliL3ClustFinderNew.cxx \ -src/AliL3ConfMapFit.cxx \ -src/AliL3ConfMapPoint.cxx \ -src/AliL3ConfMapTrack.cxx \ -src/AliL3ConfMapper.cxx \ -src/AliL3Display.cxx \ -src/AliL3Evaluate.cxx \ -src/AliL3FileHandler.cxx \ -src/AliL3Fitter.cxx \ -src/AliL3Merger.cxx \ -src/AliL3GlobalMerger.cxx \ -src/AliL3InterMerger.cxx \ -src/AliL3Logger.cxx \ -src/AliL3MemHandler.cxx \ -src/AliL3RawDataFileHandler.cxx \ -src/AliL3Track.cxx \ -src/AliL3TrackArray.cxx \ -src/AliL3TrackMerger.cxx \ -src/AliL3Transform.cxx \ -src/AliL3Vertex.cxx \ -src/AliL3VertexArray.cxx \ -src/AliL3VertexFinder.cxx \ -src/AliLevel3.cxx \ -src/AliHLTReconstructor.cxx \ -src/AliL3TPCtracker.cxx \ -src/AliL3Log.cxx \ -src/AliL3TPCBeamTestMemHandler.cxx - -HDRS:= $(SRCS:.cxx=.h) src/AliL3SpacePointData.h - -DHDR:= src/AliL3SrcLinkDef.h - -EDEFINE := ${HLTDEFS} -PACKCXXFLAGS := ${HLTCXXFLAGS} -PACKCFLAGS := ${HLTCLFAGS} -PACKDCXXFLAGS:= ${HLTDCXXFLAGS} - -EINCLUDE += HLT/src HLT/hough HLT/comp HLT/misc HLT/ITS HLT/MUON/src TPC ITS MUON STEER RAW diff --git a/HLT/misc/AliL3AltroMemHandler.cxx b/HLT/misc/AliHLTAltroMemHandler.cxx similarity index 72% rename from HLT/misc/AliL3AltroMemHandler.cxx rename to HLT/misc/AliHLTAltroMemHandler.cxx index 3c5cb308835..5f309f5a663 100644 --- a/HLT/misc/AliL3AltroMemHandler.cxx +++ b/HLT/misc/AliHLTAltroMemHandler.cxx @@ -2,10 +2,10 @@ // Author: Constantin Loizides // *-- Copyright & copy ALICE HLT Group -/** \class AliL3AltroMemHandler +/** \class AliHLTAltroMemHandler
 //--------------------------------------------------------------------
-// AliL3AltroMemHandler
+// AliHLTAltroMemHandler
 //
 // Converts digits in memory into a backlinked ALTRO like data format.
 // Its output file is used as input to the various VHDL testbenches.
@@ -13,24 +13,24 @@
 
*/ -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3AltroMemHandler.h" -#include "AliL3Logging.h" +#include "AliHLTAltroMemHandler.h" +#include "AliHLTLogging.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3AltroMemHandler) +ClassImp(AliHLTAltroMemHandler) -AliL3AltroMemHandler::AliL3AltroMemHandler(){ +AliHLTAltroMemHandler::AliHLTAltroMemHandler(){ // default constructor Clear(); ClearRead(); }; -void AliL3AltroMemHandler::Clear(){ +void AliHLTAltroMemHandler::Clear(){ // clear everything memset(fAltroMem,0,ALTRO_SIZE); memset(fTimesPerPad,0,1024); @@ -42,7 +42,7 @@ void AliL3AltroMemHandler::Clear(){ fFlag=kFALSE; }; -void AliL3AltroMemHandler::ClearRead(){ +void AliHLTAltroMemHandler::ClearRead(){ // clears the reading fRCounter=0; fSCounter=0; @@ -51,7 +51,7 @@ void AliL3AltroMemHandler::ClearRead(){ fRTime=0; } -void AliL3AltroMemHandler::Write(UShort_t row, UChar_t pad, UShort_t time, UShort_t charge) +void AliHLTAltroMemHandler::Write(UShort_t row, UChar_t pad, UShort_t time, UShort_t charge) { // writes packets if(fTCounter==0){ @@ -69,7 +69,7 @@ void AliL3AltroMemHandler::Write(UShort_t row, UChar_t pad, UShort_t time, UShor Add(charge,time); } -void AliL3AltroMemHandler::Add(UShort_t charge, UShort_t time) +void AliHLTAltroMemHandler::Add(UShort_t charge, UShort_t time) { // adds new time and charge fTimesPerPad[fTCounter]=time; @@ -77,7 +77,7 @@ void AliL3AltroMemHandler::Add(UShort_t charge, UShort_t time) fTCounter++; } -void AliL3AltroMemHandler::MakeAltroPackets() +void AliHLTAltroMemHandler::MakeAltroPackets() { // makes Altro packets UShort_t i=0,j=0; @@ -122,7 +122,7 @@ void AliL3AltroMemHandler::MakeAltroPackets() } } -void AliL3AltroMemHandler::AddTrailer() +void AliHLTAltroMemHandler::AddTrailer() { // adds data trailer UShort_t savepcounter=fPCounter; @@ -137,7 +137,7 @@ void AliL3AltroMemHandler::AddTrailer() fAltroMem[--fCounter]=fLRow; } -void AliL3AltroMemHandler::Write() +void AliHLTAltroMemHandler::Write() { // default form of Write if(fCounter==ALTRO_SIZE) return; @@ -158,7 +158,7 @@ void AliL3AltroMemHandler::Write() } } -void AliL3AltroMemHandler::WriteFinal() +void AliHLTAltroMemHandler::WriteFinal() { // makes Altro packets and writes them if(fTCounter>0){ @@ -167,16 +167,16 @@ void AliL3AltroMemHandler::WriteFinal() } } -Bool_t AliL3AltroMemHandler::Read(UShort_t &row, UChar_t &pad, UShort_t &time, UShort_t &charge) +Bool_t AliHLTAltroMemHandler::Read(UShort_t &row, UChar_t &pad, UShort_t &time, UShort_t &charge) { // reads the packets if(fFlag==kTRUE) { - LOG(AliL3Log::kWarning,"AliL3AltroMemHandler::Read","File Open")<<"Binary not supported!"< //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3MemHandler.h" -#include "AliL3DigitData.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTMemHandler.h" +#include "AliHLTDigitData.h" #ifdef use_newio #include "AliRawReaderRoot.h" #include "AliRawReaderDate.h" #else -#include "AliL3DDLTPCRawStream.h" -#include "AliL3DDLRawReaderFile.h" +#include "AliHLTDDLTPCRawStream.h" +#include "AliHLTDDLRawReaderFile.h" #endif -#include "AliL3DDLDataFileHandler.h" +#include "AliHLTDDLDataFileHandler.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3DDLDataFileHandler +/** \class AliHLTDDLDataFileHandler
 //_____________________________________________________________
-// AliL3DDLDataFileHandler
+// AliHLTDDLDataFileHandler
 //
 //  This class does converts from the DDL format of offline
 //  into the memory I/O handling of the HLT binary files.
 //  
 //  Examples: see ddl2binary in exa and the general 
-//            AliL3MemHandler class description
+//            AliHLTMemHandler class description
 //
 
*/ -ClassImp(AliL3DDLDataFileHandler) +ClassImp(AliHLTDDLDataFileHandler) -AliL3DDLDataFileHandler::AliL3DDLDataFileHandler() +AliHLTDDLDataFileHandler::AliHLTDDLDataFileHandler() { // default constructor fReader=0; fTPCStream=0; } -AliL3DDLDataFileHandler::~AliL3DDLDataFileHandler() +AliHLTDDLDataFileHandler::~AliHLTDDLDataFileHandler() { // destructor FreeAll(); } -void AliL3DDLDataFileHandler::FreeAll() +void AliHLTDDLDataFileHandler::FreeAll() { // frees all heap memory if(fReader) delete fReader; @@ -63,7 +63,7 @@ void AliL3DDLDataFileHandler::FreeAll() #ifdef use_newio -Bool_t AliL3DDLDataFileHandler::SetReaderInput(AliRawEvent *rawevent) +Bool_t AliHLTDDLDataFileHandler::SetReaderInput(AliRawEvent *rawevent) { // sets the input of the reader fEvent=-1; @@ -76,7 +76,7 @@ Bool_t AliL3DDLDataFileHandler::SetReaderInput(AliRawEvent *rawevent) return kTRUE; } -Bool_t AliL3DDLDataFileHandler::SetReaderInput(Char_t *name,Int_t event) +Bool_t AliHLTDDLDataFileHandler::SetReaderInput(Char_t *name,Int_t event) { // sets the input of the reader fEvent=event; @@ -94,42 +94,42 @@ Bool_t AliL3DDLDataFileHandler::SetReaderInput(Char_t *name,Int_t event) return kTRUE; } #else -Bool_t AliL3DDLDataFileHandler::SetReaderInput(Char_t *name, Bool_t add) +Bool_t AliHLTDDLDataFileHandler::SetReaderInput(Char_t *name, Bool_t add) { // sets the input of the reader if(fReader){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::SetReaderInput","File Open") + LOG(AliHLTLog::kError,"AliHLTDDLDataFileHandler::SetReaderInput","File Open") <<"Reader ptr is already in use"<SetDDLID(ddls[i]); //ddl to read out #endif - Int_t zerosup = AliL3Transform::GetZeroSup(); - Int_t adcsat = AliL3Transform::GetADCSat(); + Int_t zerosup = AliHLTTransform::GetZeroSup(); + Int_t adcsat = AliHLTTransform::GetADCSat(); Int_t slice,srow; Int_t lrow=-1; @@ -238,10 +238,10 @@ AliL3DigitRowData * AliL3DDLDataFileHandler::DDLData2Memory(UInt_t &nrow,Int_t e if(fTPCStream->IsNewSector() || fTPCStream->IsNewRow()) { Int_t sector=fTPCStream->GetSector(); Int_t row=fTPCStream->GetRow(); - AliL3Transform::Sector2Slice(slice,srow,sector,row); + AliHLTTransform::Sector2Slice(slice,srow,sector,row); if(slice!=fSlice){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Slice") - <GetPad(); if(fTPCStream->IsNewPad()) { - if((pad<0)||(pad>=AliL3Transform::GetNPads(srow))){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Pad") - <=AliHLTTransform::GetNPads(srow))){ + LOG(AliHLTLog::kError,"AliHLTDDLDataFileHandler::DDLDigits2Memory","Pad") + <GetTime(); - if((time<0)||(time>=AliL3Transform::GetNTimeBins())){ - LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Time") - <=AliHLTTransform::GetNTimeBins())){ + LOG(AliHLTLog::kError,"AliHLTDDLDataFileHandler::DDLDigits2Memory","Time") + <fNDigit = ndigits[lrow]; Int_t localcount=0; - for(Int_t pad=0;pad= ndigits[lrow]) - LOG(AliL3Log::kFatal,"AliL3DDLDataFileHandler::DDLDigits2Binary","Memory") - < #else -#include "AliL3DDLRawReaderFile.h" -#include "AliL3DDLTPCRawStream.h" +#include "AliHLTDDLRawReaderFile.h" +#include "AliHLTDDLTPCRawStream.h" #endif -#include "AliL3MemHandler.h" +#include "AliHLTMemHandler.h" -class AliL3DDLDataFileHandler:public AliL3MemHandler{ +class AliHLTDDLDataFileHandler:public AliHLTMemHandler{ public: - AliL3DDLDataFileHandler(); - virtual ~AliL3DDLDataFileHandler(); + AliHLTDDLDataFileHandler(); + virtual ~AliHLTDDLDataFileHandler(); #ifdef use_newio Bool_t SetReaderInput(AliRawEvent *rawevent); Bool_t SetReaderInput(Char_t *name,Int_t event=0); Bool_t IsDigit(Int_t i=0); - AliL3DigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t /*eventmerge*/=kFALSE){return DDLData2Memory(nrow,event);}; + AliHLTDigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t /*eventmerge*/=kFALSE){return DDLData2Memory(nrow,event);}; #else Bool_t SetReaderInput(Char_t *name,Bool_t add=kTRUE); - Bool_t SetReaderInput(AliL3DDLRawReaderFile *rf); + Bool_t SetReaderInput(AliHLTDDLRawReaderFile *rf); #endif void CloseReaderInput(); - void FreeAll(); //like AliL3MemHandler::Free() or AliL3FileHandler::FreeDigitsTree + void FreeAll(); //like AliHLTMemHandler::Free() or AliHLTFileHandler::FreeDigitsTree - AliL3DigitRowData* DDLData2Memory(UInt_t &nrow,Int_t event=-1); + AliHLTDigitRowData* DDLData2Memory(UInt_t &nrow,Int_t event=-1); Bool_t DDLData2CompBinary(Int_t event=-1); AliTPCRawStream* GetTPCRawStream(){return fTPCStream;} @@ -46,10 +46,13 @@ class AliL3DDLDataFileHandler:public AliL3MemHandler{ AliRawReader *fReader; // raw reader AliTPCRawStream *fTPCStream;// TPC raw stream #else - AliL3DDLRawReaderFile *fReader; // raw reader - AliL3DDLTPCRawStream *fTPCStream; // TPC raw stream + AliHLTDDLRawReaderFile *fReader; // raw reader + AliHLTDDLTPCRawStream *fTPCStream; // TPC raw stream #endif - ClassDef(AliL3DDLDataFileHandler,1) //DDL Data Filehandler class + ClassDef(AliHLTDDLDataFileHandler,1) //DDL Data Filehandler class }; + +typedef AliHLTDDLDataFileHandler AliL3DDLDataFileHandler; // for backward compatibility + #endif diff --git a/HLT/misc/AliL3DDLRawReader.cxx b/HLT/misc/AliHLTDDLRawReader.cxx similarity index 74% rename from HLT/misc/AliL3DDLRawReader.cxx rename to HLT/misc/AliHLTDDLRawReader.cxx index 5a1e42012d4..b2f754adf22 100644 --- a/HLT/misc/AliL3DDLRawReader.cxx +++ b/HLT/misc/AliHLTDDLRawReader.cxx @@ -3,11 +3,11 @@ // Author: Constantin Loizides //*-- Copyright © ALICE HLT Group -#include "AliL3RootTypes.h" -#include "AliL3StandardIncludes.h" -#include "AliL3Logging.h" +#include "AliHLTRootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTLogging.h" -#include "AliL3DDLRawReader.h" +#include "AliHLTDDLRawReader.h" #if __GNUC__ >= 3 using namespace std; @@ -28,10 +28,10 @@ using namespace std; * provided "as is" without express or implied warranty. * **************************************************************************/ -/** \class AliL3DDLRawReader +/** \class AliHLTDDLRawReader
 //_____________________________________________________________
-// AliL3DDLRawReader (taken from the offline AliROOT code,
+// AliHLTDDLRawReader (taken from the offline AliROOT code,
 // original authors: D.Favretto and A.K.Mohanty)
 //
 // This is the base class for reading ddl raw data 
@@ -39,9 +39,9 @@ using namespace std;
 
*/ -ClassImp(AliL3DDLRawReader) +ClassImp(AliHLTDDLRawReader) -AliL3DDLRawReader::AliL3DDLRawReader() +AliHLTDDLRawReader::AliHLTDDLRawReader() { fMiniHeader = NULL; fCount = 0; @@ -50,11 +50,11 @@ AliL3DDLRawReader::AliL3DDLRawReader() fSelectMaxDDLID = -1; } -AliL3DDLRawReader::~AliL3DDLRawReader() +AliHLTDDLRawReader::~AliHLTDDLRawReader() { } -void AliL3DDLRawReader::Select(Int_t detectorID, Int_t minDDLID, Int_t maxDDLID) +void AliHLTDDLRawReader::Select(Int_t detectorID, Int_t minDDLID, Int_t maxDDLID) { // read only data of the detector with the given ID and in the given // range of DDLs (minDDLID <= DDLID < maxDDLID). @@ -65,7 +65,7 @@ void AliL3DDLRawReader::Select(Int_t detectorID, Int_t minDDLID, Int_t maxDDLID) fSelectMaxDDLID = maxDDLID; } -Bool_t AliL3DDLRawReader::IsSelected() const +Bool_t AliHLTDDLRawReader::IsSelected() const { // apply the selection (if any) @@ -79,21 +79,21 @@ Bool_t AliL3DDLRawReader::IsSelected() const return kTRUE; } -Bool_t AliL3DDLRawReader::CheckMiniHeader() const +Bool_t AliHLTDDLRawReader::CheckMiniHeader() const { // check the magic number of the mini header if ((fMiniHeader->fMagicWord[2] != 0x12) || (fMiniHeader->fMagicWord[1] != 0x34) || (fMiniHeader->fMagicWord[0] != 0x56)) { - LOG(AliL3Log::kError,"AliL3DDLRawReader::CheckMiniHeader","MH") + LOG(AliHLTLog::kError,"AliHLTDDLRawReader::CheckMiniHeader","MH") <<"DDL mini header has wrong magic word!"< #endif -#include "AliL3RootTypes.h" -#include "AliL3StandardIncludes.h" -#include "AliL3Logging.h" +#include "AliHLTRootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTLogging.h" -#include "AliL3DDLRawReaderFile.h" +#include "AliHLTDDLRawReaderFile.h" #if __GNUC__ == 3 using namespace std; @@ -34,10 +34,10 @@ using namespace std; * provided "as is" without express or implied warranty. * **************************************************************************/ -/** \class AliL3DDLRawReaderFile +/** \class AliHLTDDLRawReaderFile
 //_____________________________________________________________
-// AliL3DDLRawReaderFile (taken from the offline AliROOT code,
+// AliHLTDDLRawReaderFile (taken from the offline AliROOT code,
 // original authors: D.Favretto and A.K.Mohanty)
 //
 // This is the base class for reading ddl raw data 
@@ -45,9 +45,9 @@ using namespace std;
 
*/ -ClassImp(AliL3DDLRawReaderFile) +ClassImp(AliHLTDDLRawReaderFile) -AliL3DDLRawReaderFile::AliL3DDLRawReaderFile(const Char_t* name, Bool_t addnum) +AliHLTDDLRawReaderFile::AliHLTDDLRawReaderFile(const Char_t* name, Bool_t addnum) { // create an object to read digits from the given input file(s) // if addNumber is true, a number starting at 1 is appended to the file name @@ -66,12 +66,12 @@ AliL3DDLRawReaderFile::AliL3DDLRawReaderFile(const Char_t* name, Bool_t addnum) fStream = NULL; OpenNextFile(); } - fMiniHeader = new AliL3DDLMiniHeader; + fMiniHeader = new AliHLTDDLMiniHeader; fBuffer = NULL; fBufferSize = 0; } -AliL3DDLRawReaderFile::~AliL3DDLRawReaderFile() +AliHLTDDLRawReaderFile::~AliHLTDDLRawReaderFile() { // close the input file if(fFileName) delete fFileName; @@ -88,7 +88,7 @@ AliL3DDLRawReaderFile::~AliL3DDLRawReaderFile() if (fBuffer) delete[] fBuffer; } -Bool_t AliL3DDLRawReaderFile::OpenNextFile() +Bool_t AliHLTDDLRawReaderFile::OpenNextFile() { if (fStream) { #if defined(__HP_aCC) || defined(__DECCXX) @@ -100,7 +100,7 @@ Bool_t AliL3DDLRawReaderFile::OpenNextFile() fStream = NULL; } if (fFileNumber < 0) { - LOG(AliL3Log::kError,"AliL3DDLRawReaderFile::OpenNextFile","File") + LOG(AliHLTLog::kError,"AliHLTDDLRawReaderFile::OpenNextFile","File") <<"Could not open file, file number is negative."< 0) fStream->seekg(Int_t(fStream->tellg()) + fCount); - while (!fStream->read((Char_t*) fMiniHeader, sizeof(AliL3DDLMiniHeader))) { + while (!fStream->read((Char_t*) fMiniHeader, sizeof(AliHLTDDLMiniHeader))) { if (!OpenNextFile()) return kFALSE; } //cout << fMiniHeader->fSize << " " << fMiniHeader->fDetectorID << " " << fMiniHeader->fVersion << " " << fMiniHeader->fCompressionFlag << " " << fMiniHeader->fDDLID << endl; @@ -140,7 +140,7 @@ Bool_t AliL3DDLRawReaderFile::ReadMiniHeader() return kTRUE; } -Bool_t AliL3DDLRawReaderFile::ReadNextData(UChar_t*& data) +Bool_t AliHLTDDLRawReaderFile::ReadNextData(UChar_t*& data) { // reads the next payload at the current stream position // returns kFALSE if the data could not be read @@ -154,7 +154,7 @@ Bool_t AliL3DDLRawReaderFile::ReadNextData(UChar_t*& data) fBuffer = new UChar_t[fBufferSize]; } if (!fStream->read((Char_t*) fBuffer, fCount)) { - LOG(AliL3Log::kError,"AliL3DDLRawReaderFile::ReadNextData","Data") + LOG(AliHLTLog::kError,"AliHLTDDLRawReaderFile::ReadNextData","Data") <<"Could not read next data!"<read((Char_t*) data, size)) { - LOG(AliL3Log::kError,"AliL3DDLRawReaderFile::ReadNext","Data") + LOG(AliHLTLog::kError,"AliHLTDDLRawReaderFile::ReadNext","Data") <<"Could not read next data!"< //*-- Copyright © ALICE HLT Group -#include "AliL3RootTypes.h" -#include "AliL3StandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3DDLRawReader.h" +#include "AliHLTRootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTLogging.h" +#include "AliHLTDDLRawReader.h" -#include "AliL3DDLTPCRawStream.h" +#include "AliHLTDDLTPCRawStream.h" //#include "AliTPCHuffman.h" @@ -27,10 +27,10 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/** \class AliL3DDLTPCRawReaderStream +/** \class AliHLTDDLTPCRawReaderStream
 //_____________________________________________________________
-// AliL3DDLTPCRawReaderStream (taken from the offline AliROOT code,
+// AliHLTDDLTPCRawReaderStream (taken from the offline AliROOT code,
 // original authors: D.Favretto and A.K.Mohanty)
 //
 // This is a base class for reading TPC raw data 
@@ -42,9 +42,9 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3DDLTPCRawStream)
+ClassImp(AliHLTDDLTPCRawStream)
 
-AliL3DDLTPCRawStream::AliL3DDLTPCRawStream(AliL3DDLRawReader* rawReader)
+AliHLTDDLTPCRawStream::AliHLTDDLTPCRawStream(AliHLTDDLRawReader* rawReader)
 {
   // create an object to read TPC raw digits
 
@@ -59,18 +59,18 @@ AliL3DDLTPCRawStream::AliL3DDLTPCRawStream(AliL3DDLRawReader* rawReader)
   fTime = fSignal = -1;
 }
 
-AliL3DDLTPCRawStream::~AliL3DDLTPCRawStream()
+AliHLTDDLTPCRawStream::~AliHLTDDLTPCRawStream()
 {
   // clean up
   delete[] fData;
 }
 
-Bool_t AliL3DDLTPCRawStream::SetDDLID(Int_t d)
+Bool_t AliHLTDDLTPCRawStream::SetDDLID(Int_t d)
 {
   // sets DDL ID
   if((d<0)||(d>216)){
-    LOG(AliL3Log::kFatal,"AliL3DDLTPCRawStream::SetDDLID","DDL")
-      <GetDataSize() == 0);
 
       if (fRawReader->IsCompressed()) {  // compressed data
- 	LOG(AliL3Log::kFatal,"AliL3DDLTPCRawStream::Next","Compression")
+ 	LOG(AliHLTLog::kFatal,"AliHLTDDLTPCRawStream::Next","Compression")
       <<"Compression is not implemented (yet)!"<= fDataSize) {
-      LOG(AliL3Log::kError,"AliL3DDLTPCRawStream::Next","Data")
+      LOG(AliHLTLog::kError,"AliHLTDDLTPCRawStream::Next","Data")
       <<"Could not read trailer"<= fDataSize) {
-      LOG(AliL3Log::kError,"AliL3DDLTPCRawStream::Next","Data")
+      LOG(AliHLTLog::kError,"AliHLTDDLTPCRawStream::Next","Data")
       <<"Could not read bunch length"<= fDataSize) {
-      LOG(AliL3Log::kError,"AliL3DDLTPCRawStream::Next","Data")
+      LOG(AliHLTLog::kError,"AliHLTDDLTPCRawStream::Next","Data")
       <<"Could not read time bin"<= fDataSize) {
-    LOG(AliL3Log::kError,"AliL3DDLTPCRawStream::Next","Data")
+    LOG(AliHLTLog::kError,"AliHLTDDLTPCRawStream::Next","Data")
       <<"Could not read sample amplitude"<
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3RootTypes.h"
-#include "AliL3Logging.h"
-#include "AliL3MemHandler.h"
-#include "AliL3Logging.h"
-#include "AliL3TransBit.h"
-#include "AliL3Transform.h"
-#include "AliL3DataHandler.h"
-#include "AliL3DigitData.h"
+#include "AliHLTRootTypes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTMemHandler.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransBit.h"
+#include "AliHLTTransform.h"
+#include "AliHLTDataHandler.h"
+#include "AliHLTDigitData.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
-/** \class AliL3DataHandler
+/** \class AliHLTDataHandler
 
 //_____________________________________________________________
-// AliL3DataHandler
+// AliHLTDataHandler
 //
 // HLT Binary file handler.
 //
-// This class have more or less the same functionality as AliL3MemHandler,
+// This class have more or less the same functionality as AliHLTMemHandler,
 // except that it handles 8 bit ADC-values. Reading and writing is done in the same way
-// as illustrated in example 1) and 2) in AliL3MemHandler.
+// as illustrated in example 1) and 2) in AliHLTMemHandler.
 //
 // For converting 10 bit data files to 8 bit data files, do:
 //
-// AliL3MemHandler *file = new AliL3DataHandler();
+// AliHLTMemHandler *file = new AliHLTDataHandler();
 // file->Init(slice,patch);
 // file->SetBinaryInput(inputfile);    //10 bit data file
 // file->SetBinaryOutput(outputfile);  //8 bit data file
@@ -44,7 +44,7 @@ using namespace std;
 // --------------------
 //
 // The data is RLE encoded, using _8_bit representation of the ADC-values.
-// Conversion is done in the class AliL3TransBit.
+// Conversion is done in the class AliHLTTransBit.
 //
 // In the beginning of every row, the row number if written and the number of pads
 // containing data on that row. For every pad with data the pad number is written,
@@ -60,61 +60,61 @@ using namespace std;
 
*/ -ClassImp(AliL3DataHandler) +ClassImp(AliHLTDataHandler) -AliL3DataHandler::AliL3DataHandler() +AliHLTDataHandler::AliHLTDataHandler() { // default constructor fBitTransformer = 0; - LOG(AliL3Log::kInformational,"AliL3DataHandler::AliL3DataHandler","Data format") + LOG(AliHLTLog::kInformational,"AliHLTDataHandler::AliHLTDataHandler","Data format") <<"8 bit data handler initialized"<SetBits(b0,b1); fBitTransformer->FindOptimumX0(); fBitTransformer->Update(); - AliL3MemHandler *memory = new AliL3MemHandler(); + AliHLTMemHandler *memory = new AliHLTMemHandler(); memory->Init(fSlice,fPatch); memory->SetBinaryInput(fInBinary); UInt_t nrow; - AliL3DigitRowData *data = (AliL3DigitRowData*)memory->CompBinary2Memory(nrow); + AliHLTDigitRowData *data = (AliHLTDigitRowData*)memory->CompBinary2Memory(nrow); Memory2CompBinary(nrow,data); delete memory; } -Bool_t AliL3DataHandler::Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data) +Bool_t AliHLTDataHandler::Memory2CompBinary(UInt_t nrow,AliHLTDigitRowData *data) { //Compress data by RLE, and write to a binary file. @@ -123,7 +123,7 @@ Bool_t AliL3DataHandler::Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data) Memory2CompMemory(nrow,data,comp); if(!CompMemory2CompBinary(nrow,comp,size)) { - LOG(AliL3Log::kError,"AliL3DataHandler::Memory2CompBinary","File") + LOG(AliHLTLog::kError,"AliHLTDataHandler::Memory2CompBinary","File") <<"Error writing to file "<SetBinaryInput(fInBinary); Byte_t *comp = memory->Allocate(); if(!CompBinary2CompMemory(nrow,comp)) { - LOG(AliL3Log::kError,"AliL3DataHandler::CompBinary2Memory","File") + LOG(AliHLTLog::kError,"AliHLTDataHandler::CompBinary2Memory","File") <<"Error reading from file "< 255) { - LOG(AliL3Log::kFatal,"AliL3DataHandler::Write","Bitnumbers") + LOG(AliHLTLog::kFatal,"AliHLTDataHandler::Write","Bitnumbers") <<"Value too big for storing in 1 byte, something is wrong: "<fDigitData[digit].fTime<fDigitData[digit].fTime<255) { - LOG(AliL3Log::kWarning,"AliL3DataHandler::Memory2CompMemory","Digit") + LOG(AliHLTLog::kWarning,"AliHLTDataHandler::Memory2CompMemory","Digit") <<"ADC-value saturated : "<= 2*255) { - cerr<<"AliL3DataHandler::Memory2CompMemory : Should not happen "<<(Int_t)rowPt->fDigitData[digit].fTime<fDigitData[digit].fTime<= AliL3Transform::GetNTimeBins()) - cerr<<"AliL3DataHandler::CompMemory2Memory : Time out of range "<= AliHLTTransform::GetNTimeBins()) + cerr<<"AliHLTDataHandler::CompMemory2Memory : Time out of range "<fDigitData[ndigit].fPad = pad; rowPt->fDigitData[ndigit].fTime = time; rowPt->fDigitData[ndigit].fCharge = charge; @@ -519,13 +519,13 @@ UInt_t AliL3DataHandler::CompMemory2Memory(UInt_t nrow,AliL3DigitRowData *data,B } rowPt->fNDigit = ndigit; UpdateRowPointer(rowPt); - outsize += sizeof(AliL3DigitData)*ndigit + sizeof(AliL3DigitRowData); + outsize += sizeof(AliHLTDigitData)*ndigit + sizeof(AliHLTDigitRowData); } return outsize; } -UInt_t AliL3DataHandler::GetMemorySize(UInt_t nrow,Byte_t *comp) +UInt_t AliHLTDataHandler::GetMemorySize(UInt_t nrow,Byte_t *comp) { //Calculate size (in bytes) of unpacked data. @@ -576,13 +576,13 @@ UInt_t AliL3DataHandler::GetMemorySize(UInt_t nrow,Byte_t *comp) } } - Int_t size = sizeof(AliL3DigitData)*ndigit + sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData)*ndigit + sizeof(AliHLTDigitRowData); outsize += size; } return outsize; } -Bool_t AliL3DataHandler::CompBinary2CompMemory(UInt_t &nrow,Byte_t *comp) +Bool_t AliHLTDataHandler::CompBinary2CompMemory(UInt_t &nrow,Byte_t *comp) { //Read RLE data from binary file into array comp. rewind(fInBinary); @@ -591,7 +591,7 @@ Bool_t AliL3DataHandler::CompBinary2CompMemory(UInt_t &nrow,Byte_t *comp) if(fread(&type,1,1,fInBinary)!=1) return kFALSE; if(type > 0) { - LOG(AliL3Log::kError,"AliL3DataHandler::CompBinary2CompMemory","Filetype") + LOG(AliHLTLog::kError,"AliHLTDataHandler::CompBinary2CompMemory","Filetype") <<"Inputfile does not seem to contain 8 bit data : "< //---------------------------------------------------- -// AliL3FFloat +// AliHLTFFloat // // Fixed Floating Point class for debugging purposes. // @@ -35,25 +35,25 @@
*/ -ClassImp(AliL3FFloat) +ClassImp(AliHLTFFloat) -Int_t AliL3FFloat::fDigits = DEFDIG; -Int_t AliL3FFloat::fMax = DEFMAX; -Int_t AliL3FFloat::fMin = DEFMIN; +Int_t AliHLTFFloat::fDigits = DEFDIG; +Int_t AliHLTFFloat::fMax = DEFMAX; +Int_t AliHLTFFloat::fMin = DEFMIN; #ifdef CALCSTATS -Int_t AliL3FFloat::fN = 0; -Int_t AliL3FFloat::fNRounded = 0; -Int_t AliL3FFloat::fNOpAdds = 0; -Int_t AliL3FFloat::fNOpMults = 0; -Int_t AliL3FFloat::fNOpDivs = 0; -Int_t AliL3FFloat::fNOpSubs = 0; -Int_t AliL3FFloat::fNOverFlow = 0; -Int_t AliL3FFloat::fNUnderFlow = 0; -Double_t AliL3FFloat::fNDiff = 0; -#endif - -void AliL3FFloat::PrintStat(){ +Int_t AliHLTFFloat::fN = 0; +Int_t AliHLTFFloat::fNRounded = 0; +Int_t AliHLTFFloat::fNOpAdds = 0; +Int_t AliHLTFFloat::fNOpMults = 0; +Int_t AliHLTFFloat::fNOpDivs = 0; +Int_t AliHLTFFloat::fNOpSubs = 0; +Int_t AliHLTFFloat::fNOverFlow = 0; +Int_t AliHLTFFloat::fNUnderFlow = 0; +Double_t AliHLTFFloat::fNDiff = 0; +#endif + +void AliHLTFFloat::PrintStat(){ #ifdef CALCSTATS cout << "fN: " << fN << endl; cout << "fNRounded: " << fNRounded << endl; @@ -69,7 +69,7 @@ void AliL3FFloat::PrintStat(){ #endif } -AliL3FFloat::~AliL3FFloat() +AliHLTFFloat::~AliHLTFFloat() { #ifdef CALCSTATS Double_t diff=fabs(fVal-fExactVal); @@ -78,117 +78,117 @@ AliL3FFloat::~AliL3FFloat() #endif } -ostream& operator<<(ostream &os, const AliL3FFloat &f) +ostream& operator<<(ostream &os, const AliHLTFFloat &f) { os << (Double_t)f << "(" << f.fExactVal << ")"; return os; } -AliL3FFloat operator + (const AliL3FFloat &f1,const AliL3FFloat &f2) +AliHLTFFloat operator + (const AliHLTFFloat &f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r+=f2; return r; } -AliL3FFloat operator + (const AliL3FFloat &f1,const Double_t f2) +AliHLTFFloat operator + (const AliHLTFFloat &f1,const Double_t f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r+=f2; return r; } -AliL3FFloat operator + (const Double_t f1,const AliL3FFloat &f2) +AliHLTFFloat operator + (const Double_t f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r+=f2; return r; } -AliL3FFloat operator + (const AliL3FFloat &f) +AliHLTFFloat operator + (const AliHLTFFloat &f) { - AliL3FFloat r(f); + AliHLTFFloat r(f); return r; } -AliL3FFloat operator - (const AliL3FFloat &f1,const AliL3FFloat &f2) +AliHLTFFloat operator - (const AliHLTFFloat &f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r-=f2; return r; } -AliL3FFloat operator - (const AliL3FFloat &f1,const Double_t f2) +AliHLTFFloat operator - (const AliHLTFFloat &f1,const Double_t f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r-=f2; return r; } -AliL3FFloat operator - (const Double_t f1,const AliL3FFloat &f2) +AliHLTFFloat operator - (const Double_t f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r-=f2; return r; } -AliL3FFloat operator - (const AliL3FFloat &f) +AliHLTFFloat operator - (const AliHLTFFloat &f) { - AliL3FFloat r((-(Double_t)f)); + AliHLTFFloat r((-(Double_t)f)); return r; } -AliL3FFloat operator * (const AliL3FFloat &f1,const AliL3FFloat &f2) +AliHLTFFloat operator * (const AliHLTFFloat &f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r*=f2; return r; } -AliL3FFloat operator * (const AliL3FFloat &f1,const Double_t f2) +AliHLTFFloat operator * (const AliHLTFFloat &f1,const Double_t f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r*=f2; return r; } -AliL3FFloat operator * (const Double_t f1,const AliL3FFloat &f2) +AliHLTFFloat operator * (const Double_t f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r*=f2; return r; } -AliL3FFloat operator / (const AliL3FFloat &f1,const AliL3FFloat &f2) +AliHLTFFloat operator / (const AliHLTFFloat &f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r/=f2; return r; } -AliL3FFloat operator / (const AliL3FFloat &f1,const Double_t f2) +AliHLTFFloat operator / (const AliHLTFFloat &f1,const Double_t f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r/=f2; return r; } -AliL3FFloat operator / (const Double_t f1,const AliL3FFloat &f2) +AliHLTFFloat operator / (const Double_t f1,const AliHLTFFloat &f2) { - AliL3FFloat r(f1); + AliHLTFFloat r(f1); r/=f2; return r; } #ifdef USEINTS -void AliL3FFloat::SetParams(Int_t dig,Int_t min,Int_t max) +void AliHLTFFloat::SetParams(Int_t dig,Int_t min,Int_t max) { fDigits=dig; fMin=min; fMax=max; } -inline void AliL3FFloat::Set(Double_t val) +inline void AliHLTFFloat::Set(Double_t val) { Round(val); CheckBounds(); @@ -197,7 +197,7 @@ inline void AliL3FFloat::Set(Double_t val) #endif } -inline void AliL3FFloat::Set(const AliL3FFloat &f) +inline void AliHLTFFloat::Set(const AliHLTFFloat &f) { fVali=f.GetValInt(); fVal=f.GetVal(); @@ -208,7 +208,7 @@ inline void AliL3FFloat::Set(const AliL3FFloat &f) #endif } -inline void AliL3FFloat::Round(Double_t val) +inline void AliHLTFFloat::Round(Double_t val) { fExactVal=val; fVali=Fnt_t(val*fDigits); @@ -218,7 +218,7 @@ inline void AliL3FFloat::Round(Double_t val) #endif } -inline Bool_t AliL3FFloat::CheckUpperBound() +inline Bool_t AliHLTFFloat::CheckUpperBound() { if(fVal>fMax){ fVal=fMax; @@ -231,7 +231,7 @@ inline Bool_t AliL3FFloat::CheckUpperBound() return kTRUE; } -inline Bool_t AliL3FFloat::CheckLowerBound() +inline Bool_t AliHLTFFloat::CheckLowerBound() { if(fValfMax){ fVal=fMax; @@ -466,7 +466,7 @@ inline Bool_t AliL3FFloat::CheckUpperBound() return kTRUE; } -inline Bool_t AliL3FFloat::CheckLowerBound() +inline Bool_t AliHLTFFloat::CheckLowerBound() { if(fVal=, ... + //++,-- + + static void PrintStat(); + static void SetParams(Int_t dig=DEFDIG,Int_t min=DEFMIN,Int_t max=DEFMAX); + void Set(const Double_t f=0); + void Set(const AliHLTFFloat &f); + inline Double_t GetVal() const {return fVal;} + inline Double_t GetExactVal() const {return fExactVal;} + inline Fnt_t GetValInt() const {return fVali;} + + private: + + void Round(Double_t f); + Bool_t CheckUpperBound(); + Bool_t CheckLowerBound(); + Bool_t CheckBounds() {return (CheckUpperBound() && CheckLowerBound());} + + Fnt_t fVali; + Double_t fVal; + Double_t fExactVal; + + static Int_t fDigits; + static Int_t fMax; + static Int_t fMin; + +#ifdef CALCSTATS + static Int_t fN; + static Int_t fNRounded; + static Int_t fNOpAdds; + static Int_t fNOpMults; + static Int_t fNOpDivs; + static Int_t fNOpSubs; + static Int_t fNOverFlow; + static Int_t fNUnderFlow; + static Double_t fNDiff; +#endif + + ClassDef(AliHLTFFloat,1) +}; + +#else + +class AliHLTFFloat { + public: + AliHLTFFloat(const Double_t val=0) {Set(val);} + AliHLTFFloat(const AliHLTFFloat &f) {Set(f);} + virtual ~AliHLTFFloat(); + + AliHLTFFloat& operator = (const AliHLTFFloat &f) {Set(f); return *this;} + AliHLTFFloat& operator = (const Double_t f) {Set(f); return *this;} + + operator const Double_t () const {return fVal;} + operator const Float_t () const {return (Float_t)fVal;} + operator const Int_t () const {return (Int_t)fVal;} + + friend ostream& operator<<(ostream &os, const AliHLTFFloat &f); + + friend AliHLTFFloat operator + (const AliHLTFFloat &f1,const AliHLTFFloat &f2); + friend AliHLTFFloat operator + (const AliHLTFFloat &f1,const Double_t f2); + friend AliHLTFFloat operator + (const Double_t f1, const AliHLTFFloat &f2); + friend AliHLTFFloat operator + (const AliHLTFFloat &f1); + friend AliHLTFFloat operator - (const AliHLTFFloat &f1,const AliHLTFFloat &f2); + friend AliHLTFFloat operator - (const AliHLTFFloat &f1,const Double_t f2); + friend AliHLTFFloat operator - (const Double_t f1, const AliHLTFFloat &f2); + friend AliHLTFFloat operator - (const AliHLTFFloat &f1); + friend AliHLTFFloat operator * (const AliHLTFFloat &f1,const AliHLTFFloat &f2); + friend AliHLTFFloat operator * (const AliHLTFFloat &f1,const Double_t f2); + friend AliHLTFFloat operator * (const Double_t f1, const AliHLTFFloat &f2); + friend AliHLTFFloat operator / (const AliHLTFFloat &f1,const AliHLTFFloat &f2); + friend AliHLTFFloat operator / (const AliHLTFFloat &f1,const Double_t f2); + friend AliHLTFFloat operator / (const Double_t f1, const AliHLTFFloat &f2); + + AliHLTFFloat& operator += (const AliHLTFFloat &f); + AliHLTFFloat& operator += (const Double_t f); + AliHLTFFloat& operator -= (const AliHLTFFloat &f); + AliHLTFFloat& operator -= (const Double_t f); + AliHLTFFloat& operator *= (const AliHLTFFloat &f); + AliHLTFFloat& operator *= (const Double_t f); + AliHLTFFloat& operator /= (const AliHLTFFloat &f); + AliHLTFFloat& operator /= (const Double_t f); + //==,!=,>=, ... + //++,-- + + static void PrintStat(); + static void SetParams(Int_t dig=DEFDIG,Int_t min=DEFMIN,Int_t max=DEFMAX); + void Set(const Double_t f=0); + void Set(const AliHLTFFloat &f); + inline Double_t GetVal() const {return fVal;} + inline Double_t GetExactVal() const {return fExactVal;} + + private: + + Double_t Round(Double_t f); + Bool_t CheckUpperBound(); + Bool_t CheckLowerBound(); + Bool_t CheckBounds() {return (CheckUpperBound() && CheckLowerBound());} + + Double_t fVal; + Double_t fExactVal; + + static Int_t fDigits; + static Char_t fQuery[10]; + static Int_t fMax; + static Int_t fMin; + +#ifdef CALCSTATS + static Int_t fN; + static Int_t fNRounded; + static Int_t fNOpAdds; + static Int_t fNOpMults; + static Int_t fNOpDivs; + static Int_t fNOpSubs; + static Int_t fNOverFlow; + static Int_t fNUnderFlow; + static Double_t fNDiff; +#endif + + ClassDef(AliHLTFFloat,1) +}; + +#endif +#endif + +typedef AliHLTFFloat AliL3FFloat; // for backward compatibility + +#endif + + + + diff --git a/HLT/misc/AliHLTMiscLinkDef.h b/HLT/misc/AliHLTMiscLinkDef.h new file mode 100644 index 00000000000..3adbe6041bf --- /dev/null +++ b/HLT/misc/AliHLTMiscLinkDef.h @@ -0,0 +1,50 @@ +// @(#) $Id$ + +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#ifndef macosx +#pragma link C++ typedef AliL3TransBit; +#pragma link C++ typedef AliL3TransBitV1; +#pragma link C++ typedef AliL3TransBitV2; +#pragma link C++ typedef AliL3DataHandler; +#endif +#pragma link C++ typedef AliL3AltroMemHandler; +#pragma link C++ typedef AliL3VHDLClusterFinder; +#pragma link C++ typedef AliL3TPCMapping; +#pragma link C++ typedef AliL3DDLRawReader; +#pragma link C++ typedef AliL3DDLRawReaderFile; +#pragma link C++ typedef AliL3DDLTPCRawStream; +#ifndef macosx +#pragma link C++ typedef AliL3DDLDataFileHandler; +#endif + +#ifdef USEFFLOAT +#pragma link C++ typedef AliL3FFloat; +#endif + +#ifndef macosx +#pragma link C++ class AliHLTTransBit; +#pragma link C++ class AliHLTTransBitV1; +#pragma link C++ class AliHLTTransBitV2; +#pragma link C++ class AliHLTDataHandler; +#endif +#pragma link C++ class AliHLTAltroMemHandler; +#pragma link C++ class AliHLTVHDLClusterFinder; +#pragma link C++ class AliHLTTPCMapping; +#pragma link C++ class AliHLTDDLRawReader; +#pragma link C++ class AliHLTDDLRawReaderFile; +#pragma link C++ class AliHLTDDLTPCRawStream; +#ifndef macosx +#pragma link C++ class AliHLTDDLDataFileHandler; +#endif + +#ifdef USEFFLOAT +#pragma link C++ class AliHLTFFloat; +#endif + +#endif + diff --git a/HLT/misc/AliL3Stopwatch.cxx b/HLT/misc/AliHLTStopwatch.cxx similarity index 75% rename from HLT/misc/AliL3Stopwatch.cxx rename to HLT/misc/AliHLTStopwatch.cxx index 316c1545348..4e26171aa4a 100644 --- a/HLT/misc/AliL3Stopwatch.cxx +++ b/HLT/misc/AliHLTStopwatch.cxx @@ -3,21 +3,21 @@ // Author: C. Loizides //*-- Copyright © ALICE HLT Group -#include "AliL3Stopwatch.h" +#include "AliHLTStopwatch.h" #ifdef no_root -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" #if __GNUC__ == 3 using namespace std; #endif -/** \class AliL3Stopwatch +/** \class AliHLTStopwatch
 //----------------------------------------------------
-// AliL3Stopwatch
+// AliHLTStopwatch
 //
 // Stopwatch class. This class returns the real and cpu time between   
 // the start and stop events (taken from Root)
@@ -25,11 +25,11 @@ using namespace std;
 */
 
 
-ClassImp(AliL3Stopwatch)
+ClassImp(AliHLTStopwatch)
 
-clock_t AliL3Stopwatch::gTicks = 0;
+clock_t AliHLTStopwatch::gTicks = 0;
 
-AliL3Stopwatch::AliL3Stopwatch()
+AliHLTStopwatch::AliHLTStopwatch()
 {
   // Create a stopwatch and start it.
   if (!gTicks) gTicks = (clock_t)sysconf(_SC_CLK_TCK);
@@ -40,11 +40,11 @@ AliL3Stopwatch::AliL3Stopwatch()
   Start();
 }
 
-AliL3Stopwatch::~AliL3Stopwatch()
+AliHLTStopwatch::~AliHLTStopwatch()
 {
 }
 
-void AliL3Stopwatch::Start(Bool_t reset)
+void AliHLTStopwatch::Start(Bool_t reset)
 {
   // Start the stopwatch. If reset is kTRUE reset the stopwatch before
   // starting it (including the stopwatch counter).
@@ -64,7 +64,7 @@ void AliL3Stopwatch::Start(Bool_t reset)
   fCounter++;
 }
 
-void AliL3Stopwatch::Stop()
+void AliHLTStopwatch::Stop()
 {
    // Stop the stopwatch.
    fStopRealTime = GetRealTime();
@@ -76,13 +76,13 @@ void AliL3Stopwatch::Stop()
    fState = kStopped;
 }
 
-void AliL3Stopwatch::Continue()
+void AliHLTStopwatch::Continue()
 {
   // Resume a stopped stopwatch. The stopwatch continues counting from the last
   // Start() onwards (this is like the laptimer function).
   
   if (fState == kUndefined){
-    cerr << "Error in AliL3Stopwatch::Continue! Stopwatch not started." << endl;
+    cerr << "Error in AliHLTStopwatch::Continue! Stopwatch not started." << endl;
     return;
   }
 
@@ -94,13 +94,13 @@ void AliL3Stopwatch::Continue()
   fState = kRunning;
 }
 
-Double_t AliL3Stopwatch::RealTime()
+Double_t AliHLTStopwatch::RealTime()
 {
   // Return the realtime passed between the start and stop events. If the
   // stopwatch was still running stop it first.
   
   if (fState == kUndefined){
-    cerr << "Error in AliL3Stopwatch::RealTime! Stopwatch not started." << endl;
+    cerr << "Error in AliHLTStopwatch::RealTime! Stopwatch not started." << endl;
     return -1.0;
   }
 
@@ -110,13 +110,13 @@ Double_t AliL3Stopwatch::RealTime()
   return fTotalRealTime;
 }
 
-Double_t AliL3Stopwatch::CpuTime()
+Double_t AliHLTStopwatch::CpuTime()
 {
   // Return the cputime passed between the start and stop events. If the
   // stopwatch was still running stop it first.
   
   if (fState == kUndefined){
-    cerr << "Error in AliL3Stopwatch::CpuTime! Stopwatch not started." << endl;
+    cerr << "Error in AliHLTStopwatch::CpuTime! Stopwatch not started." << endl;
     return -1.0;
   }
   if (fState == kRunning)
@@ -125,14 +125,14 @@ Double_t AliL3Stopwatch::CpuTime()
   return fTotalCpuTime;
 }
 
-Double_t AliL3Stopwatch::GetRealTime()
+Double_t AliHLTStopwatch::GetRealTime()
 {
   struct tms cpt;
   Double_t trt =  (Double_t)times(&cpt);
   return trt / (Double_t)gTicks;
 }
 
-Double_t AliL3Stopwatch::GetCPUTime()
+Double_t AliHLTStopwatch::GetCPUTime()
 {
    struct tms cpt;
    times(&cpt);
@@ -140,13 +140,13 @@ Double_t AliL3Stopwatch::GetCPUTime()
 }
 
 //______________________________________________________________________________
-void AliL3Stopwatch::Print(Char_t *opt) const
+void AliHLTStopwatch::Print(Char_t *opt) const
 {
    // Print the real and cpu time passed between the start and stop events.
    // and the number of times (slices) this TStopwatch was called
    // (if this number > 1)
 
-   Double_t  realt = ((AliL3Stopwatch*)(this))->RealTime();
+   Double_t  realt = ((AliHLTStopwatch*)(this))->RealTime();
 
    Int_t  hours = Int_t(realt / 3600);
    realt -= hours * 3600;
@@ -155,9 +155,9 @@ void AliL3Stopwatch::Print(Char_t *opt) const
    Int_t  sec   = Int_t(realt);
    Int_t counter = Counter();
    if (counter <= 1 )
-      printf("Real time %d:%d:%d, CP time %.3f", hours, min, sec, ((AliL3Stopwatch*)(this))->CpuTime());
+      printf("Real time %d:%d:%d, CP time %.3f", hours, min, sec, ((AliHLTStopwatch*)(this))->CpuTime());
    else
-      printf("Real time %d:%d:%d, CP time %.3f, %d slices", hours, min, sec, ((AliL3Stopwatch*)(this))->CpuTime(),counter);
+      printf("Real time %d:%d:%d, CP time %.3f, %d slices", hours, min, sec, ((AliHLTStopwatch*)(this))->CpuTime(),counter);
 }
 
 #endif
diff --git a/HLT/misc/AliL3Stopwatch.h b/HLT/misc/AliHLTStopwatch.h
similarity index 86%
rename from HLT/misc/AliL3Stopwatch.h
rename to HLT/misc/AliHLTStopwatch.h
index f5dac713af4..e445373fee5 100644
--- a/HLT/misc/AliL3Stopwatch.h
+++ b/HLT/misc/AliHLTStopwatch.h
@@ -5,15 +5,15 @@
 
 #ifndef no_root
 #include 
-typedef TStopwatch AliL3Stopwatch; 
+typedef TStopwatch AliHLTStopwatch; 
 
 #else
 #include 
 #include 
 #include 
-#include "AliL3RootTypes.h"
+#include "AliHLTRootTypes.h"
 
-class AliL3Stopwatch
+class AliHLTStopwatch
 {
  private:
   static clock_t gTicks;
@@ -30,8 +30,8 @@ class AliL3Stopwatch
 
  public:
   
-  AliL3Stopwatch();
-  ~AliL3Stopwatch();
+  AliHLTStopwatch();
+  ~AliHLTStopwatch();
   void        Start(Bool_t reset = kTRUE);
   void        Stop();
   void        Continue();
@@ -50,4 +50,6 @@ class AliL3Stopwatch
 
 #endif
 
+typedef AliHLTStopwatch AliL3Stopwatch; // for backward compatibility
+
 #endif
diff --git a/HLT/misc/AliHLTTPCMapping-iroc.generated b/HLT/misc/AliHLTTPCMapping-iroc.generated
new file mode 100644
index 00000000000..ab4646f6bb8
--- /dev/null
+++ b/HLT/misc/AliHLTTPCMapping-iroc.generated
@@ -0,0 +1,8 @@
+const Int_t AliHLTTPCMapping::fgkNIROC = 5504;
+const Int_t AliHLTTPCMapping::fgkIRows[fgkNIROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62};
+const Int_t AliHLTTPCMapping::fgkIPad[fgkNIROC] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107};
+const Int_t AliHLTTPCMapping::fgkICon[fgkNIROC] = {127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,130,131,131,131,131,132,132,132,133,133,133,133,134,134,134,134,135,135,135,135,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,136,136,136,128,137,137,137,129,138,138,138,130,130,130,130,131,140,140,140,141,132,132,133,142,142,142,134,134,134,134,135,144,144,144,18,18,18,9,8,8,8,8,16,16,16,7,6,6,15,14,14,14,5,4,4,4,4,12,12,12,3,11,11,11,2,10,10,10,1,136,136,136,136,137,137,137,137,138,138,138,138,130,139,139,139,140,140,140,140,141,141,141,142,142,142,142,134,143,143,143,144,144,144,144,18,18,18,18,17,17,17,8,16,16,16,16,15,15,15,14,14,14,14,13,13,13,4,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,145,146,137,137,137,147,138,138,138,139,139,139,139,139,149,140,140,140,141,141,141,141,151,142,142,142,143,143,143,143,153,144,144,144,18,18,18,27,17,17,17,17,16,16,16,25,15,15,15,15,14,14,14,23,13,13,13,13,13,12,12,12,21,11,11,11,20,19,10,10,10,145,145,145,145,146,146,146,146,147,147,147,147,139,139,148,148,148,149,149,149,149,141,141,150,150,151,151,151,151,152,143,143,143,153,153,153,153,27,27,27,27,17,17,17,26,25,25,25,25,24,24,15,15,23,23,23,23,22,22,22,13,13,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,157,157,148,148,148,149,149,149,149,150,150,150,150,151,151,160,160,160,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,34,34,34,25,25,24,24,24,24,23,23,23,23,22,22,22,31,31,21,21,21,21,20,20,20,20,19,19,19,19,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,150,150,150,159,160,160,160,160,161,152,152,152,152,162,162,162,162,36,36,36,36,26,26,26,26,35,34,34,34,34,33,24,24,24,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,156,157,157,157,157,158,158,158,158,159,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,30,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,164,164,164,164,165,156,156,156,156,157,157,157,166,158,158,167,167,159,159,159,159,159,160,160,169,169,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,43,43,34,34,33,33,33,33,33,41,41,32,32,40,31,31,31,30,30,30,30,39,38,38,38,38,29,28,28,28,28,154,163,163,163,164,164,164,164,164,165,165,165,165,165,166,166,166,166,167,167,167,167,159,159,168,168,168,169,169,169,169,170,170,170,170,170,162,171,171,171,45,45,45,36,44,44,44,44,44,43,43,43,43,42,42,42,33,33,41,41,41,41,40,40,40,40,39,39,39,39,39,38,38,38,38,38,37,37,37,28,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,172,173,173,173,164,165,165,165,165,174,166,166,175,175,175,167,176,176,176,168,168,168,168,177,178,169,169,169,169,170,170,179,179,179,171,171,171,171,45,45,45,45,53,53,53,44,44,43,43,43,43,52,51,42,42,42,42,50,50,50,41,49,49,49,40,40,48,39,39,39,39,38,47,47,47,46,37,37,37,37,172,172,172,172,172,173,173,173,173,174,174,174,174,174,175,175,175,175,175,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,179,171,171,171,180,54,45,45,45,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,174,174,174,174,174,175,175,175,175,175,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,179,180,180,180,180,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,173,174,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,54,54,54,54,54,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,173,174,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,54,54,54,54,54,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,181,181,181,182,182,182,182,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,180,180,180,180,180,180,54,54,54,54,54,54,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,181,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,190,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,64,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,55,55,55,55,181,181,181,181,182,182,194,183,183,195,195,184,184,184,185,197,197,197,186,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,190,191,191,203,192,192,192,192,253,253,253,253,66,66,66,66,77,65,65,64,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,60,71,71,71,59,58,58,58,69,69,57,57,68,56,56,55,55,55,55,181,193,193,193,194,194,194,195,195,195,195,184,184,184,197,197,197,197,198,198,198,186,199,199,199,200,200,200,200,189,189,189,202,202,202,190,203,203,203,204,204,204,192,253,254,254,254,66,78,78,78,77,77,77,64,76,76,76,63,63,63,74,74,74,74,73,73,73,60,72,72,72,71,71,71,71,58,58,58,69,69,69,69,68,68,68,67,67,67,55,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,194,195,195,195,196,196,196,196,197,197,197,197,198,198,198,199,199,199,199,200,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,74,73,73,73,73,72,72,72,71,71,71,71,70,70,70,70,69,69,69,68,68,68,68,67,67,67,67,193,193,193,205,194,194,194,194,207,207,195,196,196,196,196,197,197,209,209,198,198,198,199,199,199,211,200,200,200,200,201,201,201,201,202,202,202,214,203,203,203,204,204,204,216,255,254,254,254,90,78,78,78,77,77,77,88,76,76,76,75,75,75,75,74,74,74,74,85,73,73,73,72,72,72,83,83,71,71,70,70,70,70,69,81,81,68,68,68,68,79,67,67,67,205,205,205,205,194,206,206,206,207,207,207,208,208,196,196,209,209,209,209,210,210,198,211,211,211,211,212,212,212,200,201,201,213,213,214,214,214,214,203,203,203,216,216,216,216,255,255,255,255,90,90,90,90,77,77,77,88,88,88,88,87,87,75,75,74,86,86,86,85,85,85,85,72,84,84,83,83,83,83,70,70,82,82,81,81,81,80,80,80,68,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,207,208,208,208,208,209,209,209,210,210,210,210,210,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,84,84,84,84,84,83,83,83,82,82,82,82,81,81,81,81,80,80,80,80,79,79,79,79,217,217,217,217,218,218,206,206,207,207,207,219,208,208,208,220,221,221,221,210,210,222,222,222,223,223,211,224,224,212,212,213,213,213,225,226,226,226,226,215,215,215,215,228,228,228,228,256,256,256,256,102,102,102,102,89,89,89,89,100,100,100,100,99,87,87,87,86,86,98,98,85,97,97,96,96,96,84,84,95,95,95,94,82,82,82,93,81,81,81,80,80,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,222,222,222,222,222,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,215,215,215,215,228,228,228,228,256,256,256,256,102,102,102,102,89,89,89,89,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,96,96,96,96,96,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,229,229,229,217,218,218,218,230,219,219,219,219,220,220,220,220,221,221,221,233,234,234,234,222,223,223,223,223,236,224,224,224,225,225,225,225,237,238,238,238,226,227,227,227,227,240,240,240,228,256,257,257,257,102,114,114,114,101,101,101,101,100,112,112,112,111,99,99,99,99,98,98,98,110,97,97,97,97,96,108,108,108,107,95,95,95,94,94,94,94,93,93,93,93,104,92,92,92,91,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,227,227,227,227,240,240,240,240,257,257,257,257,114,114,114,114,101,101,101,101,112,112,112,112,111,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,227,240,240,240,240,257,257,257,257,114,114,114,114,101,113,113,113,112,112,112,112,111,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,257,257,257,257,114,114,114,114,113,113,113,113,113,112,112,112,112,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,257,257,257,257,114,114,114,114,113,113,113,113,113,112,112,112,112,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,241,229,229,229,230,230,230,230,231,231,231,231,244,232,232,232,232,233,233,233,233,246,234,234,234,235,235,235,235,236,236,236,236,237,237,237,249,238,238,238,250,239,239,239,239,239,240,240,240,252,258,257,257,257,126,114,114,114,113,113,113,113,113,124,112,112,112,123,111,111,111,110,110,110,110,109,109,109,109,108,108,108,120,107,107,107,107,106,106,106,106,118,105,105,105,105,104,104,104,104,103,103,103,115,241,241,241,241,242,242,242,230,243,243,243,231,231,244,244,244,244,245,245,245,233,246,246,246,246,247,247,247,235,235,236,248,248,248,249,249,249,249,250,250,250,250,239,239,239,239,251,252,252,252,252,258,258,258,258,126,126,126,126,125,113,113,113,113,124,124,124,124,123,123,123,123,122,122,122,110,109,109,121,121,121,120,120,120,120,107,119,119,119,118,118,118,118,105,105,117,117,117,104,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,243,243,243,243,243,244,244,244,244,245,245,245,245,246,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,121,121,121,121,121,120,120,120,120,119,119,119,119,118,118,118,118,117,117,117,117,117,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,243,243,243,243,243,244,244,244,244,245,245,245,245,246,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,121,121,121,121,121,120,120,120,120,119,119,119,119,118,118,118,118,117,117,117,117,117,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,242,243,243,243,243,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,122,121,121,121,121,120,120,120,120,119,119,119,119,119,118,118,118,118,117,117,117,117,116,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,242,243,243,243,243,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,122,121,121,121,121,120,120,120,120,119,119,119,119,119,118,118,118,118,117,117,117,117,116,116,116,116,116,115,115,115,115};
+const Int_t AliHLTTPCMapping::fgkIPin[fgkNIROC] = {2,1,3,5,2,1,3,5,2,1,3,5,2,4,1,2,1,3,5,2,1,3,5,2,1,3,5,2,4,1,2,1,3,5,5,3,1,2,1,4,2,5,3,1,2,5,3,1,2,5,3,1,2,1,4,2,5,3,1,2,5,3,1,2,5,3,1,2,4,6,7,9,4,6,7,9,4,6,7,9,6,3,5,4,6,7,9,4,6,7,9,4,6,7,9,6,3,5,4,6,7,9,9,7,6,4,5,3,6,9,7,6,4,9,7,6,4,9,7,6,4,5,3,6,9,7,6,4,9,7,6,4,9,7,6,4,8,10,11,13,8,10,11,13,8,10,11,13,8,7,9,8,10,11,13,8,10,11,13,8,10,11,13,8,7,9,8,10,11,13,13,11,10,8,9,7,8,13,11,10,8,13,11,10,8,13,11,10,8,9,7,8,13,11,10,8,13,11,10,8,13,11,10,8,12,14,15,17,12,14,15,17,12,14,15,17,10,11,13,12,14,15,17,12,14,15,17,12,14,15,17,10,11,13,12,14,15,17,17,15,14,12,13,11,10,17,15,14,12,17,15,14,12,17,15,14,12,13,11,10,17,15,14,12,17,15,14,12,17,15,14,12,16,18,19,21,16,18,21,19,16,18,21,19,12,14,15,17,16,18,21,19,16,18,19,16,18,21,19,12,14,15,17,16,18,21,19,19,21,18,16,17,15,14,12,19,21,18,16,19,18,16,19,21,18,16,17,15,14,12,19,21,18,16,19,21,18,16,21,19,18,16,20,0,2,1,20,2,0,1,20,2,0,1,16,18,21,19,20,4,2,0,0,20,21,20,4,2,0,16,18,21,19,20,4,2,0,0,2,4,20,19,21,18,16,0,2,4,20,21,20,0,0,2,4,20,19,21,18,16,1,0,2,20,1,0,2,20,1,2,0,20,4,6,3,5,6,4,3,5,6,4,3,5,20,0,1,3,8,6,1,3,2,1,3,8,6,1,3,20,4,2,0,8,6,1,3,3,1,6,8,0,2,4,20,3,1,6,8,3,1,2,3,1,6,8,3,1,0,20,5,3,4,6,5,3,4,6,5,3,6,4,8,10,7,9,10,8,7,9,10,8,7,9,4,2,5,7,12,10,5,7,6,4,5,7,12,10,5,7,8,6,1,3,12,10,5,7,7,5,10,12,3,1,6,8,7,5,10,12,7,5,4,6,7,5,10,12,7,5,2,4,9,7,8,10,9,7,8,10,9,7,10,8,12,14,13,15,14,12,13,15,14,12,13,15,8,6,9,13,16,14,9,13,10,8,9,13,16,14,9,13,12,10,5,7,16,14,9,13,13,9,14,16,7,5,10,12,13,9,14,16,13,9,8,10,13,9,14,16,13,9,6,8,15,13,12,14,15,13,12,14,15,13,14,12,16,18,17,19,18,16,17,19,18,16,17,19,12,10,15,17,20,18,15,17,14,12,15,17,20,18,15,17,16,14,9,13,20,18,15,17,17,15,18,20,13,9,14,16,17,15,18,20,17,15,12,14,17,15,18,20,17,15,10,12,19,17,16,18,19,17,16,18,19,17,18,16,20,22,21,1,2,22,20,21,2,22,20,21,18,16,14,19,21,1,22,19,21,18,16,19,21,5,22,19,21,20,18,15,17,1,22,19,21,21,19,22,1,17,15,18,20,21,19,22,5,21,19,16,18,21,19,22,1,21,19,14,16,18,21,20,22,2,21,20,22,2,1,21,22,20,4,2,3,5,4,1,3,5,4,1,3,5,22,20,1,3,5,4,2,3,5,22,20,1,3,1,3,7,9,1,22,19,21,4,2,3,5,5,3,2,4,21,19,22,1,9,7,3,1,3,1,20,22,5,3,2,4,5,3,1,20,22,5,3,1,4,5,3,1,4,5,3,2,4,8,6,7,9,8,6,7,9,8,6,7,9,6,4,2,7,9,8,6,7,9,4,2,5,7,4,2,11,13,4,2,3,5,8,6,7,9,9,7,6,8,5,3,2,4,13,11,2,4,7,5,2,4,9,7,6,8,9,7,2,4,6,9,7,6,8,9,7,6,8,9,7,6,8,12,10,11,13,12,10,11,13,12,10,11,13,12,10,8,11,13,12,10,11,13,8,6,9,11,10,8,6,15,17,8,6,7,9,12,10,11,13,13,11,10,12,9,7,6,8,17,15,6,8,10,11,9,6,8,13,11,10,12,13,11,8,10,12,13,11,10,12,13,11,10,12,13,11,10,12,18,16,15,17,16,14,15,17,16,14,15,17,18,16,14,15,17,16,14,15,17,12,10,13,15,16,14,12,19,21,12,10,11,13,16,14,15,17,17,15,14,16,13,11,10,12,21,19,12,14,16,15,13,10,12,17,15,14,16,17,15,14,16,18,17,15,14,16,17,15,14,16,17,15,16,18,14,20,19,21,20,18,19,21,20,18,19,21,1,3,20,19,21,20,18,19,21,16,14,17,19,20,18,3,5,7,16,14,15,17,20,18,19,21,21,19,18,20,17,15,14,16,7,5,3,18,20,19,17,14,16,21,19,18,20,21,19,20,3,1,21,19,18,20,21,19,18,20,21,19,20,14,2,1,3,5,1,3,5,7,9,2,1,3,5,4,2,5,7,1,3,5,7,9,20,18,21,5,4,2,1,9,1,20,18,19,21,2,1,3,5,5,3,1,2,21,19,18,20,1,9,1,2,4,5,21,18,20,9,7,5,3,1,7,5,2,4,5,3,1,2,9,7,5,3,1,5,3,1,2,6,4,7,9,6,4,2,11,13,6,4,7,9,8,6,9,11,6,4,2,11,13,1,3,7,9,8,6,11,13,2,3,5,7,9,6,4,7,9,9,7,4,6,9,7,5,3,2,13,11,6,8,9,7,3,1,13,11,2,4,6,11,9,6,8,9,7,4,6,13,11,2,4,6,9,7,4,6,10,8,11,13,12,10,8,15,17,10,8,11,13,12,10,13,15,12,10,8,15,17,4,2,11,13,12,10,15,17,8,6,4,11,13,10,8,11,13,13,11,8,10,13,11,4,6,8,17,15,10,12,13,11,2,4,17,15,8,10,12,15,13,10,12,13,11,8,10,17,15,8,10,12,13,11,8,10,14,12,15,17,18,16,14,19,21,16,14,12,15,17,16,14,17,19,16,14,19,21,10,8,6,15,17,16,14,19,21,14,12,10,15,17,14,12,15,17,17,15,12,14,17,15,10,12,14,21,19,14,16,17,15,6,8,10,21,19,14,16,19,17,14,16,17,15,12,14,16,21,19,14,16,18,17,15,12,14,18,16,19,21,20,4,2,0,1,0,20,18,19,21,20,18,21,3,20,18,1,3,16,14,12,19,21,20,18,2,0,20,18,16,19,21,18,16,19,21,21,19,16,18,21,19,16,18,20,0,2,18,20,21,19,12,14,16,3,1,18,20,3,21,18,20,21,19,18,20,0,1,0,2,4,20,21,19,16,18,20,0,1,3,10,8,6,3,5,6,4,2,1,3,0,1,5,7,2,0,5,7,20,18,0,1,3,6,4,1,3,0,1,3,5,7,20,2,0,1,1,0,2,20,7,5,3,1,0,3,1,4,6,3,1,0,18,20,7,5,0,2,7,5,1,0,3,1,2,4,6,5,3,6,8,10,3,1,0,20,6,4,2,5,7,14,12,7,9,10,8,5,7,6,4,2,9,13,8,6,4,9,13,6,4,2,5,7,10,8,5,7,6,4,2,9,13,6,4,3,5,5,3,4,6,13,9,2,4,6,7,5,8,10,7,5,2,4,6,13,9,4,6,8,13,9,2,4,6,7,5,8,10,9,7,12,14,7,5,2,4,6,12,10,8,9,13,18,16,13,15,14,12,9,13,12,10,8,15,17,14,12,10,15,17,12,10,8,9,13,14,12,9,13,12,10,8,15,17,10,8,7,9,9,7,8,10,17,15,8,10,12,13,9,12,14,13,9,8,10,12,17,15,10,12,14,17,15,8,10,12,13,9,12,14,15,13,16,18,13,9,8,10,12,18,16,14,15,17,22,20,17,19,18,16,15,17,18,16,14,19,21,20,18,16,19,21,18,16,14,15,17,18,16,15,17,18,16,14,19,21,14,12,13,15,15,13,12,14,21,19,14,16,18,17,15,16,18,17,15,14,16,18,21,19,16,18,20,21,19,14,16,18,17,15,16,18,19,17,20,22,17,15,14,16,18,22,20,19,21,5,1,3,5,21,22,20,19,21,5,22,20,1,3,5,22,1,3,5,22,20,19,21,5,1,22,20,19,21,22,20,1,3,5,18,16,17,19,19,17,16,18,5,3,1,20,22,21,19,20,22,1,5,21,19,20,22,5,3,1,22,5,3,1,20,22,5,21,19,20,22,21,5,3,1,5,21,19,20,22,2,1,3,7,9,4,2,7,9,2,1,3,7,9,6,4,2,7,9,4,2,7,9,2,1,3,7,9,2,3,5,7,9,6,4,2,7,9,22,20,21,5,5,21,20,22,9,7,2,4,6,9,7,5,3,2,9,7,3,1,2,9,7,2,4,9,7,2,4,6,9,7,3,1,2,9,7,2,4,9,7,3,1,2,8,6,4,11,13,8,6,11,13,8,6,4,11,13,12,10,8,11,13,8,6,11,13,8,6,4,11,13,8,6,4,11,13,12,10,8,11,13,1,3,7,9,9,7,3,1,13,11,8,10,12,13,11,4,6,8,13,11,4,6,8,13,11,6,8,13,11,8,10,12,13,11,4,6,8,13,11,6,8,13,11,4,6,8,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,16,14,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,16,14,15,17,6,4,2,11,13,13,11,2,4,6,17,15,14,16,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,14,16,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,19,21,12,10,8,15,17,17,15,8,10,12,21,19,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,4,2,1,4,2,1,3,1,3,5,8,6,4,2,1,3,5,6,4,2,6,4,2,1,4,2,1,6,4,2,6,4,2,4,2,1,3,20,18,16,14,19,21,21,19,14,16,18,20,3,1,2,4,2,4,6,2,4,6,1,2,4,1,2,4,6,2,4,6,5,3,1,2,4,6,8,5,3,1,3,1,2,4,1,2,4,6,3,5,8,6,5,7,4,2,7,9,10,2,1,6,4,7,9,8,1,3,10,8,3,5,6,3,5,10,8,1,8,1,3,8,6,5,7,4,2,1,3,3,1,2,4,3,1,2,4,7,5,6,8,3,1,8,1,8,10,5,3,6,5,3,8,10,3,1,8,9,7,4,6,1,2,10,9,7,2,4,7,5,6,8,5,3,6,8,7,9,12,10,9,11,8,6,11,13,12,3,5,10,8,11,13,10,5,7,14,12,7,9,8,7,9,12,3,5,10,5,7,12,10,9,11,8,6,5,7,7,5,6,8,7,5,6,8,11,9,10,12,7,5,10,5,3,12,9,7,8,9,7,12,14,7,5,10,13,11,8,10,5,3,12,13,11,6,8,11,9,10,12,9,7,8,10,11,13,16,14,13,15,12,10,15,17,14,7,9,14,12,15,17,12,9,11,16,11,13,12,10,11,13,14,7,9,12,9,11,16,14,13,15,12,10,9,11,9,11,10,12,11,9,10,12,15,13,14,16,11,9,12,9,7,14,13,11,10,12,13,11,16,11,9,12,17,15,12,14,9,7,14,17,15,10,12,15,13,14,16,13,11,10,14,12,15,17,18,17,19,16,14,19,21,16,11,13,18,16,19,21,16,14,13,15,18,15,17,16,14,15,17,16,11,13,16,14,13,15,18,17,19,16,14,13,15,13,15,14,16,15,13,14,16,19,17,18,15,13,14,16,13,11,16,17,15,14,16,17,15,18,15,13,14,16,21,19,16,18,13,11,16,21,19,14,16,19,17,18,17,15,12,14,18,16,19,21,20,21,0,20,18,0,1,18,15,17,20,0,1,3,20,18,17,19,20,19,21,20,18,19,21,18,15,17,20,18,17,19,20,21,0,20,18,17,19,17,19,18,20,19,17,18,20,0,21,20,19,17,18,20,17,15,18,21,19,18,20,21,19,20,19,17,18,20,3,1,0,20,17,15,18,1,0,18,20,0,21,20,21,19,16,18,20,2,0,1,4,2,1,6,4,2,3,20,19,21,6,4,2,5,2,0,1,21,2,0,1,4,2,0,1,20,19,21,2,0,1,21,4,2,1,2,0,1,21,21,1,0,2,21,1,0,2,1,2,4,21,1,0,2,21,19,20,1,0,2,4,1,0,2,21,1,0,2,5,2,4,6,21,19,20,3,2,4,6,1,2,4,1,0,2,20,6,4,3,5,8,6,3,12,10,8,5,6,4,2,0,10,8,7,8,6,4,3,6,4,3,5,8,6,3,2,0,1,3,6,4,3,5,8,6,3,6,4,3,5,5,3,4,6,5,3,4,6,3,6,8,5,3,4,6,3,1,0,2,3,6,8,5,3,4,6,3,4,6,8,7,8,10,0,2,4,6,5,8,10,12,3,6,8,5,3,4,6,10,8,7,9,10,5,7,16,14,7,9,10,8,1,3,12,9,13,14,12,10,5,10,8,7,9,12,10,5,6,4,5,7,10,8,7,9,12,10,5,10,8,7,9,7,9,8,10,9,7,8,10,5,10,12,9,7,8,10,7,5,4,6,5,10,12,9,7,8,10,5,10,12,14,13,9,12,3,1,8,10,9,7,14,16,7,5,10,9,7,8,10,14,12,13,15,12,9,13,20,18,13,15,14,12,5,7,14,15,17,18,16,7,9,14,12,13,15,14,7,9,10,8,9,13,14,12,13,15,16,14,7,14,12,13,15,13,15,12,14,15,13,12,14,7,14,16,15,13,12,14,13,9,8,10,9,7,14,15,13,12,14,9,7,16,18,17,15,14,7,5,12,14,15,13,18,20,13,9,12,15,13,12,14,18,16,17,19,16,14,15,17,22,17,19,18,16,9,13,18,16,19,21,20,13,15,18,16,17,19,18,16,13,15,14,12,15,17,18,16,17,19,18,9,13,18,16,17,19,17,19,16,18,19,17,16,18,13,9,18,19,17,16,18,17,15,12,14,15,13,16,18,19,17,16,18,15,13,20,21,19,16,18,13,9,16,18,19,17,22,17,15,14,16,19,17,16,18,22,20,21,1,20,18,19,21,2,1,21,22,20,15,17,22,20,1,3,22,17,19,22,20,21,1,22,20,17,19,18,16,19,21,22,20,21,1,20,15,17,22,20,21,1,3,21,20,22,1,21,20,22,17,15,20,1,21,20,22,21,19,16,18,19,17,20,22,1,21,20,22,19,17,22,3,1,20,22,17,15,20,22,21,1,2,21,19,18,20,1,21,20,22,4,2,3,5,22,4,2,1,4,3,5,1,3,19,21,4,2,5,7,3,5,21,4,2,3,5,4,2,1,21,22,20,1,3,4,2,3,5,22,19,21,4,2,3,5,5,1,2,4,5,3,2,4,21,19,22,5,3,2,4,3,1,20,22,21,1,2,4,5,3,2,4,21,5,3,7,5,2,4,21,19,3,1,5,3,4,1,2,4,22,5,3,2,4,8,6,7,9,8,6,3,5,8,6,7,4,2,5,7,8,6,9,11,2,1,7,9,8,6,7,9,8,6,3,5,4,2,5,7,8,6,7,9,4,2,1,8,6,7,9,9,7,6,8,9,7,6,8,1,2,4,9,7,6,8,7,5,2,4,5,3,6,8,9,7,6,8,9,7,1,2,11,9,6,8,7,5,2,4,7,6,8,5,3,6,8,9,7,6,8,12,10,11,13,12,10,7,9,10,9,11,8,6,9,11,12,10,13,15,6,4,11,13,12,10,11,13,12,10,7,9,8,6,9,11,12,10,11,13,6,3,5,12,10,11,13,11,13,10,12,13,11,10,12,5,3,6,13,11,10,12,11,9,6,8,9,7,10,12,13,11,10,12,13,11,4,6,15,13,10,12,11,9,6,8,11,9,10,9,7,10,12,13,11,10,12,16,14,15,17,16,14,11,13,12,13,15,12,10,13,15,16,14,17,19,10,8,15,17,16,14,15,17,16,14,11,13,12,10,13,15,16,14,15,17,8,7,9,16,14,15,17,15,17,14,16,17,15,14,16,9,7,8,17,15,14,16,15,13,10,12,13,11,14,16,17,15,14,16,17,15,8,10,19,17,14,16,15,13,10,12,15,13,12,13,11,14,16,17,15,14,16,20,18,19,21,20,18,15,17,16,14,17,19,16,14,17,19,20,18,21,16,14,12,19,21,20,18,19,20,18,15,17,16,14,17,19,20,18,19,21,12,10,11,13,20,18,19,21,19,21,18,20,21,19,18,20,13,11,10,12,21,19,18,20,19,17,14,16,17,15,18,20,19,18,20,21,19,12,14,16,21,18,20,19,17,14,16,19,17,14,16,17,15,18,20,21,19,18,20,4,2,1,3,1,3,19,21,20,18,21,1,20,18,21,1,2,1,3,20,18,2,1,3,2,1,21,1,3,19,21,20,18,21,1,4,2,1,3,16,14,15,17,4,2,1,3,3,1,2,4,3,1,2,4,17,15,14,16,3,1,2,4,1,21,18,20,21,19,3,1,21,1,2,3,1,2,18,20,3,1,2,1,21,18,20,1,21,18,20,21,19,3,1,3,1,2,4,8,6,5,7,4,2,5,7,4,2,3,5,4,2,3,5,4,5,7,8,6,4,5,7,4,3,5,4,2,5,7,4,2,3,5,8,6,5,7,20,18,19,21,8,6,5,7,7,5,6,8,7,5,6,8,21,19,18,20,7,5,6,8,5,3,2,4,7,5,2,4,5,3,4,7,5,4,6,8,7,5,4,5,3,2,4,5,3,2,4,7,5,2,4,7,5,6,8,12,10,9,11,8,6,9,11,8,6,7,9,8,6,7,9,8,6,9,11,12,10,9,11,8,6,7,9,8,6,9,11,8,6,7,9,12,10,9,11,4,2,1,3,12,10,9,11,9,11,10,12,11,9,10,12,3,1,2,4,11,9,10,12,9,7,6,8,11,9,6,8,9,7,6,8,11,9,10,12,11,9,6,8,9,7,6,8,9,7,6,8,11,9,6,8,11,9,10,12,16,14,13,15,12,10,13,15,12,10,11,13,12,10,11,13,12,10,13,15,16,14,13,15,12,10,11,13,12,10,13,15,12,10,11,13,16,14,13,15,8,6,5,7,16,14,13,15,13,15,14,16,15,13,14,16,7,5,6,8,15,13,14,16,13,11,10,12,15,13,10,12,13,11,10,12,15,13,14,16,15,13,10,12,13,11,10,12,13,11,10,12,15,13,10,12,15,13,14,16,20,18,17,19,16,14,17,19,16,14,15,17,16,14,15,17,16,14,17,19,20,18,17,19,16,14,15,17,16,14,17,19,16,14,15,17,20,18,17,19,12,10,9,11,20,18,17,19,17,19,18,20,19,17,18,20,11,9,10,12,19,17,18,20,17,15,14,16,19,17,14,16,17,15,14,16,19,17,18,20,19,17,14,16,17,15,14,16,17,15,14,16,19,17,14,16,19,17,18,20,4,2,0,21,20,18,21,2,20,18,19,21,20,18,19,21,20,18,21,0,4,2,0,21,20,18,19,21,0,20,18,21,20,18,19,21,1,2,0,1,21,16,14,13,15,2,0,1,21,21,1,0,2,21,1,0,2,15,13,14,16,21,1,0,2,1,21,19,18,20,21,18,20,0,21,19,18,20,21,0,2,4,0,21,18,20,21,19,18,20,21,19,18,20,2,21,18,20,21,0,2,4,8,6,1,3,6,4,0,1,6,4,2,0,2,0,1,3,6,4,2,1,8,6,1,3,6,4,2,0,4,2,1,3,4,2,0,3,5,6,4,3,5,20,18,17,19,6,4,3,5,5,3,4,6,5,3,4,6,19,17,18,20,5,3,4,6,5,3,0,2,4,3,1,2,4,0,2,4,6,3,1,6,8,1,2,4,6,3,1,0,2,0,2,4,6,1,0,4,6,3,1,6,8,12,10,5,7,10,8,3,5,10,8,1,3,6,4,5,7,10,8,3,5,12,10,5,7,10,8,1,3,8,6,5,7,10,8,6,7,9,10,8,7,9,0,1,3,21,10,8,7,9,7,9,8,10,9,7,8,10,21,3,1,0,9,7,8,10,9,7,6,8,10,7,5,6,8,3,1,8,10,7,5,10,12,5,3,8,10,7,5,4,6,3,1,8,10,5,3,8,10,7,5,10,12,16,14,9,13,14,12,7,9,14,12,5,7,12,10,8,9,13,14,12,7,9,16,14,9,13,14,12,5,7,12,10,9,13,14,12,13,15,14,12,13,15,6,4,2,5,7,14,12,13,15,13,15,12,14,15,13,12,14,7,5,2,4,6,15,13,12,14,15,13,12,14,13,9,10,12,7,5,12,14,13,9,14,16,9,7,12,14,13,9,8,10,12,7,5,12,14,9,7,12,14,13,9,14,16,20,18,15,17,18,16,13,15,18,16,9,13,18,16,14,15,17,18,16,13,15,20,18,15,17,18,16,9,13,16,14,15,17,18,16,17,19,18,16,17,19,12,10,8,9,13,18,16,17,19,17,19,16,18,19,17,16,18,13,9,8,10,12,19,17,16,18,19,17,16,18,17,15,14,16,13,9,16,18,17,15,18,20,15,13,16,18,17,15,14,16,18,13,9,16,18,15,13,16,18,17,15,18,20,2,22,19,21,22,20,17,19,22,20,15,17,2,22,20,19,21,22,20,17,19,1,22,19,21,22,20,15,17,20,18,19,21,22,20,21,1,22,20,21,1,18,16,14,15,17,22,20,21,1,3,21,20,22,1,21,20,22,17,15,14,16,18,1,21,20,22,1,21,20,22,21,19,18,20,17,15,20,22,21,19,22,1,19,17,20,22,21,19,20,22,2,17,15,20,22,19,17,20,22,21,19,22,2,4,1,3,5,1,3,5,21,2,1,3,19,21,4,1,3,5,1,3,5,21,4,2,3,5,2,1,3,19,21,22,1,3,5,4,2,3,5,4,2,3,5,22,20,19,21,5,4,2,3,5,5,1,2,4,5,3,2,4,5,21,19,20,22,5,3,2,4,5,3,2,4,5,3,1,22,21,19,3,1,2,5,3,2,4,21,5,3,1,5,3,1,4,21,19,3,1,2,21,5,3,1,5,3,1,4,8,6,7,9,4,2,7,9,6,4,5,7,9,8,6,7,9,4,2,7,9,8,6,7,9,6,4,5,7,9,4,2,7,9,8,6,7,9,8,6,7,9,2,1,3,7,9,8,6,7,9,9,7,6,8,9,7,6,8,9,7,3,1,2,9,7,6,8,9,7,6,8,9,7,2,4,9,7,5,4,6,9,7,6,8,9,7,2,4,9,7,6,8,9,7,5,4,6,9,7,2,4,9,7,6,8,12,10,11,13,8,6,11,13,12,10,8,11,13,12,10,11,13,8,6,11,13,12,10,11,13,12,10,8,11,13,8,6,11,13,12,10,11,13,12,10,11,13,8,6,4,11,13,12,10,11,13,11,13,10,12,13,11,10,12,13,11,4,6,8,13,11,10,12,13,11,10,12,13,11,6,8,13,11,8,10,12,13,11,10,12,13,11,6,8,13,11,10,12,13,11,8,10,12,13,11,6,8,13,11,10,12,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,15,17,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,19,21,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20};
+const Int_t AliHLTTPCMapping::fgkIFec[fgkNIROC] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,18,19,19,19,19,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,8,8,8,8,8,8,9,9,9,9,9,9,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,41,42,42,42,42};
+const Int_t AliHLTTPCMapping::fgkIFecChannel[fgkNIROC] = {1,0,2,4,1,0,2,4,1,0,2,4,1,3,0,1,0,2,4,1,0,2,4,1,0,2,4,1,3,0,1,0,2,4,4,2,0,1,0,3,1,4,2,0,1,4,2,0,1,4,2,0,1,0,3,1,4,2,0,1,4,2,0,1,4,2,0,1,3,5,6,8,3,5,6,8,3,5,6,8,5,2,4,3,5,6,8,3,5,6,8,3,5,6,8,5,2,4,3,5,6,8,8,6,5,3,4,2,5,8,6,5,3,8,6,5,3,8,6,5,3,4,2,5,8,6,5,3,8,6,5,3,8,6,5,3,7,9,10,12,7,9,10,12,7,9,10,12,7,6,8,7,9,10,12,7,9,10,12,7,9,10,12,7,6,8,7,9,10,12,12,10,9,7,8,6,7,12,10,9,7,12,10,9,7,12,10,9,7,8,6,7,12,10,9,7,12,10,9,7,12,10,9,7,11,13,14,16,11,13,14,16,11,13,14,16,9,10,12,11,13,14,16,11,13,14,16,11,13,14,16,9,10,12,11,13,14,16,16,14,13,11,12,10,9,16,14,13,11,16,14,13,11,16,14,13,11,12,10,9,16,14,13,11,16,14,13,11,16,14,13,11,15,17,18,20,15,17,20,18,15,17,20,18,11,13,14,16,15,17,20,18,15,17,18,15,17,20,18,11,13,14,16,15,17,20,18,18,20,17,15,16,14,13,11,18,20,17,15,18,17,15,18,20,17,15,16,14,13,11,18,20,17,15,18,20,17,15,20,18,17,15,19,21,23,22,19,23,21,22,19,23,21,22,15,17,20,18,19,25,23,21,21,19,20,19,25,23,21,15,17,20,18,19,25,23,21,21,23,25,19,18,20,17,15,21,23,25,19,20,19,21,21,23,25,19,18,20,17,15,22,21,23,19,22,21,23,19,22,23,21,19,25,27,24,26,27,25,24,26,27,25,24,26,19,21,22,24,29,27,22,24,23,22,24,29,27,22,24,19,25,23,21,29,27,22,24,24,22,27,29,21,23,25,19,24,22,27,29,24,22,23,24,22,27,29,24,22,21,19,26,24,25,27,26,24,25,27,26,24,27,25,29,31,28,30,31,29,28,30,31,29,28,30,25,23,26,28,32,31,26,28,27,25,26,28,32,31,26,28,29,27,22,24,32,31,26,28,28,26,31,32,24,22,27,29,28,26,31,32,28,26,25,27,28,26,31,32,28,26,23,25,30,28,29,31,30,28,29,31,30,28,31,29,32,34,33,35,34,32,33,35,34,32,33,35,29,27,30,33,36,34,30,33,31,29,30,33,36,34,30,33,32,31,26,28,36,34,30,33,33,30,34,36,28,26,31,32,33,30,34,36,33,30,29,31,33,30,34,36,33,30,27,29,35,33,32,34,35,33,32,34,35,33,34,32,36,38,37,39,38,36,37,39,38,36,37,39,32,31,35,37,40,38,35,37,34,32,35,37,40,38,35,37,36,34,30,33,40,38,35,37,37,35,38,40,33,30,34,36,37,35,38,40,37,35,32,34,37,35,38,40,37,35,31,32,39,37,36,38,39,37,36,38,39,37,38,36,40,42,41,43,44,42,40,41,44,42,40,41,38,36,34,39,41,43,42,39,41,38,36,39,41,47,42,39,41,40,38,35,37,43,42,39,41,41,39,42,43,37,35,38,40,41,39,42,47,41,39,36,38,41,39,42,43,41,39,34,36,38,41,40,42,44,41,40,42,44,43,41,42,40,46,44,45,47,46,43,45,47,46,43,45,47,42,40,43,45,47,46,44,45,47,42,40,43,45,43,45,49,51,43,42,39,41,46,44,45,47,47,45,44,46,41,39,42,43,51,49,45,43,45,43,40,42,47,45,44,46,47,45,43,40,42,47,45,43,46,47,45,43,46,47,45,44,46,50,48,49,51,50,48,49,51,50,48,49,51,48,46,44,49,51,50,48,49,51,46,44,47,49,46,44,53,55,46,44,45,47,50,48,49,51,51,49,48,50,47,45,44,46,55,53,44,46,49,47,44,46,51,49,48,50,51,49,44,46,48,51,49,48,50,51,49,48,50,51,49,48,50,54,52,53,55,54,52,53,55,54,52,53,55,54,52,50,53,55,54,52,53,55,50,48,51,53,52,50,48,57,59,50,48,49,51,54,52,53,55,55,53,52,54,51,49,48,50,59,57,48,50,52,53,51,48,50,55,53,52,54,55,53,50,52,54,55,53,52,54,55,53,52,54,55,53,52,54,60,58,57,59,58,56,57,59,58,56,57,59,60,58,56,57,59,58,56,57,59,54,52,55,57,58,56,54,61,63,54,52,53,55,58,56,57,59,59,57,56,58,55,53,52,54,63,61,54,56,58,57,55,52,54,59,57,56,58,59,57,56,58,60,59,57,56,58,59,57,56,58,59,57,58,60,56,62,61,63,62,60,61,63,62,60,61,63,64,66,62,61,63,62,60,61,63,58,56,59,61,62,60,66,68,70,58,56,57,59,62,60,61,63,63,61,60,62,59,57,56,58,70,68,66,60,62,61,59,56,58,63,61,60,62,63,61,62,66,64,63,61,60,62,63,61,60,62,63,61,62,56,65,64,66,68,64,66,68,70,72,65,64,66,68,67,65,68,70,64,66,68,70,72,62,60,63,68,67,65,64,72,64,62,60,61,63,65,64,66,68,68,66,64,65,63,61,60,62,64,72,64,65,67,68,63,60,62,72,70,68,66,64,70,68,65,67,68,66,64,65,72,70,68,66,64,68,66,64,65,69,67,70,72,69,67,65,74,76,69,67,70,72,71,69,72,74,69,67,65,74,76,64,66,70,72,71,69,74,76,65,66,68,70,72,69,67,70,72,72,70,67,69,72,70,68,66,65,76,74,69,71,72,70,66,64,76,74,65,67,69,74,72,69,71,72,70,67,69,76,74,65,67,69,72,70,67,69,73,71,74,76,75,73,71,78,80,73,71,74,76,75,73,76,78,75,73,71,78,80,67,65,74,76,75,73,78,80,71,69,67,74,76,73,71,74,76,76,74,71,73,76,74,67,69,71,80,78,73,75,76,74,65,67,80,78,71,73,75,78,76,73,75,76,74,71,73,80,78,71,73,75,76,74,71,73,77,75,78,80,81,79,77,82,84,79,77,75,78,80,79,77,80,82,79,77,82,84,73,71,69,78,80,79,77,82,84,77,75,73,78,80,77,75,78,80,80,78,75,77,80,78,73,75,77,84,82,77,79,80,78,69,71,73,84,82,77,79,82,80,77,79,80,78,75,77,79,84,82,77,79,81,80,78,75,77,81,79,82,84,83,89,87,85,86,85,83,81,82,84,83,81,84,88,83,81,86,88,79,77,75,82,84,83,81,87,85,83,81,79,82,84,81,79,82,84,84,82,79,81,84,82,79,81,83,85,87,81,83,84,82,75,77,79,88,86,81,83,88,84,81,83,84,82,81,83,85,86,85,87,89,83,84,82,79,81,83,85,86,88,95,93,91,88,90,91,89,87,86,88,85,86,90,92,87,85,90,92,83,81,85,86,88,91,89,86,88,85,86,88,90,92,83,87,85,86,86,85,87,83,92,90,88,86,85,88,86,89,91,88,86,85,81,83,92,90,85,87,92,90,86,85,88,86,87,89,91,90,88,91,93,95,88,86,85,83,91,89,87,90,92,98,96,92,94,95,93,90,92,91,89,87,94,97,93,91,89,94,97,91,89,87,90,92,95,93,90,92,91,89,87,94,97,91,89,88,90,90,88,89,91,97,94,87,89,91,92,90,93,95,92,90,87,89,91,97,94,89,91,93,97,94,87,89,91,92,90,93,95,94,92,96,98,92,90,87,89,91,96,95,93,94,97,102,100,97,99,98,96,94,97,96,95,93,99,101,98,96,95,99,101,96,95,93,94,97,98,96,94,97,96,95,93,99,101,95,93,92,94,94,92,93,95,101,99,93,95,96,97,94,96,98,97,94,93,95,96,101,99,95,96,98,101,99,93,95,96,97,94,96,98,99,97,100,102,97,94,93,95,96,102,100,98,99,101,106,104,101,103,102,100,99,101,102,100,98,103,105,104,102,100,103,105,102,100,98,99,101,102,100,99,101,102,100,98,103,105,98,96,97,99,99,97,96,98,105,103,98,100,102,101,99,100,102,101,99,98,100,102,105,103,100,102,104,105,103,98,100,102,101,99,100,102,103,101,104,106,101,99,98,100,102,106,104,103,105,111,107,109,111,105,106,104,103,105,111,106,104,107,109,111,106,107,109,111,106,104,103,105,111,107,106,104,103,105,106,104,107,109,111,102,100,101,103,103,101,100,102,111,109,107,104,106,105,103,104,106,107,111,105,103,104,106,111,109,107,106,111,109,107,104,106,111,105,103,104,106,105,111,109,107,111,105,103,104,106,108,107,109,113,115,110,108,113,115,108,107,109,113,115,112,110,108,113,115,110,108,113,115,108,107,109,113,115,108,109,111,113,115,112,110,108,113,115,106,104,105,111,111,105,104,106,115,113,108,110,112,115,113,111,109,108,115,113,109,107,108,115,113,108,110,115,113,108,110,112,115,113,109,107,108,115,113,108,110,115,113,109,107,108,114,112,110,117,119,114,112,117,119,114,112,110,117,119,118,116,114,117,119,114,112,117,119,114,112,110,117,119,114,112,110,117,119,118,116,114,117,119,107,109,113,115,115,113,109,107,119,117,114,116,118,119,117,110,112,114,119,117,110,112,114,119,117,112,114,119,117,114,116,118,119,117,110,112,114,119,117,112,114,119,117,110,112,114,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,122,120,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,122,120,121,123,112,110,108,117,119,119,117,108,110,112,123,121,120,122,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,120,122,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,125,127,118,116,114,121,123,123,121,114,116,118,127,125,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,3,1,0,3,1,0,2,0,2,4,7,5,3,1,0,2,4,5,3,1,5,3,1,0,3,1,0,5,3,1,5,3,1,3,1,0,2,126,124,122,120,125,127,127,125,120,122,124,126,2,0,1,3,1,3,5,1,3,5,0,1,3,0,1,3,5,1,3,5,4,2,0,1,3,5,7,4,2,0,2,0,1,3,0,1,3,5,2,4,7,5,4,6,3,1,6,8,9,1,0,5,3,6,8,7,0,2,9,7,2,4,5,2,4,9,7,0,7,0,2,7,5,4,6,3,1,0,2,2,0,1,3,2,0,1,3,6,4,5,7,2,0,7,0,7,9,4,2,5,4,2,7,9,2,0,7,8,6,3,5,0,1,9,8,6,1,3,6,4,5,7,4,2,5,7,6,8,11,9,8,10,7,5,10,12,11,2,4,9,7,10,12,9,4,6,13,11,6,8,7,6,8,11,2,4,9,4,6,11,9,8,10,7,5,4,6,6,4,5,7,6,4,5,7,10,8,9,11,6,4,9,4,2,11,8,6,7,8,6,11,13,6,4,9,12,10,7,9,4,2,11,12,10,5,7,10,8,9,11,8,6,7,9,10,12,15,13,12,14,11,9,14,16,13,6,8,13,11,14,16,11,8,10,15,10,12,11,9,10,12,13,6,8,11,8,10,15,13,12,14,11,9,8,10,8,10,9,11,10,8,9,11,14,12,13,15,10,8,11,8,6,13,12,10,9,11,12,10,15,10,8,11,16,14,11,13,8,6,13,16,14,9,11,14,12,13,15,12,10,9,13,11,14,16,17,16,18,15,13,18,20,15,10,12,17,15,18,20,15,13,12,14,17,14,16,15,13,14,16,15,10,12,15,13,12,14,17,16,18,15,13,12,14,12,14,13,15,14,12,13,15,18,16,17,14,12,13,15,12,10,15,16,14,13,15,16,14,17,14,12,13,15,20,18,15,17,12,10,15,20,18,13,15,18,16,17,16,14,11,13,17,15,18,20,19,20,21,19,17,21,22,17,14,16,19,21,22,24,19,17,16,18,19,18,20,19,17,18,20,17,14,16,19,17,16,18,19,20,21,19,17,16,18,16,18,17,19,18,16,17,19,21,20,19,18,16,17,19,16,14,17,20,18,17,19,20,18,19,18,16,17,19,24,22,21,19,16,14,17,22,21,17,19,21,20,19,20,18,15,17,19,23,21,22,25,23,22,27,25,23,24,19,18,20,27,25,23,26,23,21,22,20,23,21,22,25,23,21,22,19,18,20,23,21,22,20,25,23,22,23,21,22,20,20,22,21,23,20,22,21,23,22,23,25,20,22,21,23,20,18,19,22,21,23,25,22,21,23,20,22,21,23,26,23,25,27,20,18,19,24,23,25,27,22,23,25,22,21,23,19,27,25,24,26,29,27,24,32,31,29,26,27,25,23,21,31,29,28,29,27,25,24,27,25,24,26,29,27,24,23,21,22,24,27,25,24,26,29,27,24,27,25,24,26,26,24,25,27,26,24,25,27,24,27,29,26,24,25,27,24,22,21,23,24,27,29,26,24,25,27,24,25,27,29,28,29,31,21,23,25,27,26,29,31,32,24,27,29,26,24,25,27,31,29,28,30,31,26,28,36,34,28,30,31,29,22,24,32,30,33,34,32,31,26,31,29,28,30,32,31,26,27,25,26,28,31,29,28,30,32,31,26,31,29,28,30,28,30,29,31,30,28,29,31,26,31,32,30,28,29,31,28,26,25,27,26,31,32,30,28,29,31,26,31,32,34,33,30,32,24,22,29,31,30,28,34,36,28,26,31,30,28,29,31,34,32,33,35,32,30,33,40,38,33,35,34,32,26,28,34,35,37,38,36,28,30,34,32,33,35,34,28,30,31,29,30,33,34,32,33,35,36,34,28,34,32,33,35,33,35,32,34,35,33,32,34,28,34,36,35,33,32,34,33,30,29,31,30,28,34,35,33,32,34,30,28,36,38,37,35,34,28,26,32,34,35,33,38,40,33,30,32,35,33,32,34,38,36,37,39,36,34,35,37,42,37,39,38,36,30,33,38,36,39,41,40,33,35,38,36,37,39,38,36,33,35,34,32,35,37,38,36,37,39,38,30,33,38,36,37,39,37,39,36,38,39,37,36,38,33,30,38,39,37,36,38,37,35,32,34,35,33,36,38,39,37,36,38,35,33,40,41,39,36,38,33,30,36,38,39,37,42,37,35,34,36,39,37,36,38,42,40,41,43,40,38,39,41,44,43,41,42,40,35,37,42,40,43,45,42,37,39,42,40,41,43,42,40,37,39,38,36,39,41,42,40,41,43,40,35,37,42,40,41,43,45,41,40,42,43,41,40,42,37,35,40,43,41,40,42,41,39,36,38,39,37,40,42,43,41,40,42,39,37,42,45,43,40,42,37,35,40,42,41,43,44,41,39,38,40,43,41,40,42,46,44,45,47,42,46,44,43,46,45,47,43,45,39,41,46,44,47,49,45,47,41,46,44,45,47,46,44,43,41,42,40,43,45,46,44,45,47,42,39,41,46,44,45,47,47,43,44,46,47,45,44,46,41,39,42,47,45,44,46,45,43,40,42,41,43,44,46,47,45,44,46,41,47,45,49,47,44,46,41,39,45,43,47,45,46,43,44,46,42,47,45,44,46,50,48,49,51,50,48,45,47,50,48,49,46,44,47,49,50,48,51,53,44,43,49,51,50,48,49,51,50,48,45,47,46,44,47,49,50,48,49,51,46,44,43,50,48,49,51,51,49,48,50,51,49,48,50,43,44,46,51,49,48,50,49,47,44,46,47,45,48,50,51,49,48,50,51,49,43,44,53,51,48,50,49,47,44,46,49,48,50,47,45,48,50,51,49,48,50,54,52,53,55,54,52,49,51,52,51,53,50,48,51,53,54,52,55,57,48,46,53,55,54,52,53,55,54,52,49,51,50,48,51,53,54,52,53,55,48,45,47,54,52,53,55,53,55,52,54,55,53,52,54,47,45,48,55,53,52,54,53,51,48,50,51,49,52,54,55,53,52,54,55,53,46,48,57,55,52,54,53,51,48,50,53,51,52,51,49,52,54,55,53,52,54,58,56,57,59,58,56,53,55,54,55,57,54,52,55,57,58,56,59,61,52,50,57,59,58,56,57,59,58,56,53,55,54,52,55,57,58,56,57,59,50,49,51,58,56,57,59,57,59,56,58,59,57,56,58,51,49,50,59,57,56,58,57,55,52,54,55,53,56,58,59,57,56,58,59,57,50,52,61,59,56,58,57,55,52,54,57,55,54,55,53,56,58,59,57,56,58,62,60,61,63,62,60,57,59,58,56,59,61,58,56,59,61,62,60,63,58,56,54,61,63,62,60,61,62,60,57,59,58,56,59,61,62,60,61,63,54,52,53,55,62,60,61,63,61,63,60,62,63,61,60,62,55,53,52,54,63,61,60,62,61,59,56,58,59,57,60,62,61,60,62,63,61,54,56,58,63,60,62,61,59,56,58,61,59,56,58,59,57,60,62,63,61,60,62,67,65,64,66,64,66,61,63,62,60,63,64,62,60,63,64,65,64,66,62,60,65,64,66,65,64,63,64,66,61,63,62,60,63,64,67,65,64,66,58,56,57,59,67,65,64,66,66,64,65,67,66,64,65,67,59,57,56,58,66,64,65,67,64,63,60,62,63,61,66,64,63,64,65,66,64,65,60,62,66,64,65,64,63,60,62,64,63,60,62,63,61,66,64,66,64,65,67,71,69,68,70,67,65,68,70,67,65,66,68,67,65,66,68,67,68,70,71,69,67,68,70,67,66,68,67,65,68,70,67,65,66,68,71,69,68,70,62,60,61,63,71,69,68,70,70,68,69,71,70,68,69,71,63,61,60,62,70,68,69,71,68,66,65,67,70,68,65,67,68,66,67,70,68,67,69,71,70,68,67,68,66,65,67,68,66,65,67,70,68,65,67,70,68,69,71,75,73,72,74,71,69,72,74,71,69,70,72,71,69,70,72,71,69,72,74,75,73,72,74,71,69,70,72,71,69,72,74,71,69,70,72,75,73,72,74,67,65,64,66,75,73,72,74,72,74,73,75,74,72,73,75,66,64,65,67,74,72,73,75,72,70,69,71,74,72,69,71,72,70,69,71,74,72,73,75,74,72,69,71,72,70,69,71,72,70,69,71,74,72,69,71,74,72,73,75,79,77,76,78,75,73,76,78,75,73,74,76,75,73,74,76,75,73,76,78,79,77,76,78,75,73,74,76,75,73,76,78,75,73,74,76,79,77,76,78,71,69,68,70,79,77,76,78,76,78,77,79,78,76,77,79,70,68,69,71,78,76,77,79,76,74,73,75,78,76,73,75,76,74,73,75,78,76,77,79,78,76,73,75,76,74,73,75,76,74,73,75,78,76,73,75,78,76,77,79,83,81,80,82,79,77,80,82,79,77,78,80,79,77,78,80,79,77,80,82,83,81,80,82,79,77,78,80,79,77,80,82,79,77,78,80,83,81,80,82,75,73,72,74,83,81,80,82,80,82,81,83,82,80,81,83,74,72,73,75,82,80,81,83,80,78,77,79,82,80,77,79,80,78,77,79,82,80,81,83,82,80,77,79,80,78,77,79,80,78,77,79,82,80,77,79,82,80,81,83,89,87,85,84,83,81,84,87,83,81,82,84,83,81,82,84,83,81,84,85,89,87,85,84,83,81,82,84,85,83,81,84,83,81,82,84,86,87,85,86,84,79,77,76,78,87,85,86,84,84,86,85,87,84,86,85,87,78,76,77,79,84,86,85,87,86,84,82,81,83,84,81,83,85,84,82,81,83,84,85,87,89,85,84,81,83,84,82,81,83,84,82,81,83,87,84,81,83,84,85,87,89,93,91,86,88,91,89,85,86,91,89,87,85,87,85,86,88,91,89,87,86,93,91,86,88,91,89,87,85,89,87,86,88,89,87,85,88,90,91,89,88,90,83,81,80,82,91,89,88,90,90,88,89,91,90,88,89,91,82,80,81,83,90,88,89,91,90,88,85,87,89,88,86,87,89,85,87,89,91,88,86,91,93,86,87,89,91,88,86,85,87,85,87,89,91,86,85,89,91,88,86,91,93,96,95,90,92,95,93,88,90,95,93,86,88,91,89,90,92,95,93,88,90,96,95,90,92,95,93,86,88,93,91,90,92,95,93,91,92,94,95,93,92,94,85,86,88,84,95,93,92,94,92,94,93,95,94,92,93,95,84,88,86,85,94,92,93,95,94,92,91,93,95,92,90,91,93,88,86,93,95,92,90,95,96,90,88,93,95,92,90,89,91,88,86,93,95,90,88,93,95,92,90,95,96,100,98,94,97,98,96,92,94,98,96,90,92,96,95,93,94,97,98,96,92,94,100,98,94,97,98,96,90,92,96,95,94,97,98,96,97,99,98,96,97,99,91,89,87,90,92,98,96,97,99,97,99,96,98,99,97,96,98,92,90,87,89,91,99,97,96,98,99,97,96,98,97,94,95,96,92,90,96,98,97,94,98,100,94,92,96,98,97,94,93,95,96,92,90,96,98,94,92,96,98,97,94,98,100,104,102,99,101,102,100,97,99,102,100,94,97,102,100,98,99,101,102,100,97,99,104,102,99,101,102,100,94,97,100,98,99,101,102,100,101,103,102,100,101,103,96,95,93,94,97,102,100,101,103,101,103,100,102,103,101,100,102,97,94,93,95,96,103,101,100,102,103,101,100,102,101,99,98,100,97,94,100,102,101,99,102,104,99,97,100,102,101,99,98,100,102,97,94,100,102,99,97,100,102,101,99,102,104,108,106,103,105,106,104,101,103,106,104,99,101,108,106,104,103,105,106,104,101,103,107,106,103,105,106,104,99,101,104,102,103,105,106,104,105,107,106,104,105,107,102,100,98,99,101,106,104,105,107,109,105,104,106,107,105,104,106,101,99,98,100,102,107,105,104,106,107,105,104,106,105,103,102,104,101,99,104,106,105,103,106,107,103,101,104,106,105,103,104,106,108,101,99,104,106,103,101,104,106,105,103,106,108,110,107,109,111,107,109,111,105,108,107,109,103,105,110,107,109,111,107,109,111,105,110,108,109,111,108,107,109,103,105,106,107,109,111,110,108,109,111,110,108,109,111,106,104,103,105,111,110,108,109,111,111,107,108,110,111,109,108,110,111,105,103,104,106,111,109,108,110,111,109,108,110,111,109,107,106,105,103,109,107,108,111,109,108,110,105,111,109,107,111,109,107,110,105,103,109,107,108,105,111,109,107,111,109,107,110,114,112,113,115,110,108,113,115,112,110,111,113,115,114,112,113,115,110,108,113,115,114,112,113,115,112,110,111,113,115,110,108,113,115,114,112,113,115,114,112,113,115,108,107,109,113,115,114,112,113,115,115,113,112,114,115,113,112,114,115,113,109,107,108,115,113,112,114,115,113,112,114,115,113,108,110,115,113,111,110,112,115,113,112,114,115,113,108,110,115,113,112,114,115,113,111,110,112,115,113,108,110,115,113,112,114,118,116,117,119,114,112,117,119,118,116,114,117,119,118,116,117,119,114,112,117,119,118,116,117,119,118,116,114,117,119,114,112,117,119,118,116,117,119,118,116,117,119,114,112,110,117,119,118,116,117,119,117,119,116,118,119,117,116,118,119,117,110,112,114,119,117,116,118,119,117,116,118,119,117,112,114,119,117,114,116,118,119,117,116,118,119,117,112,114,119,117,116,118,119,117,114,116,118,119,117,112,114,119,117,116,118,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,121,123,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,125,127,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126};
+const Int_t AliHLTTPCMapping::fgkIFecCon[fgkNIROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,4,3,3,4,4,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,4,4,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,5,4,4,5,5,5,4,5,5,5,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,5,5,5,4,5,5,5,4,4,5,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,2,2,2,2,2,3,2,2,2,3,3,3,3,2,2,3,3,3,3,3,2,3,3,2,2,2,2,2,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,2,2,2,2,2,3,3,2,3,3,3,3,3,2,2,3,3,3,3,2,2,2,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,3,3,3,3,3,4,4,4,3,3,4,4,4,3,4,4,4,3,3,3,3,3,4,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,5,4,4,4,4,4,4,4,4,5,5,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,4,5,5,5,4,4,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,4,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5};
diff --git a/HLT/misc/AliHLTTPCMapping-oroc.generated b/HLT/misc/AliHLTTPCMapping-oroc.generated
new file mode 100644
index 00000000000..95a4c2c84a0
--- /dev/null
+++ b/HLT/misc/AliHLTTPCMapping-oroc.generated
@@ -0,0 +1,8 @@
+const Int_t AliHLTTPCMapping::fgkNOROC = 9984;
+const Int_t AliHLTTPCMapping::fgkORows[fgkNOROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95};
+const Int_t AliHLTTPCMapping::fgkOPad[fgkNOROC] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139};
+const Int_t AliHLTTPCMapping::fgkOCon[fgkNOROC] = {235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,246,246,246,237,237,238,238,238,238,239,239,239,239,249,249,249,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,15,15,15,5,5,5,5,4,4,4,4,3,3,12,12,12,2,2,2,2,1,1,1,1,244,244,244,235,245,245,245,245,236,246,246,246,246,247,247,247,238,248,248,248,248,248,249,249,249,249,250,250,250,250,241,251,251,251,242,243,252,252,252,18,18,18,9,8,17,17,17,7,16,16,16,16,15,15,15,15,14,14,14,14,14,4,13,13,13,12,12,12,12,2,11,11,11,11,1,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,250,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,16,16,16,16,16,15,15,15,15,14,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,250,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,16,16,16,16,16,15,15,15,15,14,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,246,247,247,247,247,248,248,248,248,249,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,17,16,16,16,16,15,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,254,254,255,255,255,246,246,247,247,247,247,248,248,248,257,258,258,258,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,17,16,16,16,16,15,15,24,24,24,23,14,14,14,13,13,13,13,12,12,21,21,21,20,20,11,11,11,10,10,10,10,253,244,244,244,254,254,254,254,254,255,255,255,255,256,247,247,247,257,257,257,257,257,258,258,258,258,258,259,259,259,259,260,260,260,251,261,261,252,252,252,18,18,18,27,27,17,26,26,26,25,25,25,25,24,24,24,24,24,23,23,23,23,23,13,13,13,22,21,21,21,21,20,20,20,20,20,10,10,10,19,253,253,253,253,254,254,254,254,255,255,255,255,255,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,21,21,21,21,21,20,20,20,20,19,19,19,19,253,253,253,253,253,254,254,254,254,255,255,255,255,256,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,19,253,253,253,253,253,254,254,254,254,255,255,255,255,256,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,19,253,253,253,253,253,254,254,263,263,264,264,264,255,256,256,256,256,256,266,266,266,266,266,258,267,267,267,259,259,268,268,260,260,260,260,260,261,261,261,261,270,36,27,27,27,27,26,26,26,26,26,34,34,25,25,33,33,33,24,32,32,32,32,32,22,22,22,22,22,21,30,30,30,29,29,20,20,19,19,19,19,19,262,262,262,262,253,263,263,263,263,264,264,264,264,264,256,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,260,270,270,270,270,270,36,36,36,36,36,26,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,22,30,30,30,30,30,29,29,29,29,19,28,28,28,28,262,262,262,262,262,263,263,263,263,264,264,264,264,264,265,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,31,30,30,30,30,30,29,29,29,29,28,28,28,28,28,262,262,262,262,262,263,263,263,263,264,264,264,264,264,265,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,31,30,30,30,30,30,29,29,29,29,28,28,28,28,28,262,262,262,262,262,263,263,263,263,263,264,264,264,273,265,265,265,265,265,275,266,266,266,266,267,267,267,276,268,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,34,42,33,33,33,32,32,32,32,41,31,31,31,31,31,39,30,30,30,29,29,29,29,29,28,28,28,28,28,271,271,271,262,262,263,263,272,272,272,273,273,273,273,265,265,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,268,268,269,269,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,35,35,34,34,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,31,31,39,39,39,39,38,38,38,29,29,28,28,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,274,274,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,274,274,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,273,274,274,274,274,274,275,275,275,275,276,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,42,41,41,41,41,40,40,40,40,40,39,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,280,281,272,272,272,272,273,273,273,273,282,283,274,274,274,274,275,275,284,284,285,276,276,276,276,277,277,277,277,286,287,278,278,278,278,279,279,288,288,288,54,54,54,45,45,44,44,44,44,53,52,43,43,43,43,42,42,42,42,51,50,50,41,41,40,40,40,40,49,48,39,39,39,39,38,38,38,38,47,46,37,37,37,37,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,298,298,64,64,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,289,289,289,289,290,290,290,290,290,291,291,291,291,291,292,292,292,292,293,293,293,293,293,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,59,59,59,59,59,58,58,58,58,57,57,57,57,57,56,56,56,56,56,55,55,55,55,289,289,289,289,289,290,290,290,290,291,291,291,291,291,292,292,292,292,292,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,58,58,58,58,58,57,57,57,57,57,56,56,56,56,55,55,55,55,55,289,289,289,289,289,290,290,290,290,291,291,291,291,291,292,292,292,292,292,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,58,58,58,58,58,57,57,57,57,57,56,56,56,56,55,55,55,55,55,289,289,289,289,290,290,290,290,290,291,291,291,291,291,292,292,292,292,293,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,59,58,58,58,58,57,57,57,57,57,56,56,56,56,56,55,55,55,55,289,289,289,299,299,300,300,290,290,290,301,301,301,291,292,292,292,302,302,303,303,293,293,293,294,294,304,304,305,305,305,305,295,296,296,296,296,296,297,307,307,307,308,308,298,298,298,64,64,64,74,74,73,73,73,63,62,62,62,62,62,61,71,71,71,71,70,70,60,60,59,59,59,69,69,68,68,58,58,58,57,67,67,67,56,56,56,66,66,65,65,55,55,55,299,299,299,299,299,300,300,300,300,301,301,301,301,301,302,302,302,302,302,303,303,303,303,304,304,304,304,304,305,305,305,305,305,306,306,306,306,306,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,72,72,72,72,72,71,71,71,71,71,70,70,70,70,70,69,69,69,69,68,68,68,68,68,67,67,67,67,67,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,301,301,301,301,301,302,302,302,302,302,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,68,68,68,68,68,67,67,67,67,67,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,300,301,301,301,301,302,302,302,302,302,303,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,69,68,68,68,68,68,67,67,67,67,66,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,300,301,301,301,301,302,302,302,302,302,303,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,69,68,68,68,68,68,67,67,67,67,66,66,66,66,66,65,65,65,65,65,309,309,309,309,309,310,310,310,300,300,301,311,311,311,312,312,312,312,312,303,303,313,313,313,314,314,314,314,314,315,315,315,305,306,306,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,72,72,71,81,81,81,80,80,80,80,80,79,79,79,69,69,78,78,78,78,78,77,77,77,67,66,66,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,312,312,312,312,312,313,313,313,313,313,314,314,314,314,314,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,80,80,80,80,80,79,79,79,79,79,78,78,78,78,78,77,77,77,77,76,76,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,311,312,312,312,312,312,313,313,313,313,314,314,314,314,314,315,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,80,80,79,79,79,79,78,78,78,78,78,77,77,77,77,77,76,76,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,311,312,312,312,312,312,313,313,313,313,314,314,314,314,314,315,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,80,80,79,79,79,79,78,78,78,78,78,77,77,77,77,77,76,76,76,76,76,75,75,75,75,75,319,319,319,319,309,320,320,310,310,310,321,311,311,311,311,322,322,322,322,312,313,313,313,313,314,324,324,324,324,325,315,315,315,315,316,316,316,326,326,327,327,327,327,317,318,328,328,328,328,94,94,94,94,84,83,93,93,93,93,92,92,82,82,82,81,81,81,81,91,90,90,90,90,80,79,79,79,79,78,88,88,88,88,77,77,77,77,87,76,76,76,86,86,75,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,313,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,79,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,323,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,89,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,323,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,89,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,329,329,329,319,319,330,320,320,320,320,321,321,321,321,321,332,332,332,322,322,323,323,323,323,323,334,334,334,324,324,325,325,325,325,325,336,326,326,326,326,327,327,337,337,337,338,338,338,328,328,94,94,104,104,104,103,103,103,93,93,92,92,92,92,102,91,91,91,91,91,90,90,100,100,100,89,89,89,89,89,88,88,98,98,98,87,87,87,87,87,86,86,86,86,96,85,85,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,323,323,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,89,89,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,333,333,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,99,99,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,333,333,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,99,99,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,339,330,330,330,330,330,331,331,331,331,331,331,332,332,332,332,342,333,333,333,333,333,344,334,334,334,334,335,335,335,335,335,335,336,336,336,336,336,337,337,337,337,347,348,338,338,338,338,104,104,104,104,114,113,103,103,103,103,102,102,102,102,102,101,101,101,101,101,101,100,100,100,100,110,99,99,99,99,99,108,98,98,98,98,97,97,97,97,97,97,96,96,96,96,96,105,95,95,95,95,339,339,339,339,339,340,340,340,340,330,331,341,341,341,341,341,342,342,342,342,342,333,343,343,343,343,344,344,344,344,344,345,345,345,345,345,335,336,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,102,101,111,111,111,111,111,110,110,110,110,110,109,109,109,109,99,108,108,108,108,108,107,107,107,107,107,97,96,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,341,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,345,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,111,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,107,106,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,340,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,346,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,112,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,106,106,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,340,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,346,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,112,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,106,106,106,106,106,106,105,105,105,105,105,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,364,364,364,354,354,354,355,355,355,355,355,356,356,356,366,366,366,367,367,367,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,133,133,133,132,132,132,122,122,122,121,121,121,121,121,120,120,120,130,130,130,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,359,359,359,359,360,360,360,360,360,361,361,361,361,361,361,362,362,362,362,352,353,363,363,363,363,364,364,364,364,364,365,365,365,365,365,355,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,358,124,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,121,131,131,131,131,131,130,130,130,130,130,129,129,129,129,119,118,128,128,128,128,127,127,127,127,127,127,126,126,126,126,126,125,125,125,125,115,359,359,359,359,359,359,360,360,360,360,360,361,361,361,361,361,361,362,362,362,362,362,363,363,363,363,363,364,364,364,364,364,365,365,365,365,365,365,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,368,134,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,131,131,131,131,131,131,130,130,130,130,130,129,129,129,129,129,128,128,128,128,128,127,127,127,127,127,127,126,126,126,126,126,125,125,125,125,125,125,359,359,359,359,359,360,360,360,360,360,360,361,361,361,361,361,362,362,362,362,362,362,363,363,363,363,363,364,364,364,364,364,365,365,365,365,365,365,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,368,134,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,131,131,131,131,131,131,130,130,130,130,130,129,129,129,129,129,128,128,128,128,128,128,127,127,127,127,127,126,126,126,126,126,126,125,125,125,125,125,359,359,359,359,359,360,360,360,360,360,360,361,361,361,361,361,362,362,362,362,362,362,363,363,363,363,363,374,364,364,364,364,365,365,365,365,365,375,376,376,376,376,376,366,367,367,367,367,377,378,368,368,368,368,368,134,134,134,134,134,144,143,133,133,133,133,132,142,142,142,142,142,141,131,131,131,131,131,130,130,130,130,140,129,129,129,129,129,128,128,128,128,128,128,127,127,127,127,127,126,126,126,126,126,126,125,125,125,125,125,359,359,369,369,369,370,370,370,370,370,371,371,371,371,371,371,362,372,372,372,372,373,373,373,363,363,363,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,129,129,129,139,139,139,138,138,138,138,128,137,137,137,137,137,137,136,136,136,136,136,135,135,135,125,125,369,369,369,369,369,369,370,370,370,370,370,371,371,371,371,371,371,372,372,372,372,372,373,373,373,373,373,374,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,140,139,139,139,139,139,138,138,138,138,138,137,137,137,137,137,137,136,136,136,136,136,135,135,135,135,135,135,369,369,369,369,369,370,370,370,370,370,370,371,371,371,371,371,372,372,372,372,372,372,373,373,373,373,373,374,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,140,139,139,139,139,139,138,138,138,138,138,138,137,137,137,137,137,136,136,136,136,136,136,135,135,135,135,135,369,369,369,369,369,369,369,370,370,370,370,370,381,371,371,371,371,372,372,372,372,372,372,373,373,373,373,373,384,384,384,374,374,374,375,375,385,385,385,385,386,386,386,386,376,377,377,387,387,387,387,388,388,388,388,378,378,144,144,154,154,154,154,153,153,153,153,143,143,142,152,152,152,152,151,151,151,151,141,141,140,140,140,150,150,150,139,139,139,139,139,138,138,138,138,138,138,137,137,137,137,147,136,136,136,136,136,135,135,135,135,135,135,135,379,379,379,379,379,380,380,380,380,380,380,381,381,381,381,381,381,382,382,382,382,382,383,383,383,373,373,373,384,384,384,384,384,385,385,385,385,385,385,386,386,386,386,386,386,387,387,387,387,387,387,388,388,388,388,388,388,154,154,154,154,154,154,153,153,153,153,153,153,152,152,152,152,152,152,151,151,151,151,151,151,150,150,150,150,150,139,139,139,149,149,149,148,148,148,148,148,147,147,147,147,147,147,146,146,146,146,146,146,145,145,145,145,145,379,379,379,379,379,380,380,380,380,380,380,381,381,381,381,381,382,382,382,382,382,382,383,383,383,383,383,384,384,384,384,384,384,385,385,385,385,385,385,386,386,386,386,386,386,387,387,387,387,387,387,388,388,388,388,388,388,154,154,154,154,154,154,153,153,153,153,153,153,152,152,152,152,152,152,151,151,151,151,151,151,150,150,150,150,150,150,149,149,149,149,149,148,148,148,148,148,148,147,147,147,147,147,146,146,146,146,146,146,145,145,145,145,145,379,379,379,379,379,379,380,380,380,380,380,381,381,381,381,381,381,382,382,382,382,382,382,383,383,383,383,383,384,384,384,384,384,384,385,385,385,385,385,395,396,386,386,386,386,386,387,387,387,387,387,397,398,388,388,388,388,388,154,154,154,154,154,164,163,153,153,153,153,153,152,152,152,152,152,162,161,151,151,151,151,151,150,150,150,150,150,150,149,149,149,149,149,148,148,148,148,148,148,147,147,147,147,147,147,146,146,146,146,146,145,145,145,145,145,145,389,379,379,379,379,379,390,380,380,380,380,381,381,381,391,391,391,392,392,382,382,382,382,383,383,383,383,383,384,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,150,149,149,149,149,149,148,148,148,148,158,158,157,157,157,147,147,147,146,146,146,146,156,145,145,145,145,145,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,392,392,392,392,392,392,383,383,383,393,393,393,394,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,160,159,159,159,149,149,149,158,158,158,158,158,158,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,392,392,392,392,392,392,393,393,393,393,393,393,394,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,160,159,159,159,159,159,159,158,158,158,158,158,158,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,391,392,392,392,392,392,392,393,393,393,393,393,393,394,394,394,394,394,404,405,405,405,395,395,395,396,396,396,406,406,406,407,407,407,397,397,397,398,398,398,408,408,408,174,174,174,164,164,164,163,163,163,173,173,173,172,172,172,162,162,162,161,161,161,171,171,171,170,160,160,160,160,160,159,159,159,159,159,159,158,158,158,158,158,158,157,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,399,399,399,400,400,400,390,390,390,391,391,391,401,401,401,402,402,402,392,392,393,393,393,393,393,393,393,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,159,159,159,159,159,159,159,158,158,168,168,168,167,167,167,157,157,157,156,156,156,166,166,166,165,165,165,155,155,155,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,409,409,409,409,409,409,410,410,410,410,410,410,410,411,411,411,411,411,411,412,412,412,412,412,412,413,413,413,413,413,413,413,414,414,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,180,180,179,179,179,179,179,179,179,178,178,178,178,178,178,177,177,177,177,177,177,176,176,176,176,176,176,176,175,175,175,175,175,175,409,409,409,409,409,409,410,410,410,410,410,410,411,411,411,411,411,411,411,412,412,412,412,412,412,413,413,413,413,413,413,413,414,414,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,180,180,179,179,179,179,179,179,179,178,178,178,178,178,178,177,177,177,177,177,177,177,176,176,176,176,176,176,175,175,175,175,175,175,409,409,409,409,409,409,410,410,410,410,410,410,410,411,411,411,411,411,411,412,412,412,412,412,412,412,413,413,413,413,413,413,413,424,414,414,414,414,414,415,415,415,425,425,425,426,426,426,416,416,416,417,417,417,427,427,427,428,428,428,418,418,418,184,184,184,194,194,194,193,193,193,183,183,183,182,182,182,192,192,192,191,191,191,181,181,181,180,180,180,180,180,190,179,179,179,179,179,179,179,178,178,178,178,178,178,178,177,177,177,177,177,177,176,176,176,176,176,176,176,175,175,175,175,175,175,419,419,419,409,409,409,410,420,420,420,420,420,420,411,411,421,421,421,421,412,412,422,422,422,422,422,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,425,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,191,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,188,188,188,188,188,178,178,187,187,187,187,177,177,186,186,186,186,186,186,176,175,175,175,185,185,185,419,419,419,419,419,419,420,420,420,420,420,420,420,421,421,421,421,421,421,421,422,422,422,422,422,422,423,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,426,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,192,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,189,188,188,188,188,188,188,187,187,187,187,187,187,187,186,186,186,186,186,186,186,185,185,185,185,185,185,419,419,419,419,419,419,420,420,420,420,420,420,420,421,421,421,421,421,421,421,422,422,422,422,422,422,423,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,436,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,202,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,189,188,188,188,188,188,188,187,187,187,187,187,187,187,186,186,186,186,186,186,186,185,185,185,185,185,185,419,419,419,419,419,419,419,420,420,430,430,430,430,430,431,431,421,421,421,421,422,422,422,422,422,432,432,433,433,433,433,423,423,424,424,424,434,434,434,434,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,427,428,438,438,438,438,438,204,204,204,204,204,194,193,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,200,200,200,200,190,190,190,189,189,199,199,199,199,198,198,188,188,188,188,188,187,187,187,187,197,197,196,196,196,196,196,186,186,185,185,185,185,185,185,185,429,429,429,429,429,429,429,430,430,430,430,430,430,431,431,431,431,431,431,431,432,432,432,432,432,432,432,433,433,433,433,433,433,434,434,434,434,434,434,435,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,437,438,438,438,438,438,438,204,204,204,204,204,204,203,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,201,200,200,200,200,200,200,199,199,199,199,199,199,198,198,198,198,198,198,198,197,197,197,197,197,197,197,196,196,196,196,196,196,195,195,195,195,195,195,195,429,429,429,429,429,429,429,430,430,430,430,430,430,431,431,431,431,431,431,431,432,432,432,432,432,432,433,433,433,433,433,433,433,434,434,434,434,434,434,435,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,437,438,438,438,438,438,438,204,204,204,204,204,204,203,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,201,200,200,200,200,200,200,199,199,199,199,199,199,199,198,198,198,198,198,198,197,197,197,197,197,197,197,196,196,196,196,196,196,195,195,195,195,195,195,195,429,429,429,429,429,429,429,440,440,430,430,430,430,431,431,431,431,431,441,441,442,432,432,432,432,432,432,433,433,433,433,443,443,443,444,434,434,434,434,434,435,445,445,445,445,445,445,446,446,446,446,436,436,437,447,447,447,447,447,447,448,448,438,438,438,438,204,204,204,204,214,214,213,213,213,213,213,213,203,202,202,212,212,212,212,211,211,211,211,211,211,201,200,200,200,200,200,210,209,209,209,199,199,199,199,198,198,198,198,198,198,208,207,207,197,197,197,197,197,196,196,196,196,206,206,195,195,195,195,195,195,195,439,439,439,439,439,439,439,440,440,440,440,440,440,441,441,441,441,441,441,441,442,442,442,442,442,442,442,443,443,443,443,443,443,444,444,444,444,444,444,444,445,445,445,445,445,445,446,446,446,446,446,446,446,447,447,447,447,447,447,447,448,448,448,448,448,448,214,214,214,214,214,214,213,213,213,213,213,213,213,212,212,212,212,212,212,212,211,211,211,211,211,211,210,210,210,210,210,210,210,209,209,209,209,209,209,208,208,208,208,208,208,208,207,207,207,207,207,207,207,206,206,206,206,206,206,205,205,205,205,205,205,205,439,439,439,439,439,439,439,440,440,440,440,440,440,440,441,441,441,441,441,441,441,442,442,442,442,442,442,442,443,443,443,443,443,443,444,444,444,444,444,444,444,445,445,445,445,445,445,446,446,446,446,446,446,446,447,447,447,447,447,447,448,448,448,448,448,448,448,214,214,214,214,214,214,214,213,213,213,213,213,213,212,212,212,212,212,212,212,211,211,211,211,211,211,210,210,210,210,210,210,210,209,209,209,209,209,209,208,208,208,208,208,208,208,207,207,207,207,207,207,207,206,206,206,206,206,206,206,205,205,205,205,205,205,205,439,439,439,439,439,439,439,450,440,440,440,440,440,440,441,441,441,441,441,451,452,442,442,442,442,442,442,443,443,443,443,443,443,453,454,444,444,444,444,444,444,445,445,445,455,455,455,456,456,456,456,446,446,446,447,447,457,457,457,457,458,448,448,448,448,448,448,214,214,214,214,214,214,224,223,223,223,223,213,213,212,212,212,222,222,222,222,221,221,221,211,211,211,210,210,210,210,210,210,220,219,209,209,209,209,209,209,208,208,208,208,208,208,218,217,207,207,207,207,207,206,206,206,206,206,206,216,205,205,205,205,205,205,205,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,456,456,456,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,222,222,222,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,456,456,456,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,222,222,222,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,455,466,466,466,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,232,232,232,221,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,215,459,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,225,459,459,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,225,225};
+const Int_t AliHLTTPCMapping::fgkOPin[fgkNOROC] = {2,4,1,3,4,2,1,3,2,1,3,5,2,4,1,3,2,4,1,3,5,2,1,3,5,2,4,1,3,2,4,1,3,2,1,3,5,5,3,1,2,3,1,4,2,3,1,4,2,5,3,1,2,5,3,1,4,2,3,1,4,2,5,3,1,2,3,1,2,4,3,1,4,2,6,8,5,7,8,6,5,7,4,6,8,7,9,6,8,5,7,6,8,7,9,4,6,8,7,9,6,8,5,7,6,8,5,7,4,6,7,9,9,7,6,4,7,5,8,6,7,5,8,6,9,7,8,6,4,9,7,8,6,7,5,8,6,9,7,8,6,4,7,5,6,8,7,5,8,6,10,12,11,9,10,12,11,9,10,12,14,13,11,10,12,11,9,10,12,13,11,10,12,14,13,11,10,12,11,9,10,12,11,9,8,10,13,11,11,13,10,8,9,11,12,10,9,11,12,10,11,13,14,12,10,11,13,12,10,9,11,12,10,11,13,14,12,10,9,11,12,10,9,11,12,10,14,16,15,13,14,16,15,13,16,18,20,17,15,14,16,15,13,14,16,17,15,16,18,20,17,15,14,16,15,13,14,16,15,13,12,14,17,15,15,17,14,12,13,15,16,14,13,15,16,14,15,17,20,18,16,15,17,16,14,13,15,16,14,15,17,20,18,16,13,15,16,14,13,15,16,14,18,20,19,17,18,20,19,17,4,2,0,21,19,18,20,19,17,18,20,21,19,0,2,4,21,19,18,20,19,17,18,20,19,17,16,18,21,19,19,21,18,16,17,19,20,18,17,19,20,18,19,21,4,2,0,19,21,20,18,17,19,20,18,19,21,0,2,4,17,19,20,18,17,19,20,18,4,2,0,21,4,2,0,1,21,8,6,1,3,2,0,1,21,6,4,2,0,1,6,8,1,3,2,0,1,3,21,2,0,1,21,20,0,2,4,4,2,0,20,21,1,0,2,21,3,1,0,2,3,1,8,6,1,0,2,4,6,21,1,0,2,3,1,6,8,21,1,0,2,4,21,0,2,4,8,6,3,1,8,6,3,5,7,12,10,5,7,6,4,3,5,8,10,3,5,7,12,10,7,5,8,6,4,5,7,6,4,3,5,6,8,1,3,3,1,8,6,5,3,4,6,7,5,4,6,8,5,7,10,12,7,5,3,10,8,5,3,4,6,7,5,10,12,7,5,3,6,8,1,3,6,8,12,10,7,5,10,12,13,9,15,14,16,13,9,10,8,7,9,12,14,13,9,15,16,14,13,9,10,12,14,13,9,10,8,9,7,10,12,7,5,5,7,12,10,7,9,8,10,9,13,14,12,10,9,13,14,16,15,9,13,14,12,9,7,8,10,9,13,16,14,15,9,13,12,10,5,7,10,12,14,16,13,9,14,16,18,19,17,18,20,22,17,15,14,12,15,13,16,18,19,17,22,20,18,17,15,16,18,17,15,14,16,12,15,13,14,16,13,9,9,13,16,14,13,15,12,16,14,15,17,18,16,15,17,18,20,22,17,19,18,16,13,15,12,14,15,17,22,20,18,17,19,18,16,14,9,13,16,14,18,20,17,15,20,22,21,3,5,2,1,3,21,19,18,16,19,17,20,22,21,5,2,1,3,21,19,20,22,21,19,18,20,22,19,17,18,20,17,15,15,17,20,18,17,19,22,20,18,19,21,22,20,19,21,3,1,2,5,21,22,20,17,19,16,18,19,21,3,1,2,5,3,21,22,20,15,17,20,18,1,22,21,19,4,2,1,7,9,6,4,5,7,3,22,20,21,2,3,1,7,9,6,4,5,7,9,3,1,7,9,2,1,3,21,1,3,22,21,19,19,21,22,3,1,21,3,1,2,9,7,1,3,9,7,5,4,6,9,7,1,3,2,21,20,22,3,7,5,4,6,9,7,1,2,4,19,21,22,1,2,3,5,7,8,6,11,13,8,10,12,9,11,1,5,7,9,4,6,8,11,13,8,10,11,13,2,4,5,11,13,6,4,5,7,4,2,5,7,9,9,7,5,2,4,7,5,4,6,13,11,5,4,2,13,11,10,8,13,11,8,6,4,9,7,5,1,11,9,12,10,8,13,11,6,8,7,5,3,2,4,6,8,9,11,10,12,17,15,14,16,13,15,2,4,6,11,13,10,12,14,17,15,12,14,17,15,6,8,10,15,17,10,8,11,9,6,8,10,11,13,13,11,10,8,6,9,11,8,10,17,15,10,8,6,15,17,14,12,15,17,14,12,10,13,11,6,4,2,15,13,16,14,15,17,12,10,11,9,8,6,4,10,12,14,15,13,14,16,21,19,18,20,17,19,8,10,12,17,15,16,18,20,21,19,16,20,21,19,12,14,16,21,19,14,12,15,13,12,14,16,17,15,15,17,16,14,12,13,15,12,14,19,21,16,14,12,19,21,20,16,19,21,20,18,16,15,17,12,10,8,19,17,20,18,19,21,16,14,13,15,14,12,10,16,18,20,19,17,18,20,5,7,3,5,7,21,14,18,20,21,19,4,2,1,3,7,18,1,5,9,18,20,2,3,20,18,16,19,17,18,20,21,19,7,7,19,21,20,18,17,19,16,18,20,3,2,20,18,9,5,1,18,7,3,1,2,4,19,21,20,18,14,21,7,5,3,7,5,20,18,17,19,20,18,16,2,3,1,5,21,2,1,3,9,4,2,1,9,11,16,3,1,7,11,8,6,5,9,4,2,3,7,11,6,4,1,5,1,5,7,9,21,2,1,3,5,9,9,5,3,1,2,21,9,7,5,1,5,1,4,6,11,7,3,2,4,9,5,6,8,11,7,1,3,16,11,9,1,2,4,9,3,1,2,21,5,1,3,2,8,6,4,7,9,4,6,11,13,6,8,10,13,15,2,4,5,9,13,10,12,13,11,6,8,10,13,15,8,10,7,9,2,4,3,11,13,4,6,8,11,13,13,11,8,6,4,13,11,3,4,2,9,7,10,8,15,13,10,8,6,11,13,12,10,13,9,5,4,2,15,13,10,8,6,13,11,6,4,9,7,4,6,8,10,12,14,13,11,8,10,17,15,12,14,16,19,17,6,8,10,15,17,14,16,17,15,12,14,16,19,17,12,14,13,11,6,10,8,15,17,10,12,14,17,15,15,17,14,12,10,17,15,8,10,6,11,13,14,12,17,19,16,14,12,15,17,16,14,17,15,10,8,6,17,19,16,14,12,15,17,10,8,11,13,14,12,10,16,18,20,17,15,12,14,20,21,19,18,20,21,3,12,16,20,21,19,0,18,20,21,19,18,20,21,1,16,18,20,17,15,12,16,14,21,19,16,18,20,21,19,19,21,20,18,16,19,21,14,16,12,15,17,20,18,16,1,21,20,18,19,21,20,18,0,19,21,20,16,12,3,21,20,18,19,21,20,14,12,15,17,20,18,16,2,0,1,21,19,16,18,0,1,3,2,0,1,7,14,18,0,1,3,2,1,3,5,7,0,2,4,3,0,1,3,21,19,20,18,0,1,3,0,3,1,5,7,7,5,1,3,0,3,1,0,18,20,19,21,3,1,0,3,4,2,0,7,5,3,1,2,3,1,0,18,14,7,1,0,2,3,1,0,18,16,19,21,1,0,2,4,6,3,5,7,6,4,2,5,7,6,4,5,9,6,4,2,5,7,4,6,8,9,13,8,6,5,7,6,2,4,5,7,6,4,2,5,7,2,4,6,9,13,13,9,6,4,2,7,5,2,4,6,7,5,4,2,6,7,5,6,8,13,9,8,6,4,7,5,2,4,6,9,5,4,6,7,5,2,4,6,7,5,3,6,4,8,10,9,13,15,8,10,12,13,9,10,8,13,15,8,10,12,13,9,10,12,14,15,17,10,12,13,9,8,10,12,9,13,8,10,12,13,9,8,10,12,17,15,15,17,12,10,8,9,13,12,10,8,13,9,12,10,8,9,13,12,10,17,15,14,12,10,9,13,12,10,8,15,13,8,10,9,13,12,10,8,15,13,9,10,8,12,14,16,19,17,14,16,18,17,15,14,16,12,19,17,14,16,18,17,15,16,20,21,19,14,16,18,17,15,14,16,18,17,15,14,16,18,17,15,14,18,22,21,19,19,21,22,18,14,15,17,18,16,14,15,17,18,16,14,15,17,18,16,14,19,21,20,16,15,17,18,16,14,17,19,12,16,14,15,17,18,16,14,17,19,16,14,12,18,20,22,21,7,1,20,22,21,19,18,20,22,21,5,1,22,20,21,19,18,22,3,7,3,20,22,21,19,20,22,21,19,7,3,20,22,21,19,16,20,1,5,9,9,5,1,20,16,19,21,22,20,3,7,19,21,22,20,19,21,22,20,3,7,3,22,18,19,21,20,22,1,5,21,22,20,18,19,21,22,20,1,7,21,22,20,18,2,1,3,5,9,2,3,5,7,11,2,1,3,7,11,2,3,5,7,11,2,1,5,9,2,5,1,7,9,2,3,1,5,9,2,5,1,7,9,4,2,3,7,11,11,7,3,2,4,9,7,1,5,2,9,5,1,3,2,9,7,1,5,2,9,5,1,2,11,7,5,3,2,11,7,3,1,2,11,7,5,3,2,9,5,3,1,2,4,6,8,11,13,4,6,8,9,13,4,6,8,9,13,4,6,8,9,13,4,6,8,11,13,4,6,8,11,13,4,6,8,11,13,4,6,8,11,13,6,8,10,13,15,15,13,10,8,6,13,11,8,6,4,13,11,8,6,4,13,11,8,6,4,13,11,8,6,4,13,9,8,6,4,13,9,8,6,4,13,9,8,6,4,13,11,8,6,4,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,12,14,16,19,17,17,19,16,14,12,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,18,20,21,2,3,3,2,21,20,18,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,3,1,7,11,4,2,1,3,5,2,1,3,5,7,2,1,3,5,4,2,1,3,5,3,1,7,11,2,1,3,5,7,2,1,3,5,5,3,1,7,9,6,4,1,5,5,1,4,6,9,7,1,3,5,5,3,1,2,7,5,3,1,2,11,7,1,3,5,3,1,2,4,5,3,1,2,7,5,3,1,2,5,3,1,2,4,11,7,1,3,2,4,5,9,13,8,6,9,7,4,6,8,9,11,4,6,7,9,11,8,6,7,9,2,4,5,9,13,4,8,6,9,11,4,6,7,9,2,4,6,11,13,8,10,7,9,9,7,10,8,13,11,6,4,2,9,7,6,4,11,9,6,8,4,13,9,5,4,2,9,7,6,8,11,9,7,6,4,11,9,8,6,4,7,9,6,8,13,9,5,4,2,6,8,10,15,17,10,12,13,11,10,12,14,15,13,8,10,17,15,13,10,12,13,11,6,8,10,15,17,10,14,12,15,13,8,10,13,11,8,10,12,17,15,12,14,15,11,11,15,14,12,15,17,12,10,8,11,13,10,8,13,15,12,14,10,17,15,10,8,6,11,13,12,10,13,15,17,10,8,13,15,14,12,10,11,13,12,10,17,15,10,8,6,12,18,21,19,14,16,18,17,15,16,18,20,19,17,12,18,21,19,14,16,18,17,15,12,16,20,21,19,16,20,18,19,17,12,14,17,15,14,18,20,21,19,16,18,19,13,13,19,18,16,19,21,20,18,14,15,17,14,12,17,19,18,20,16,19,21,20,16,12,15,17,18,16,14,19,21,18,12,17,19,20,18,16,15,17,18,16,14,19,21,18,12,14,16,20,1,3,0,2,20,21,19,0,1,3,21,14,16,20,0,1,0,1,20,21,19,14,18,1,3,2,4,8,10,21,16,18,20,21,19,16,0,1,5,0,3,20,21,17,17,21,20,3,0,5,1,0,16,19,21,20,18,16,21,10,8,4,2,3,1,18,14,19,21,20,1,0,1,0,20,16,14,21,3,1,0,19,21,20,2,0,3,1,20,16,14,4,2,0,5,7,4,6,1,3,2,4,6,5,7,2,4,6,3,5,2,4,3,5,4,2,0,5,7,0,6,1,3,5,0,1,3,5,7,4,2,3,7,4,2,1,5,7,7,5,1,2,4,7,3,2,4,7,5,3,1,0,5,3,1,6,0,7,5,0,2,4,5,3,4,2,5,3,6,4,2,7,5,6,4,2,3,1,6,4,7,5,0,2,4,6,8,10,9,13,8,10,9,5,8,10,12,13,9,8,10,7,9,13,6,8,7,9,6,8,10,9,13,12,14,7,9,2,4,6,9,13,6,8,10,9,13,6,8,10,9,13,13,9,10,8,6,13,9,10,8,6,13,9,6,4,2,9,7,14,12,13,9,10,8,6,9,7,8,6,13,9,7,10,8,9,13,12,10,8,5,9,10,8,13,9,10,8,6,12,14,20,17,15,12,16,20,15,7,14,20,17,15,12,14,16,17,15,10,14,16,15,13,12,14,16,17,15,16,18,15,13,8,12,14,17,15,12,14,16,17,15,12,14,16,17,15,15,17,16,14,12,15,17,16,14,12,15,17,14,12,8,13,15,18,16,15,17,16,14,12,13,15,16,14,10,15,17,16,14,12,15,17,20,14,7,15,20,16,12,15,17,20,14,12,16,18,22,21,19,14,18,22,19,13,16,22,21,19,18,20,22,21,19,12,20,21,19,17,18,20,22,21,19,20,22,21,17,10,18,22,21,19,18,20,22,21,19,18,20,22,21,19,19,21,22,20,18,19,21,22,20,18,19,21,22,18,10,17,21,22,20,19,21,22,20,18,17,19,21,20,12,19,21,22,20,18,19,21,22,16,13,19,22,18,14,19,21,22,18,16,4,2,1,3,5,4,2,1,21,17,18,1,3,5,2,3,1,5,7,18,22,2,4,3,4,2,1,3,5,3,1,5,19,16,20,1,3,5,2,3,1,5,7,2,3,1,5,7,7,5,1,3,2,7,5,1,3,2,5,3,1,20,16,19,5,1,3,5,3,1,2,4,3,4,2,22,18,7,5,1,3,2,5,3,1,18,17,21,1,2,4,5,3,1,2,4,6,8,7,9,11,6,8,3,5,7,4,2,7,9,4,6,8,9,11,6,8,1,5,7,6,8,9,7,11,2,4,7,9,6,4,2,7,9,4,6,8,9,11,4,6,8,9,11,11,9,8,6,4,11,9,8,6,4,9,7,2,4,6,9,7,4,2,11,7,9,8,6,7,5,1,8,6,11,9,8,6,4,9,7,2,4,7,5,3,8,6,11,9,7,8,6,10,12,14,15,13,10,12,14,11,9,6,8,10,11,13,10,12,14,15,13,10,12,9,11,10,12,14,15,13,6,8,10,11,13,8,10,12,11,13,10,12,14,15,13,10,12,14,15,13,13,15,14,12,10,13,15,14,12,10,13,11,12,10,8,13,11,10,8,6,13,15,14,12,10,11,9,12,10,13,15,14,12,10,13,11,10,8,6,9,11,14,12,10,13,15,14,12,10,16,18,20,21,17,16,18,20,17,13,12,14,16,17,15,16,18,20,21,17,14,16,15,13,16,20,21,19,17,12,14,16,17,15,14,18,19,17,15,16,18,20,21,17,16,20,21,19,17,17,19,21,20,16,17,21,20,18,16,15,17,19,18,14,15,17,16,14,12,17,19,21,20,16,13,15,16,14,17,21,20,18,16,15,17,16,14,12,13,17,20,18,16,17,21,20,18,16,2,1,3,5,19,3,1,21,19,15,1,18,20,21,19,2,1,3,5,19,18,20,21,17,18,2,1,3,5,5,18,20,21,19,16,20,21,3,7,5,3,1,9,19,18,2,1,3,5,5,3,1,2,18,19,9,1,3,5,7,3,21,20,16,19,21,20,18,5,5,3,1,2,18,17,21,20,18,19,5,3,1,2,19,21,20,18,1,15,19,21,1,3,19,5,3,1,2,4,6,8,7,9,4,2,5,7,9,2,5,3,7,9,8,6,4,7,9,2,1,3,5,19,4,6,8,7,9,2,3,1,7,9,4,2,1,5,9,2,4,7,11,13,4,6,8,7,9,9,7,8,6,4,13,11,7,4,2,9,5,1,2,4,9,7,1,3,2,9,7,8,6,4,19,5,3,1,2,9,7,4,6,8,9,7,3,5,2,9,7,5,2,4,9,7,8,6,4,10,12,14,13,11,6,8,10,11,13,4,6,8,11,13,10,12,14,13,11,8,6,4,7,9,10,12,14,13,11,4,6,8,11,13,6,8,10,11,13,6,8,10,15,17,10,12,14,13,11,11,13,14,12,10,17,15,10,8,6,13,11,10,8,6,13,11,8,6,4,11,13,14,12,10,9,7,4,6,8,11,13,14,12,10,13,11,8,6,4,13,11,10,8,6,11,13,14,12,10,16,18,20,17,15,12,14,18,17,15,10,12,14,17,15,16,18,20,17,15,10,12,14,13,11,16,18,20,19,15,10,12,14,17,15,12,14,16,17,15,12,16,20,21,19,16,18,20,17,15,15,17,20,18,16,19,21,20,16,12,15,17,16,14,12,15,17,14,12,10,15,19,20,18,16,11,13,14,12,10,15,17,20,18,16,15,17,14,12,10,15,17,18,14,12,15,17,20,18,16,4,2,0,21,19,2,16,20,21,19,16,18,20,21,19,0,1,3,21,19,20,18,16,17,15,8,4,0,21,17,16,18,20,21,19,0,18,20,21,19,14,18,0,2,4,0,3,1,21,19,19,21,1,3,0,4,2,0,18,14,19,21,20,18,0,19,21,20,18,16,17,21,0,4,8,15,17,16,18,20,19,21,3,1,0,19,21,20,18,16,19,21,20,16,2,19,21,0,2,4,10,8,6,1,3,4,0,1,3,5,0,3,1,5,7,6,4,2,5,7,2,0,1,3,21,19,10,6,2,1,3,4,2,0,1,3,2,3,1,5,7,10,8,6,1,3,2,4,6,5,7,7,5,6,4,2,3,1,6,8,10,7,5,1,3,2,3,1,0,2,4,3,1,2,6,10,19,21,3,1,0,2,7,5,2,4,6,7,5,1,3,0,5,3,1,0,4,3,1,6,8,10,14,12,9,7,5,6,8,10,7,9,2,4,6,9,13,8,10,12,9,13,4,6,8,5,7,9,14,12,9,7,5,6,8,10,5,7,4,6,8,9,13,14,12,9,7,5,12,10,8,9,13,13,9,8,10,12,5,7,9,12,14,13,9,8,6,4,7,5,10,8,6,5,7,9,12,14,9,7,5,8,6,4,13,9,12,10,8,13,9,6,4,2,9,7,10,8,6,5,7,9,12,14,16,20,17,15,13,12,14,16,15,13,8,10,12,17,15,14,16,18,17,15,10,16,18,17,15,13,16,20,17,15,13,12,14,16,13,9,16,12,10,17,15,16,20,17,15,13,14,16,18,17,15,15,17,18,16,14,13,15,17,20,16,15,17,10,12,16,9,13,16,14,12,13,15,17,20,16,13,15,17,18,16,10,15,17,18,16,14,15,17,12,10,8,13,15,16,14,12,13,15,17,20,16,18,22,21,19,5,18,20,22,21,17,14,18,20,22,21,19,20,22,21,19,7,12,20,22,21,19,5,18,22,21,19,18,20,22,21,19,15,18,14,22,21,19,18,22,21,19,7,5,20,22,21,19,19,21,22,20,5,7,19,21,22,18,19,21,22,14,18,15,19,21,22,20,18,19,21,22,18,5,19,21,22,20,12,7,19,21,22,20,19,21,22,20,18,14,17,21,22,20,18,5,19,21,22,18,4,2,1,3,7,1,3,5,7,19,16,2,1,3,5,7,2,1,3,5,9,14,1,3,7,9,2,3,1,7,11,2,1,3,5,7,17,20,3,1,7,9,2,1,3,5,9,2,3,1,7,9,9,7,1,3,2,9,5,3,1,2,9,7,1,3,20,17,7,5,3,1,2,11,7,1,3,2,9,7,3,1,14,9,5,3,1,2,7,5,3,1,2,16,19,7,5,3,1,7,3,1,2,4,8,6,13,9,11,2,4,6,9,11,8,6,4,9,11,13,4,6,8,11,13,2,4,5,11,13,4,6,8,9,13,4,6,8,9,11,13,2,4,5,11,13,4,6,8,11,13,4,6,8,11,13,13,11,8,6,4,13,11,8,6,4,13,11,5,4,2,13,11,9,8,6,4,13,9,8,6,4,13,11,5,4,2,13,11,8,6,4,13,11,9,4,6,8,11,9,6,4,2,11,9,13,6,8,10,12,14,15,17,8,10,12,14,15,13,10,12,14,15,17,14,12,10,15,17,6,8,10,12,15,17,14,12,10,15,17,14,12,10,17,15,6,8,10,12,15,17,14,12,10,15,17,14,12,10,17,15,15,17,10,12,14,17,15,10,12,14,17,15,12,10,8,6,15,17,10,12,14,17,15,10,12,14,17,15,12,10,8,6,17,15,10,12,14,17,15,14,12,10,13,15,14,12,10,8,17,15,14,12,10,16,18,20,21,19,16,18,20,21,19,17,16,18,20,21,19,16,18,20,21,19,14,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,20,18,16,14,21,19,16,18,20,21,19,16,18,20,21,19,19,21,20,18,16,19,21,20,18,16,19,21,14,16,18,20,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,14,19,21,20,18,16,19,21,20,18,16,17,19,21,20,18,16,19,21,20,18,16,3,1,5,7,9,5,3,1,7,9,5,3,1,7,11,2,3,1,5,9,5,3,1,7,11,2,5,3,1,7,9,2,3,1,5,7,2,3,1,5,9,11,2,5,3,1,7,9,2,3,1,5,7,7,5,1,3,2,9,7,1,3,5,2,11,9,5,1,3,2,7,5,1,3,2,9,7,1,3,5,2,11,7,1,3,5,9,5,1,3,2,11,7,1,3,5,9,7,1,3,5,9,7,5,1,3,2,4,6,11,13,2,4,6,11,13,2,4,6,9,13,4,6,8,7,11,2,4,6,9,13,4,6,10,12,11,13,4,6,8,9,11,4,6,8,7,13,15,4,6,8,10,11,13,4,6,8,9,11,11,9,8,6,4,13,11,10,8,6,4,15,13,7,8,6,4,11,9,8,6,4,13,11,12,10,6,4,13,9,6,4,2,11,7,8,6,4,13,9,6,4,2,13,11,6,4,2,13,11,6,4,2,8,10,12,17,15,8,10,16,18,17,15,8,12,16,17,15,10,12,14,15,13,8,10,12,17,15,8,14,16,18,17,15,10,12,14,15,13,10,12,14,17,19,21,12,14,16,18,17,15,10,12,14,15,13,13,15,14,12,10,15,17,18,16,14,12,21,19,17,14,12,10,13,15,14,12,10,15,17,18,16,14,8,15,17,12,10,8,13,15,14,12,10,15,17,16,12,8,15,17,18,16,10,8,15,17,12,10,8,14,18,20,21,19,12,14,20,21,19,10,14,18,20,21,19,16,18,20,21,17,14,18,20,21,19,4,0,1,20,21,19,16,18,20,21,17,16,18,20,1,3,5,4,0,1,20,21,19,16,18,20,21,17,17,21,20,18,16,19,21,20,1,0,4,5,3,1,20,18,16,17,21,20,18,16,19,21,20,1,0,4,19,21,20,18,14,17,21,20,18,16,19,21,20,18,14,10,19,21,20,14,12,19,21,20,18,14,16,0,1,3,7,0,1,3,5,7,2,0,1,3,5,7,5,3,1,7,19,16,2,0,1,3,6,2,3,5,7,4,2,0,1,3,19,0,2,4,6,7,9,6,2,3,5,7,6,4,2,0,1,19,19,1,0,2,4,6,7,5,3,2,6,9,7,6,4,2,0,19,3,1,0,2,4,7,5,3,2,6,3,1,0,2,16,19,7,1,3,5,7,5,3,1,0,2,7,5,3,1,0,7,3,1,0,16,2,4,6,5,9,13,2,6,4,9,13,4,6,8,10,9,13,0,2,4,9,13,4,6,8,5,7,8,10,12,9,13,6,8,10,5,7,9,8,10,12,14,13,15,8,10,12,9,13,8,10,12,7,5,3,3,5,7,12,10,8,13,9,12,10,8,15,13,14,12,10,8,9,7,5,10,8,6,13,9,12,10,8,7,5,8,6,4,13,9,4,2,0,13,9,10,8,6,4,13,9,4,6,2,13,9,5,6,4,2,8,10,12,15,17,8,10,14,12,17,15,12,14,16,17,15,6,8,14,16,17,15,10,12,14,13,9,14,16,18,17,15,12,14,16,15,13,17,16,18,22,20,19,17,14,18,20,17,15,14,16,18,17,13,9,9,13,17,18,16,14,15,17,20,18,14,17,19,20,22,18,16,17,13,15,16,14,12,15,17,18,16,14,9,13,14,12,10,15,17,16,14,8,6,15,17,16,14,12,15,17,12,14,10,8,17,15,12,10,8,14,18,22,21,19,16,18,22,20,21,19,18,20,22,21,19,10,12,20,22,21,19,16,18,20,17,15,3,20,22,21,19,18,20,22,21,19,5,6,2,1,5,9,21,16,22,21,19,5,6,20,22,21,19,15,15,19,21,22,20,6,5,19,21,22,16,21,9,5,1,2,6,5,19,21,22,20,18,19,21,22,20,3,15,17,20,18,16,19,21,22,20,12,10,19,21,22,20,18,19,21,20,22,18,16,19,21,22,18,14,16,20,1,5,7,5,3,1,7,11,4,2,1,3,5,7,18,3,1,7,11,4,5,1,22,21,19,2,5,1,7,11,4,2,1,3,7,9,8,4,3,7,11,4,2,1,3,7,9,8,4,2,1,3,5,5,3,1,2,4,8,9,7,3,1,2,4,11,7,3,4,8,9,7,3,1,2,4,11,7,1,5,2,19,21,22,1,5,4,11,7,1,3,18,7,5,3,1,2,4,11,7,1,3,5,7,5,1,20,16,6,4,2,3,9,11,6,4,2,9,13,6,8,10,9,11,13,4,2,5,9,13,6,2,3,7,9,4,6,8,10,9,13,6,8,10,11,13,15,10,12,14,13,15,6,8,10,11,13,15,10,12,14,7,9,11,11,9,7,14,12,10,15,13,11,10,8,6,15,13,14,12,10,15,13,11,10,8,6,13,9,10,8,6,4,9,7,3,2,6,13,9,5,2,4,13,11,9,10,8,6,13,9,2,4,6,11,9,3,2,4,6,8,10,12,13,15,8,10,12,14,15,17,12,14,16,17,15,6,8,10,12,15,17,8,10,12,11,13,12,14,16,18,17,15,12,16,20,21,19,17,16,18,20,19,17,12,16,18,21,19,17,16,18,20,17,15,13,13,15,17,20,18,16,17,19,21,18,16,12,17,19,20,18,16,17,19,21,20,16,12,15,17,18,16,14,12,13,11,12,10,8,17,15,12,10,8,6,15,17,16,14,12,17,15,14,12,10,8,15,13,12,10,8,14,16,18,20,21,19,17,16,18,20,21,19,2,18,20,21,19,14,16,18,20,21,19,14,16,18,19,15,2,3,1,20,21,19,14,18,2,3,5,9,4,2,1,3,21,14,20,2,1,5,9,4,2,1,3,21,19,19,21,3,1,2,4,9,5,1,2,20,14,21,3,1,2,4,9,5,3,2,18,14,19,21,20,1,3,2,15,19,18,16,14,19,21,20,18,16,14,19,21,20,18,2,19,21,20,18,16,17,19,21,20,18,16,14,5,3,1,7,11,2,5,3,1,7,9,6,4,1,3,5,7,2,3,1,5,7,2,1,3,20,21,17,4,6,5,7,9,8,6,4,1,7,11,10,8,6,5,7,9,8,6,4,3,7,11,10,8,6,5,7,9,9,7,5,6,8,10,11,7,3,4,6,8,9,7,5,6,8,10,11,7,1,4,6,8,9,7,5,6,4,17,21,20,3,1,2,7,5,1,3,2,7,5,3,1,4,6,9,7,1,3,5,2,11,7,1,3,5,2,4,6,9,13,4,6,8,10,11,13,8,10,9,11,13,4,6,8,10,9,11,4,6,8,5,7,8,10,12,15,13,11,10,12,14,13,15,17,12,14,16,15,13,11,10,12,18,17,15,13,12,14,16,15,13,11,11,13,15,16,14,12,13,15,17,18,12,10,11,13,15,16,14,12,17,15,13,14,12,10,11,13,15,12,10,8,7,5,8,6,4,11,9,10,8,6,4,13,11,9,10,8,13,11,10,8,6,4,13,9,6,4,2,8,10,12,14,17,15,12,14,16,17,15,12,14,20,19,17,15,12,14,16,20,17,13,10,12,13,11,9,14,18,20,21,19,17,16,18,20,21,19,5,0,18,20,21,19,17,14,16,20,21,19,3,2,18,20,21,19,17,17,19,21,20,18,2,3,19,21,20,16,14,17,19,21,20,18,0,5,19,21,20,18,16,17,19,21,20,18,14,9,11,13,12,10,13,17,20,16,14,12,15,17,19,20,14,12,15,17,16,14,12,15,17,14,12,10,8,2,16,18,20,21,19,4,18,20,21,19,16,18,21,3,7,9,6,4,18,21,19,15,14,20,19,17,15,16,0,3,1,5,7,4,2,0,1,3,7,4,2,1,3,5,7,6,4,2,0,1,5,4,0,1,3,5,7,7,5,3,1,0,4,5,1,0,2,4,6,7,5,3,1,2,4,7,3,1,0,2,4,7,5,1,3,0,16,15,17,19,20,14,15,19,21,18,4,6,9,7,3,21,18,16,19,21,20,18,4,19,21,20,18,16,2,6,4,0,1,3,5,8,6,2,0,1,3,2,0,1,5,13,10,8,2,0,1,3,16,18,21,0,2,1,2,4,6,8,9,13,6,8,10,12,9,13,6,8,10,9,13,15,8,10,12,14,9,7,6,8,10,9,13,15,15,13,9,10,8,6,7,9,14,12,10,8,15,13,9,10,8,6,13,9,12,10,8,6,13,9,8,6,4,2,1,2,0,21,18,16,3,1,0,2,8,10,13,5,1,0,2,3,1,0,2,6,8,5,3,1,0,4,6,8,10,12,13,9,7,10,12,14,16,7,5,4,6,8,15,17,12,14,16,9,7,5,8,6,4,3,5,7,10,12,14,16,17,15,14,16,18,20,17,15,12,14,22,21,19,17,16,18,20,22,15,13,12,18,20,21,19,17,17,19,21,20,18,12,13,15,22,20,18,16,17,19,21,22,14,12,15,17,20,18,16,14,15,17,16,14,12,10,7,5,3,4,6,8,5,7,9,16,14,12,17,15,8,6,4,5,7,16,14,12,10,7,9,13,12,10,8,14,18,22,19,17,15,18,20,22,15,13,9,10,12,18,22,21,19,18,20,22,17,15,13,10,12,14,15,13,9,18,20,22,21,19,7,4,2,3,22,21,19,16,18,20,1,3,7,6,2,1,21,19,17,14,16,22,1,3,7,7,3,1,22,16,14,17,19,21,1,2,6,7,3,1,20,18,16,19,21,22,3,2,4,7,19,21,22,20,18,9,13,15,14,12,10,13,15,17,22,20,18,19,21,22,18,12,10,9,13,15,22,20,18,15,17,19,22,18,14,16,20,21,1,5,7,4,1,5,21,19,17,14,16,20,1,5,7,4,1,3,21,19,16,18,20,22,21,19,17,4,2,1,3,5,9,8,6,1,5,7,9,8,6,4,2,5,9,8,4,3,5,7,9,8,6,4,2,5,9,9,5,2,4,6,8,9,7,5,3,4,8,9,5,2,4,6,8,9,7,5,1,6,8,9,5,3,1,2,4,17,19,21,22,20,18,16,19,21,3,1,4,7,5,1,20,16,14,17,19,21,5,1,4,7,5,1,21,20,16,8,6,4,2,3,9,8,6,2,3,7,9,8,6,4,2,3,9,8,6,2,5,7,9,4,2,1,3,5,7,9,6,8,10,11,13,15,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,15,13,11,10,12,14,11,13,15,15,13,11,14,12,10,11,13,15,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,15,13,11,10,8,6,9,7,5,3,1,2,4,9,7,5,2,6,8,9,3,2,4,6,8,9,7,3,2,6,8,9,3,2,4,6,8,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,15,13,11,6,8,10,12,11,13,15,12,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,12,15,13,11,12,10,8,6,11,13,15,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,14,16,18,20,21,19,17,14,16,6,1,3,5,6,4,2,1,3,5,8,6,4,2,1,3,6,4,2,1,3,5,8,6,4,2,1,3,3,1,2,4,6,8,5,3,1,2,4,6,3,1,2,4,6,8,5,3,1,2,4,6,5,3,1,6,16,14,17,19,21,20,18,16,14,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,8,6,4,2,1,3,8,6,4,2,1,3,5,2,1,3,5,7,9,6,4,2,1,3,5,8,6,4,2,1,3,5,10,8,4,2,7,9,8,10,13,11,9,7,14,12,10,9,7,5,8,10,7,9,11,13,14,12,10,9,7,5,5,7,9,10,12,14,13,11,9,7,10,8,5,7,9,10,12,14,7,9,11,13,10,8,9,7,2,4,8,10,5,3,1,2,4,6,8,5,3,1,2,4,6,9,7,5,3,1,2,5,3,1,2,4,6,8,3,1,2,4,6,8,14,12,10,9,7,5,10,12,13,11,9,7,10,8,6,4,11,13,15,8,10,13,11,9,7,14,12,10,13,11,9,7,12,14,16,15,13,11,12,16,21,19,17,15,16,18,20,15,13,11,12,16,21,19,17,15,16,18,20,15,13,11,11,13,15,20,18,16,15,17,19,21,16,12,11,13,15,20,18,16,15,17,19,21,16,12,11,13,15,16,14,12,7,9,11,13,10,12,14,7,9,11,13,10,8,15,13,11,4,6,8,10,7,9,11,13,12,10,5,7,9,10,12,14,16,18,20,15,13,11,14,18,20,21,19,17,15,12,16,20,21,19,17,12,16,20,21,19,17,15,16,18,20,21,19,17,15,0,18,20,21,19,17,14,18,20,2,0,1,4,2,0,21,19,17,14,18,20,4,2,0,4,2,0,21,19,17,17,19,21,0,2,4,0,2,4,20,18,14,17,19,21,0,2,4,1,0,2,20,18,14,17,19,21,20,18,0,15,17,19,21,20,18,16,15,17,19,21,20,16,12,17,19,21,20,16,12,15,17,19,21,20,18,14,11,13,15,20,18,16,2,0,1,21,19,17,16,6,4,2,0,1,3,14,18,4,2,0,1,14,18,4,2,0,1,3,8,6,4,2,0,1,4,2,1,3,5,7,10,8,6,4,3,5,7,8,6,1,3,5,7,10,8,6,1,3,5,8,6,1,3,5,7,7,5,3,1,6,8,5,3,1,6,8,10,7,5,3,1,6,8,7,5,3,4,6,8,10,7,5,3,1,2,4,1,0,2,4,6,8,3,1,0,2,4,18,14,1,0,2,4,18,14,3,1,0,2,4,6,16,17,19,21,1,0,2,8,6,4,3,5,7,8,10,12,5,7,9,13,10,8,6,12,3,5,7,10,8,6,5,7,9,16,14,12,10,7,5,3,10,8,6,9,13,15,12,14,16,9,13,15,16,14,12,10,9,13,15,16,14,12,13,9,7,14,12,10,15,13,9,9,13,15,10,12,14,7,9,13,12,14,16,15,13,9,10,12,14,16,15,13,9,16,14,12,15,13,9,6,8,10,3,5,7,10,12,14,16,9,7,5,6,8,10,7,5,3,12,6,8,10,13,9,7,5,12,10,8,7,5,3,4,6,8,10,12,14,15,13,9,14,18,22,21,19,17,15,14,16,18,22,15,13,9,12,18,20,17,15,13,18,20,22,17,15,13,9,12,18,22,21,19,17,18,20,22,21,19,17,6,18,20,22,21,19,17,18,20,22,21,19,15,16,20,22,21,19,17,17,19,21,22,20,16,15,19,21,22,20,18,17,19,21,22,20,18,6,17,19,21,22,20,18,17,19,21,22,18,12,9,13,15,17,22,20,18,13,15,17,20,18,12,9,13,15,22,18,16,14,15,17,19,21,22,18,14,9,13,15,14,12,10,16,18,20,22,21,19,17,16,20,6,4,2,1,3,2,1,20,21,19,17,14,16,22,21,19,3,5,2,1,3,5,21,19,14,16,20,2,1,5,7,6,4,2,1,3,5,8,4,2,1,3,5,6,4,2,1,3,5,17,18,6,4,2,1,3,3,1,2,4,6,18,17,5,3,1,2,4,6,5,3,1,2,4,8,5,3,1,2,4,6,7,5,1,2,20,16,14,19,21,5,3,1,2,5,3,19,21,22,16,14,17,19,21,20,1,2,3,1,2,4,6,20,16,17,19,21,22,20,18,16,8,6,4,2,1,3,5,14,12,10,8,5,7,6,4,3,5,7,9,11,8,6,4,2,1,7,9,4,6,8,7,9,11,10,8,6,4,3,9,8,10,12,13,11,9,7,10,12,14,11,9,7,12,10,8,7,9,11,13,8,10,12,9,7,5,5,7,9,12,10,8,13,11,9,7,8,10,12,7,9,11,14,12,10,7,9,11,13,12,10,8,9,3,4,6,8,10,11,9,7,8,6,4,9,7,1,2,4,6,8,11,9,7,5,3,4,6,7,5,8,10,12,14,5,3,1,2,4,6,8,14,12,10,7,9,11,13,16,18,20,13,11,9,14,12,10,8,17,15,13,10,12,14,15,13,11,10,12,18,19,17,15,13,12,14,16,15,13,11,14,18,20,21,19,17,15,16,18,20,17,15,13,14,18,20,21,19,17,15,14,16,18,15,13,11,11,13,15,18,16,14,15,17,19,21,20,18,14,13,15,17,20,18,16,15,17,19,21,20,18,14,11,13,15,16,14,12,13,15,17,19,18,12,10,11,13,15,14,12,10,13,15,17,8,10,12,14,9,11,13,20,18,16,13,11,9,7,10,12,14,16,18,20,21,19,17,15,4,2,21,19,17,15,16,18,20,21,19,3,7,4,16,18,20,21,19,17,14,16,20,21,3,5,7,6,18,20,21,19,17,16,4,2,1,3,5,7,4,2,1,3,21,19,16,6,4,2,1,3,5,6,4,20,21,19,17,17,19,21,20,4,6,5,3,1,2,4,6,16,19,21,3,1,2,4,7,5,3,1,2,4,16,17,19,21,20,18,6,7,5,3,21,20,16,14,17,19,21,20,18,16,4,7,3,19,21,20,18,16,15,17,19,21,2,4,15,17,19,21,20,18,16,4,2,1,3,5,7,9,6,1,3,5,7,9,8,6,4,2,1,5,9,6,2,1,3,5,7,9,8,6,4,2,1,9,10,8,4,2,1,3,5,10,8,6,9,11,13,12,10,8,6,5,7,9,12,10,8,7,9,11,13,10,8,2,1,3,5,5,3,1,2,8,10,13,11,9,7,8,10,12,9,7,5,6,8,10,12,13,11,9,6,8,10,5,3,1,2,4,8,10,9,1,2,4,6,8,9,7,5,3,1,2,6,9,5,1,2,4,6,8,9,7,5,3,1,6,9,7,5,3,1,2,4,12,10,8,6,11,13,15,8,10,12,14,11,13,15,16,14,12,10,11,13,15,8,10,12,14,11,13,15,14,12,10,15,13,11,16,14,12,7,9,11,13,16,14,12,19,17,15,14,16,18,20,15,13,11,14,18,21,19,17,15,16,14,12,13,11,9,7,7,9,11,13,12,14,16,15,17,19,21,18,14,11,13,15,20,18,16,14,15,17,19,12,14,16,13,11,9,7,12,14,16,11,13,15,10,12,14,15,13,11,14,12,10,8,15,13,11,10,12,14,16,15,13,11,14,12,10,8,15,13,11,6,8,10,12,14,16,18,20,21,19,17,6,16,18,20,21,19,17,18,20,21,19,17,5,8,16,18,20,21,19,17,16,18,20,21,19,17,3,8,18,20,21,19,17,15,18,20,21,0,1,3,10,8,6,4,21,19,17,16,20,6,2,1,5,8,18,20,21,19,17,15,15,17,19,21,20,18,8,5,1,2,6,20,16,17,19,21,4,6,8,10,3,1,0,21,20,18,15,17,19,21,20,18,8,3,17,19,21,20,18,16,17,19,21,20,18,16,8,5,17,19,21,20,18,17,19,21,20,18,16,6,17,19,21,20,18,16,14,8,6,4,2,0,1,3,10,8,4,2,0,1,3,6,4,2,0,1,3,7,10,6,4,2,0,1,3,8,6,4,2,0,1,5,10,6,4,2,0,1,3,8,6,4,2,5,7,16,14,12,2,0,1,3,10,8,4,0,3,7,10,6,4,0,2,1,3,3,1,2,0,4,6,10,7,3,0,4,8,10,3,1,0,2,12,14,16,7,5,2,4,6,8,3,1,0,2,4,6,10,5,1,0,2,4,6,8,3,1,0,2,4,6,10,7,3,1,0,2,4,6,3,1,0,2,4,8,10,3,1,0,2,4,6,8,14,12,10,13,9,7,5,16,14,12,13,9,7,5,14,12,10,8,9,13,15,16,14,12,13,9,7,5,14,12,10,15,13,9,7,16,14,12,13,9,7,5,14,12,10,15,13,9,18,20,22,13,9,7,5,16,14,12,15,13,9,16,14,12,13,9,7,5,5,7,9,13,12,14,16,9,13,15,12,14,16,5,7,9,13,22,20,18,9,13,15,10,12,14,5,7,9,13,12,14,16,7,9,13,15,10,12,14,5,7,9,13,12,14,16,15,13,9,8,10,12,14,5,7,9,13,12,14,16,5,7,9,13,10,12,14,16,20,22,21,19,17,15,18,20,22,21,19,17,15,16,18,20,22,21,19,17,18,20,22,21,19,17,15,16,18,20,22,21,19,17,18,20,22,21,19,17,15,16,18,20,22,21,19,17,6,2,1,21,19,17,15,18,20,22,21,19,17,18,20,22,21,19,17,15,15,17,19,21,22,20,18,17,19,21,22,20,18,15,17,19,21,1,2,6,17,19,21,22,20,18,16,15,17,19,21,22,20,18,17,19,21,22,20,18,16,15,17,19,21,22,20,18,17,19,21,22,20,18,16,15,17,19,21,22,20,18,15,17,19,21,22,20,16,18,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,4,3,5,7,9,8,6,4,2,1,3,5,8,6,4,2,1,3,5,5,3,1,2,4,6,8,5,3,1,2,4,6,8,9,7,5,3,4,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,18,12,10,8,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,10,12,14,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,14,12,10,15,13,11,14,12,10,13,11,9,7,14,12,10,13,11,9,7,7,9,11,13,10,12,14,7,9,11,13,10,12,14,11,13,15,10,12,14,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,14,12,10,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,8,10,12,14,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,16,18,20,21,19,17,15,16,18,20,21,19,17,15,15,17,19,21,20,18,16,15,17,19,21,20,18,16,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,14};
+const Int_t AliHLTTPCMapping::fgkOFec[fgkNOROC] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,27,27,28,28,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,33,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77};
+const Int_t AliHLTTPCMapping::fgkOFecChannel[fgkNOROC] = {1,3,0,2,3,1,0,2,1,0,2,4,1,3,0,2,1,3,0,2,4,1,0,2,4,1,3,0,2,1,3,0,2,1,0,2,4,4,2,0,1,2,0,3,1,2,0,3,1,4,2,0,1,4,2,0,3,1,2,0,3,1,4,2,0,1,2,0,1,3,2,0,3,1,5,7,4,6,7,5,4,6,3,5,7,6,8,5,7,4,6,5,7,6,8,3,5,7,6,8,5,7,4,6,5,7,4,6,3,5,6,8,8,6,5,3,6,4,7,5,6,4,7,5,8,6,7,5,3,8,6,7,5,6,4,7,5,8,6,7,5,3,6,4,5,7,6,4,7,5,9,11,10,8,9,11,10,8,9,11,13,12,10,9,11,10,8,9,11,12,10,9,11,13,12,10,9,11,10,8,9,11,10,8,7,9,12,10,10,12,9,7,8,10,11,9,8,10,11,9,10,12,13,11,9,10,12,11,9,8,10,11,9,10,12,13,11,9,8,10,11,9,8,10,11,9,13,15,14,12,13,15,14,12,15,17,19,16,14,13,15,14,12,13,15,16,14,15,17,19,16,14,13,15,14,12,13,15,14,12,11,13,16,14,14,16,13,11,12,14,15,13,12,14,15,13,14,16,19,17,15,14,16,15,13,12,14,15,13,14,16,19,17,15,12,14,15,13,12,14,15,13,17,19,18,16,17,19,18,16,25,23,21,20,18,17,19,18,16,17,19,20,18,21,23,25,20,18,17,19,18,16,17,19,18,16,15,17,20,18,18,20,17,15,16,18,19,17,16,18,19,17,18,20,25,23,21,18,20,19,17,16,18,19,17,18,20,21,23,25,16,18,19,17,16,18,19,17,25,23,21,20,25,23,21,22,20,29,27,22,24,23,21,22,20,27,25,23,21,22,27,29,22,24,23,21,22,24,20,23,21,22,20,19,21,23,25,25,23,21,19,20,22,21,23,20,24,22,21,23,24,22,29,27,22,21,23,25,27,20,22,21,23,24,22,27,29,20,22,21,23,25,20,21,23,25,29,27,24,22,29,27,24,26,28,32,31,26,28,27,25,24,26,29,31,24,26,28,32,31,28,26,29,27,25,26,28,27,25,24,26,27,29,22,24,24,22,29,27,26,24,25,27,28,26,25,27,29,26,28,31,32,28,26,24,31,29,26,24,25,27,28,26,31,32,28,26,24,27,29,22,24,27,29,32,31,28,26,31,32,33,30,35,34,36,33,30,31,29,28,30,32,34,33,30,35,36,34,33,30,31,32,34,33,30,31,29,30,28,31,32,28,26,26,28,32,31,28,30,29,31,30,33,34,32,31,30,33,34,36,35,30,33,34,32,30,28,29,31,30,33,36,34,35,30,33,32,31,26,28,31,32,34,36,33,30,34,36,38,39,37,38,40,42,37,35,34,32,35,33,36,38,39,37,42,40,38,37,35,36,38,37,35,34,36,32,35,33,34,36,33,30,30,33,36,34,33,35,32,36,34,35,37,38,36,35,37,38,40,42,37,39,38,36,33,35,32,34,35,37,42,40,38,37,39,38,36,34,30,33,36,34,38,40,37,35,40,42,41,45,47,44,43,45,41,39,38,36,39,37,40,42,41,47,44,43,45,41,39,40,42,41,39,38,40,42,39,37,38,40,37,35,35,37,40,38,37,39,42,40,38,39,41,42,40,39,41,45,43,44,47,41,42,40,37,39,36,38,39,41,45,43,44,47,45,41,42,40,35,37,40,38,43,42,41,39,46,44,43,49,51,48,46,47,49,45,42,40,41,44,45,43,49,51,48,46,47,49,51,45,43,49,51,44,43,45,41,43,45,42,41,39,39,41,42,45,43,41,45,43,44,51,49,43,45,51,49,47,46,48,51,49,43,45,44,41,40,42,45,49,47,46,48,51,49,43,44,46,39,41,42,43,44,45,47,49,50,48,53,55,50,52,54,51,53,43,47,49,51,46,48,50,53,55,50,52,53,55,44,46,47,53,55,48,46,47,49,46,44,47,49,51,51,49,47,44,46,49,47,46,48,55,53,47,46,44,55,53,52,50,55,53,50,48,46,51,49,47,43,53,51,54,52,50,55,53,48,50,49,47,45,44,46,48,50,51,53,52,54,59,57,56,58,55,57,44,46,48,53,55,52,54,56,59,57,54,56,59,57,48,50,52,57,59,52,50,53,51,48,50,52,53,55,55,53,52,50,48,51,53,50,52,59,57,52,50,48,57,59,56,54,57,59,56,54,52,55,53,48,46,44,57,55,58,56,57,59,54,52,53,51,50,48,46,52,54,56,57,55,56,58,63,61,60,62,59,61,50,52,54,59,57,58,60,62,63,61,58,62,63,61,54,56,58,63,61,56,54,57,55,54,56,58,59,57,57,59,58,56,54,55,57,54,56,61,63,58,56,54,61,63,62,58,61,63,62,60,58,57,59,54,52,50,61,59,62,60,61,63,58,56,55,57,56,54,52,58,60,62,61,59,60,62,68,70,66,68,70,63,56,60,62,63,61,67,65,64,66,70,60,64,68,72,60,62,65,66,62,60,58,61,59,60,62,63,61,70,70,61,63,62,60,59,61,58,60,62,66,65,62,60,72,68,64,60,70,66,64,65,67,61,63,62,60,56,63,70,68,66,70,68,62,60,59,61,62,60,58,65,66,64,68,63,65,64,66,72,67,65,64,72,74,58,66,64,70,74,71,69,68,72,67,65,66,70,74,69,67,64,68,64,68,70,72,63,65,64,66,68,72,72,68,66,64,65,63,72,70,68,64,68,64,67,69,74,70,66,65,67,72,68,69,71,74,70,64,66,58,74,72,64,65,67,72,66,64,65,63,68,64,66,65,71,69,67,70,72,67,69,74,76,69,71,73,76,78,65,67,68,72,76,73,75,76,74,69,71,73,76,78,71,73,70,72,65,67,66,74,76,67,69,71,74,76,76,74,71,69,67,76,74,66,67,65,72,70,73,71,78,76,73,71,69,74,76,75,73,76,72,68,67,65,78,76,73,71,69,76,74,69,67,72,70,67,69,71,73,75,77,76,74,71,73,80,78,75,77,79,82,80,69,71,73,78,80,77,79,80,78,75,77,79,82,80,75,77,76,74,69,73,71,78,80,73,75,77,80,78,78,80,77,75,73,80,78,71,73,69,74,76,77,75,80,82,79,77,75,78,80,79,77,80,78,73,71,69,80,82,79,77,75,78,80,73,71,74,76,77,75,73,79,81,83,80,78,75,77,83,84,82,81,83,84,88,75,79,83,84,82,85,81,83,84,82,81,83,84,86,79,81,83,80,78,75,79,77,84,82,79,81,83,84,82,82,84,83,81,79,82,84,77,79,75,78,80,83,81,79,86,84,83,81,82,84,83,81,85,82,84,83,79,75,88,84,83,81,82,84,83,77,75,78,80,83,81,79,87,85,86,84,82,79,81,85,86,88,87,85,86,92,77,81,85,86,88,87,86,88,90,92,85,87,89,88,85,86,88,84,82,83,81,85,86,88,85,88,86,90,92,92,90,86,88,85,88,86,85,81,83,82,84,88,86,85,88,89,87,85,92,90,88,86,87,88,86,85,81,77,92,86,85,87,88,86,85,81,79,82,84,86,85,87,89,91,88,90,92,91,89,87,90,92,91,89,90,94,91,89,87,90,92,89,91,93,94,97,93,91,90,92,91,87,89,90,92,91,89,87,90,92,87,89,91,94,97,97,94,91,89,87,92,90,87,89,91,92,90,89,87,91,92,90,91,93,97,94,93,91,89,92,90,87,89,91,94,90,89,91,92,90,87,89,91,92,90,88,91,89,93,95,94,97,99,93,95,96,97,94,95,93,97,99,93,95,96,97,94,95,96,98,99,101,95,96,97,94,93,95,96,94,97,93,95,96,97,94,93,95,96,101,99,99,101,96,95,93,94,97,96,95,93,97,94,96,95,93,94,97,96,95,101,99,98,96,95,94,97,96,95,93,99,97,93,95,94,97,96,95,93,99,97,94,95,93,96,98,100,103,101,98,100,102,101,99,98,100,96,103,101,98,100,102,101,99,100,104,105,103,98,100,102,101,99,98,100,102,101,99,98,100,102,101,99,98,102,106,105,103,103,105,106,102,98,99,101,102,100,98,99,101,102,100,98,99,101,102,100,98,103,105,104,100,99,101,102,100,98,101,103,96,100,98,99,101,102,100,98,101,103,100,98,96,102,104,106,105,113,107,104,106,105,103,102,104,106,105,111,107,106,104,105,103,102,106,109,113,109,104,106,105,103,104,106,105,103,113,109,104,106,105,103,100,104,107,111,115,115,111,107,104,100,103,105,106,104,109,113,103,105,106,104,103,105,106,104,109,113,109,106,102,103,105,104,106,107,111,105,106,104,102,103,105,106,104,107,113,105,106,104,102,108,107,109,111,115,108,109,111,113,117,108,107,109,113,117,108,109,111,113,117,108,107,111,115,108,111,107,113,115,108,109,107,111,115,108,111,107,113,115,110,108,109,113,117,117,113,109,108,110,115,113,107,111,108,115,111,107,109,108,115,113,107,111,108,115,111,107,108,117,113,111,109,108,117,113,109,107,108,117,113,111,109,108,115,111,109,107,108,110,112,114,117,119,110,112,114,115,119,110,112,114,115,119,110,112,114,115,119,110,112,114,117,119,110,112,114,117,119,110,112,114,117,119,110,112,114,117,119,112,114,116,119,121,121,119,116,114,112,119,117,114,112,110,119,117,114,112,110,119,117,114,112,110,119,117,114,112,110,119,115,114,112,110,119,115,114,112,110,119,115,114,112,110,119,117,114,112,110,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,118,120,122,125,123,123,125,122,120,118,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,124,126,127,1,2,2,1,127,126,124,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,2,0,6,10,3,1,0,2,4,1,0,2,4,6,1,0,2,4,3,1,0,2,4,2,0,6,10,1,0,2,4,6,1,0,2,4,4,2,0,6,8,5,3,0,4,4,0,3,5,8,6,0,2,4,4,2,0,1,6,4,2,0,1,10,6,0,2,4,2,0,1,3,4,2,0,1,6,4,2,0,1,4,2,0,1,3,10,6,0,2,1,3,4,8,12,7,5,8,6,3,5,7,8,10,3,5,6,8,10,7,5,6,8,1,3,4,8,12,3,7,5,8,10,3,5,6,8,1,3,5,10,12,7,9,6,8,8,6,9,7,12,10,5,3,1,8,6,5,3,10,8,5,7,3,12,8,4,3,1,8,6,5,7,10,8,6,5,3,10,8,7,5,3,6,8,5,7,12,8,4,3,1,5,7,9,14,16,9,11,12,10,9,11,13,14,12,7,9,16,14,12,9,11,12,10,5,7,9,14,16,9,13,11,14,12,7,9,12,10,7,9,11,16,14,11,13,14,10,10,14,13,11,14,16,11,9,7,10,12,9,7,12,14,11,13,9,16,14,9,7,5,10,12,11,9,12,14,16,9,7,12,14,13,11,9,10,12,11,9,16,14,9,7,5,11,17,20,18,13,15,17,16,14,15,17,19,18,16,11,17,20,18,13,15,17,16,14,11,15,19,20,18,15,19,17,18,16,11,13,16,14,13,17,19,20,18,15,17,18,12,12,18,17,15,18,20,19,17,13,14,16,13,11,16,18,17,19,15,18,20,19,15,11,14,16,17,15,13,18,20,17,11,16,18,19,17,15,14,16,17,15,13,18,20,17,11,13,15,19,22,24,21,23,19,20,18,21,22,24,20,13,15,19,21,22,21,22,19,20,18,13,17,22,24,23,25,29,31,20,15,17,19,20,18,15,21,22,26,21,24,19,20,16,16,20,19,24,21,26,22,21,15,18,20,19,17,15,20,31,29,25,23,24,22,17,13,18,20,19,22,21,22,21,19,15,13,20,24,22,21,18,20,19,23,21,24,22,19,15,13,25,23,21,26,28,25,27,22,24,23,25,27,26,28,23,25,27,24,26,23,25,24,26,25,23,21,26,28,21,27,22,24,26,21,22,24,26,28,25,23,24,28,25,23,22,26,28,28,26,22,23,25,28,24,23,25,28,26,24,22,21,26,24,22,27,21,28,26,21,23,25,26,24,25,23,26,24,27,25,23,28,26,27,25,23,24,22,27,25,28,26,21,23,25,27,29,31,30,33,29,31,30,26,29,31,32,33,30,29,31,28,30,33,27,29,28,30,27,29,31,30,33,32,34,28,30,23,25,27,30,33,27,29,31,30,33,27,29,31,30,33,33,30,31,29,27,33,30,31,29,27,33,30,27,25,23,30,28,34,32,33,30,31,29,27,30,28,29,27,33,30,28,31,29,30,33,32,31,29,26,30,31,29,33,30,31,29,27,32,34,40,37,35,32,36,40,35,28,34,40,37,35,32,34,36,37,35,31,34,36,35,33,32,34,36,37,35,36,38,35,33,29,32,34,37,35,32,34,36,37,35,32,34,36,37,35,35,37,36,34,32,35,37,36,34,32,35,37,34,32,29,33,35,38,36,35,37,36,34,32,33,35,36,34,31,35,37,36,34,32,35,37,40,34,28,35,40,36,32,35,37,40,34,32,36,38,42,41,39,34,38,42,39,33,36,42,41,39,38,40,42,41,39,32,40,41,39,37,38,40,42,41,39,40,42,41,37,31,38,42,41,39,38,40,42,41,39,38,40,42,41,39,39,41,42,40,38,39,41,42,40,38,39,41,42,38,31,37,41,42,40,39,41,42,40,38,37,39,41,40,32,39,41,42,40,38,39,41,42,36,33,39,42,38,34,39,41,42,38,36,46,44,43,45,47,46,44,43,41,37,38,43,45,47,44,45,43,47,49,38,42,44,46,45,46,44,43,45,47,45,43,47,39,36,40,43,45,47,44,45,43,47,49,44,45,43,47,49,49,47,43,45,44,49,47,43,45,44,47,45,43,40,36,39,47,43,45,47,45,43,44,46,45,46,44,42,38,49,47,43,45,44,47,45,43,38,37,41,43,44,46,47,45,43,44,46,48,50,49,51,53,48,50,45,47,49,46,44,49,51,46,48,50,51,53,48,50,43,47,49,48,50,51,49,53,44,46,49,51,48,46,44,49,51,46,48,50,51,53,46,48,50,51,53,53,51,50,48,46,53,51,50,48,46,51,49,44,46,48,51,49,46,44,53,49,51,50,48,49,47,43,50,48,53,51,50,48,46,51,49,44,46,49,47,45,50,48,53,51,49,50,48,52,54,56,57,55,52,54,56,53,51,48,50,52,53,55,52,54,56,57,55,52,54,51,53,52,54,56,57,55,48,50,52,53,55,50,52,54,53,55,52,54,56,57,55,52,54,56,57,55,55,57,56,54,52,55,57,56,54,52,55,53,54,52,50,55,53,52,50,48,55,57,56,54,52,53,51,54,52,55,57,56,54,52,55,53,52,50,48,51,53,56,54,52,55,57,56,54,52,58,60,62,63,59,58,60,62,59,55,54,56,58,59,57,58,60,62,63,59,56,58,57,55,58,62,63,61,59,54,56,58,59,57,56,60,61,59,57,58,60,62,63,59,58,62,63,61,59,59,61,63,62,58,59,63,62,60,58,57,59,61,60,56,57,59,58,56,54,59,61,63,62,58,55,57,58,56,59,63,62,60,58,57,59,58,56,54,55,59,62,60,58,59,63,62,60,58,65,64,66,68,61,66,64,63,61,57,64,60,62,63,61,65,64,66,68,61,60,62,63,59,60,65,64,66,68,68,60,62,63,61,58,62,63,66,70,68,66,64,72,61,60,65,64,66,68,68,66,64,65,60,61,72,64,66,68,70,66,63,62,58,61,63,62,60,68,68,66,64,65,60,59,63,62,60,61,68,66,64,65,61,63,62,60,64,57,61,63,64,66,61,68,66,64,65,67,69,71,70,72,67,65,68,70,72,65,68,66,70,72,71,69,67,70,72,65,64,66,68,61,67,69,71,70,72,65,66,64,70,72,67,65,64,68,72,65,67,70,74,76,67,69,71,70,72,72,70,71,69,67,76,74,70,67,65,72,68,64,65,67,72,70,64,66,65,72,70,71,69,67,61,68,66,64,65,72,70,67,69,71,72,70,66,68,65,72,70,68,65,67,72,70,71,69,67,73,75,77,76,74,69,71,73,74,76,67,69,71,74,76,73,75,77,76,74,71,69,67,70,72,73,75,77,76,74,67,69,71,74,76,69,71,73,74,76,69,71,73,78,80,73,75,77,76,74,74,76,77,75,73,80,78,73,71,69,76,74,73,71,69,76,74,71,69,67,74,76,77,75,73,72,70,67,69,71,74,76,77,75,73,76,74,71,69,67,76,74,73,71,69,74,76,77,75,73,79,81,83,80,78,75,77,81,80,78,73,75,77,80,78,79,81,83,80,78,73,75,77,76,74,79,81,83,82,78,73,75,77,80,78,75,77,79,80,78,75,79,83,84,82,79,81,83,80,78,78,80,83,81,79,82,84,83,79,75,78,80,79,77,75,78,80,77,75,73,78,82,83,81,79,74,76,77,75,73,78,80,83,81,79,78,80,77,75,73,78,80,81,77,75,78,80,83,81,79,89,87,85,84,82,87,79,83,84,82,79,81,83,84,82,85,86,88,84,82,83,81,79,80,78,93,89,85,84,80,79,81,83,84,82,85,81,83,84,82,77,81,85,87,89,85,88,86,84,82,82,84,86,88,85,89,87,85,81,77,82,84,83,81,85,82,84,83,81,79,80,84,85,89,93,78,80,79,81,83,82,84,88,86,85,82,84,83,81,79,82,84,83,79,87,82,84,85,87,89,95,93,91,86,88,89,85,86,88,90,85,88,86,90,92,91,89,87,90,92,87,85,86,88,84,82,95,91,87,86,88,89,87,85,86,88,87,88,86,90,92,95,93,91,86,88,87,89,91,90,92,92,90,91,89,87,88,86,91,93,95,92,90,86,88,87,88,86,85,87,89,88,86,87,91,95,82,84,88,86,85,87,92,90,87,89,91,92,90,86,88,85,90,88,86,85,89,88,86,91,93,95,98,96,94,92,90,91,93,95,92,94,87,89,91,94,97,93,95,96,94,97,89,91,93,90,92,94,98,96,94,92,90,91,93,95,90,92,89,91,93,94,97,98,96,94,92,90,96,95,93,94,97,97,94,93,95,96,90,92,94,96,98,97,94,93,91,89,92,90,95,93,91,90,92,94,96,98,94,92,90,93,91,89,97,94,96,95,93,97,94,91,89,87,94,92,95,93,91,90,92,94,96,98,100,104,101,99,97,96,98,100,99,97,93,95,96,101,99,98,100,102,101,99,95,100,102,101,99,97,100,104,101,99,97,96,98,100,97,94,100,96,95,101,99,100,104,101,99,97,98,100,102,101,99,99,101,102,100,98,97,99,101,104,100,99,101,95,96,100,94,97,100,98,96,97,99,101,104,100,97,99,101,102,100,95,99,101,102,100,98,99,101,96,95,93,97,99,100,98,96,97,99,101,104,100,102,106,105,103,111,102,104,106,105,101,98,102,104,106,105,103,104,106,105,103,113,96,104,106,105,103,111,102,106,105,103,102,104,106,105,103,99,102,98,106,105,103,102,106,105,103,113,111,104,106,105,103,103,105,106,104,111,113,103,105,106,102,103,105,106,98,102,99,103,105,106,104,102,103,105,106,102,111,103,105,106,104,96,113,103,105,106,104,103,105,106,104,102,98,101,105,106,104,102,111,103,105,106,102,110,108,107,109,113,107,109,111,113,103,100,108,107,109,111,113,108,107,109,111,115,98,107,109,113,115,108,109,107,113,117,108,107,109,111,113,101,104,109,107,113,115,108,107,109,111,115,108,109,107,113,115,115,113,107,109,108,115,111,109,107,108,115,113,107,109,104,101,113,111,109,107,108,117,113,107,109,108,115,113,109,107,98,115,111,109,107,108,113,111,109,107,108,100,103,113,111,109,107,113,109,107,108,110,114,112,119,115,117,108,110,112,115,117,114,112,110,115,117,119,110,112,114,117,119,108,110,111,117,119,110,112,114,115,119,110,112,114,115,117,119,108,110,111,117,119,110,112,114,117,119,110,112,114,117,119,119,117,114,112,110,119,117,114,112,110,119,117,111,110,108,119,117,115,114,112,110,119,115,114,112,110,119,117,111,110,108,119,117,114,112,110,119,117,115,110,112,114,117,115,112,110,108,117,115,119,112,114,116,118,120,121,123,114,116,118,120,121,119,116,118,120,121,123,120,118,116,121,123,112,114,116,118,121,123,120,118,116,121,123,120,118,116,123,121,112,114,116,118,121,123,120,118,116,121,123,120,118,116,123,121,121,123,116,118,120,123,121,116,118,120,123,121,118,116,114,112,121,123,116,118,120,123,121,116,118,120,123,121,118,116,114,112,123,121,116,118,120,123,121,120,118,116,119,121,120,118,116,114,123,121,120,118,116,122,124,126,127,125,122,124,126,127,125,123,122,124,126,127,125,122,124,126,127,125,120,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,126,124,122,120,127,125,122,124,126,127,125,122,124,126,127,125,125,127,126,124,122,125,127,126,124,122,125,127,120,122,124,126,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,120,125,127,126,124,122,125,127,126,124,122,123,125,127,126,124,122,125,127,126,124,122,2,0,4,6,8,4,2,0,6,8,4,2,0,6,10,1,2,0,4,8,4,2,0,6,10,1,4,2,0,6,8,1,2,0,4,6,1,2,0,4,8,10,1,4,2,0,6,8,1,2,0,4,6,6,4,0,2,1,8,6,0,2,4,1,10,8,4,0,2,1,6,4,0,2,1,8,6,0,2,4,1,10,6,0,2,4,8,4,0,2,1,10,6,0,2,4,8,6,0,2,4,8,6,4,0,2,1,3,5,10,12,1,3,5,10,12,1,3,5,8,12,3,5,7,6,10,1,3,5,8,12,3,5,9,11,10,12,3,5,7,8,10,3,5,7,6,12,14,3,5,7,9,10,12,3,5,7,8,10,10,8,7,5,3,12,10,9,7,5,3,14,12,6,7,5,3,10,8,7,5,3,12,10,11,9,5,3,12,8,5,3,1,10,6,7,5,3,12,8,5,3,1,12,10,5,3,1,12,10,5,3,1,7,9,11,16,14,7,9,15,17,16,14,7,11,15,16,14,9,11,13,14,12,7,9,11,16,14,7,13,15,17,16,14,9,11,13,14,12,9,11,13,16,18,20,11,13,15,17,16,14,9,11,13,14,12,12,14,13,11,9,14,16,17,15,13,11,20,18,16,13,11,9,12,14,13,11,9,14,16,17,15,13,7,14,16,11,9,7,12,14,13,11,9,14,16,15,11,7,14,16,17,15,9,7,14,16,11,9,7,13,17,19,20,18,11,13,19,20,18,9,13,17,19,20,18,15,17,19,20,16,13,17,19,20,18,25,21,22,19,20,18,15,17,19,20,16,15,17,19,22,24,26,25,21,22,19,20,18,15,17,19,20,16,16,20,19,17,15,18,20,19,22,21,25,26,24,22,19,17,15,16,20,19,17,15,18,20,19,22,21,25,18,20,19,17,13,16,20,19,17,15,18,20,19,17,13,9,18,20,19,13,11,18,20,19,17,13,15,21,22,24,28,21,22,24,26,28,23,21,22,24,26,28,26,24,22,28,18,15,23,21,22,24,27,23,24,26,28,25,23,21,22,24,18,21,23,25,27,28,30,27,23,24,26,28,27,25,23,21,22,18,18,22,21,23,25,27,28,26,24,23,27,30,28,27,25,23,21,18,24,22,21,23,25,28,26,24,23,27,24,22,21,23,15,18,28,22,24,26,28,26,24,22,21,23,28,26,24,22,21,28,24,22,21,15,23,25,27,26,30,33,23,27,25,30,33,25,27,29,31,30,33,21,23,25,30,33,25,27,29,26,28,29,31,32,30,33,27,29,31,26,28,30,29,31,32,34,33,35,29,31,32,30,33,29,31,32,28,26,24,24,26,28,32,31,29,33,30,32,31,29,35,33,34,32,31,29,30,28,26,31,29,27,33,30,32,31,29,28,26,29,27,25,33,30,25,23,21,33,30,31,29,27,25,33,30,25,27,23,33,30,26,27,25,23,29,31,32,35,37,29,31,34,32,37,35,32,34,36,37,35,27,29,34,36,37,35,31,32,34,33,30,34,36,38,37,35,32,34,36,35,33,37,36,38,42,40,39,37,34,38,40,37,35,34,36,38,37,33,30,30,33,37,38,36,34,35,37,40,38,34,37,39,40,42,38,36,37,33,35,36,34,32,35,37,38,36,34,30,33,34,32,31,35,37,36,34,29,27,35,37,36,34,32,35,37,32,34,31,29,37,35,32,31,29,34,38,42,41,39,36,38,42,40,41,39,38,40,42,41,39,31,32,40,42,41,39,36,38,40,37,35,45,40,42,41,39,38,40,42,41,39,47,48,44,43,47,51,41,36,42,41,39,47,48,40,42,41,39,35,35,39,41,42,40,48,47,39,41,42,36,41,51,47,43,44,48,47,39,41,42,40,38,39,41,42,40,45,35,37,40,38,36,39,41,42,40,32,31,39,41,42,40,38,39,41,40,42,38,36,39,41,42,38,34,36,40,43,47,49,47,45,43,49,53,46,44,43,45,47,49,38,45,43,49,53,46,47,43,42,41,39,44,47,43,49,53,46,44,43,45,49,51,50,46,45,49,53,46,44,43,45,49,51,50,46,44,43,45,47,47,45,43,44,46,50,51,49,45,43,44,46,53,49,45,46,50,51,49,45,43,44,46,53,49,43,47,44,39,41,42,43,47,46,53,49,43,45,38,49,47,45,43,44,46,53,49,43,45,47,49,47,43,40,36,48,46,44,45,51,53,48,46,44,51,55,48,50,52,51,53,55,46,44,47,51,55,48,44,45,49,51,46,48,50,52,51,55,48,50,52,53,55,57,52,54,56,55,57,48,50,52,53,55,57,52,54,56,49,51,53,53,51,49,56,54,52,57,55,53,52,50,48,57,55,56,54,52,57,55,53,52,50,48,55,51,52,50,48,46,51,49,45,44,48,55,51,47,44,46,55,53,51,52,50,48,55,51,44,46,48,53,51,45,44,46,48,50,52,54,55,57,50,52,54,56,57,59,54,56,58,59,57,48,50,52,54,57,59,50,52,54,53,55,54,56,58,60,59,57,54,58,62,63,61,59,58,60,62,61,59,54,58,60,63,61,59,58,60,62,59,57,55,55,57,59,62,60,58,59,61,63,60,58,54,59,61,62,60,58,59,61,63,62,58,54,57,59,60,58,56,54,55,53,54,52,50,59,57,54,52,50,48,57,59,58,56,54,59,57,56,54,52,50,57,55,54,52,50,56,58,60,62,63,61,59,58,60,62,63,61,65,60,62,63,61,56,58,60,62,63,61,56,58,60,61,57,65,66,64,62,63,61,56,60,65,66,68,72,67,65,64,66,63,56,62,65,64,68,72,67,65,64,66,63,61,61,63,66,64,65,67,72,68,64,65,62,56,63,66,64,65,67,72,68,66,65,60,56,61,63,62,64,66,65,57,61,60,58,56,61,63,62,60,58,56,61,63,62,60,65,61,63,62,60,58,59,61,63,62,60,58,56,68,66,64,70,74,65,68,66,64,70,72,69,67,64,66,68,70,65,66,64,68,70,65,64,66,62,63,59,67,69,68,70,72,71,69,67,64,70,74,73,71,69,68,70,72,71,69,67,66,70,74,73,71,69,68,70,72,72,70,68,69,71,73,74,70,66,67,69,71,72,70,68,69,71,73,74,70,64,67,69,71,72,70,68,69,67,59,63,62,66,64,65,70,68,64,66,65,70,68,66,64,67,69,72,70,64,66,68,65,74,70,64,66,68,65,67,69,72,76,67,69,71,73,74,76,71,73,72,74,76,67,69,71,73,72,74,67,69,71,68,70,71,73,75,78,76,74,73,75,77,76,78,80,75,77,79,78,76,74,73,75,81,80,78,76,75,77,79,78,76,74,74,76,78,79,77,75,76,78,80,81,75,73,74,76,78,79,77,75,80,78,76,77,75,73,74,76,78,75,73,71,70,68,71,69,67,74,72,73,71,69,67,76,74,72,73,71,76,74,73,71,69,67,76,72,69,67,65,71,73,75,77,80,78,75,77,79,80,78,75,77,83,82,80,78,75,77,79,83,80,76,73,75,76,74,72,77,81,83,84,82,80,79,81,83,84,82,90,85,81,83,84,82,80,77,79,83,84,82,88,87,81,83,84,82,80,80,82,84,83,81,87,88,82,84,83,79,77,80,82,84,83,81,85,90,82,84,83,81,79,80,82,84,83,81,77,72,74,76,75,73,76,80,83,79,77,75,78,80,82,83,77,75,78,80,79,77,75,78,80,77,75,73,71,87,79,81,83,84,82,89,81,83,84,82,79,81,84,88,92,94,91,89,81,84,82,78,77,83,82,80,78,79,85,88,86,90,92,89,87,85,86,88,92,89,87,86,88,90,92,91,89,87,85,86,90,89,85,86,88,90,92,92,90,88,86,85,89,90,86,85,87,89,91,92,90,88,86,87,89,92,88,86,85,87,89,92,90,86,88,85,79,78,80,82,83,77,78,82,84,81,89,91,94,92,88,84,81,79,82,84,83,81,89,82,84,83,81,79,87,91,89,85,86,88,90,93,91,87,85,86,88,87,85,86,90,97,95,93,87,85,86,88,79,81,84,85,87,86,87,89,91,93,94,97,91,93,95,96,94,97,91,93,95,94,97,99,93,95,96,98,94,92,91,93,95,94,97,99,99,97,94,95,93,91,92,94,98,96,95,93,99,97,94,95,93,91,97,94,96,95,93,91,97,94,93,91,89,87,86,87,85,84,81,79,88,86,85,87,93,95,97,90,86,85,87,88,86,85,87,91,93,90,88,86,85,89,91,93,95,96,97,94,92,95,96,98,100,92,90,89,91,93,99,101,96,98,100,94,92,90,93,91,89,88,90,92,95,96,98,100,101,99,98,100,102,104,101,99,96,98,106,105,103,101,100,102,104,106,99,97,96,102,104,105,103,101,101,103,105,104,102,96,97,99,106,104,102,100,101,103,105,106,98,96,99,101,104,102,100,98,99,101,100,98,96,95,92,90,88,89,91,93,90,92,94,100,98,96,101,99,93,91,89,90,92,100,98,96,95,92,94,97,96,95,93,98,102,106,103,101,99,102,104,106,99,97,94,95,96,102,106,105,103,102,104,106,101,99,97,95,96,98,99,97,94,102,104,106,105,103,113,110,108,109,106,105,103,100,102,104,107,109,113,112,108,107,105,103,101,98,100,106,107,109,113,113,109,107,106,100,98,101,103,105,107,108,112,113,109,107,104,102,100,103,105,106,109,108,110,113,103,105,106,104,102,94,97,99,98,96,95,97,99,101,106,104,102,103,105,106,102,96,95,94,97,99,106,104,102,99,101,103,106,102,98,100,104,105,107,111,113,110,107,111,105,103,101,98,100,104,107,111,113,110,107,109,105,103,100,102,104,106,105,103,101,110,108,107,109,111,115,114,112,107,111,113,115,114,112,110,108,111,115,114,110,109,111,113,115,114,112,110,108,111,115,115,111,108,110,112,114,115,113,111,109,110,114,115,111,108,110,112,114,115,113,111,107,112,114,115,111,109,107,108,110,101,103,105,106,104,102,100,103,105,109,107,110,113,111,107,104,100,98,101,103,105,111,107,110,113,111,107,105,104,100,114,112,110,108,109,115,114,112,108,109,113,115,114,112,110,108,109,115,114,112,108,111,113,115,110,108,107,109,111,113,115,112,114,116,117,119,121,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,121,119,117,116,118,120,117,119,121,121,119,117,120,118,116,117,119,121,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,121,119,117,116,114,112,115,113,111,109,107,108,110,115,113,111,108,112,114,115,109,108,110,112,114,115,113,109,108,112,114,115,109,108,110,112,114,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,121,119,117,112,114,116,118,117,119,121,118,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,118,121,119,117,118,116,114,112,117,119,121,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,120,122,124,126,127,125,123,120,122,5,0,2,4,5,3,1,0,2,4,7,5,3,1,0,2,5,3,1,0,2,4,7,5,3,1,0,2,2,0,1,3,5,7,4,2,0,1,3,5,2,0,1,3,5,7,4,2,0,1,3,5,4,2,0,5,122,120,123,125,127,126,124,122,120,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,7,5,3,1,0,2,7,5,3,1,0,2,4,1,0,2,4,6,8,5,3,1,0,2,4,7,5,3,1,0,2,4,9,7,3,1,6,8,7,9,12,10,8,6,13,11,9,8,6,4,7,9,6,8,10,12,13,11,9,8,6,4,4,6,8,9,11,13,12,10,8,6,9,7,4,6,8,9,11,13,6,8,10,12,9,7,8,6,1,3,7,9,4,2,0,1,3,5,7,4,2,0,1,3,5,8,6,4,2,0,1,4,2,0,1,3,5,7,2,0,1,3,5,7,13,11,9,8,6,4,9,11,12,10,8,6,9,7,5,3,10,12,14,7,9,12,10,8,6,13,11,9,12,10,8,6,11,13,15,14,12,10,11,15,20,18,16,14,15,17,19,14,12,10,11,15,20,18,16,14,15,17,19,14,12,10,10,12,14,19,17,15,14,16,18,20,15,11,10,12,14,19,17,15,14,16,18,20,15,11,10,12,14,15,13,11,6,8,10,12,9,11,13,6,8,10,12,9,7,14,12,10,3,5,7,9,6,8,10,12,11,9,4,6,8,9,11,13,15,17,19,14,12,10,13,17,19,20,18,16,14,11,15,19,20,18,16,11,15,19,20,18,16,14,15,17,19,20,18,16,14,21,17,19,20,18,16,13,17,19,23,21,22,25,23,21,20,18,16,13,17,19,25,23,21,25,23,21,20,18,16,16,18,20,21,23,25,21,23,25,19,17,13,16,18,20,21,23,25,22,21,23,19,17,13,16,18,20,19,17,21,14,16,18,20,19,17,15,14,16,18,20,19,15,11,16,18,20,19,15,11,14,16,18,20,19,17,13,10,12,14,19,17,15,23,21,22,20,18,16,15,27,25,23,21,22,24,13,17,25,23,21,22,13,17,25,23,21,22,24,29,27,25,23,21,22,25,23,22,24,26,28,31,29,27,25,24,26,28,29,27,22,24,26,28,31,29,27,22,24,26,29,27,22,24,26,28,28,26,24,22,27,29,26,24,22,27,29,31,28,26,24,22,27,29,28,26,24,25,27,29,31,28,26,24,22,23,25,22,21,23,25,27,29,24,22,21,23,25,17,13,22,21,23,25,17,13,24,22,21,23,25,27,15,16,18,20,22,21,23,29,27,25,24,26,28,29,31,32,26,28,30,33,31,29,27,32,24,26,28,31,29,27,26,28,30,36,34,32,31,28,26,24,31,29,27,30,33,35,32,34,36,30,33,35,36,34,32,31,30,33,35,36,34,32,33,30,28,34,32,31,35,33,30,30,33,35,31,32,34,28,30,33,32,34,36,35,33,30,31,32,34,36,35,33,30,36,34,32,35,33,30,27,29,31,24,26,28,31,32,34,36,30,28,26,27,29,31,28,26,24,32,27,29,31,33,30,28,26,32,31,29,28,26,24,25,27,29,31,32,34,35,33,30,34,38,42,41,39,37,35,34,36,38,42,35,33,30,32,38,40,37,35,33,38,40,42,37,35,33,30,32,38,42,41,39,37,38,40,42,41,39,37,48,38,40,42,41,39,37,38,40,42,41,39,35,36,40,42,41,39,37,37,39,41,42,40,36,35,39,41,42,40,38,37,39,41,42,40,38,48,37,39,41,42,40,38,37,39,41,42,38,32,30,33,35,37,42,40,38,33,35,37,40,38,32,30,33,35,42,38,36,34,35,37,39,41,42,38,34,30,33,35,34,32,31,36,38,40,42,41,39,37,36,40,48,46,44,43,45,44,43,40,41,39,37,34,36,42,41,39,45,47,44,43,45,47,41,39,34,36,40,44,43,47,49,48,46,44,43,45,47,50,46,44,43,45,47,48,46,44,43,45,47,37,38,48,46,44,43,45,45,43,44,46,48,38,37,47,45,43,44,46,48,47,45,43,44,46,50,47,45,43,44,46,48,49,47,43,44,40,36,34,39,41,47,45,43,44,47,45,39,41,42,36,34,37,39,41,40,43,44,45,43,44,46,48,40,36,37,39,41,42,40,38,36,50,48,46,44,43,45,47,56,54,52,50,47,49,48,46,45,47,49,51,53,50,48,46,44,43,49,51,46,48,50,49,51,53,52,50,48,46,45,51,50,52,54,55,53,51,49,52,54,56,53,51,49,54,52,50,49,51,53,55,50,52,54,51,49,47,47,49,51,54,52,50,55,53,51,49,50,52,54,49,51,53,56,54,52,49,51,53,55,54,52,50,51,45,46,48,50,52,53,51,49,50,48,46,51,49,43,44,46,48,50,53,51,49,47,45,46,48,49,47,50,52,54,56,47,45,43,44,46,48,50,56,54,52,49,51,53,55,58,60,62,55,53,51,56,54,52,50,59,57,55,52,54,56,57,55,53,52,54,60,61,59,57,55,54,56,58,57,55,53,56,60,62,63,61,59,57,58,60,62,59,57,55,56,60,62,63,61,59,57,56,58,60,57,55,53,53,55,57,60,58,56,57,59,61,63,62,60,56,55,57,59,62,60,58,57,59,61,63,62,60,56,53,55,57,58,56,54,55,57,59,61,60,54,52,53,55,57,56,54,52,55,57,59,50,52,54,56,51,53,55,62,60,58,55,53,51,49,52,54,56,58,60,62,63,61,59,57,67,65,63,61,59,57,58,60,62,63,61,66,70,67,58,60,62,63,61,59,56,58,62,63,66,68,70,69,60,62,63,61,59,58,67,65,64,66,68,70,67,65,64,66,63,61,58,69,67,65,64,66,68,69,67,62,63,61,59,59,61,63,62,67,69,68,66,64,65,67,69,58,61,63,66,64,65,67,70,68,66,64,65,67,58,59,61,63,62,60,69,70,68,66,63,62,58,56,59,61,63,62,60,58,67,70,66,61,63,62,60,58,57,59,61,63,65,67,57,59,61,63,62,60,58,67,65,64,66,68,70,72,69,64,66,68,70,72,71,69,67,65,64,68,72,69,65,64,66,68,70,72,71,69,67,65,64,72,73,71,67,65,64,66,68,73,71,69,72,74,76,75,73,71,69,68,70,72,75,73,71,70,72,74,76,73,71,65,64,66,68,68,66,64,65,71,73,76,74,72,70,71,73,75,72,70,68,69,71,73,75,76,74,72,69,71,73,68,66,64,65,67,71,73,72,64,65,67,69,71,72,70,68,66,64,65,69,72,68,64,65,67,69,71,72,70,68,66,64,69,72,70,68,66,64,65,67,75,73,71,69,74,76,78,71,73,75,77,74,76,78,79,77,75,73,74,76,78,71,73,75,77,74,76,78,77,75,73,78,76,74,79,77,75,70,72,74,76,79,77,75,82,80,78,77,79,81,83,78,76,74,77,81,84,82,80,78,79,77,75,76,74,72,70,70,72,74,76,75,77,79,78,80,82,84,81,77,74,76,78,83,81,79,77,78,80,82,75,77,79,76,74,72,70,75,77,79,74,76,78,73,75,77,78,76,74,77,75,73,71,78,76,74,73,75,77,79,78,76,74,77,75,73,71,78,76,74,69,71,73,75,77,79,81,83,84,82,80,91,79,81,83,84,82,80,81,83,84,82,80,90,93,79,81,83,84,82,80,79,81,83,84,82,80,88,93,81,83,84,82,80,78,81,83,84,85,86,88,95,93,91,89,84,82,80,79,83,91,87,86,90,93,81,83,84,82,80,78,78,80,82,84,83,81,93,90,86,87,91,83,79,80,82,84,89,91,93,95,88,86,85,84,83,81,78,80,82,84,83,81,93,88,80,82,84,83,81,79,80,82,84,83,81,79,93,90,80,82,84,83,81,80,82,84,83,81,79,91,80,82,84,83,81,79,77,93,91,89,87,85,86,88,95,93,89,87,85,86,88,91,89,87,85,86,88,92,95,91,89,87,85,86,88,93,91,89,87,85,86,90,95,91,89,87,85,86,88,93,91,89,87,90,92,100,98,96,87,85,86,88,95,93,89,85,88,92,95,91,89,85,87,86,88,88,86,87,85,89,91,95,92,88,85,89,93,95,88,86,85,87,96,98,100,92,90,87,89,91,93,88,86,85,87,89,91,95,90,86,85,87,89,91,93,88,86,85,87,89,91,95,92,88,86,85,87,89,91,88,86,85,87,89,93,95,88,86,85,87,89,91,93,98,96,95,97,94,92,90,100,98,96,97,94,92,90,98,96,95,93,94,97,99,100,98,96,97,94,92,90,98,96,95,99,97,94,92,100,98,96,97,94,92,90,98,96,95,99,97,94,102,104,106,97,94,92,90,100,98,96,99,97,94,100,98,96,97,94,92,90,90,92,94,97,96,98,100,94,97,99,96,98,100,90,92,94,97,106,104,102,94,97,99,95,96,98,90,92,94,97,96,98,100,92,94,97,99,95,96,98,90,92,94,97,96,98,100,99,97,94,93,95,96,98,90,92,94,97,96,98,100,90,92,94,97,95,96,98,100,104,106,105,103,101,99,102,104,106,105,103,101,99,100,102,104,106,105,103,101,102,104,106,105,103,101,99,100,102,104,106,105,103,101,102,104,106,105,103,101,99,100,102,104,106,105,103,101,112,108,107,105,103,101,99,102,104,106,105,103,101,102,104,106,105,103,101,99,99,101,103,105,106,104,102,101,103,105,106,104,102,99,101,103,105,107,108,112,101,103,105,106,104,102,100,99,101,103,105,106,104,102,101,103,105,106,104,102,100,99,101,103,105,106,104,102,101,103,105,106,104,102,100,99,101,103,105,106,104,102,99,101,103,105,106,104,100,102,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,110,109,111,113,115,114,112,110,108,107,109,111,114,112,110,108,107,109,111,111,109,107,108,110,112,114,111,109,107,108,110,112,114,115,113,111,109,110,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,102,118,116,114,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,116,118,120,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,120,118,116,121,119,117,120,118,116,119,117,115,113,120,118,116,119,117,115,113,113,115,117,119,116,118,120,113,115,117,119,116,118,120,117,119,121,116,118,120,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,120,118,116,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,114,116,118,120,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,122,124,126,127,125,123,121,122,124,126,127,125,123,121,121,123,125,127,126,124,122,121,123,125,127,126,124,122,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,120};
+const Int_t AliHLTTPCMapping::fgkOFecCon[fgkNOROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,3,3,3,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,3,3,3,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,3,3,2,2,2,3,2,2,2,2,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,2,2,2,2,3,2,2,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,4,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,3,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,3,3,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5};
diff --git a/HLT/misc/AliL3TPCMapping.cxx b/HLT/misc/AliHLTTPCMapping.cxx
similarity index 88%
rename from HLT/misc/AliL3TPCMapping.cxx
rename to HLT/misc/AliHLTTPCMapping.cxx
index 612125ea4a6..65499c980a1 100644
--- a/HLT/misc/AliL3TPCMapping.cxx
+++ b/HLT/misc/AliHLTTPCMapping.cxx
@@ -3,34 +3,34 @@
 // Author: Constantin Loizides 
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
-#include "AliL3Logging.h"
-#include "AliL3Transform.h"
-#include "AliL3TPCMapping.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransform.h"
+#include "AliHLTTPCMapping.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
 //generated from Ulis txt file with read-roc.sh
-#include "AliL3TPCMapping-iroc.generated"
-#include "AliL3TPCMapping-oroc.generated"
+#include "AliHLTTPCMapping-iroc.generated"
+#include "AliHLTTPCMapping-oroc.generated"
 
 
-Int_t AliL3TPCMapping::GetRealNPads(Int_t slicerow)
+Int_t AliHLTTPCMapping::GetRealNPads(Int_t slicerow)
 { 
   //see tpc numbering doc
 
-  if(slicerow<0 || slicerow >= AliL3Transform::GetNRows()){
-    LOG(AliL3Log::kError,"AliL3TPCMapping::GetRealNPads","Slicerow")
+  if(slicerow<0 || slicerow >= AliHLTTransform::GetNRows()){
+    LOG(AliHLTLog::kError,"AliHLTTPCMapping::GetRealNPads","Slicerow")
       <<"Wrong slicerow "<= AliL3Transform::GetNRows()){
-    LOG(AliL3Log::kError,"AliL3TPCMapping::GetRealX","Slicerow")
+  if(slicerow<0 || slicerow >= AliHLTTransform::GetNRows()){
+    LOG(AliHLTLog::kError,"AliHLTTPCMapping::GetRealX","Slicerow")
       <<"Wrong slicerow "<= AliL3Transform::GetNRows()){
-    LOG(AliL3Log::kError,"AliL3Transform::GetRealY","Slicerow")
+  if(slicerow<0 || slicerow >= AliHLTTransform::GetNRows()){
+    LOG(AliHLTLog::kError,"AliHLTTransform::GetRealY","Slicerow")
       <<"Wrong slicerow "<= npads){
-    LOG(AliL3Log::kError,"AliL3Transform::GetRealY","pad")
+    LOG(AliHLTLog::kError,"AliHLTTransform::GetRealY","pad")
       <<"Wrong pad "<
 //*-- Copyright & copy ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3TransBit.h"
+#include "AliHLTTransBit.h"
 
 #if __GNUC__ == 3
 using namespace std;
@@ -27,10 +27,10 @@ using namespace std;
  **************************************************************************/
 
 
-/** \class AliL3Transbit
+/** \class AliHLTTransbit
 
 //_____________________________________________________________
-// AliL3Transbit (taken from the offline AliROOT code,
+// AliHLTTransbit (taken from the offline AliROOT code,
 // original author: Marian Ivanov, GSI Darmstadt for AliROOT)
 //
 // Time Projection Chamber ADC bit compresion lookup table
@@ -66,11 +66,11 @@ using namespace std;
 
*/ -ClassImp(AliL3TransBit) -ClassImp(AliL3TransBitV1) -ClassImp(AliL3TransBitV2) +ClassImp(AliHLTTransBit) +ClassImp(AliHLTTransBitV1) +ClassImp(AliHLTTransBitV2) -AliL3TransBit::AliL3TransBit() +AliHLTTransBit::AliHLTTransBit() { // default constructor fTable0 = 0; @@ -80,14 +80,14 @@ AliL3TransBit::AliL3TransBit() fX0 = 0; } -AliL3TransBit::~AliL3TransBit() +AliHLTTransBit::~AliHLTTransBit() { // destructor if (fTable0!=0) delete [] fTable0; if (fTable1!=0) delete [] fTable1; } -Double_t AliL3TransBitV1::FindOptimumX0() +Double_t AliHLTTransBitV1::FindOptimumX0() { //find x0 for which derivation at xder1 is equal 1 Int_t x0=(Int_t)rint(exp(fBit0*log(2.))); @@ -111,7 +111,7 @@ Double_t AliL3TransBitV1::FindOptimumX0() return fX0; } -void AliL3TransBitV1::Update() +void AliHLTTransBitV1::Update() { //construct lookup tables for loosy compression from if (fX0<1) fX0 = FindOptimumX0(); @@ -139,7 +139,7 @@ void AliL3TransBitV1::Update() return; } -Double_t AliL3TransBitV2::FindOptimumX0() +Double_t AliHLTTransBitV2::FindOptimumX0() { //find x0 for which derivation at xder1 is equal 1 const Float_t kxder1=1; @@ -158,7 +158,7 @@ Double_t AliL3TransBitV2::FindOptimumX0() return fX0; } -void AliL3TransBitV2::Update() +void AliHLTTransBitV2::Update() { //construct lookup tables for loosy compresion from if (fX0<1) fX0 = FindOptimumX0(); diff --git a/HLT/misc/AliL3TransBit.h b/HLT/misc/AliHLTTransBit.h similarity index 57% rename from HLT/misc/AliL3TransBit.h rename to HLT/misc/AliHLTTransBit.h index 36eceb55849..3c647e869ad 100644 --- a/HLT/misc/AliL3TransBit.h +++ b/HLT/misc/AliHLTTransBit.h @@ -3,12 +3,12 @@ #ifndef ALIL3TRANSBIT_H #define ALIL3TRANSBIT_H -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" -class AliL3TransBit { +class AliHLTTransBit { public: - AliL3TransBit(); - virtual ~AliL3TransBit(); + AliHLTTransBit(); + virtual ~AliHLTTransBit(); inline Int_t Get0to1(Int_t val0) const; inline Int_t Get1to0(Int_t val1) const; Int_t GetBit0() const {return fBit0;} @@ -25,36 +25,42 @@ class AliL3TransBit { Int_t fBit1; // bit 1 Double_t fX0; // optimal X value(?) - ClassDef(AliL3TransBit,1) + ClassDef(AliHLTTransBit,1) }; -class AliL3TransBitV1 : public AliL3TransBit { +typedef AliHLTTransBit AliL3TransBit; // for backward compatibility + +class AliHLTTransBitV1 : public AliHLTTransBit { public: - virtual ~AliL3TransBitV1(){} + virtual ~AliHLTTransBitV1(){} virtual void Update(); virtual Double_t FindOptimumX0(); protected: - ClassDef(AliL3TransBitV1,1) + ClassDef(AliHLTTransBitV1,1) }; -class AliL3TransBitV2 : public AliL3TransBit { +typedef AliHLTTransBitV1 AliL3TransBitV1; // for backward compatibility + +class AliHLTTransBitV2 : public AliHLTTransBit { public: - virtual ~AliL3TransBitV2(){} + virtual ~AliHLTTransBitV2(){} virtual void Update(); virtual Double_t FindOptimumX0(); protected: - ClassDef(AliL3TransBitV2,1) + ClassDef(AliHLTTransBitV2,1) }; -Int_t AliL3TransBit::Get0to1(Int_t val0) const +typedef AliHLTTransBitV2 AliL3TransBitV2; // for backward compatibility + +Int_t AliHLTTransBit::Get0to1(Int_t val0) const { //return compressed bit values return fTable0[val0]; } -Int_t AliL3TransBit::Get1to0(Int_t val1) const +Int_t AliHLTTransBit::Get1to0(Int_t val1) const { //return uncompressed bit value return fTable1[val1]; diff --git a/HLT/misc/AliL3VHDLClusterFinder.cxx b/HLT/misc/AliHLTVHDLClusterFinder.cxx similarity index 83% rename from HLT/misc/AliL3VHDLClusterFinder.cxx rename to HLT/misc/AliHLTVHDLClusterFinder.cxx index 21c28671610..527f7f8cd9a 100644 --- a/HLT/misc/AliL3VHDLClusterFinder.cxx +++ b/HLT/misc/AliHLTVHDLClusterFinder.cxx @@ -2,10 +2,10 @@ // Author: Constantin Loizides //*-- Copyright & copy ALICE HLT Group -/** \class AliL3VHDLClusterFinder +/** \class AliHLTVHDLClusterFinder
 //____________________________________________________
-// AliL3VHDLClusterFinder
+// AliHLTVHDLClusterFinder
 //
 // The current VHDL cluster finder for HLT
 // Based on STAR L3
@@ -16,22 +16,22 @@
 
*/ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3AltroMemHandler.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTAltroMemHandler.h" //#define VHDLDEBUG -#include "AliL3VHDLClusterFinder.h" +#include "AliHLTVHDLClusterFinder.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3VHDLClusterFinder) +ClassImp(AliHLTVHDLClusterFinder) -AliL3VHDLClusterFinder::AliL3VHDLClusterFinder() +AliHLTVHDLClusterFinder::AliHLTVHDLClusterFinder() { // default constructor fMatch = 4; @@ -53,7 +53,7 @@ AliL3VHDLClusterFinder::AliL3VHDLClusterFinder() #endif } -AliL3VHDLClusterFinder::~AliL3VHDLClusterFinder() +AliHLTVHDLClusterFinder::~AliHLTVHDLClusterFinder() { // destructor #ifdef VHDLDEBUG @@ -61,7 +61,7 @@ AliL3VHDLClusterFinder::~AliL3VHDLClusterFinder() #endif } -void AliL3VHDLClusterFinder::ProcessDigits() +void AliHLTVHDLClusterFinder::ProcessDigits() { //Loop over data like the analyzer of the VHDL code const UChar_t kn=255; @@ -143,7 +143,7 @@ void AliL3VHDLClusterFinder::ProcessDigits() while(fOP!=fFP) OutputMemory(); } -void AliL3VHDLClusterFinder::MakeSequence(){ +void AliHLTVHDLClusterFinder::MakeSequence(){ // makes the sequence if(!fTC) return; @@ -165,7 +165,7 @@ void AliL3VHDLClusterFinder::MakeSequence(){ else fSeq.fLastCharge=0; } -void AliL3VHDLClusterFinder::ProcessSequence() +void AliHLTVHDLClusterFinder::ProcessSequence() { // processes the sequence if(fNRow!=fRow) FlushMemory(); @@ -183,7 +183,7 @@ void AliL3VHDLClusterFinder::ProcessSequence() CompareSeq(); //merge or insert } -void AliL3VHDLClusterFinder::PrepareMemory() +void AliHLTVHDLClusterFinder::PrepareMemory() { // prepares the memory #ifdef VHDLDEBUG @@ -193,7 +193,7 @@ void AliL3VHDLClusterFinder::PrepareMemory() fEP=fWP; } -void AliL3VHDLClusterFinder::FlushMemory() +void AliHLTVHDLClusterFinder::FlushMemory() { // flushes the memory #ifdef VHDLDEBUG @@ -204,7 +204,7 @@ void AliL3VHDLClusterFinder::FlushMemory() fEP=fWP; } -void AliL3VHDLClusterFinder::CompareSeq() +void AliHLTVHDLClusterFinder::CompareSeq() { // compares sequences while(fRP!=fEP){ @@ -224,18 +224,18 @@ void AliL3VHDLClusterFinder::CompareSeq() InsertSeq(); //start new cluster } -void AliL3VHDLClusterFinder::MergeSeq() +void AliHLTVHDLClusterFinder::MergeSeq() { // merges sequences #ifdef VHDLDEBUG fprintf(fdeb,"merged with Mean=%d TC=%d (new Merge=%d) %d %d\n",fSeqs[fPList[fRP]].fMean,fSeqs[fPList[fRP]].fTotalCharge,fSeqs[fPList[fRP]].fMerge+1,fRow,fPad); #endif if(fSeqs[fPList[fRP]].fRow!=fSeq.fRow){ - LOG(AliL3Log::kWarning,"AliL3VHDLClusterFinder::","Memory Check") + LOG(AliHLTLog::kWarning,"AliHLTVHDLClusterFinder::","Memory Check") <<"Sequences can be merged on the same rows only."<= fMaxNClusters) { - LOG(AliL3Log::kError,"AliL3ClustFinder::WriteClusters","Cluster Finder") - <=, ... - //++,-- - - static void PrintStat(); - static void SetParams(Int_t dig=DEFDIG,Int_t min=DEFMIN,Int_t max=DEFMAX); - void Set(const Double_t f=0); - void Set(const AliL3FFloat &f); - inline Double_t GetVal() const {return fVal;} - inline Double_t GetExactVal() const {return fExactVal;} - inline Fnt_t GetValInt() const {return fVali;} - - private: - - void Round(Double_t f); - Bool_t CheckUpperBound(); - Bool_t CheckLowerBound(); - Bool_t CheckBounds() {return (CheckUpperBound() && CheckLowerBound());} - - Fnt_t fVali; - Double_t fVal; - Double_t fExactVal; - - static Int_t fDigits; - static Int_t fMax; - static Int_t fMin; - -#ifdef CALCSTATS - static Int_t fN; - static Int_t fNRounded; - static Int_t fNOpAdds; - static Int_t fNOpMults; - static Int_t fNOpDivs; - static Int_t fNOpSubs; - static Int_t fNOverFlow; - static Int_t fNUnderFlow; - static Double_t fNDiff; -#endif - - ClassDef(AliL3FFloat,1) -}; - -#else - -class AliL3FFloat { - public: - AliL3FFloat(const Double_t val=0) {Set(val);} - AliL3FFloat(const AliL3FFloat &f) {Set(f);} - virtual ~AliL3FFloat(); - - AliL3FFloat& operator = (const AliL3FFloat &f) {Set(f); return *this;} - AliL3FFloat& operator = (const Double_t f) {Set(f); return *this;} - - operator const Double_t () const {return fVal;} - operator const Float_t () const {return (Float_t)fVal;} - operator const Int_t () const {return (Int_t)fVal;} - - friend ostream& operator<<(ostream &os, const AliL3FFloat &f); - - friend AliL3FFloat operator + (const AliL3FFloat &f1,const AliL3FFloat &f2); - friend AliL3FFloat operator + (const AliL3FFloat &f1,const Double_t f2); - friend AliL3FFloat operator + (const Double_t f1, const AliL3FFloat &f2); - friend AliL3FFloat operator + (const AliL3FFloat &f1); - friend AliL3FFloat operator - (const AliL3FFloat &f1,const AliL3FFloat &f2); - friend AliL3FFloat operator - (const AliL3FFloat &f1,const Double_t f2); - friend AliL3FFloat operator - (const Double_t f1, const AliL3FFloat &f2); - friend AliL3FFloat operator - (const AliL3FFloat &f1); - friend AliL3FFloat operator * (const AliL3FFloat &f1,const AliL3FFloat &f2); - friend AliL3FFloat operator * (const AliL3FFloat &f1,const Double_t f2); - friend AliL3FFloat operator * (const Double_t f1, const AliL3FFloat &f2); - friend AliL3FFloat operator / (const AliL3FFloat &f1,const AliL3FFloat &f2); - friend AliL3FFloat operator / (const AliL3FFloat &f1,const Double_t f2); - friend AliL3FFloat operator / (const Double_t f1, const AliL3FFloat &f2); - - AliL3FFloat& operator += (const AliL3FFloat &f); - AliL3FFloat& operator += (const Double_t f); - AliL3FFloat& operator -= (const AliL3FFloat &f); - AliL3FFloat& operator -= (const Double_t f); - AliL3FFloat& operator *= (const AliL3FFloat &f); - AliL3FFloat& operator *= (const Double_t f); - AliL3FFloat& operator /= (const AliL3FFloat &f); - AliL3FFloat& operator /= (const Double_t f); - //==,!=,>=, ... - //++,-- - - static void PrintStat(); - static void SetParams(Int_t dig=DEFDIG,Int_t min=DEFMIN,Int_t max=DEFMAX); - void Set(const Double_t f=0); - void Set(const AliL3FFloat &f); - inline Double_t GetVal() const {return fVal;} - inline Double_t GetExactVal() const {return fExactVal;} - - private: - - Double_t Round(Double_t f); - Bool_t CheckUpperBound(); - Bool_t CheckLowerBound(); - Bool_t CheckBounds() {return (CheckUpperBound() && CheckLowerBound());} - - Double_t fVal; - Double_t fExactVal; - - static Int_t fDigits; - static Char_t fQuery[10]; - static Int_t fMax; - static Int_t fMin; - -#ifdef CALCSTATS - static Int_t fN; - static Int_t fNRounded; - static Int_t fNOpAdds; - static Int_t fNOpMults; - static Int_t fNOpDivs; - static Int_t fNOpSubs; - static Int_t fNOverFlow; - static Int_t fNUnderFlow; - static Double_t fNDiff; -#endif - - ClassDef(AliL3FFloat,1) -}; - -#endif -#endif -#endif - - - - diff --git a/HLT/misc/AliL3MiscLinkDef.h b/HLT/misc/AliL3MiscLinkDef.h deleted file mode 100644 index 93225944fad..00000000000 --- a/HLT/misc/AliL3MiscLinkDef.h +++ /dev/null @@ -1,30 +0,0 @@ -// @(#) $Id$ - -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#ifndef macosx -#pragma link C++ class AliL3TransBit; -#pragma link C++ class AliL3TransBitV1; -#pragma link C++ class AliL3TransBitV2; -#pragma link C++ class AliL3DataHandler; -#endif -#pragma link C++ class AliL3AltroMemHandler; -#pragma link C++ class AliL3VHDLClusterFinder; -#pragma link C++ class AliL3TPCMapping; -#pragma link C++ class AliL3DDLRawReader; -#pragma link C++ class AliL3DDLRawReaderFile; -#pragma link C++ class AliL3DDLTPCRawStream; -#ifndef macosx -#pragma link C++ class AliL3DDLDataFileHandler; -#endif - -#ifdef USEFFLOAT -#pragma link C++ class AliL3FFloat; -#endif - -#endif - diff --git a/HLT/misc/AliL3TPCMapping-iroc.generated b/HLT/misc/AliL3TPCMapping-iroc.generated deleted file mode 100644 index 2ec88e484a0..00000000000 --- a/HLT/misc/AliL3TPCMapping-iroc.generated +++ /dev/null @@ -1,8 +0,0 @@ -const Int_t AliL3TPCMapping::fgkNIROC = 5504; -const Int_t AliL3TPCMapping::fgkIRows[fgkNIROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62}; -const Int_t AliL3TPCMapping::fgkIPad[fgkNIROC] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107}; -const Int_t AliL3TPCMapping::fgkICon[fgkNIROC] = {127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,131,131,131,131,132,132,132,132,133,133,133,133,134,134,134,135,135,135,135,9,9,9,9,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,127,127,127,128,128,128,128,129,129,129,129,130,130,130,130,131,131,131,131,132,132,132,133,133,133,133,134,134,134,134,135,135,135,135,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,127,136,136,136,128,137,137,137,129,138,138,138,130,130,130,130,131,140,140,140,141,132,132,133,142,142,142,134,134,134,134,135,144,144,144,18,18,18,9,8,8,8,8,16,16,16,7,6,6,15,14,14,14,5,4,4,4,4,12,12,12,3,11,11,11,2,10,10,10,1,136,136,136,136,137,137,137,137,138,138,138,138,130,139,139,139,140,140,140,140,141,141,141,142,142,142,142,134,143,143,143,144,144,144,144,18,18,18,18,17,17,17,8,16,16,16,16,15,15,15,14,14,14,14,13,13,13,4,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,136,137,137,137,137,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,142,142,142,142,143,143,143,143,144,144,144,144,18,18,18,18,17,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,136,136,136,145,146,137,137,137,147,138,138,138,139,139,139,139,139,149,140,140,140,141,141,141,141,151,142,142,142,143,143,143,143,153,144,144,144,18,18,18,27,17,17,17,17,16,16,16,25,15,15,15,15,14,14,14,23,13,13,13,13,13,12,12,12,21,11,11,11,20,19,10,10,10,145,145,145,145,146,146,146,146,147,147,147,147,139,139,148,148,148,149,149,149,149,141,141,150,150,151,151,151,151,152,143,143,143,153,153,153,153,27,27,27,27,17,17,17,26,25,25,25,25,24,24,15,15,23,23,23,23,22,22,22,13,13,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,148,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,151,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,145,145,145,145,146,146,146,146,147,147,147,147,157,157,148,148,148,149,149,149,149,150,150,150,150,151,151,160,160,160,152,152,152,152,153,153,153,153,27,27,27,27,26,26,26,26,34,34,34,25,25,24,24,24,24,23,23,23,23,22,22,22,31,31,21,21,21,21,20,20,20,20,19,19,19,19,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,150,150,150,159,160,160,160,160,161,152,152,152,152,162,162,162,162,36,36,36,36,26,26,26,26,35,34,34,34,34,33,24,24,24,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,157,157,157,157,158,158,158,158,158,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,32,32,32,32,32,31,31,31,31,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,155,155,155,155,156,156,156,156,156,157,157,157,157,158,158,158,158,159,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,30,30,30,30,30,29,29,29,29,29,28,28,28,28,154,154,154,154,155,164,164,164,164,165,156,156,156,156,157,157,157,166,158,158,167,167,159,159,159,159,159,160,160,169,169,161,161,161,161,161,162,162,162,162,36,36,36,36,35,35,35,35,35,43,43,34,34,33,33,33,33,33,41,41,32,32,40,31,31,31,30,30,30,30,39,38,38,38,38,29,28,28,28,28,154,163,163,163,164,164,164,164,164,165,165,165,165,165,166,166,166,166,167,167,167,167,159,159,168,168,168,169,169,169,169,170,170,170,170,170,162,171,171,171,45,45,45,36,44,44,44,44,44,43,43,43,43,42,42,42,33,33,41,41,41,41,40,40,40,40,39,39,39,39,39,38,38,38,38,38,37,37,37,28,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,167,167,167,168,168,168,168,168,169,169,169,169,170,170,170,170,170,171,171,171,171,45,45,45,45,44,44,44,44,44,43,43,43,43,42,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,37,37,37,37,37,163,163,163,163,172,173,173,173,164,165,165,165,165,174,166,166,175,175,175,167,176,176,176,168,168,168,168,177,178,169,169,169,169,170,170,179,179,179,171,171,171,171,45,45,45,45,53,53,53,44,44,43,43,43,43,52,51,42,42,42,42,50,50,50,41,49,49,49,40,40,48,39,39,39,39,38,47,47,47,46,37,37,37,37,172,172,172,172,172,173,173,173,173,174,174,174,174,174,175,175,175,175,175,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,179,171,171,171,180,54,45,45,45,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,174,174,174,174,174,175,175,175,175,175,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,179,180,180,180,180,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,173,174,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,54,54,54,54,54,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,172,172,172,172,172,173,173,173,173,173,174,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,177,178,178,178,178,178,179,179,179,179,180,180,180,180,180,54,54,54,54,54,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,181,181,181,182,182,182,182,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,180,180,180,180,180,180,54,54,54,54,54,54,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,187,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,61,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,182,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,191,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,65,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,56,55,55,55,181,181,181,181,182,182,182,183,183,183,183,184,184,184,185,185,185,185,186,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,190,191,191,191,192,192,192,192,253,253,253,253,66,66,66,66,65,65,65,64,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,60,59,59,59,59,58,58,58,57,57,57,57,56,56,56,55,55,55,55,181,181,181,181,182,182,194,183,183,195,195,184,184,184,185,197,197,197,186,186,186,186,187,187,187,188,188,188,188,189,189,189,190,190,190,190,191,191,203,192,192,192,192,253,253,253,253,66,66,66,66,77,65,65,64,64,64,64,63,63,63,62,62,62,62,61,61,61,60,60,60,60,71,71,71,59,58,58,58,69,69,57,57,68,56,56,55,55,55,55,181,193,193,193,194,194,194,195,195,195,195,184,184,184,197,197,197,197,198,198,198,186,199,199,199,200,200,200,200,189,189,189,202,202,202,190,203,203,203,204,204,204,192,253,254,254,254,66,78,78,78,77,77,77,64,76,76,76,63,63,63,74,74,74,74,73,73,73,60,72,72,72,71,71,71,71,58,58,58,69,69,69,69,68,68,68,67,67,67,55,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,198,198,198,198,199,199,199,199,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,73,73,73,73,72,72,72,72,71,71,71,70,70,70,70,69,69,69,69,68,68,68,67,67,67,67,193,193,193,193,194,194,194,194,195,195,195,196,196,196,196,197,197,197,197,198,198,198,199,199,199,199,200,200,200,200,201,201,201,201,202,202,202,202,203,203,203,204,204,204,204,254,254,254,254,78,78,78,78,77,77,77,76,76,76,76,75,75,75,75,74,74,74,74,73,73,73,73,72,72,72,71,71,71,71,70,70,70,70,69,69,69,68,68,68,68,67,67,67,67,193,193,193,205,194,194,194,194,207,207,195,196,196,196,196,197,197,209,209,198,198,198,199,199,199,211,200,200,200,200,201,201,201,201,202,202,202,214,203,203,203,204,204,204,216,255,254,254,254,90,78,78,78,77,77,77,88,76,76,76,75,75,75,75,74,74,74,74,85,73,73,73,72,72,72,83,83,71,71,70,70,70,70,69,81,81,68,68,68,68,79,67,67,67,205,205,205,205,194,206,206,206,207,207,207,208,208,196,196,209,209,209,209,210,210,198,211,211,211,211,212,212,212,200,201,201,213,213,214,214,214,214,203,203,203,216,216,216,216,255,255,255,255,90,90,90,90,77,77,77,88,88,88,88,87,87,75,75,74,86,86,86,85,85,85,85,72,84,84,83,83,83,83,70,70,82,82,81,81,81,80,80,80,68,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,211,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,82,82,82,82,81,81,81,80,80,80,80,79,79,79,79,205,205,205,205,206,206,206,206,207,207,207,207,208,208,208,208,209,209,209,210,210,210,210,210,211,211,211,212,212,212,212,213,213,213,213,214,214,214,214,215,215,215,215,216,216,216,216,255,255,255,255,90,90,90,90,89,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,85,85,85,84,84,84,84,84,83,83,83,82,82,82,82,81,81,81,81,80,80,80,80,79,79,79,79,217,217,217,217,218,218,206,206,207,207,207,219,208,208,208,220,221,221,221,210,210,222,222,222,223,223,211,224,224,212,212,213,213,213,225,226,226,226,226,215,215,215,215,228,228,228,228,256,256,256,256,102,102,102,102,89,89,89,89,100,100,100,100,99,87,87,87,86,86,98,98,85,97,97,96,96,96,84,84,95,95,95,94,82,82,82,93,81,81,81,80,80,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,222,222,222,222,222,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,215,215,215,215,228,228,228,228,256,256,256,256,102,102,102,102,89,89,89,89,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,96,96,96,96,96,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,217,217,217,217,218,218,218,218,219,219,219,219,220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,224,224,224,224,225,225,225,225,226,226,226,226,227,227,227,227,228,228,228,228,256,256,256,256,102,102,102,102,101,101,101,101,100,100,100,100,99,99,99,99,98,98,98,98,97,97,97,97,96,96,96,96,95,95,95,95,94,94,94,94,93,93,93,93,92,92,92,92,91,91,91,91,229,229,229,217,218,218,218,230,219,219,219,219,220,220,220,220,221,221,221,233,234,234,234,222,223,223,223,223,236,224,224,224,225,225,225,225,237,238,238,238,226,227,227,227,227,240,240,240,228,256,257,257,257,102,114,114,114,101,101,101,101,100,112,112,112,111,99,99,99,99,98,98,98,110,97,97,97,97,96,108,108,108,107,95,95,95,94,94,94,94,93,93,93,93,104,92,92,92,91,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,227,227,227,227,240,240,240,240,257,257,257,257,114,114,114,114,101,101,101,101,112,112,112,112,111,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,227,240,240,240,240,257,257,257,257,114,114,114,114,101,113,113,113,112,112,112,112,111,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,257,257,257,257,114,114,114,114,113,113,113,113,113,112,112,112,112,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,229,229,229,229,230,230,230,230,231,231,231,231,232,232,232,232,232,233,233,233,233,234,234,234,234,235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,257,257,257,257,114,114,114,114,113,113,113,113,113,112,112,112,112,111,111,111,111,110,110,110,110,109,109,109,109,108,108,108,108,107,107,107,107,106,106,106,106,106,105,105,105,105,104,104,104,104,103,103,103,103,241,229,229,229,230,230,230,230,231,231,231,231,244,232,232,232,232,233,233,233,233,246,234,234,234,235,235,235,235,236,236,236,236,237,237,237,249,238,238,238,250,239,239,239,239,239,240,240,240,252,258,257,257,257,126,114,114,114,113,113,113,113,113,124,112,112,112,123,111,111,111,110,110,110,110,109,109,109,109,108,108,108,120,107,107,107,107,106,106,106,106,118,105,105,105,105,104,104,104,104,103,103,103,115,241,241,241,241,242,242,242,230,243,243,243,231,231,244,244,244,244,245,245,245,233,246,246,246,246,247,247,247,235,235,236,248,248,248,249,249,249,249,250,250,250,250,239,239,239,239,251,252,252,252,252,258,258,258,258,126,126,126,126,125,113,113,113,113,124,124,124,124,123,123,123,123,122,122,122,110,109,109,121,121,121,120,120,120,120,107,119,119,119,118,118,118,118,105,105,117,117,117,104,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,243,243,243,243,243,244,244,244,244,245,245,245,245,246,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,121,121,121,121,121,120,120,120,120,119,119,119,119,118,118,118,118,117,117,117,117,117,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,243,243,243,243,243,244,244,244,244,245,245,245,245,246,246,246,246,247,247,247,247,247,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,121,121,121,121,121,120,120,120,120,119,119,119,119,118,118,118,118,117,117,117,117,117,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,242,243,243,243,243,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,122,121,121,121,121,120,120,120,120,119,119,119,119,119,118,118,118,118,117,117,117,117,116,116,116,116,116,115,115,115,115,241,241,241,241,242,242,242,242,242,243,243,243,243,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,258,258,258,258,126,126,126,126,125,125,125,125,125,124,124,124,124,123,123,123,123,122,122,122,122,122,121,121,121,121,120,120,120,120,119,119,119,119,119,118,118,118,118,117,117,117,117,116,116,116,116,116,115,115,115,115}; -const Int_t AliL3TPCMapping::fgkIPin[fgkNIROC] = {2,1,3,5,2,1,3,5,2,1,3,5,2,4,1,2,1,3,5,2,1,3,5,2,1,3,5,2,4,1,2,1,3,5,5,3,1,2,1,4,2,5,3,1,2,5,3,1,2,5,3,1,2,1,4,2,5,3,1,2,5,3,1,2,5,3,1,2,4,6,7,9,4,6,7,9,4,6,7,9,6,3,5,4,6,7,9,4,6,7,9,4,6,7,9,6,3,5,4,6,7,9,9,7,6,4,5,3,6,9,7,6,4,9,7,6,4,9,7,6,4,5,3,6,9,7,6,4,9,7,6,4,9,7,6,4,8,10,11,13,8,10,11,13,8,10,11,13,8,7,9,8,10,11,13,8,10,11,13,8,10,11,13,8,7,9,8,10,11,13,13,11,10,8,9,7,8,13,11,10,8,13,11,10,8,13,11,10,8,9,7,8,13,11,10,8,13,11,10,8,13,11,10,8,12,14,15,17,12,14,15,17,12,14,15,17,10,11,13,12,14,15,17,12,14,15,17,12,14,15,17,10,11,13,12,14,15,17,17,15,14,12,13,11,10,17,15,14,12,17,15,14,12,17,15,14,12,13,11,10,17,15,14,12,17,15,14,12,17,15,14,12,16,18,19,21,16,18,21,19,16,18,21,19,12,14,15,17,16,18,21,19,16,18,19,16,18,21,19,12,14,15,17,16,18,21,19,19,21,18,16,17,15,14,12,19,21,18,16,19,18,16,19,21,18,16,17,15,14,12,19,21,18,16,19,21,18,16,21,19,18,16,20,0,2,1,20,2,0,1,20,2,0,1,16,18,21,19,20,4,2,0,0,20,21,20,4,2,0,16,18,21,19,20,4,2,0,0,2,4,20,19,21,18,16,0,2,4,20,21,20,0,0,2,4,20,19,21,18,16,1,0,2,20,1,0,2,20,1,2,0,20,4,6,3,5,6,4,3,5,6,4,3,5,20,0,1,3,8,6,1,3,2,1,3,8,6,1,3,20,4,2,0,8,6,1,3,3,1,6,8,0,2,4,20,3,1,6,8,3,1,2,3,1,6,8,3,1,0,20,5,3,4,6,5,3,4,6,5,3,6,4,8,10,7,9,10,8,7,9,10,8,7,9,4,2,5,7,12,10,5,7,6,4,5,7,12,10,5,7,8,6,1,3,12,10,5,7,7,5,10,12,3,1,6,8,7,5,10,12,7,5,4,6,7,5,10,12,7,5,2,4,9,7,8,10,9,7,8,10,9,7,10,8,12,14,13,15,14,12,13,15,14,12,13,15,8,6,9,13,16,14,9,13,10,8,9,13,16,14,9,13,12,10,5,7,16,14,9,13,13,9,14,16,7,5,10,12,13,9,14,16,13,9,8,10,13,9,14,16,13,9,6,8,15,13,12,14,15,13,12,14,15,13,14,12,16,18,17,19,18,16,17,19,18,16,17,19,12,10,15,17,20,18,15,17,14,12,15,17,20,18,15,17,16,14,9,13,20,18,15,17,17,15,18,20,13,9,14,16,17,15,18,20,17,15,12,14,17,15,18,20,17,15,10,12,19,17,16,18,19,17,16,18,19,17,18,16,20,22,21,1,2,22,20,21,2,22,20,21,18,16,14,19,21,1,22,19,21,18,16,19,21,5,22,19,21,20,18,15,17,1,22,19,21,21,19,22,1,17,15,18,20,21,19,22,5,21,19,16,18,21,19,22,1,21,19,14,16,18,21,20,22,2,21,20,22,2,1,21,22,20,4,2,3,5,4,1,3,5,4,1,3,5,22,20,1,3,5,4,2,3,5,22,20,1,3,1,3,7,9,1,22,19,21,4,2,3,5,5,3,2,4,21,19,22,1,9,7,3,1,3,1,20,22,5,3,2,4,5,3,1,20,22,5,3,1,4,5,3,1,4,5,3,2,4,8,6,7,9,8,6,7,9,8,6,7,9,6,4,2,7,9,8,6,7,9,4,2,5,7,4,2,11,13,4,2,3,5,8,6,7,9,9,7,6,8,5,3,2,4,13,11,2,4,7,5,2,4,9,7,6,8,9,7,2,4,6,9,7,6,8,9,7,6,8,9,7,6,8,12,10,11,13,12,10,11,13,12,10,11,13,12,10,8,11,13,12,10,11,13,8,6,9,11,10,8,6,15,17,8,6,7,9,12,10,11,13,13,11,10,12,9,7,6,8,17,15,6,8,10,11,9,6,8,13,11,10,12,13,11,8,10,12,13,11,10,12,13,11,10,12,13,11,10,12,18,16,15,17,16,14,15,17,16,14,15,17,18,16,14,15,17,16,14,15,17,12,10,13,15,16,14,12,19,21,12,10,11,13,16,14,15,17,17,15,14,16,13,11,10,12,21,19,12,14,16,15,13,10,12,17,15,14,16,17,15,14,16,18,17,15,14,16,17,15,14,16,17,15,16,18,14,20,19,21,20,18,19,21,20,18,19,21,1,3,20,19,21,20,18,19,21,16,14,17,19,20,18,3,5,7,16,14,15,17,20,18,19,21,21,19,18,20,17,15,14,16,7,5,3,18,20,19,17,14,16,21,19,18,20,21,19,20,3,1,21,19,18,20,21,19,18,20,21,19,20,14,2,1,3,5,1,3,5,7,9,2,1,3,5,4,2,5,7,1,3,5,7,9,20,18,21,5,4,2,1,9,1,20,18,19,21,2,1,3,5,5,3,1,2,21,19,18,20,1,9,1,2,4,5,21,18,20,9,7,5,3,1,7,5,2,4,5,3,1,2,9,7,5,3,1,5,3,1,2,6,4,7,9,6,4,2,11,13,6,4,7,9,8,6,9,11,6,4,2,11,13,1,3,7,9,8,6,11,13,2,3,5,7,9,6,4,7,9,9,7,4,6,9,7,5,3,2,13,11,6,8,9,7,3,1,13,11,2,4,6,11,9,6,8,9,7,4,6,13,11,2,4,6,9,7,4,6,10,8,11,13,12,10,8,15,17,10,8,11,13,12,10,13,15,12,10,8,15,17,4,2,11,13,12,10,15,17,8,6,4,11,13,10,8,11,13,13,11,8,10,13,11,4,6,8,17,15,10,12,13,11,2,4,17,15,8,10,12,15,13,10,12,13,11,8,10,17,15,8,10,12,13,11,8,10,14,12,15,17,18,16,14,19,21,16,14,12,15,17,16,14,17,19,16,14,19,21,10,8,6,15,17,16,14,19,21,14,12,10,15,17,14,12,15,17,17,15,12,14,17,15,10,12,14,21,19,14,16,17,15,6,8,10,21,19,14,16,19,17,14,16,17,15,12,14,16,21,19,14,16,18,17,15,12,14,18,16,19,21,20,4,2,0,1,0,20,18,19,21,20,18,21,3,20,18,1,3,16,14,12,19,21,20,18,2,0,20,18,16,19,21,18,16,19,21,21,19,16,18,21,19,16,18,20,0,2,18,20,21,19,12,14,16,3,1,18,20,3,21,18,20,21,19,18,20,0,1,0,2,4,20,21,19,16,18,20,0,1,3,10,8,6,3,5,6,4,2,1,3,0,1,5,7,2,0,5,7,20,18,0,1,3,6,4,1,3,0,1,3,5,7,20,2,0,1,1,0,2,20,7,5,3,1,0,3,1,4,6,3,1,0,18,20,7,5,0,2,7,5,1,0,3,1,2,4,6,5,3,6,8,10,3,1,0,20,6,4,2,5,7,14,12,7,9,10,8,5,7,6,4,2,9,13,8,6,4,9,13,6,4,2,5,7,10,8,5,7,6,4,2,9,13,6,4,3,5,5,3,4,6,13,9,2,4,6,7,5,8,10,7,5,2,4,6,13,9,4,6,8,13,9,2,4,6,7,5,8,10,9,7,12,14,7,5,2,4,6,12,10,8,9,13,18,16,13,15,14,12,9,13,12,10,8,15,17,14,12,10,15,17,12,10,8,9,13,14,12,9,13,12,10,8,15,17,10,8,7,9,9,7,8,10,17,15,8,10,12,13,9,12,14,13,9,8,10,12,17,15,10,12,14,17,15,8,10,12,13,9,12,14,15,13,16,18,13,9,8,10,12,18,16,14,15,17,22,20,17,19,18,16,15,17,18,16,14,19,21,20,18,16,19,21,18,16,14,15,17,18,16,15,17,18,16,14,19,21,14,12,13,15,15,13,12,14,21,19,14,16,18,17,15,16,18,17,15,14,16,18,21,19,16,18,20,21,19,14,16,18,17,15,16,18,19,17,20,22,17,15,14,16,18,22,20,19,21,5,1,3,5,21,22,20,19,21,5,22,20,1,3,5,22,1,3,5,22,20,19,21,5,1,22,20,19,21,22,20,1,3,5,18,16,17,19,19,17,16,18,5,3,1,20,22,21,19,20,22,1,5,21,19,20,22,5,3,1,22,5,3,1,20,22,5,21,19,20,22,21,5,3,1,5,21,19,20,22,2,1,3,7,9,4,2,7,9,2,1,3,7,9,6,4,2,7,9,4,2,7,9,2,1,3,7,9,2,3,5,7,9,6,4,2,7,9,22,20,21,5,5,21,20,22,9,7,2,4,6,9,7,5,3,2,9,7,3,1,2,9,7,2,4,9,7,2,4,6,9,7,3,1,2,9,7,2,4,9,7,3,1,2,8,6,4,11,13,8,6,11,13,8,6,4,11,13,12,10,8,11,13,8,6,11,13,8,6,4,11,13,8,6,4,11,13,12,10,8,11,13,1,3,7,9,9,7,3,1,13,11,8,10,12,13,11,4,6,8,13,11,4,6,8,13,11,6,8,13,11,8,10,12,13,11,4,6,8,13,11,6,8,13,11,4,6,8,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,16,14,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,16,14,15,17,6,4,2,11,13,13,11,2,4,6,17,15,14,16,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,14,16,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,19,21,12,10,8,15,17,17,15,8,10,12,21,19,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,4,2,1,4,2,1,3,1,3,5,8,6,4,2,1,3,5,6,4,2,6,4,2,1,4,2,1,6,4,2,6,4,2,4,2,1,3,20,18,16,14,19,21,21,19,14,16,18,20,3,1,2,4,2,4,6,2,4,6,1,2,4,1,2,4,6,2,4,6,5,3,1,2,4,6,8,5,3,1,3,1,2,4,1,2,4,6,3,5,8,6,5,7,4,2,7,9,10,2,1,6,4,7,9,8,1,3,10,8,3,5,6,3,5,10,8,1,8,1,3,8,6,5,7,4,2,1,3,3,1,2,4,3,1,2,4,7,5,6,8,3,1,8,1,8,10,5,3,6,5,3,8,10,3,1,8,9,7,4,6,1,2,10,9,7,2,4,7,5,6,8,5,3,6,8,7,9,12,10,9,11,8,6,11,13,12,3,5,10,8,11,13,10,5,7,14,12,7,9,8,7,9,12,3,5,10,5,7,12,10,9,11,8,6,5,7,7,5,6,8,7,5,6,8,11,9,10,12,7,5,10,5,3,12,9,7,8,9,7,12,14,7,5,10,13,11,8,10,5,3,12,13,11,6,8,11,9,10,12,9,7,8,10,11,13,16,14,13,15,12,10,15,17,14,7,9,14,12,15,17,12,9,11,16,11,13,12,10,11,13,14,7,9,12,9,11,16,14,13,15,12,10,9,11,9,11,10,12,11,9,10,12,15,13,14,16,11,9,12,9,7,14,13,11,10,12,13,11,16,11,9,12,17,15,12,14,9,7,14,17,15,10,12,15,13,14,16,13,11,10,14,12,15,17,18,17,19,16,14,19,21,16,11,13,18,16,19,21,16,14,13,15,18,15,17,16,14,15,17,16,11,13,16,14,13,15,18,17,19,16,14,13,15,13,15,14,16,15,13,14,16,19,17,18,15,13,14,16,13,11,16,17,15,14,16,17,15,18,15,13,14,16,21,19,16,18,13,11,16,21,19,14,16,19,17,18,17,15,12,14,18,16,19,21,20,21,0,20,18,0,1,18,15,17,20,0,1,3,20,18,17,19,20,19,21,20,18,19,21,18,15,17,20,18,17,19,20,21,0,20,18,17,19,17,19,18,20,19,17,18,20,0,21,20,19,17,18,20,17,15,18,21,19,18,20,21,19,20,19,17,18,20,3,1,0,20,17,15,18,1,0,18,20,0,21,20,21,19,16,18,20,2,0,1,4,2,1,6,4,2,3,20,19,21,6,4,2,5,2,0,1,21,2,0,1,4,2,0,1,20,19,21,2,0,1,21,4,2,1,2,0,1,21,21,1,0,2,21,1,0,2,1,2,4,21,1,0,2,21,19,20,1,0,2,4,1,0,2,21,1,0,2,5,2,4,6,21,19,20,3,2,4,6,1,2,4,1,0,2,20,6,4,3,5,8,6,3,12,10,8,5,6,4,2,0,10,8,7,8,6,4,3,6,4,3,5,8,6,3,2,0,1,3,6,4,3,5,8,6,3,6,4,3,5,5,3,4,6,5,3,4,6,3,6,8,5,3,4,6,3,1,0,2,3,6,8,5,3,4,6,3,4,6,8,7,8,10,0,2,4,6,5,8,10,12,3,6,8,5,3,4,6,10,8,7,9,10,5,7,16,14,7,9,10,8,1,3,12,9,13,14,12,10,5,10,8,7,9,12,10,5,6,4,5,7,10,8,7,9,12,10,5,10,8,7,9,7,9,8,10,9,7,8,10,5,10,12,9,7,8,10,7,5,4,6,5,10,12,9,7,8,10,5,10,12,14,13,9,12,3,1,8,10,9,7,14,16,7,5,10,9,7,8,10,14,12,13,15,12,9,13,20,18,13,15,14,12,5,7,14,15,17,18,16,7,9,14,12,13,15,14,7,9,10,8,9,13,14,12,13,15,16,14,7,14,12,13,15,13,15,12,14,15,13,12,14,7,14,16,15,13,12,14,13,9,8,10,9,7,14,15,13,12,14,9,7,16,18,17,15,14,7,5,12,14,15,13,18,20,13,9,12,15,13,12,14,18,16,17,19,16,14,15,17,22,17,19,18,16,9,13,18,16,19,21,20,13,15,18,16,17,19,18,16,13,15,14,12,15,17,18,16,17,19,18,9,13,18,16,17,19,17,19,16,18,19,17,16,18,13,9,18,19,17,16,18,17,15,12,14,15,13,16,18,19,17,16,18,15,13,20,21,19,16,18,13,9,16,18,19,17,22,17,15,14,16,19,17,16,18,22,20,21,1,20,18,19,21,2,1,21,22,20,15,17,22,20,1,3,22,17,19,22,20,21,1,22,20,17,19,18,16,19,21,22,20,21,1,20,15,17,22,20,21,1,3,21,20,22,1,21,20,22,17,15,20,1,21,20,22,21,19,16,18,19,17,20,22,1,21,20,22,19,17,22,3,1,20,22,17,15,20,22,21,1,2,21,19,18,20,1,21,20,22,4,2,3,5,22,4,2,1,4,3,5,1,3,19,21,4,2,5,7,3,5,21,4,2,3,5,4,2,1,21,22,20,1,3,4,2,3,5,22,19,21,4,2,3,5,5,1,2,4,5,3,2,4,21,19,22,5,3,2,4,3,1,20,22,21,1,2,4,5,3,2,4,21,5,3,7,5,2,4,21,19,3,1,5,3,4,1,2,4,22,5,3,2,4,8,6,7,9,8,6,3,5,8,6,7,4,2,5,7,8,6,9,11,2,1,7,9,8,6,7,9,8,6,3,5,4,2,5,7,8,6,7,9,4,2,1,8,6,7,9,9,7,6,8,9,7,6,8,1,2,4,9,7,6,8,7,5,2,4,5,3,6,8,9,7,6,8,9,7,1,2,11,9,6,8,7,5,2,4,7,6,8,5,3,6,8,9,7,6,8,12,10,11,13,12,10,7,9,10,9,11,8,6,9,11,12,10,13,15,6,4,11,13,12,10,11,13,12,10,7,9,8,6,9,11,12,10,11,13,6,3,5,12,10,11,13,11,13,10,12,13,11,10,12,5,3,6,13,11,10,12,11,9,6,8,9,7,10,12,13,11,10,12,13,11,4,6,15,13,10,12,11,9,6,8,11,9,10,9,7,10,12,13,11,10,12,16,14,15,17,16,14,11,13,12,13,15,12,10,13,15,16,14,17,19,10,8,15,17,16,14,15,17,16,14,11,13,12,10,13,15,16,14,15,17,8,7,9,16,14,15,17,15,17,14,16,17,15,14,16,9,7,8,17,15,14,16,15,13,10,12,13,11,14,16,17,15,14,16,17,15,8,10,19,17,14,16,15,13,10,12,15,13,12,13,11,14,16,17,15,14,16,20,18,19,21,20,18,15,17,16,14,17,19,16,14,17,19,20,18,21,16,14,12,19,21,20,18,19,20,18,15,17,16,14,17,19,20,18,19,21,12,10,11,13,20,18,19,21,19,21,18,20,21,19,18,20,13,11,10,12,21,19,18,20,19,17,14,16,17,15,18,20,19,18,20,21,19,12,14,16,21,18,20,19,17,14,16,19,17,14,16,17,15,18,20,21,19,18,20,4,2,1,3,1,3,19,21,20,18,21,1,20,18,21,1,2,1,3,20,18,2,1,3,2,1,21,1,3,19,21,20,18,21,1,4,2,1,3,16,14,15,17,4,2,1,3,3,1,2,4,3,1,2,4,17,15,14,16,3,1,2,4,1,21,18,20,21,19,3,1,21,1,2,3,1,2,18,20,3,1,2,1,21,18,20,1,21,18,20,21,19,3,1,3,1,2,4,8,6,5,7,4,2,5,7,4,2,3,5,4,2,3,5,4,5,7,8,6,4,5,7,4,3,5,4,2,5,7,4,2,3,5,8,6,5,7,20,18,19,21,8,6,5,7,7,5,6,8,7,5,6,8,21,19,18,20,7,5,6,8,5,3,2,4,7,5,2,4,5,3,4,7,5,4,6,8,7,5,4,5,3,2,4,5,3,2,4,7,5,2,4,7,5,6,8,12,10,9,11,8,6,9,11,8,6,7,9,8,6,7,9,8,6,9,11,12,10,9,11,8,6,7,9,8,6,9,11,8,6,7,9,12,10,9,11,4,2,1,3,12,10,9,11,9,11,10,12,11,9,10,12,3,1,2,4,11,9,10,12,9,7,6,8,11,9,6,8,9,7,6,8,11,9,10,12,11,9,6,8,9,7,6,8,9,7,6,8,11,9,6,8,11,9,10,12,16,14,13,15,12,10,13,15,12,10,11,13,12,10,11,13,12,10,13,15,16,14,13,15,12,10,11,13,12,10,13,15,12,10,11,13,16,14,13,15,8,6,5,7,16,14,13,15,13,15,14,16,15,13,14,16,7,5,6,8,15,13,14,16,13,11,10,12,15,13,10,12,13,11,10,12,15,13,14,16,15,13,10,12,13,11,10,12,13,11,10,12,15,13,10,12,15,13,14,16,20,18,17,19,16,14,17,19,16,14,15,17,16,14,15,17,16,14,17,19,20,18,17,19,16,14,15,17,16,14,17,19,16,14,15,17,20,18,17,19,12,10,9,11,20,18,17,19,17,19,18,20,19,17,18,20,11,9,10,12,19,17,18,20,17,15,14,16,19,17,14,16,17,15,14,16,19,17,18,20,19,17,14,16,17,15,14,16,17,15,14,16,19,17,14,16,19,17,18,20,4,2,0,21,20,18,21,2,20,18,19,21,20,18,19,21,20,18,21,0,4,2,0,21,20,18,19,21,0,20,18,21,20,18,19,21,1,2,0,1,21,16,14,13,15,2,0,1,21,21,1,0,2,21,1,0,2,15,13,14,16,21,1,0,2,1,21,19,18,20,21,18,20,0,21,19,18,20,21,0,2,4,0,21,18,20,21,19,18,20,21,19,18,20,2,21,18,20,21,0,2,4,8,6,1,3,6,4,0,1,6,4,2,0,2,0,1,3,6,4,2,1,8,6,1,3,6,4,2,0,4,2,1,3,4,2,0,3,5,6,4,3,5,20,18,17,19,6,4,3,5,5,3,4,6,5,3,4,6,19,17,18,20,5,3,4,6,5,3,0,2,4,3,1,2,4,0,2,4,6,3,1,6,8,1,2,4,6,3,1,0,2,0,2,4,6,1,0,4,6,3,1,6,8,12,10,5,7,10,8,3,5,10,8,1,3,6,4,5,7,10,8,3,5,12,10,5,7,10,8,1,3,8,6,5,7,10,8,6,7,9,10,8,7,9,0,1,3,21,10,8,7,9,7,9,8,10,9,7,8,10,21,3,1,0,9,7,8,10,9,7,6,8,10,7,5,6,8,3,1,8,10,7,5,10,12,5,3,8,10,7,5,4,6,3,1,8,10,5,3,8,10,7,5,10,12,16,14,9,13,14,12,7,9,14,12,5,7,12,10,8,9,13,14,12,7,9,16,14,9,13,14,12,5,7,12,10,9,13,14,12,13,15,14,12,13,15,6,4,2,5,7,14,12,13,15,13,15,12,14,15,13,12,14,7,5,2,4,6,15,13,12,14,15,13,12,14,13,9,10,12,7,5,12,14,13,9,14,16,9,7,12,14,13,9,8,10,12,7,5,12,14,9,7,12,14,13,9,14,16,20,18,15,17,18,16,13,15,18,16,9,13,18,16,14,15,17,18,16,13,15,20,18,15,17,18,16,9,13,16,14,15,17,18,16,17,19,18,16,17,19,12,10,8,9,13,18,16,17,19,17,19,16,18,19,17,16,18,13,9,8,10,12,19,17,16,18,19,17,16,18,17,15,14,16,13,9,16,18,17,15,18,20,15,13,16,18,17,15,14,16,18,13,9,16,18,15,13,16,18,17,15,18,20,2,22,19,21,22,20,17,19,22,20,15,17,2,22,20,19,21,22,20,17,19,1,22,19,21,22,20,15,17,20,18,19,21,22,20,21,1,22,20,21,1,18,16,14,15,17,22,20,21,1,3,21,20,22,1,21,20,22,17,15,14,16,18,1,21,20,22,1,21,20,22,21,19,18,20,17,15,20,22,21,19,22,1,19,17,20,22,21,19,20,22,2,17,15,20,22,19,17,20,22,21,19,22,2,4,1,3,5,1,3,5,21,2,1,3,19,21,4,1,3,5,1,3,5,21,4,2,3,5,2,1,3,19,21,22,1,3,5,4,2,3,5,4,2,3,5,22,20,19,21,5,4,2,3,5,5,1,2,4,5,3,2,4,5,21,19,20,22,5,3,2,4,5,3,2,4,5,3,1,22,21,19,3,1,2,5,3,2,4,21,5,3,1,5,3,1,4,21,19,3,1,2,21,5,3,1,5,3,1,4,8,6,7,9,4,2,7,9,6,4,5,7,9,8,6,7,9,4,2,7,9,8,6,7,9,6,4,5,7,9,4,2,7,9,8,6,7,9,8,6,7,9,2,1,3,7,9,8,6,7,9,9,7,6,8,9,7,6,8,9,7,3,1,2,9,7,6,8,9,7,6,8,9,7,2,4,9,7,5,4,6,9,7,6,8,9,7,2,4,9,7,6,8,9,7,5,4,6,9,7,2,4,9,7,6,8,12,10,11,13,8,6,11,13,12,10,8,11,13,12,10,11,13,8,6,11,13,12,10,11,13,12,10,8,11,13,8,6,11,13,12,10,11,13,12,10,11,13,8,6,4,11,13,12,10,11,13,11,13,10,12,13,11,10,12,13,11,4,6,8,13,11,10,12,13,11,10,12,13,11,6,8,13,11,8,10,12,13,11,10,12,13,11,6,8,13,11,10,12,13,11,8,10,12,13,11,6,8,13,11,10,12,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,16,14,15,17,14,12,10,15,17,16,14,15,17,15,17,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,17,15,14,16,17,15,10,12,14,17,15,14,16,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,20,18,19,21,20,18,16,19,21,20,18,19,21,19,21,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20,21,19,18,20,21,19,16,18,20,21,19,18,20}; -const Int_t AliL3TPCMapping::fgkIFec[fgkNIROC] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,8,8,8,8,9,9,9,9,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,18,19,19,19,19,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,8,8,8,8,8,8,9,9,9,9,9,9,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,19,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,41,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,35,35,35,35,36,36,36,37,37,37,37,38,38,38,38,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,36,36,36,36,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,37,37,37,37,37,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,40,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,41,42,42,42,42,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,41,42,42,42,42}; -const Int_t AliL3TPCMapping::fgkIFecChannel[fgkNIROC] = {1,0,2,4,1,0,2,4,1,0,2,4,1,3,0,1,0,2,4,1,0,2,4,1,0,2,4,1,3,0,1,0,2,4,4,2,0,1,0,3,1,4,2,0,1,4,2,0,1,4,2,0,1,0,3,1,4,2,0,1,4,2,0,1,4,2,0,1,3,5,6,8,3,5,6,8,3,5,6,8,5,2,4,3,5,6,8,3,5,6,8,3,5,6,8,5,2,4,3,5,6,8,8,6,5,3,4,2,5,8,6,5,3,8,6,5,3,8,6,5,3,4,2,5,8,6,5,3,8,6,5,3,8,6,5,3,7,9,10,12,7,9,10,12,7,9,10,12,7,6,8,7,9,10,12,7,9,10,12,7,9,10,12,7,6,8,7,9,10,12,12,10,9,7,8,6,7,12,10,9,7,12,10,9,7,12,10,9,7,8,6,7,12,10,9,7,12,10,9,7,12,10,9,7,11,13,14,16,11,13,14,16,11,13,14,16,9,10,12,11,13,14,16,11,13,14,16,11,13,14,16,9,10,12,11,13,14,16,16,14,13,11,12,10,9,16,14,13,11,16,14,13,11,16,14,13,11,12,10,9,16,14,13,11,16,14,13,11,16,14,13,11,15,17,18,20,15,17,20,18,15,17,20,18,11,13,14,16,15,17,20,18,15,17,18,15,17,20,18,11,13,14,16,15,17,20,18,18,20,17,15,16,14,13,11,18,20,17,15,18,17,15,18,20,17,15,16,14,13,11,18,20,17,15,18,20,17,15,20,18,17,15,19,21,23,22,19,23,21,22,19,23,21,22,15,17,20,18,19,25,23,21,21,19,20,19,25,23,21,15,17,20,18,19,25,23,21,21,23,25,19,18,20,17,15,21,23,25,19,20,19,21,21,23,25,19,18,20,17,15,22,21,23,19,22,21,23,19,22,23,21,19,25,27,24,26,27,25,24,26,27,25,24,26,19,21,22,24,29,27,22,24,23,22,24,29,27,22,24,19,25,23,21,29,27,22,24,24,22,27,29,21,23,25,19,24,22,27,29,24,22,23,24,22,27,29,24,22,21,19,26,24,25,27,26,24,25,27,26,24,27,25,29,31,28,30,31,29,28,30,31,29,28,30,25,23,26,28,32,31,26,28,27,25,26,28,32,31,26,28,29,27,22,24,32,31,26,28,28,26,31,32,24,22,27,29,28,26,31,32,28,26,25,27,28,26,31,32,28,26,23,25,30,28,29,31,30,28,29,31,30,28,31,29,32,34,33,35,34,32,33,35,34,32,33,35,29,27,30,33,36,34,30,33,31,29,30,33,36,34,30,33,32,31,26,28,36,34,30,33,33,30,34,36,28,26,31,32,33,30,34,36,33,30,29,31,33,30,34,36,33,30,27,29,35,33,32,34,35,33,32,34,35,33,34,32,36,38,37,39,38,36,37,39,38,36,37,39,32,31,35,37,40,38,35,37,34,32,35,37,40,38,35,37,36,34,30,33,40,38,35,37,37,35,38,40,33,30,34,36,37,35,38,40,37,35,32,34,37,35,38,40,37,35,31,32,39,37,36,38,39,37,36,38,39,37,38,36,40,42,41,43,44,42,40,41,44,42,40,41,38,36,34,39,41,43,42,39,41,38,36,39,41,47,42,39,41,40,38,35,37,43,42,39,41,41,39,42,43,37,35,38,40,41,39,42,47,41,39,36,38,41,39,42,43,41,39,34,36,38,41,40,42,44,41,40,42,44,43,41,42,40,46,44,45,47,46,43,45,47,46,43,45,47,42,40,43,45,47,46,44,45,47,42,40,43,45,43,45,49,51,43,42,39,41,46,44,45,47,47,45,44,46,41,39,42,43,51,49,45,43,45,43,40,42,47,45,44,46,47,45,43,40,42,47,45,43,46,47,45,43,46,47,45,44,46,50,48,49,51,50,48,49,51,50,48,49,51,48,46,44,49,51,50,48,49,51,46,44,47,49,46,44,53,55,46,44,45,47,50,48,49,51,51,49,48,50,47,45,44,46,55,53,44,46,49,47,44,46,51,49,48,50,51,49,44,46,48,51,49,48,50,51,49,48,50,51,49,48,50,54,52,53,55,54,52,53,55,54,52,53,55,54,52,50,53,55,54,52,53,55,50,48,51,53,52,50,48,57,59,50,48,49,51,54,52,53,55,55,53,52,54,51,49,48,50,59,57,48,50,52,53,51,48,50,55,53,52,54,55,53,50,52,54,55,53,52,54,55,53,52,54,55,53,52,54,60,58,57,59,58,56,57,59,58,56,57,59,60,58,56,57,59,58,56,57,59,54,52,55,57,58,56,54,61,63,54,52,53,55,58,56,57,59,59,57,56,58,55,53,52,54,63,61,54,56,58,57,55,52,54,59,57,56,58,59,57,56,58,60,59,57,56,58,59,57,56,58,59,57,58,60,56,62,61,63,62,60,61,63,62,60,61,63,64,66,62,61,63,62,60,61,63,58,56,59,61,62,60,66,68,70,58,56,57,59,62,60,61,63,63,61,60,62,59,57,56,58,70,68,66,60,62,61,59,56,58,63,61,60,62,63,61,62,66,64,63,61,60,62,63,61,60,62,63,61,62,56,65,64,66,68,64,66,68,70,72,65,64,66,68,67,65,68,70,64,66,68,70,72,62,60,63,68,67,65,64,72,64,62,60,61,63,65,64,66,68,68,66,64,65,63,61,60,62,64,72,64,65,67,68,63,60,62,72,70,68,66,64,70,68,65,67,68,66,64,65,72,70,68,66,64,68,66,64,65,69,67,70,72,69,67,65,74,76,69,67,70,72,71,69,72,74,69,67,65,74,76,64,66,70,72,71,69,74,76,65,66,68,70,72,69,67,70,72,72,70,67,69,72,70,68,66,65,76,74,69,71,72,70,66,64,76,74,65,67,69,74,72,69,71,72,70,67,69,76,74,65,67,69,72,70,67,69,73,71,74,76,75,73,71,78,80,73,71,74,76,75,73,76,78,75,73,71,78,80,67,65,74,76,75,73,78,80,71,69,67,74,76,73,71,74,76,76,74,71,73,76,74,67,69,71,80,78,73,75,76,74,65,67,80,78,71,73,75,78,76,73,75,76,74,71,73,80,78,71,73,75,76,74,71,73,77,75,78,80,81,79,77,82,84,79,77,75,78,80,79,77,80,82,79,77,82,84,73,71,69,78,80,79,77,82,84,77,75,73,78,80,77,75,78,80,80,78,75,77,80,78,73,75,77,84,82,77,79,80,78,69,71,73,84,82,77,79,82,80,77,79,80,78,75,77,79,84,82,77,79,81,80,78,75,77,81,79,82,84,83,89,87,85,86,85,83,81,82,84,83,81,84,88,83,81,86,88,79,77,75,82,84,83,81,87,85,83,81,79,82,84,81,79,82,84,84,82,79,81,84,82,79,81,83,85,87,81,83,84,82,75,77,79,88,86,81,83,88,84,81,83,84,82,81,83,85,86,85,87,89,83,84,82,79,81,83,85,86,88,95,93,91,88,90,91,89,87,86,88,85,86,90,92,87,85,90,92,83,81,85,86,88,91,89,86,88,85,86,88,90,92,83,87,85,86,86,85,87,83,92,90,88,86,85,88,86,89,91,88,86,85,81,83,92,90,85,87,92,90,86,85,88,86,87,89,91,90,88,91,93,95,88,86,85,83,91,89,87,90,92,98,96,92,94,95,93,90,92,91,89,87,94,97,93,91,89,94,97,91,89,87,90,92,95,93,90,92,91,89,87,94,97,91,89,88,90,90,88,89,91,97,94,87,89,91,92,90,93,95,92,90,87,89,91,97,94,89,91,93,97,94,87,89,91,92,90,93,95,94,92,96,98,92,90,87,89,91,96,95,93,94,97,102,100,97,99,98,96,94,97,96,95,93,99,101,98,96,95,99,101,96,95,93,94,97,98,96,94,97,96,95,93,99,101,95,93,92,94,94,92,93,95,101,99,93,95,96,97,94,96,98,97,94,93,95,96,101,99,95,96,98,101,99,93,95,96,97,94,96,98,99,97,100,102,97,94,93,95,96,102,100,98,99,101,106,104,101,103,102,100,99,101,102,100,98,103,105,104,102,100,103,105,102,100,98,99,101,102,100,99,101,102,100,98,103,105,98,96,97,99,99,97,96,98,105,103,98,100,102,101,99,100,102,101,99,98,100,102,105,103,100,102,104,105,103,98,100,102,101,99,100,102,103,101,104,106,101,99,98,100,102,106,104,103,105,111,107,109,111,105,106,104,103,105,111,106,104,107,109,111,106,107,109,111,106,104,103,105,111,107,106,104,103,105,106,104,107,109,111,102,100,101,103,103,101,100,102,111,109,107,104,106,105,103,104,106,107,111,105,103,104,106,111,109,107,106,111,109,107,104,106,111,105,103,104,106,105,111,109,107,111,105,103,104,106,108,107,109,113,115,110,108,113,115,108,107,109,113,115,112,110,108,113,115,110,108,113,115,108,107,109,113,115,108,109,111,113,115,112,110,108,113,115,106,104,105,111,111,105,104,106,115,113,108,110,112,115,113,111,109,108,115,113,109,107,108,115,113,108,110,115,113,108,110,112,115,113,109,107,108,115,113,108,110,115,113,109,107,108,114,112,110,117,119,114,112,117,119,114,112,110,117,119,118,116,114,117,119,114,112,117,119,114,112,110,117,119,114,112,110,117,119,118,116,114,117,119,107,109,113,115,115,113,109,107,119,117,114,116,118,119,117,110,112,114,119,117,110,112,114,119,117,112,114,119,117,114,116,118,119,117,110,112,114,119,117,112,114,119,117,110,112,114,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,122,120,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,122,120,121,123,112,110,108,117,119,119,117,108,110,112,123,121,120,122,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,120,122,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,125,127,118,116,114,121,123,123,121,114,116,118,127,125,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,3,1,0,3,1,0,2,0,2,4,7,5,3,1,0,2,4,5,3,1,5,3,1,0,3,1,0,5,3,1,5,3,1,3,1,0,2,126,124,122,120,125,127,127,125,120,122,124,126,2,0,1,3,1,3,5,1,3,5,0,1,3,0,1,3,5,1,3,5,4,2,0,1,3,5,7,4,2,0,2,0,1,3,0,1,3,5,2,4,7,5,4,6,3,1,6,8,9,1,0,5,3,6,8,7,0,2,9,7,2,4,5,2,4,9,7,0,7,0,2,7,5,4,6,3,1,0,2,2,0,1,3,2,0,1,3,6,4,5,7,2,0,7,0,7,9,4,2,5,4,2,7,9,2,0,7,8,6,3,5,0,1,9,8,6,1,3,6,4,5,7,4,2,5,7,6,8,11,9,8,10,7,5,10,12,11,2,4,9,7,10,12,9,4,6,13,11,6,8,7,6,8,11,2,4,9,4,6,11,9,8,10,7,5,4,6,6,4,5,7,6,4,5,7,10,8,9,11,6,4,9,4,2,11,8,6,7,8,6,11,13,6,4,9,12,10,7,9,4,2,11,12,10,5,7,10,8,9,11,8,6,7,9,10,12,15,13,12,14,11,9,14,16,13,6,8,13,11,14,16,11,8,10,15,10,12,11,9,10,12,13,6,8,11,8,10,15,13,12,14,11,9,8,10,8,10,9,11,10,8,9,11,14,12,13,15,10,8,11,8,6,13,12,10,9,11,12,10,15,10,8,11,16,14,11,13,8,6,13,16,14,9,11,14,12,13,15,12,10,9,13,11,14,16,17,16,18,15,13,18,20,15,10,12,17,15,18,20,15,13,12,14,17,14,16,15,13,14,16,15,10,12,15,13,12,14,17,16,18,15,13,12,14,12,14,13,15,14,12,13,15,18,16,17,14,12,13,15,12,10,15,16,14,13,15,16,14,17,14,12,13,15,20,18,15,17,12,10,15,20,18,13,15,18,16,17,16,14,11,13,17,15,18,20,19,20,21,19,17,21,22,17,14,16,19,21,22,24,19,17,16,18,19,18,20,19,17,18,20,17,14,16,19,17,16,18,19,20,21,19,17,16,18,16,18,17,19,18,16,17,19,21,20,19,18,16,17,19,16,14,17,20,18,17,19,20,18,19,18,16,17,19,24,22,21,19,16,14,17,22,21,17,19,21,20,19,20,18,15,17,19,23,21,22,25,23,22,27,25,23,24,19,18,20,27,25,23,26,23,21,22,20,23,21,22,25,23,21,22,19,18,20,23,21,22,20,25,23,22,23,21,22,20,20,22,21,23,20,22,21,23,22,23,25,20,22,21,23,20,18,19,22,21,23,25,22,21,23,20,22,21,23,26,23,25,27,20,18,19,24,23,25,27,22,23,25,22,21,23,19,27,25,24,26,29,27,24,32,31,29,26,27,25,23,21,31,29,28,29,27,25,24,27,25,24,26,29,27,24,23,21,22,24,27,25,24,26,29,27,24,27,25,24,26,26,24,25,27,26,24,25,27,24,27,29,26,24,25,27,24,22,21,23,24,27,29,26,24,25,27,24,25,27,29,28,29,31,21,23,25,27,26,29,31,32,24,27,29,26,24,25,27,31,29,28,30,31,26,28,36,34,28,30,31,29,22,24,32,30,33,34,32,31,26,31,29,28,30,32,31,26,27,25,26,28,31,29,28,30,32,31,26,31,29,28,30,28,30,29,31,30,28,29,31,26,31,32,30,28,29,31,28,26,25,27,26,31,32,30,28,29,31,26,31,32,34,33,30,32,24,22,29,31,30,28,34,36,28,26,31,30,28,29,31,34,32,33,35,32,30,33,40,38,33,35,34,32,26,28,34,35,37,38,36,28,30,34,32,33,35,34,28,30,31,29,30,33,34,32,33,35,36,34,28,34,32,33,35,33,35,32,34,35,33,32,34,28,34,36,35,33,32,34,33,30,29,31,30,28,34,35,33,32,34,30,28,36,38,37,35,34,28,26,32,34,35,33,38,40,33,30,32,35,33,32,34,38,36,37,39,36,34,35,37,42,37,39,38,36,30,33,38,36,39,41,40,33,35,38,36,37,39,38,36,33,35,34,32,35,37,38,36,37,39,38,30,33,38,36,37,39,37,39,36,38,39,37,36,38,33,30,38,39,37,36,38,37,35,32,34,35,33,36,38,39,37,36,38,35,33,40,41,39,36,38,33,30,36,38,39,37,42,37,35,34,36,39,37,36,38,42,40,41,43,40,38,39,41,44,43,41,42,40,35,37,42,40,43,45,42,37,39,42,40,41,43,42,40,37,39,38,36,39,41,42,40,41,43,40,35,37,42,40,41,43,45,41,40,42,43,41,40,42,37,35,40,43,41,40,42,41,39,36,38,39,37,40,42,43,41,40,42,39,37,42,45,43,40,42,37,35,40,42,41,43,44,41,39,38,40,43,41,40,42,46,44,45,47,42,46,44,43,46,45,47,43,45,39,41,46,44,47,49,45,47,41,46,44,45,47,46,44,43,41,42,40,43,45,46,44,45,47,42,39,41,46,44,45,47,47,43,44,46,47,45,44,46,41,39,42,47,45,44,46,45,43,40,42,41,43,44,46,47,45,44,46,41,47,45,49,47,44,46,41,39,45,43,47,45,46,43,44,46,42,47,45,44,46,50,48,49,51,50,48,45,47,50,48,49,46,44,47,49,50,48,51,53,44,43,49,51,50,48,49,51,50,48,45,47,46,44,47,49,50,48,49,51,46,44,43,50,48,49,51,51,49,48,50,51,49,48,50,43,44,46,51,49,48,50,49,47,44,46,47,45,48,50,51,49,48,50,51,49,43,44,53,51,48,50,49,47,44,46,49,48,50,47,45,48,50,51,49,48,50,54,52,53,55,54,52,49,51,52,51,53,50,48,51,53,54,52,55,57,48,46,53,55,54,52,53,55,54,52,49,51,50,48,51,53,54,52,53,55,48,45,47,54,52,53,55,53,55,52,54,55,53,52,54,47,45,48,55,53,52,54,53,51,48,50,51,49,52,54,55,53,52,54,55,53,46,48,57,55,52,54,53,51,48,50,53,51,52,51,49,52,54,55,53,52,54,58,56,57,59,58,56,53,55,54,55,57,54,52,55,57,58,56,59,61,52,50,57,59,58,56,57,59,58,56,53,55,54,52,55,57,58,56,57,59,50,49,51,58,56,57,59,57,59,56,58,59,57,56,58,51,49,50,59,57,56,58,57,55,52,54,55,53,56,58,59,57,56,58,59,57,50,52,61,59,56,58,57,55,52,54,57,55,54,55,53,56,58,59,57,56,58,62,60,61,63,62,60,57,59,58,56,59,61,58,56,59,61,62,60,63,58,56,54,61,63,62,60,61,62,60,57,59,58,56,59,61,62,60,61,63,54,52,53,55,62,60,61,63,61,63,60,62,63,61,60,62,55,53,52,54,63,61,60,62,61,59,56,58,59,57,60,62,61,60,62,63,61,54,56,58,63,60,62,61,59,56,58,61,59,56,58,59,57,60,62,63,61,60,62,67,65,64,66,64,66,61,63,62,60,63,64,62,60,63,64,65,64,66,62,60,65,64,66,65,64,63,64,66,61,63,62,60,63,64,67,65,64,66,58,56,57,59,67,65,64,66,66,64,65,67,66,64,65,67,59,57,56,58,66,64,65,67,64,63,60,62,63,61,66,64,63,64,65,66,64,65,60,62,66,64,65,64,63,60,62,64,63,60,62,63,61,66,64,66,64,65,67,71,69,68,70,67,65,68,70,67,65,66,68,67,65,66,68,67,68,70,71,69,67,68,70,67,66,68,67,65,68,70,67,65,66,68,71,69,68,70,62,60,61,63,71,69,68,70,70,68,69,71,70,68,69,71,63,61,60,62,70,68,69,71,68,66,65,67,70,68,65,67,68,66,67,70,68,67,69,71,70,68,67,68,66,65,67,68,66,65,67,70,68,65,67,70,68,69,71,75,73,72,74,71,69,72,74,71,69,70,72,71,69,70,72,71,69,72,74,75,73,72,74,71,69,70,72,71,69,72,74,71,69,70,72,75,73,72,74,67,65,64,66,75,73,72,74,72,74,73,75,74,72,73,75,66,64,65,67,74,72,73,75,72,70,69,71,74,72,69,71,72,70,69,71,74,72,73,75,74,72,69,71,72,70,69,71,72,70,69,71,74,72,69,71,74,72,73,75,79,77,76,78,75,73,76,78,75,73,74,76,75,73,74,76,75,73,76,78,79,77,76,78,75,73,74,76,75,73,76,78,75,73,74,76,79,77,76,78,71,69,68,70,79,77,76,78,76,78,77,79,78,76,77,79,70,68,69,71,78,76,77,79,76,74,73,75,78,76,73,75,76,74,73,75,78,76,77,79,78,76,73,75,76,74,73,75,76,74,73,75,78,76,73,75,78,76,77,79,83,81,80,82,79,77,80,82,79,77,78,80,79,77,78,80,79,77,80,82,83,81,80,82,79,77,78,80,79,77,80,82,79,77,78,80,83,81,80,82,75,73,72,74,83,81,80,82,80,82,81,83,82,80,81,83,74,72,73,75,82,80,81,83,80,78,77,79,82,80,77,79,80,78,77,79,82,80,81,83,82,80,77,79,80,78,77,79,80,78,77,79,82,80,77,79,82,80,81,83,89,87,85,84,83,81,84,87,83,81,82,84,83,81,82,84,83,81,84,85,89,87,85,84,83,81,82,84,85,83,81,84,83,81,82,84,86,87,85,86,84,79,77,76,78,87,85,86,84,84,86,85,87,84,86,85,87,78,76,77,79,84,86,85,87,86,84,82,81,83,84,81,83,85,84,82,81,83,84,85,87,89,85,84,81,83,84,82,81,83,84,82,81,83,87,84,81,83,84,85,87,89,93,91,86,88,91,89,85,86,91,89,87,85,87,85,86,88,91,89,87,86,93,91,86,88,91,89,87,85,89,87,86,88,89,87,85,88,90,91,89,88,90,83,81,80,82,91,89,88,90,90,88,89,91,90,88,89,91,82,80,81,83,90,88,89,91,90,88,85,87,89,88,86,87,89,85,87,89,91,88,86,91,93,86,87,89,91,88,86,85,87,85,87,89,91,86,85,89,91,88,86,91,93,96,95,90,92,95,93,88,90,95,93,86,88,91,89,90,92,95,93,88,90,96,95,90,92,95,93,86,88,93,91,90,92,95,93,91,92,94,95,93,92,94,85,86,88,84,95,93,92,94,92,94,93,95,94,92,93,95,84,88,86,85,94,92,93,95,94,92,91,93,95,92,90,91,93,88,86,93,95,92,90,95,96,90,88,93,95,92,90,89,91,88,86,93,95,90,88,93,95,92,90,95,96,100,98,94,97,98,96,92,94,98,96,90,92,96,95,93,94,97,98,96,92,94,100,98,94,97,98,96,90,92,96,95,94,97,98,96,97,99,98,96,97,99,91,89,87,90,92,98,96,97,99,97,99,96,98,99,97,96,98,92,90,87,89,91,99,97,96,98,99,97,96,98,97,94,95,96,92,90,96,98,97,94,98,100,94,92,96,98,97,94,93,95,96,92,90,96,98,94,92,96,98,97,94,98,100,104,102,99,101,102,100,97,99,102,100,94,97,102,100,98,99,101,102,100,97,99,104,102,99,101,102,100,94,97,100,98,99,101,102,100,101,103,102,100,101,103,96,95,93,94,97,102,100,101,103,101,103,100,102,103,101,100,102,97,94,93,95,96,103,101,100,102,103,101,100,102,101,99,98,100,97,94,100,102,101,99,102,104,99,97,100,102,101,99,98,100,102,97,94,100,102,99,97,100,102,101,99,102,104,108,106,103,105,106,104,101,103,106,104,99,101,108,106,104,103,105,106,104,101,103,107,106,103,105,106,104,99,101,104,102,103,105,106,104,105,107,106,104,105,107,102,100,98,99,101,106,104,105,107,109,105,104,106,107,105,104,106,101,99,98,100,102,107,105,104,106,107,105,104,106,105,103,102,104,101,99,104,106,105,103,106,107,103,101,104,106,105,103,104,106,108,101,99,104,106,103,101,104,106,105,103,106,108,110,107,109,111,107,109,111,105,108,107,109,103,105,110,107,109,111,107,109,111,105,110,108,109,111,108,107,109,103,105,106,107,109,111,110,108,109,111,110,108,109,111,106,104,103,105,111,110,108,109,111,111,107,108,110,111,109,108,110,111,105,103,104,106,111,109,108,110,111,109,108,110,111,109,107,106,105,103,109,107,108,111,109,108,110,105,111,109,107,111,109,107,110,105,103,109,107,108,105,111,109,107,111,109,107,110,114,112,113,115,110,108,113,115,112,110,111,113,115,114,112,113,115,110,108,113,115,114,112,113,115,112,110,111,113,115,110,108,113,115,114,112,113,115,114,112,113,115,108,107,109,113,115,114,112,113,115,115,113,112,114,115,113,112,114,115,113,109,107,108,115,113,112,114,115,113,112,114,115,113,108,110,115,113,111,110,112,115,113,112,114,115,113,108,110,115,113,112,114,115,113,111,110,112,115,113,108,110,115,113,112,114,118,116,117,119,114,112,117,119,118,116,114,117,119,118,116,117,119,114,112,117,119,118,116,117,119,118,116,114,117,119,114,112,117,119,118,116,117,119,118,116,117,119,114,112,110,117,119,118,116,117,119,117,119,116,118,119,117,116,118,119,117,110,112,114,119,117,116,118,119,117,116,118,119,117,112,114,119,117,114,116,118,119,117,116,118,119,117,112,114,119,117,116,118,119,117,114,116,118,119,117,112,114,119,117,116,118,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,122,120,121,123,120,118,116,121,123,122,120,121,123,121,123,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,123,121,120,122,123,121,116,118,120,123,121,120,122,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,126,124,125,127,126,124,122,125,127,126,124,125,127,125,127,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126,127,125,124,126,127,125,122,124,126,127,125,124,126}; -const Int_t AliL3TPCMapping::fgkIFecCon[fgkNIROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,4,3,3,4,4,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,4,4,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,5,4,4,5,5,5,4,5,5,5,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,5,5,5,4,5,5,5,4,4,5,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,2,2,2,2,2,3,2,2,2,3,3,3,3,2,2,3,3,3,3,3,2,3,3,2,2,2,2,2,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,2,2,2,2,2,3,3,2,3,3,3,3,3,2,2,3,3,3,3,2,2,2,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,3,3,3,3,3,4,4,4,3,3,4,4,4,3,4,4,4,3,3,3,3,3,4,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,5,4,4,4,4,4,4,4,4,5,5,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,4,5,5,5,4,4,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,4,4,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5}; diff --git a/HLT/misc/AliL3TPCMapping-oroc.generated b/HLT/misc/AliL3TPCMapping-oroc.generated deleted file mode 100644 index 36553d67c28..00000000000 --- a/HLT/misc/AliL3TPCMapping-oroc.generated +++ /dev/null @@ -1,8 +0,0 @@ -const Int_t AliL3TPCMapping::fgkNOROC = 9984; -const Int_t AliL3TPCMapping::fgkORows[fgkNOROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95}; -const Int_t AliL3TPCMapping::fgkOPad[fgkNOROC] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139}; -const Int_t AliL3TPCMapping::fgkOCon[fgkNOROC] = {235,235,235,235,236,236,236,236,237,237,237,237,238,238,238,238,239,239,239,239,239,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,237,237,237,237,237,238,238,238,238,239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,3,2,2,2,2,1,1,1,1,235,235,235,235,236,236,236,236,246,246,246,237,237,238,238,238,238,239,239,239,239,249,249,249,240,240,241,241,241,241,242,242,242,242,243,243,243,243,9,9,9,9,8,8,8,8,7,7,7,7,6,6,15,15,15,5,5,5,5,4,4,4,4,3,3,12,12,12,2,2,2,2,1,1,1,1,244,244,244,235,245,245,245,245,236,246,246,246,246,247,247,247,238,248,248,248,248,248,249,249,249,249,250,250,250,250,241,251,251,251,242,243,252,252,252,18,18,18,9,8,17,17,17,7,16,16,16,16,15,15,15,15,14,14,14,14,14,4,13,13,13,12,12,12,12,2,11,11,11,11,1,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,250,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,16,16,16,16,16,15,15,15,15,14,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,247,247,247,247,248,248,248,248,248,249,249,249,249,250,250,250,250,250,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,16,16,16,16,16,15,15,15,15,14,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,245,245,246,246,246,246,246,247,247,247,247,248,248,248,248,249,249,249,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,17,16,16,16,16,15,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,12,11,11,11,11,11,10,10,10,10,244,244,244,244,245,245,245,254,254,255,255,255,246,246,247,247,247,247,248,248,248,257,258,258,258,249,249,250,250,250,250,251,251,251,251,251,252,252,252,252,18,18,18,18,17,17,17,17,17,16,16,16,16,15,15,24,24,24,23,14,14,14,13,13,13,13,12,12,21,21,21,20,20,11,11,11,10,10,10,10,253,244,244,244,254,254,254,254,254,255,255,255,255,256,247,247,247,257,257,257,257,257,258,258,258,258,258,259,259,259,259,260,260,260,251,261,261,252,252,252,18,18,18,27,27,17,26,26,26,25,25,25,25,24,24,24,24,24,23,23,23,23,23,13,13,13,22,21,21,21,21,20,20,20,20,20,10,10,10,19,253,253,253,253,254,254,254,254,255,255,255,255,255,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,21,21,21,21,21,20,20,20,20,19,19,19,19,253,253,253,253,253,254,254,254,254,255,255,255,255,256,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,19,253,253,253,253,253,254,254,254,254,255,255,255,255,256,256,256,256,256,257,257,257,257,257,258,258,258,258,259,259,259,259,259,260,260,260,260,261,261,261,261,261,27,27,27,27,27,26,26,26,26,25,25,25,25,25,24,24,24,24,23,23,23,23,23,22,22,22,22,22,21,21,21,21,20,20,20,20,19,19,19,19,19,253,253,253,253,253,254,254,263,263,264,264,264,255,256,256,256,256,256,266,266,266,266,266,258,267,267,267,259,259,268,268,260,260,260,260,260,261,261,261,261,270,36,27,27,27,27,26,26,26,26,26,34,34,25,25,33,33,33,24,32,32,32,32,32,22,22,22,22,22,21,30,30,30,29,29,20,20,19,19,19,19,19,262,262,262,262,253,263,263,263,263,264,264,264,264,264,256,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,260,270,270,270,270,270,36,36,36,36,36,26,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,22,30,30,30,30,30,29,29,29,29,19,28,28,28,28,262,262,262,262,262,263,263,263,263,264,264,264,264,264,265,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,31,30,30,30,30,30,29,29,29,29,28,28,28,28,28,262,262,262,262,262,263,263,263,263,264,264,264,264,264,265,265,265,265,265,266,266,266,266,267,267,267,267,267,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,33,33,33,33,33,32,32,32,32,31,31,31,31,31,30,30,30,30,30,29,29,29,29,28,28,28,28,28,262,262,262,262,262,263,263,263,263,263,264,264,264,273,265,265,265,265,265,275,266,266,266,266,267,267,267,276,268,268,268,268,268,269,269,269,269,269,270,270,270,270,270,36,36,36,36,36,35,35,35,35,35,34,34,34,34,34,42,33,33,33,32,32,32,32,41,31,31,31,31,31,39,30,30,30,29,29,29,29,29,28,28,28,28,28,271,271,271,262,262,263,263,272,272,272,273,273,273,273,265,265,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,268,268,269,269,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,35,35,34,34,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,31,31,39,39,39,39,38,38,38,29,29,28,28,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,274,274,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,274,274,274,274,274,275,275,275,275,275,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,41,41,41,41,41,40,40,40,40,40,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,271,272,272,272,272,272,273,273,273,273,273,274,274,274,274,274,275,275,275,275,276,276,276,276,276,277,277,277,277,277,278,278,278,278,278,279,279,279,279,279,45,45,45,45,45,44,44,44,44,44,43,43,43,43,43,42,42,42,42,42,41,41,41,41,40,40,40,40,40,39,39,39,39,39,38,38,38,38,38,37,37,37,37,37,271,271,271,271,280,281,272,272,272,272,273,273,273,273,282,283,274,274,274,274,275,275,284,284,285,276,276,276,276,277,277,277,277,286,287,278,278,278,278,279,279,288,288,288,54,54,54,45,45,44,44,44,44,53,52,43,43,43,43,42,42,42,42,51,50,50,41,41,40,40,40,40,49,48,39,39,39,39,38,38,38,38,47,46,37,37,37,37,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,288,288,54,54,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,280,280,280,280,280,281,281,281,281,281,282,282,282,282,282,283,283,283,283,283,284,284,284,284,284,285,285,285,285,285,286,286,286,286,286,287,287,287,287,287,288,288,288,298,298,64,64,54,54,54,53,53,53,53,53,52,52,52,52,52,51,51,51,51,51,50,50,50,50,50,49,49,49,49,49,48,48,48,48,48,47,47,47,47,47,46,46,46,46,46,289,289,289,289,290,290,290,290,290,291,291,291,291,291,292,292,292,292,293,293,293,293,293,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,59,59,59,59,59,58,58,58,58,57,57,57,57,57,56,56,56,56,56,55,55,55,55,289,289,289,289,289,290,290,290,290,291,291,291,291,291,292,292,292,292,292,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,58,58,58,58,58,57,57,57,57,57,56,56,56,56,55,55,55,55,55,289,289,289,289,289,290,290,290,290,291,291,291,291,291,292,292,292,292,292,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,58,58,58,58,58,57,57,57,57,57,56,56,56,56,55,55,55,55,55,289,289,289,289,290,290,290,290,290,291,291,291,291,291,292,292,292,292,293,293,293,293,293,294,294,294,294,294,295,295,295,295,295,296,296,296,296,297,297,297,297,297,298,298,298,298,64,64,64,64,63,63,63,63,63,62,62,62,62,61,61,61,61,61,60,60,60,60,60,59,59,59,59,59,58,58,58,58,57,57,57,57,57,56,56,56,56,56,55,55,55,55,289,289,289,299,299,300,300,290,290,290,301,301,301,291,292,292,292,302,302,303,303,293,293,293,294,294,304,304,305,305,305,305,295,296,296,296,296,296,297,307,307,307,308,308,298,298,298,64,64,64,74,74,73,73,73,63,62,62,62,62,62,61,71,71,71,71,70,70,60,60,59,59,59,69,69,68,68,58,58,58,57,67,67,67,56,56,56,66,66,65,65,55,55,55,299,299,299,299,299,300,300,300,300,301,301,301,301,301,302,302,302,302,302,303,303,303,303,304,304,304,304,304,305,305,305,305,305,306,306,306,306,306,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,72,72,72,72,72,71,71,71,71,71,70,70,70,70,70,69,69,69,69,68,68,68,68,68,67,67,67,67,67,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,301,301,301,301,301,302,302,302,302,302,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,68,68,68,68,68,67,67,67,67,67,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,300,301,301,301,301,302,302,302,302,302,303,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,69,68,68,68,68,68,67,67,67,67,66,66,66,66,66,65,65,65,65,65,299,299,299,299,299,300,300,300,300,300,301,301,301,301,302,302,302,302,302,303,303,303,303,303,304,304,304,304,304,305,305,305,305,306,306,306,306,306,307,307,307,307,307,308,308,308,308,308,74,74,74,74,74,73,73,73,73,73,72,72,72,72,72,71,71,71,71,70,70,70,70,70,69,69,69,69,69,68,68,68,68,68,67,67,67,67,66,66,66,66,66,65,65,65,65,65,309,309,309,309,309,310,310,310,300,300,301,311,311,311,312,312,312,312,312,303,303,313,313,313,314,314,314,314,314,315,315,315,305,306,306,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,72,72,71,81,81,81,80,80,80,80,80,79,79,79,69,69,78,78,78,78,78,77,77,77,67,66,66,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,312,312,312,312,312,313,313,313,313,313,314,314,314,314,314,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,80,80,80,80,80,79,79,79,79,79,78,78,78,78,78,77,77,77,77,76,76,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,311,312,312,312,312,312,313,313,313,313,314,314,314,314,314,315,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,80,80,79,79,79,79,78,78,78,78,78,77,77,77,77,77,76,76,76,76,76,75,75,75,75,75,309,309,309,309,309,310,310,310,310,310,311,311,311,311,311,312,312,312,312,312,313,313,313,313,314,314,314,314,314,315,315,315,315,315,316,316,316,316,316,317,317,317,317,317,318,318,318,318,318,84,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,80,80,79,79,79,79,78,78,78,78,78,77,77,77,77,77,76,76,76,76,76,75,75,75,75,75,319,319,319,319,309,320,320,310,310,310,321,311,311,311,311,322,322,322,322,312,313,313,313,313,314,324,324,324,324,325,315,315,315,315,316,316,316,326,326,327,327,327,327,317,318,328,328,328,328,94,94,94,94,84,83,93,93,93,93,92,92,82,82,82,81,81,81,81,91,90,90,90,90,80,79,79,79,79,78,88,88,88,88,77,77,77,77,87,76,76,76,86,86,75,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,313,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,79,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,323,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,89,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,319,319,319,319,319,320,320,320,320,320,321,321,321,321,321,322,322,322,322,322,323,323,323,323,323,324,324,324,324,324,325,325,325,325,325,326,326,326,326,326,327,327,327,327,327,328,328,328,328,328,94,94,94,94,94,93,93,93,93,93,92,92,92,92,92,91,91,91,91,91,90,90,90,90,90,89,89,89,89,89,88,88,88,88,88,87,87,87,87,87,86,86,86,86,86,85,85,85,85,85,329,329,329,319,319,330,320,320,320,320,321,321,321,321,321,332,332,332,322,322,323,323,323,323,323,334,334,334,324,324,325,325,325,325,325,336,326,326,326,326,327,327,337,337,337,338,338,338,328,328,94,94,104,104,104,103,103,103,93,93,92,92,92,92,102,91,91,91,91,91,90,90,100,100,100,89,89,89,89,89,88,88,98,98,98,87,87,87,87,87,86,86,86,86,96,85,85,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,323,323,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,89,89,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,333,333,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,99,99,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,329,330,330,330,330,330,331,331,331,331,331,332,332,332,332,332,333,333,333,333,333,333,334,334,334,334,334,335,335,335,335,335,336,336,336,336,336,337,337,337,337,337,338,338,338,338,338,104,104,104,104,104,103,103,103,103,103,102,102,102,102,102,101,101,101,101,101,100,100,100,100,100,99,99,99,99,99,99,98,98,98,98,98,97,97,97,97,97,96,96,96,96,96,95,95,95,95,95,329,329,329,329,339,330,330,330,330,330,331,331,331,331,331,331,332,332,332,332,342,333,333,333,333,333,344,334,334,334,334,335,335,335,335,335,335,336,336,336,336,336,337,337,337,337,347,348,338,338,338,338,104,104,104,104,114,113,103,103,103,103,102,102,102,102,102,101,101,101,101,101,101,100,100,100,100,110,99,99,99,99,99,108,98,98,98,98,97,97,97,97,97,97,96,96,96,96,96,105,95,95,95,95,339,339,339,339,339,340,340,340,340,330,331,341,341,341,341,341,342,342,342,342,342,333,343,343,343,343,344,344,344,344,344,345,345,345,345,345,335,336,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,102,101,111,111,111,111,111,110,110,110,110,110,109,109,109,109,99,108,108,108,108,108,107,107,107,107,107,97,96,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,341,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,345,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,111,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,107,106,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,340,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,346,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,112,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,106,106,106,106,106,106,105,105,105,105,105,339,339,339,339,339,340,340,340,340,340,340,341,341,341,341,341,342,342,342,342,342,343,343,343,343,343,343,344,344,344,344,344,345,345,345,345,345,346,346,346,346,346,346,347,347,347,347,347,348,348,348,348,348,114,114,114,114,114,113,113,113,113,113,112,112,112,112,112,112,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,109,108,108,108,108,108,107,107,107,107,107,106,106,106,106,106,106,105,105,105,105,105,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,350,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,354,354,354,354,354,354,355,355,355,355,355,356,356,356,356,356,356,357,357,357,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,123,123,123,122,122,122,122,122,122,121,121,121,121,121,120,120,120,120,120,120,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,116,116,116,116,116,116,115,115,115,115,115,349,349,349,349,349,350,350,350,350,350,351,351,351,351,351,351,352,352,352,352,352,353,353,353,353,353,364,364,364,354,354,354,355,355,355,355,355,356,356,356,366,366,366,367,367,367,357,357,357,358,358,358,358,358,124,124,124,124,124,123,123,123,133,133,133,132,132,132,122,122,122,121,121,121,121,121,120,120,120,130,130,130,119,119,119,119,119,118,118,118,118,118,117,117,117,117,117,117,116,116,116,116,116,115,115,115,115,115,349,359,359,359,359,360,360,360,360,360,361,361,361,361,361,361,362,362,362,362,352,353,363,363,363,363,364,364,364,364,364,365,365,365,365,365,355,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,358,124,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,121,131,131,131,131,131,130,130,130,130,130,129,129,129,129,119,118,128,128,128,128,127,127,127,127,127,127,126,126,126,126,126,125,125,125,125,115,359,359,359,359,359,359,360,360,360,360,360,361,361,361,361,361,361,362,362,362,362,362,363,363,363,363,363,364,364,364,364,364,365,365,365,365,365,365,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,368,134,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,131,131,131,131,131,131,130,130,130,130,130,129,129,129,129,129,128,128,128,128,128,127,127,127,127,127,127,126,126,126,126,126,125,125,125,125,125,125,359,359,359,359,359,360,360,360,360,360,360,361,361,361,361,361,362,362,362,362,362,362,363,363,363,363,363,364,364,364,364,364,365,365,365,365,365,365,366,366,366,366,366,366,367,367,367,367,367,368,368,368,368,368,368,134,134,134,134,134,134,133,133,133,133,133,132,132,132,132,132,132,131,131,131,131,131,131,130,130,130,130,130,129,129,129,129,129,128,128,128,128,128,128,127,127,127,127,127,126,126,126,126,126,126,125,125,125,125,125,359,359,359,359,359,360,360,360,360,360,360,361,361,361,361,361,362,362,362,362,362,362,363,363,363,363,363,374,364,364,364,364,365,365,365,365,365,375,376,376,376,376,376,366,367,367,367,367,377,378,368,368,368,368,368,134,134,134,134,134,144,143,133,133,133,133,132,142,142,142,142,142,141,131,131,131,131,131,130,130,130,130,140,129,129,129,129,129,128,128,128,128,128,128,127,127,127,127,127,126,126,126,126,126,126,125,125,125,125,125,359,359,369,369,369,370,370,370,370,370,371,371,371,371,371,371,362,372,372,372,372,373,373,373,363,363,363,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,129,129,129,139,139,139,138,138,138,138,128,137,137,137,137,137,137,136,136,136,136,136,135,135,135,125,125,369,369,369,369,369,369,370,370,370,370,370,371,371,371,371,371,371,372,372,372,372,372,373,373,373,373,373,374,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,140,139,139,139,139,139,138,138,138,138,138,137,137,137,137,137,137,136,136,136,136,136,135,135,135,135,135,135,369,369,369,369,369,370,370,370,370,370,370,371,371,371,371,371,372,372,372,372,372,372,373,373,373,373,373,374,374,374,374,374,374,375,375,375,375,375,375,376,376,376,376,376,377,377,377,377,377,377,378,378,378,378,378,378,144,144,144,144,144,144,143,143,143,143,143,143,142,142,142,142,142,141,141,141,141,141,141,140,140,140,140,140,140,139,139,139,139,139,138,138,138,138,138,138,137,137,137,137,137,136,136,136,136,136,136,135,135,135,135,135,369,369,369,369,369,369,369,370,370,370,370,370,381,371,371,371,371,372,372,372,372,372,372,373,373,373,373,373,384,384,384,374,374,374,375,375,385,385,385,385,386,386,386,386,376,377,377,387,387,387,387,388,388,388,388,378,378,144,144,154,154,154,154,153,153,153,153,143,143,142,152,152,152,152,151,151,151,151,141,141,140,140,140,150,150,150,139,139,139,139,139,138,138,138,138,138,138,137,137,137,137,147,136,136,136,136,136,135,135,135,135,135,135,135,379,379,379,379,379,380,380,380,380,380,380,381,381,381,381,381,381,382,382,382,382,382,383,383,383,373,373,373,384,384,384,384,384,385,385,385,385,385,385,386,386,386,386,386,386,387,387,387,387,387,387,388,388,388,388,388,388,154,154,154,154,154,154,153,153,153,153,153,153,152,152,152,152,152,152,151,151,151,151,151,151,150,150,150,150,150,139,139,139,149,149,149,148,148,148,148,148,147,147,147,147,147,147,146,146,146,146,146,146,145,145,145,145,145,379,379,379,379,379,380,380,380,380,380,380,381,381,381,381,381,382,382,382,382,382,382,383,383,383,383,383,384,384,384,384,384,384,385,385,385,385,385,385,386,386,386,386,386,386,387,387,387,387,387,387,388,388,388,388,388,388,154,154,154,154,154,154,153,153,153,153,153,153,152,152,152,152,152,152,151,151,151,151,151,151,150,150,150,150,150,150,149,149,149,149,149,148,148,148,148,148,148,147,147,147,147,147,146,146,146,146,146,146,145,145,145,145,145,379,379,379,379,379,379,380,380,380,380,380,381,381,381,381,381,381,382,382,382,382,382,382,383,383,383,383,383,384,384,384,384,384,384,385,385,385,385,385,395,396,386,386,386,386,386,387,387,387,387,387,397,398,388,388,388,388,388,154,154,154,154,154,164,163,153,153,153,153,153,152,152,152,152,152,162,161,151,151,151,151,151,150,150,150,150,150,150,149,149,149,149,149,148,148,148,148,148,148,147,147,147,147,147,147,146,146,146,146,146,145,145,145,145,145,145,389,379,379,379,379,379,390,380,380,380,380,381,381,381,391,391,391,392,392,382,382,382,382,383,383,383,383,383,384,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,150,149,149,149,149,149,148,148,148,148,158,158,157,157,157,147,147,147,146,146,146,146,156,145,145,145,145,145,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,392,392,392,392,392,392,383,383,383,393,393,393,394,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,160,159,159,159,149,149,149,158,158,158,158,158,158,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,392,392,392,392,392,392,393,393,393,393,393,393,394,394,394,394,394,394,395,395,395,395,395,395,396,396,396,396,396,396,397,397,397,397,397,397,398,398,398,398,398,398,164,164,164,164,164,164,163,163,163,163,163,163,162,162,162,162,162,162,161,161,161,161,161,161,160,160,160,160,160,160,159,159,159,159,159,159,158,158,158,158,158,158,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,389,389,389,390,390,390,390,390,390,391,391,391,391,391,391,392,392,392,392,392,392,393,393,393,393,393,393,394,394,394,394,394,404,405,405,405,395,395,395,396,396,396,406,406,406,407,407,407,397,397,397,398,398,398,408,408,408,174,174,174,164,164,164,163,163,163,173,173,173,172,172,172,162,162,162,161,161,161,171,171,171,170,160,160,160,160,160,159,159,159,159,159,159,158,158,158,158,158,158,157,157,157,157,157,157,156,156,156,156,156,156,155,155,155,155,155,155,389,389,389,399,399,399,400,400,400,390,390,390,391,391,391,401,401,401,402,402,402,392,392,393,393,393,393,393,393,393,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,159,159,159,159,159,159,159,158,158,168,168,168,167,167,167,157,157,157,156,156,156,166,166,166,165,165,165,155,155,155,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,404,404,404,404,405,405,405,405,405,405,406,406,406,406,406,406,407,407,407,407,407,407,408,408,408,408,408,408,174,174,174,174,174,174,173,173,173,173,173,173,172,172,172,172,172,172,171,171,171,171,171,171,170,170,170,170,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,399,399,399,399,399,399,400,400,400,400,400,400,401,401,401,401,401,401,402,402,402,402,402,402,403,403,403,403,403,403,403,404,404,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,170,170,169,169,169,169,169,169,169,168,168,168,168,168,168,167,167,167,167,167,167,166,166,166,166,166,166,165,165,165,165,165,165,409,409,409,409,409,409,410,410,410,410,410,410,410,411,411,411,411,411,411,412,412,412,412,412,412,413,413,413,413,413,413,413,414,414,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,180,180,179,179,179,179,179,179,179,178,178,178,178,178,178,177,177,177,177,177,177,176,176,176,176,176,176,176,175,175,175,175,175,175,409,409,409,409,409,409,410,410,410,410,410,410,411,411,411,411,411,411,411,412,412,412,412,412,412,413,413,413,413,413,413,413,414,414,414,414,414,414,415,415,415,415,415,415,416,416,416,416,416,416,417,417,417,417,417,417,418,418,418,418,418,418,184,184,184,184,184,184,183,183,183,183,183,183,182,182,182,182,182,182,181,181,181,181,181,181,180,180,180,180,180,180,179,179,179,179,179,179,179,178,178,178,178,178,178,177,177,177,177,177,177,177,176,176,176,176,176,176,175,175,175,175,175,175,409,409,409,409,409,409,410,410,410,410,410,410,410,411,411,411,411,411,411,412,412,412,412,412,412,412,413,413,413,413,413,413,413,424,414,414,414,414,414,415,415,415,425,425,425,426,426,426,416,416,416,417,417,417,427,427,427,428,428,428,418,418,418,184,184,184,194,194,194,193,193,193,183,183,183,182,182,182,192,192,192,191,191,191,181,181,181,180,180,180,180,180,190,179,179,179,179,179,179,179,178,178,178,178,178,178,178,177,177,177,177,177,177,176,176,176,176,176,176,176,175,175,175,175,175,175,419,419,419,409,409,409,410,420,420,420,420,420,420,411,411,421,421,421,421,412,412,422,422,422,422,422,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,425,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,191,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,188,188,188,188,188,178,178,187,187,187,187,177,177,186,186,186,186,186,186,176,175,175,175,185,185,185,419,419,419,419,419,419,420,420,420,420,420,420,420,421,421,421,421,421,421,421,422,422,422,422,422,422,423,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,426,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,192,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,189,188,188,188,188,188,188,187,187,187,187,187,187,187,186,186,186,186,186,186,186,185,185,185,185,185,185,419,419,419,419,419,419,420,420,420,420,420,420,420,421,421,421,421,421,421,421,422,422,422,422,422,422,423,423,423,423,423,423,423,424,424,424,424,424,424,425,425,425,425,425,425,436,426,426,426,426,426,426,427,427,427,427,427,427,428,428,428,428,428,428,194,194,194,194,194,194,193,193,193,193,193,193,192,192,192,192,192,192,202,191,191,191,191,191,191,190,190,190,190,190,190,189,189,189,189,189,189,189,188,188,188,188,188,188,187,187,187,187,187,187,187,186,186,186,186,186,186,186,185,185,185,185,185,185,419,419,419,419,419,419,419,420,420,430,430,430,430,430,431,431,421,421,421,421,422,422,422,422,422,432,432,433,433,433,433,423,423,424,424,424,434,434,434,434,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,427,428,438,438,438,438,438,204,204,204,204,204,194,193,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,200,200,200,200,190,190,190,189,189,199,199,199,199,198,198,188,188,188,188,188,187,187,187,187,197,197,196,196,196,196,196,186,186,185,185,185,185,185,185,185,429,429,429,429,429,429,429,430,430,430,430,430,430,431,431,431,431,431,431,431,432,432,432,432,432,432,432,433,433,433,433,433,433,434,434,434,434,434,434,435,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,437,438,438,438,438,438,438,204,204,204,204,204,204,203,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,201,200,200,200,200,200,200,199,199,199,199,199,199,198,198,198,198,198,198,198,197,197,197,197,197,197,197,196,196,196,196,196,196,195,195,195,195,195,195,195,429,429,429,429,429,429,429,430,430,430,430,430,430,431,431,431,431,431,431,431,432,432,432,432,432,432,433,433,433,433,433,433,433,434,434,434,434,434,434,435,435,435,435,435,435,435,436,436,436,436,436,436,437,437,437,437,437,437,437,438,438,438,438,438,438,204,204,204,204,204,204,203,203,203,203,203,203,203,202,202,202,202,202,202,201,201,201,201,201,201,201,200,200,200,200,200,200,199,199,199,199,199,199,199,198,198,198,198,198,198,197,197,197,197,197,197,197,196,196,196,196,196,196,195,195,195,195,195,195,195,429,429,429,429,429,429,429,440,440,430,430,430,430,431,431,431,431,431,441,441,442,432,432,432,432,432,432,433,433,433,433,443,443,443,444,434,434,434,434,434,435,445,445,445,445,445,445,446,446,446,446,436,436,437,447,447,447,447,447,447,448,448,438,438,438,438,204,204,204,204,214,214,213,213,213,213,213,213,203,202,202,212,212,212,212,211,211,211,211,211,211,201,200,200,200,200,200,210,209,209,209,199,199,199,199,198,198,198,198,198,198,208,207,207,197,197,197,197,197,196,196,196,196,206,206,195,195,195,195,195,195,195,439,439,439,439,439,439,439,440,440,440,440,440,440,441,441,441,441,441,441,441,442,442,442,442,442,442,442,443,443,443,443,443,443,444,444,444,444,444,444,444,445,445,445,445,445,445,446,446,446,446,446,446,446,447,447,447,447,447,447,447,448,448,448,448,448,448,214,214,214,214,214,214,213,213,213,213,213,213,213,212,212,212,212,212,212,212,211,211,211,211,211,211,210,210,210,210,210,210,210,209,209,209,209,209,209,208,208,208,208,208,208,208,207,207,207,207,207,207,207,206,206,206,206,206,206,205,205,205,205,205,205,205,439,439,439,439,439,439,439,440,440,440,440,440,440,440,441,441,441,441,441,441,441,442,442,442,442,442,442,442,443,443,443,443,443,443,444,444,444,444,444,444,444,445,445,445,445,445,445,446,446,446,446,446,446,446,447,447,447,447,447,447,448,448,448,448,448,448,448,214,214,214,214,214,214,214,213,213,213,213,213,213,212,212,212,212,212,212,212,211,211,211,211,211,211,210,210,210,210,210,210,210,209,209,209,209,209,209,208,208,208,208,208,208,208,207,207,207,207,207,207,207,206,206,206,206,206,206,206,205,205,205,205,205,205,205,439,439,439,439,439,439,439,450,440,440,440,440,440,440,441,441,441,441,441,451,452,442,442,442,442,442,442,443,443,443,443,443,443,453,454,444,444,444,444,444,444,445,445,445,455,455,455,456,456,456,456,446,446,446,447,447,457,457,457,457,458,448,448,448,448,448,448,214,214,214,214,214,214,224,223,223,223,223,213,213,212,212,212,222,222,222,222,221,221,221,211,211,211,210,210,210,210,210,210,220,219,209,209,209,209,209,209,208,208,208,208,208,208,218,217,207,207,207,207,207,206,206,206,206,206,206,216,205,205,205,205,205,205,205,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,456,456,456,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,222,222,222,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,456,456,456,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,222,222,222,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,449,449,449,449,449,449,450,450,450,450,450,450,450,451,451,451,451,451,451,451,452,452,452,452,452,452,452,453,453,453,453,453,453,453,454,454,454,454,454,454,454,455,455,455,455,455,455,455,466,466,466,456,456,456,456,457,457,457,457,457,457,458,458,458,458,458,458,458,224,224,224,224,224,224,224,223,223,223,223,223,223,222,222,222,222,232,232,232,221,221,221,221,221,221,221,220,220,220,220,220,220,220,219,219,219,219,219,219,219,218,218,218,218,218,218,218,217,217,217,217,217,217,217,216,216,216,216,216,216,216,215,215,215,215,215,215,215,449,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,215,459,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,225,459,459,459,459,459,459,459,459,460,460,460,460,460,460,460,461,461,461,461,461,461,461,462,462,462,462,462,462,462,463,463,463,463,463,463,463,464,464,464,464,464,464,464,465,465,465,465,465,465,465,466,466,466,466,466,466,467,467,467,467,467,467,467,468,468,468,468,468,468,468,234,234,234,234,234,234,234,233,233,233,233,233,233,233,232,232,232,232,232,232,231,231,231,231,231,231,231,230,230,230,230,230,230,230,229,229,229,229,229,229,229,228,228,228,228,228,228,228,227,227,227,227,227,227,227,226,226,226,226,226,226,226,225,225,225,225,225,225,225,225}; -const Int_t AliL3TPCMapping::fgkOPin[fgkNOROC] = {2,4,1,3,4,2,1,3,2,1,3,5,2,4,1,3,2,4,1,3,5,2,1,3,5,2,4,1,3,2,4,1,3,2,1,3,5,5,3,1,2,3,1,4,2,3,1,4,2,5,3,1,2,5,3,1,4,2,3,1,4,2,5,3,1,2,3,1,2,4,3,1,4,2,6,8,5,7,8,6,5,7,4,6,8,7,9,6,8,5,7,6,8,7,9,4,6,8,7,9,6,8,5,7,6,8,5,7,4,6,7,9,9,7,6,4,7,5,8,6,7,5,8,6,9,7,8,6,4,9,7,8,6,7,5,8,6,9,7,8,6,4,7,5,6,8,7,5,8,6,10,12,11,9,10,12,11,9,10,12,14,13,11,10,12,11,9,10,12,13,11,10,12,14,13,11,10,12,11,9,10,12,11,9,8,10,13,11,11,13,10,8,9,11,12,10,9,11,12,10,11,13,14,12,10,11,13,12,10,9,11,12,10,11,13,14,12,10,9,11,12,10,9,11,12,10,14,16,15,13,14,16,15,13,16,18,20,17,15,14,16,15,13,14,16,17,15,16,18,20,17,15,14,16,15,13,14,16,15,13,12,14,17,15,15,17,14,12,13,15,16,14,13,15,16,14,15,17,20,18,16,15,17,16,14,13,15,16,14,15,17,20,18,16,13,15,16,14,13,15,16,14,18,20,19,17,18,20,19,17,4,2,0,21,19,18,20,19,17,18,20,21,19,0,2,4,21,19,18,20,19,17,18,20,19,17,16,18,21,19,19,21,18,16,17,19,20,18,17,19,20,18,19,21,4,2,0,19,21,20,18,17,19,20,18,19,21,0,2,4,17,19,20,18,17,19,20,18,4,2,0,21,4,2,0,1,21,8,6,1,3,2,0,1,21,6,4,2,0,1,6,8,1,3,2,0,1,3,21,2,0,1,21,20,0,2,4,4,2,0,20,21,1,0,2,21,3,1,0,2,3,1,8,6,1,0,2,4,6,21,1,0,2,3,1,6,8,21,1,0,2,4,21,0,2,4,8,6,3,1,8,6,3,5,7,12,10,5,7,6,4,3,5,8,10,3,5,7,12,10,7,5,8,6,4,5,7,6,4,3,5,6,8,1,3,3,1,8,6,5,3,4,6,7,5,4,6,8,5,7,10,12,7,5,3,10,8,5,3,4,6,7,5,10,12,7,5,3,6,8,1,3,6,8,12,10,7,5,10,12,13,9,15,14,16,13,9,10,8,7,9,12,14,13,9,15,16,14,13,9,10,12,14,13,9,10,8,9,7,10,12,7,5,5,7,12,10,7,9,8,10,9,13,14,12,10,9,13,14,16,15,9,13,14,12,9,7,8,10,9,13,16,14,15,9,13,12,10,5,7,10,12,14,16,13,9,14,16,18,19,17,18,20,22,17,15,14,12,15,13,16,18,19,17,22,20,18,17,15,16,18,17,15,14,16,12,15,13,14,16,13,9,9,13,16,14,13,15,12,16,14,15,17,18,16,15,17,18,20,22,17,19,18,16,13,15,12,14,15,17,22,20,18,17,19,18,16,14,9,13,16,14,18,20,17,15,20,22,21,3,5,2,1,3,21,19,18,16,19,17,20,22,21,5,2,1,3,21,19,20,22,21,19,18,20,22,19,17,18,20,17,15,15,17,20,18,17,19,22,20,18,19,21,22,20,19,21,3,1,2,5,21,22,20,17,19,16,18,19,21,3,1,2,5,3,21,22,20,15,17,20,18,1,22,21,19,4,2,1,7,9,6,4,5,7,3,22,20,21,2,3,1,7,9,6,4,5,7,9,3,1,7,9,2,1,3,21,1,3,22,21,19,19,21,22,3,1,21,3,1,2,9,7,1,3,9,7,5,4,6,9,7,1,3,2,21,20,22,3,7,5,4,6,9,7,1,2,4,19,21,22,1,2,3,5,7,8,6,11,13,8,10,12,9,11,1,5,7,9,4,6,8,11,13,8,10,11,13,2,4,5,11,13,6,4,5,7,4,2,5,7,9,9,7,5,2,4,7,5,4,6,13,11,5,4,2,13,11,10,8,13,11,8,6,4,9,7,5,1,11,9,12,10,8,13,11,6,8,7,5,3,2,4,6,8,9,11,10,12,17,15,14,16,13,15,2,4,6,11,13,10,12,14,17,15,12,14,17,15,6,8,10,15,17,10,8,11,9,6,8,10,11,13,13,11,10,8,6,9,11,8,10,17,15,10,8,6,15,17,14,12,15,17,14,12,10,13,11,6,4,2,15,13,16,14,15,17,12,10,11,9,8,6,4,10,12,14,15,13,14,16,21,19,18,20,17,19,8,10,12,17,15,16,18,20,21,19,16,20,21,19,12,14,16,21,19,14,12,15,13,12,14,16,17,15,15,17,16,14,12,13,15,12,14,19,21,16,14,12,19,21,20,16,19,21,20,18,16,15,17,12,10,8,19,17,20,18,19,21,16,14,13,15,14,12,10,16,18,20,19,17,18,20,5,7,3,5,7,21,14,18,20,21,19,4,2,1,3,7,18,1,5,9,18,20,2,3,20,18,16,19,17,18,20,21,19,7,7,19,21,20,18,17,19,16,18,20,3,2,20,18,9,5,1,18,7,3,1,2,4,19,21,20,18,14,21,7,5,3,7,5,20,18,17,19,20,18,16,2,3,1,5,21,2,1,3,9,4,2,1,9,11,16,3,1,7,11,8,6,5,9,4,2,3,7,11,6,4,1,5,1,5,7,9,21,2,1,3,5,9,9,5,3,1,2,21,9,7,5,1,5,1,4,6,11,7,3,2,4,9,5,6,8,11,7,1,3,16,11,9,1,2,4,9,3,1,2,21,5,1,3,2,8,6,4,7,9,4,6,11,13,6,8,10,13,15,2,4,5,9,13,10,12,13,11,6,8,10,13,15,8,10,7,9,2,4,3,11,13,4,6,8,11,13,13,11,8,6,4,13,11,3,4,2,9,7,10,8,15,13,10,8,6,11,13,12,10,13,9,5,4,2,15,13,10,8,6,13,11,6,4,9,7,4,6,8,10,12,14,13,11,8,10,17,15,12,14,16,19,17,6,8,10,15,17,14,16,17,15,12,14,16,19,17,12,14,13,11,6,10,8,15,17,10,12,14,17,15,15,17,14,12,10,17,15,8,10,6,11,13,14,12,17,19,16,14,12,15,17,16,14,17,15,10,8,6,17,19,16,14,12,15,17,10,8,11,13,14,12,10,16,18,20,17,15,12,14,20,21,19,18,20,21,3,12,16,20,21,19,0,18,20,21,19,18,20,21,1,16,18,20,17,15,12,16,14,21,19,16,18,20,21,19,19,21,20,18,16,19,21,14,16,12,15,17,20,18,16,1,21,20,18,19,21,20,18,0,19,21,20,16,12,3,21,20,18,19,21,20,14,12,15,17,20,18,16,2,0,1,21,19,16,18,0,1,3,2,0,1,7,14,18,0,1,3,2,1,3,5,7,0,2,4,3,0,1,3,21,19,20,18,0,1,3,0,3,1,5,7,7,5,1,3,0,3,1,0,18,20,19,21,3,1,0,3,4,2,0,7,5,3,1,2,3,1,0,18,14,7,1,0,2,3,1,0,18,16,19,21,1,0,2,4,6,3,5,7,6,4,2,5,7,6,4,5,9,6,4,2,5,7,4,6,8,9,13,8,6,5,7,6,2,4,5,7,6,4,2,5,7,2,4,6,9,13,13,9,6,4,2,7,5,2,4,6,7,5,4,2,6,7,5,6,8,13,9,8,6,4,7,5,2,4,6,9,5,4,6,7,5,2,4,6,7,5,3,6,4,8,10,9,13,15,8,10,12,13,9,10,8,13,15,8,10,12,13,9,10,12,14,15,17,10,12,13,9,8,10,12,9,13,8,10,12,13,9,8,10,12,17,15,15,17,12,10,8,9,13,12,10,8,13,9,12,10,8,9,13,12,10,17,15,14,12,10,9,13,12,10,8,15,13,8,10,9,13,12,10,8,15,13,9,10,8,12,14,16,19,17,14,16,18,17,15,14,16,12,19,17,14,16,18,17,15,16,20,21,19,14,16,18,17,15,14,16,18,17,15,14,16,18,17,15,14,18,22,21,19,19,21,22,18,14,15,17,18,16,14,15,17,18,16,14,15,17,18,16,14,19,21,20,16,15,17,18,16,14,17,19,12,16,14,15,17,18,16,14,17,19,16,14,12,18,20,22,21,7,1,20,22,21,19,18,20,22,21,5,1,22,20,21,19,18,22,3,7,3,20,22,21,19,20,22,21,19,7,3,20,22,21,19,16,20,1,5,9,9,5,1,20,16,19,21,22,20,3,7,19,21,22,20,19,21,22,20,3,7,3,22,18,19,21,20,22,1,5,21,22,20,18,19,21,22,20,1,7,21,22,20,18,2,1,3,5,9,2,3,5,7,11,2,1,3,7,11,2,3,5,7,11,2,1,5,9,2,5,1,7,9,2,3,1,5,9,2,5,1,7,9,4,2,3,7,11,11,7,3,2,4,9,7,1,5,2,9,5,1,3,2,9,7,1,5,2,9,5,1,2,11,7,5,3,2,11,7,3,1,2,11,7,5,3,2,9,5,3,1,2,4,6,8,11,13,4,6,8,9,13,4,6,8,9,13,4,6,8,9,13,4,6,8,11,13,4,6,8,11,13,4,6,8,11,13,4,6,8,11,13,6,8,10,13,15,15,13,10,8,6,13,11,8,6,4,13,11,8,6,4,13,11,8,6,4,13,11,8,6,4,13,9,8,6,4,13,9,8,6,4,13,9,8,6,4,13,11,8,6,4,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,10,12,14,17,15,12,14,16,19,17,17,19,16,14,12,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,15,17,14,12,10,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,18,20,21,2,3,3,2,21,20,18,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,3,1,7,11,4,2,1,3,5,2,1,3,5,7,2,1,3,5,4,2,1,3,5,3,1,7,11,2,1,3,5,7,2,1,3,5,5,3,1,7,9,6,4,1,5,5,1,4,6,9,7,1,3,5,5,3,1,2,7,5,3,1,2,11,7,1,3,5,3,1,2,4,5,3,1,2,7,5,3,1,2,5,3,1,2,4,11,7,1,3,2,4,5,9,13,8,6,9,7,4,6,8,9,11,4,6,7,9,11,8,6,7,9,2,4,5,9,13,4,8,6,9,11,4,6,7,9,2,4,6,11,13,8,10,7,9,9,7,10,8,13,11,6,4,2,9,7,6,4,11,9,6,8,4,13,9,5,4,2,9,7,6,8,11,9,7,6,4,11,9,8,6,4,7,9,6,8,13,9,5,4,2,6,8,10,15,17,10,12,13,11,10,12,14,15,13,8,10,17,15,13,10,12,13,11,6,8,10,15,17,10,14,12,15,13,8,10,13,11,8,10,12,17,15,12,14,15,11,11,15,14,12,15,17,12,10,8,11,13,10,8,13,15,12,14,10,17,15,10,8,6,11,13,12,10,13,15,17,10,8,13,15,14,12,10,11,13,12,10,17,15,10,8,6,12,18,21,19,14,16,18,17,15,16,18,20,19,17,12,18,21,19,14,16,18,17,15,12,16,20,21,19,16,20,18,19,17,12,14,17,15,14,18,20,21,19,16,18,19,13,13,19,18,16,19,21,20,18,14,15,17,14,12,17,19,18,20,16,19,21,20,16,12,15,17,18,16,14,19,21,18,12,17,19,20,18,16,15,17,18,16,14,19,21,18,12,14,16,20,1,3,0,2,20,21,19,0,1,3,21,14,16,20,0,1,0,1,20,21,19,14,18,1,3,2,4,8,10,21,16,18,20,21,19,16,0,1,5,0,3,20,21,17,17,21,20,3,0,5,1,0,16,19,21,20,18,16,21,10,8,4,2,3,1,18,14,19,21,20,1,0,1,0,20,16,14,21,3,1,0,19,21,20,2,0,3,1,20,16,14,4,2,0,5,7,4,6,1,3,2,4,6,5,7,2,4,6,3,5,2,4,3,5,4,2,0,5,7,0,6,1,3,5,0,1,3,5,7,4,2,3,7,4,2,1,5,7,7,5,1,2,4,7,3,2,4,7,5,3,1,0,5,3,1,6,0,7,5,0,2,4,5,3,4,2,5,3,6,4,2,7,5,6,4,2,3,1,6,4,7,5,0,2,4,6,8,10,9,13,8,10,9,5,8,10,12,13,9,8,10,7,9,13,6,8,7,9,6,8,10,9,13,12,14,7,9,2,4,6,9,13,6,8,10,9,13,6,8,10,9,13,13,9,10,8,6,13,9,10,8,6,13,9,6,4,2,9,7,14,12,13,9,10,8,6,9,7,8,6,13,9,7,10,8,9,13,12,10,8,5,9,10,8,13,9,10,8,6,12,14,20,17,15,12,16,20,15,7,14,20,17,15,12,14,16,17,15,10,14,16,15,13,12,14,16,17,15,16,18,15,13,8,12,14,17,15,12,14,16,17,15,12,14,16,17,15,15,17,16,14,12,15,17,16,14,12,15,17,14,12,8,13,15,18,16,15,17,16,14,12,13,15,16,14,10,15,17,16,14,12,15,17,20,14,7,15,20,16,12,15,17,20,14,12,16,18,22,21,19,14,18,22,19,13,16,22,21,19,18,20,22,21,19,12,20,21,19,17,18,20,22,21,19,20,22,21,17,10,18,22,21,19,18,20,22,21,19,18,20,22,21,19,19,21,22,20,18,19,21,22,20,18,19,21,22,18,10,17,21,22,20,19,21,22,20,18,17,19,21,20,12,19,21,22,20,18,19,21,22,16,13,19,22,18,14,19,21,22,18,16,4,2,1,3,5,4,2,1,21,17,18,1,3,5,2,3,1,5,7,18,22,2,4,3,4,2,1,3,5,3,1,5,19,16,20,1,3,5,2,3,1,5,7,2,3,1,5,7,7,5,1,3,2,7,5,1,3,2,5,3,1,20,16,19,5,1,3,5,3,1,2,4,3,4,2,22,18,7,5,1,3,2,5,3,1,18,17,21,1,2,4,5,3,1,2,4,6,8,7,9,11,6,8,3,5,7,4,2,7,9,4,6,8,9,11,6,8,1,5,7,6,8,9,7,11,2,4,7,9,6,4,2,7,9,4,6,8,9,11,4,6,8,9,11,11,9,8,6,4,11,9,8,6,4,9,7,2,4,6,9,7,4,2,11,7,9,8,6,7,5,1,8,6,11,9,8,6,4,9,7,2,4,7,5,3,8,6,11,9,7,8,6,10,12,14,15,13,10,12,14,11,9,6,8,10,11,13,10,12,14,15,13,10,12,9,11,10,12,14,15,13,6,8,10,11,13,8,10,12,11,13,10,12,14,15,13,10,12,14,15,13,13,15,14,12,10,13,15,14,12,10,13,11,12,10,8,13,11,10,8,6,13,15,14,12,10,11,9,12,10,13,15,14,12,10,13,11,10,8,6,9,11,14,12,10,13,15,14,12,10,16,18,20,21,17,16,18,20,17,13,12,14,16,17,15,16,18,20,21,17,14,16,15,13,16,20,21,19,17,12,14,16,17,15,14,18,19,17,15,16,18,20,21,17,16,20,21,19,17,17,19,21,20,16,17,21,20,18,16,15,17,19,18,14,15,17,16,14,12,17,19,21,20,16,13,15,16,14,17,21,20,18,16,15,17,16,14,12,13,17,20,18,16,17,21,20,18,16,2,1,3,5,19,3,1,21,19,15,1,18,20,21,19,2,1,3,5,19,18,20,21,17,18,2,1,3,5,5,18,20,21,19,16,20,21,3,7,5,3,1,9,19,18,2,1,3,5,5,3,1,2,18,19,9,1,3,5,7,3,21,20,16,19,21,20,18,5,5,3,1,2,18,17,21,20,18,19,5,3,1,2,19,21,20,18,1,15,19,21,1,3,19,5,3,1,2,4,6,8,7,9,4,2,5,7,9,2,5,3,7,9,8,6,4,7,9,2,1,3,5,19,4,6,8,7,9,2,3,1,7,9,4,2,1,5,9,2,4,7,11,13,4,6,8,7,9,9,7,8,6,4,13,11,7,4,2,9,5,1,2,4,9,7,1,3,2,9,7,8,6,4,19,5,3,1,2,9,7,4,6,8,9,7,3,5,2,9,7,5,2,4,9,7,8,6,4,10,12,14,13,11,6,8,10,11,13,4,6,8,11,13,10,12,14,13,11,8,6,4,7,9,10,12,14,13,11,4,6,8,11,13,6,8,10,11,13,6,8,10,15,17,10,12,14,13,11,11,13,14,12,10,17,15,10,8,6,13,11,10,8,6,13,11,8,6,4,11,13,14,12,10,9,7,4,6,8,11,13,14,12,10,13,11,8,6,4,13,11,10,8,6,11,13,14,12,10,16,18,20,17,15,12,14,18,17,15,10,12,14,17,15,16,18,20,17,15,10,12,14,13,11,16,18,20,19,15,10,12,14,17,15,12,14,16,17,15,12,16,20,21,19,16,18,20,17,15,15,17,20,18,16,19,21,20,16,12,15,17,16,14,12,15,17,14,12,10,15,19,20,18,16,11,13,14,12,10,15,17,20,18,16,15,17,14,12,10,15,17,18,14,12,15,17,20,18,16,4,2,0,21,19,2,16,20,21,19,16,18,20,21,19,0,1,3,21,19,20,18,16,17,15,8,4,0,21,17,16,18,20,21,19,0,18,20,21,19,14,18,0,2,4,0,3,1,21,19,19,21,1,3,0,4,2,0,18,14,19,21,20,18,0,19,21,20,18,16,17,21,0,4,8,15,17,16,18,20,19,21,3,1,0,19,21,20,18,16,19,21,20,16,2,19,21,0,2,4,10,8,6,1,3,4,0,1,3,5,0,3,1,5,7,6,4,2,5,7,2,0,1,3,21,19,10,6,2,1,3,4,2,0,1,3,2,3,1,5,7,10,8,6,1,3,2,4,6,5,7,7,5,6,4,2,3,1,6,8,10,7,5,1,3,2,3,1,0,2,4,3,1,2,6,10,19,21,3,1,0,2,7,5,2,4,6,7,5,1,3,0,5,3,1,0,4,3,1,6,8,10,14,12,9,7,5,6,8,10,7,9,2,4,6,9,13,8,10,12,9,13,4,6,8,5,7,9,14,12,9,7,5,6,8,10,5,7,4,6,8,9,13,14,12,9,7,5,12,10,8,9,13,13,9,8,10,12,5,7,9,12,14,13,9,8,6,4,7,5,10,8,6,5,7,9,12,14,9,7,5,8,6,4,13,9,12,10,8,13,9,6,4,2,9,7,10,8,6,5,7,9,12,14,16,20,17,15,13,12,14,16,15,13,8,10,12,17,15,14,16,18,17,15,10,16,18,17,15,13,16,20,17,15,13,12,14,16,13,9,16,12,10,17,15,16,20,17,15,13,14,16,18,17,15,15,17,18,16,14,13,15,17,20,16,15,17,10,12,16,9,13,16,14,12,13,15,17,20,16,13,15,17,18,16,10,15,17,18,16,14,15,17,12,10,8,13,15,16,14,12,13,15,17,20,16,18,22,21,19,5,18,20,22,21,17,14,18,20,22,21,19,20,22,21,19,7,12,20,22,21,19,5,18,22,21,19,18,20,22,21,19,15,18,14,22,21,19,18,22,21,19,7,5,20,22,21,19,19,21,22,20,5,7,19,21,22,18,19,21,22,14,18,15,19,21,22,20,18,19,21,22,18,5,19,21,22,20,12,7,19,21,22,20,19,21,22,20,18,14,17,21,22,20,18,5,19,21,22,18,4,2,1,3,7,1,3,5,7,19,16,2,1,3,5,7,2,1,3,5,9,14,1,3,7,9,2,3,1,7,11,2,1,3,5,7,17,20,3,1,7,9,2,1,3,5,9,2,3,1,7,9,9,7,1,3,2,9,5,3,1,2,9,7,1,3,20,17,7,5,3,1,2,11,7,1,3,2,9,7,3,1,14,9,5,3,1,2,7,5,3,1,2,16,19,7,5,3,1,7,3,1,2,4,8,6,13,9,11,2,4,6,9,11,8,6,4,9,11,13,4,6,8,11,13,2,4,5,11,13,4,6,8,9,13,4,6,8,9,11,13,2,4,5,11,13,4,6,8,11,13,4,6,8,11,13,13,11,8,6,4,13,11,8,6,4,13,11,5,4,2,13,11,9,8,6,4,13,9,8,6,4,13,11,5,4,2,13,11,8,6,4,13,11,9,4,6,8,11,9,6,4,2,11,9,13,6,8,10,12,14,15,17,8,10,12,14,15,13,10,12,14,15,17,14,12,10,15,17,6,8,10,12,15,17,14,12,10,15,17,14,12,10,17,15,6,8,10,12,15,17,14,12,10,15,17,14,12,10,17,15,15,17,10,12,14,17,15,10,12,14,17,15,12,10,8,6,15,17,10,12,14,17,15,10,12,14,17,15,12,10,8,6,17,15,10,12,14,17,15,14,12,10,13,15,14,12,10,8,17,15,14,12,10,16,18,20,21,19,16,18,20,21,19,17,16,18,20,21,19,16,18,20,21,19,14,16,18,20,21,19,16,18,20,21,19,16,18,20,21,19,20,18,16,14,21,19,16,18,20,21,19,16,18,20,21,19,19,21,20,18,16,19,21,20,18,16,19,21,14,16,18,20,19,21,20,18,16,19,21,20,18,16,19,21,20,18,16,14,19,21,20,18,16,19,21,20,18,16,17,19,21,20,18,16,19,21,20,18,16,3,1,5,7,9,5,3,1,7,9,5,3,1,7,11,2,3,1,5,9,5,3,1,7,11,2,5,3,1,7,9,2,3,1,5,7,2,3,1,5,9,11,2,5,3,1,7,9,2,3,1,5,7,7,5,1,3,2,9,7,1,3,5,2,11,9,5,1,3,2,7,5,1,3,2,9,7,1,3,5,2,11,7,1,3,5,9,5,1,3,2,11,7,1,3,5,9,7,1,3,5,9,7,5,1,3,2,4,6,11,13,2,4,6,11,13,2,4,6,9,13,4,6,8,7,11,2,4,6,9,13,4,6,10,12,11,13,4,6,8,9,11,4,6,8,7,13,15,4,6,8,10,11,13,4,6,8,9,11,11,9,8,6,4,13,11,10,8,6,4,15,13,7,8,6,4,11,9,8,6,4,13,11,12,10,6,4,13,9,6,4,2,11,7,8,6,4,13,9,6,4,2,13,11,6,4,2,13,11,6,4,2,8,10,12,17,15,8,10,16,18,17,15,8,12,16,17,15,10,12,14,15,13,8,10,12,17,15,8,14,16,18,17,15,10,12,14,15,13,10,12,14,17,19,21,12,14,16,18,17,15,10,12,14,15,13,13,15,14,12,10,15,17,18,16,14,12,21,19,17,14,12,10,13,15,14,12,10,15,17,18,16,14,8,15,17,12,10,8,13,15,14,12,10,15,17,16,12,8,15,17,18,16,10,8,15,17,12,10,8,14,18,20,21,19,12,14,20,21,19,10,14,18,20,21,19,16,18,20,21,17,14,18,20,21,19,4,0,1,20,21,19,16,18,20,21,17,16,18,20,1,3,5,4,0,1,20,21,19,16,18,20,21,17,17,21,20,18,16,19,21,20,1,0,4,5,3,1,20,18,16,17,21,20,18,16,19,21,20,1,0,4,19,21,20,18,14,17,21,20,18,16,19,21,20,18,14,10,19,21,20,14,12,19,21,20,18,14,16,0,1,3,7,0,1,3,5,7,2,0,1,3,5,7,5,3,1,7,19,16,2,0,1,3,6,2,3,5,7,4,2,0,1,3,19,0,2,4,6,7,9,6,2,3,5,7,6,4,2,0,1,19,19,1,0,2,4,6,7,5,3,2,6,9,7,6,4,2,0,19,3,1,0,2,4,7,5,3,2,6,3,1,0,2,16,19,7,1,3,5,7,5,3,1,0,2,7,5,3,1,0,7,3,1,0,16,2,4,6,5,9,13,2,6,4,9,13,4,6,8,10,9,13,0,2,4,9,13,4,6,8,5,7,8,10,12,9,13,6,8,10,5,7,9,8,10,12,14,13,15,8,10,12,9,13,8,10,12,7,5,3,3,5,7,12,10,8,13,9,12,10,8,15,13,14,12,10,8,9,7,5,10,8,6,13,9,12,10,8,7,5,8,6,4,13,9,4,2,0,13,9,10,8,6,4,13,9,4,6,2,13,9,5,6,4,2,8,10,12,15,17,8,10,14,12,17,15,12,14,16,17,15,6,8,14,16,17,15,10,12,14,13,9,14,16,18,17,15,12,14,16,15,13,17,16,18,22,20,19,17,14,18,20,17,15,14,16,18,17,13,9,9,13,17,18,16,14,15,17,20,18,14,17,19,20,22,18,16,17,13,15,16,14,12,15,17,18,16,14,9,13,14,12,10,15,17,16,14,8,6,15,17,16,14,12,15,17,12,14,10,8,17,15,12,10,8,14,18,22,21,19,16,18,22,20,21,19,18,20,22,21,19,10,12,20,22,21,19,16,18,20,17,15,3,20,22,21,19,18,20,22,21,19,5,6,2,1,5,9,21,16,22,21,19,5,6,20,22,21,19,15,15,19,21,22,20,6,5,19,21,22,16,21,9,5,1,2,6,5,19,21,22,20,18,19,21,22,20,3,15,17,20,18,16,19,21,22,20,12,10,19,21,22,20,18,19,21,20,22,18,16,19,21,22,18,14,16,20,1,5,7,5,3,1,7,11,4,2,1,3,5,7,18,3,1,7,11,4,5,1,22,21,19,2,5,1,7,11,4,2,1,3,7,9,8,4,3,7,11,4,2,1,3,7,9,8,4,2,1,3,5,5,3,1,2,4,8,9,7,3,1,2,4,11,7,3,4,8,9,7,3,1,2,4,11,7,1,5,2,19,21,22,1,5,4,11,7,1,3,18,7,5,3,1,2,4,11,7,1,3,5,7,5,1,20,16,6,4,2,3,9,11,6,4,2,9,13,6,8,10,9,11,13,4,2,5,9,13,6,2,3,7,9,4,6,8,10,9,13,6,8,10,11,13,15,10,12,14,13,15,6,8,10,11,13,15,10,12,14,7,9,11,11,9,7,14,12,10,15,13,11,10,8,6,15,13,14,12,10,15,13,11,10,8,6,13,9,10,8,6,4,9,7,3,2,6,13,9,5,2,4,13,11,9,10,8,6,13,9,2,4,6,11,9,3,2,4,6,8,10,12,13,15,8,10,12,14,15,17,12,14,16,17,15,6,8,10,12,15,17,8,10,12,11,13,12,14,16,18,17,15,12,16,20,21,19,17,16,18,20,19,17,12,16,18,21,19,17,16,18,20,17,15,13,13,15,17,20,18,16,17,19,21,18,16,12,17,19,20,18,16,17,19,21,20,16,12,15,17,18,16,14,12,13,11,12,10,8,17,15,12,10,8,6,15,17,16,14,12,17,15,14,12,10,8,15,13,12,10,8,14,16,18,20,21,19,17,16,18,20,21,19,2,18,20,21,19,14,16,18,20,21,19,14,16,18,19,15,2,3,1,20,21,19,14,18,2,3,5,9,4,2,1,3,21,14,20,2,1,5,9,4,2,1,3,21,19,19,21,3,1,2,4,9,5,1,2,20,14,21,3,1,2,4,9,5,3,2,18,14,19,21,20,1,3,2,15,19,18,16,14,19,21,20,18,16,14,19,21,20,18,2,19,21,20,18,16,17,19,21,20,18,16,14,5,3,1,7,11,2,5,3,1,7,9,6,4,1,3,5,7,2,3,1,5,7,2,1,3,20,21,17,4,6,5,7,9,8,6,4,1,7,11,10,8,6,5,7,9,8,6,4,3,7,11,10,8,6,5,7,9,9,7,5,6,8,10,11,7,3,4,6,8,9,7,5,6,8,10,11,7,1,4,6,8,9,7,5,6,4,17,21,20,3,1,2,7,5,1,3,2,7,5,3,1,4,6,9,7,1,3,5,2,11,7,1,3,5,2,4,6,9,13,4,6,8,10,11,13,8,10,9,11,13,4,6,8,10,9,11,4,6,8,5,7,8,10,12,15,13,11,10,12,14,13,15,17,12,14,16,15,13,11,10,12,18,17,15,13,12,14,16,15,13,11,11,13,15,16,14,12,13,15,17,18,12,10,11,13,15,16,14,12,17,15,13,14,12,10,11,13,15,12,10,8,7,5,8,6,4,11,9,10,8,6,4,13,11,9,10,8,13,11,10,8,6,4,13,9,6,4,2,8,10,12,14,17,15,12,14,16,17,15,12,14,20,19,17,15,12,14,16,20,17,13,10,12,13,11,9,14,18,20,21,19,17,16,18,20,21,19,5,0,18,20,21,19,17,14,16,20,21,19,3,2,18,20,21,19,17,17,19,21,20,18,2,3,19,21,20,16,14,17,19,21,20,18,0,5,19,21,20,18,16,17,19,21,20,18,14,9,11,13,12,10,13,17,20,16,14,12,15,17,19,20,14,12,15,17,16,14,12,15,17,14,12,10,8,2,16,18,20,21,19,4,18,20,21,19,16,18,21,3,7,9,6,4,18,21,19,15,14,20,19,17,15,16,0,3,1,5,7,4,2,0,1,3,7,4,2,1,3,5,7,6,4,2,0,1,5,4,0,1,3,5,7,7,5,3,1,0,4,5,1,0,2,4,6,7,5,3,1,2,4,7,3,1,0,2,4,7,5,1,3,0,16,15,17,19,20,14,15,19,21,18,4,6,9,7,3,21,18,16,19,21,20,18,4,19,21,20,18,16,2,6,4,0,1,3,5,8,6,2,0,1,3,2,0,1,5,13,10,8,2,0,1,3,16,18,21,0,2,1,2,4,6,8,9,13,6,8,10,12,9,13,6,8,10,9,13,15,8,10,12,14,9,7,6,8,10,9,13,15,15,13,9,10,8,6,7,9,14,12,10,8,15,13,9,10,8,6,13,9,12,10,8,6,13,9,8,6,4,2,1,2,0,21,18,16,3,1,0,2,8,10,13,5,1,0,2,3,1,0,2,6,8,5,3,1,0,4,6,8,10,12,13,9,7,10,12,14,16,7,5,4,6,8,15,17,12,14,16,9,7,5,8,6,4,3,5,7,10,12,14,16,17,15,14,16,18,20,17,15,12,14,22,21,19,17,16,18,20,22,15,13,12,18,20,21,19,17,17,19,21,20,18,12,13,15,22,20,18,16,17,19,21,22,14,12,15,17,20,18,16,14,15,17,16,14,12,10,7,5,3,4,6,8,5,7,9,16,14,12,17,15,8,6,4,5,7,16,14,12,10,7,9,13,12,10,8,14,18,22,19,17,15,18,20,22,15,13,9,10,12,18,22,21,19,18,20,22,17,15,13,10,12,14,15,13,9,18,20,22,21,19,7,4,2,3,22,21,19,16,18,20,1,3,7,6,2,1,21,19,17,14,16,22,1,3,7,7,3,1,22,16,14,17,19,21,1,2,6,7,3,1,20,18,16,19,21,22,3,2,4,7,19,21,22,20,18,9,13,15,14,12,10,13,15,17,22,20,18,19,21,22,18,12,10,9,13,15,22,20,18,15,17,19,22,18,14,16,20,21,1,5,7,4,1,5,21,19,17,14,16,20,1,5,7,4,1,3,21,19,16,18,20,22,21,19,17,4,2,1,3,5,9,8,6,1,5,7,9,8,6,4,2,5,9,8,4,3,5,7,9,8,6,4,2,5,9,9,5,2,4,6,8,9,7,5,3,4,8,9,5,2,4,6,8,9,7,5,1,6,8,9,5,3,1,2,4,17,19,21,22,20,18,16,19,21,3,1,4,7,5,1,20,16,14,17,19,21,5,1,4,7,5,1,21,20,16,8,6,4,2,3,9,8,6,2,3,7,9,8,6,4,2,3,9,8,6,2,5,7,9,4,2,1,3,5,7,9,6,8,10,11,13,15,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,15,13,11,10,12,14,11,13,15,15,13,11,14,12,10,11,13,15,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,15,13,11,10,8,6,9,7,5,3,1,2,4,9,7,5,2,6,8,9,3,2,4,6,8,9,7,3,2,6,8,9,3,2,4,6,8,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,11,13,15,10,12,14,15,13,11,6,8,10,12,11,13,15,12,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,12,15,13,11,12,10,8,6,11,13,15,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,15,13,11,14,12,10,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,16,18,20,21,19,17,14,16,18,20,21,19,17,14,16,6,1,3,5,6,4,2,1,3,5,8,6,4,2,1,3,6,4,2,1,3,5,8,6,4,2,1,3,3,1,2,4,6,8,5,3,1,2,4,6,3,1,2,4,6,8,5,3,1,2,4,6,5,3,1,6,16,14,17,19,21,20,18,16,14,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,17,19,21,20,18,16,8,6,4,2,1,3,8,6,4,2,1,3,5,2,1,3,5,7,9,6,4,2,1,3,5,8,6,4,2,1,3,5,10,8,4,2,7,9,8,10,13,11,9,7,14,12,10,9,7,5,8,10,7,9,11,13,14,12,10,9,7,5,5,7,9,10,12,14,13,11,9,7,10,8,5,7,9,10,12,14,7,9,11,13,10,8,9,7,2,4,8,10,5,3,1,2,4,6,8,5,3,1,2,4,6,9,7,5,3,1,2,5,3,1,2,4,6,8,3,1,2,4,6,8,14,12,10,9,7,5,10,12,13,11,9,7,10,8,6,4,11,13,15,8,10,13,11,9,7,14,12,10,13,11,9,7,12,14,16,15,13,11,12,16,21,19,17,15,16,18,20,15,13,11,12,16,21,19,17,15,16,18,20,15,13,11,11,13,15,20,18,16,15,17,19,21,16,12,11,13,15,20,18,16,15,17,19,21,16,12,11,13,15,16,14,12,7,9,11,13,10,12,14,7,9,11,13,10,8,15,13,11,4,6,8,10,7,9,11,13,12,10,5,7,9,10,12,14,16,18,20,15,13,11,14,18,20,21,19,17,15,12,16,20,21,19,17,12,16,20,21,19,17,15,16,18,20,21,19,17,15,0,18,20,21,19,17,14,18,20,2,0,1,4,2,0,21,19,17,14,18,20,4,2,0,4,2,0,21,19,17,17,19,21,0,2,4,0,2,4,20,18,14,17,19,21,0,2,4,1,0,2,20,18,14,17,19,21,20,18,0,15,17,19,21,20,18,16,15,17,19,21,20,16,12,17,19,21,20,16,12,15,17,19,21,20,18,14,11,13,15,20,18,16,2,0,1,21,19,17,16,6,4,2,0,1,3,14,18,4,2,0,1,14,18,4,2,0,1,3,8,6,4,2,0,1,4,2,1,3,5,7,10,8,6,4,3,5,7,8,6,1,3,5,7,10,8,6,1,3,5,8,6,1,3,5,7,7,5,3,1,6,8,5,3,1,6,8,10,7,5,3,1,6,8,7,5,3,4,6,8,10,7,5,3,1,2,4,1,0,2,4,6,8,3,1,0,2,4,18,14,1,0,2,4,18,14,3,1,0,2,4,6,16,17,19,21,1,0,2,8,6,4,3,5,7,8,10,12,5,7,9,13,10,8,6,12,3,5,7,10,8,6,5,7,9,16,14,12,10,7,5,3,10,8,6,9,13,15,12,14,16,9,13,15,16,14,12,10,9,13,15,16,14,12,13,9,7,14,12,10,15,13,9,9,13,15,10,12,14,7,9,13,12,14,16,15,13,9,10,12,14,16,15,13,9,16,14,12,15,13,9,6,8,10,3,5,7,10,12,14,16,9,7,5,6,8,10,7,5,3,12,6,8,10,13,9,7,5,12,10,8,7,5,3,4,6,8,10,12,14,15,13,9,14,18,22,21,19,17,15,14,16,18,22,15,13,9,12,18,20,17,15,13,18,20,22,17,15,13,9,12,18,22,21,19,17,18,20,22,21,19,17,6,18,20,22,21,19,17,18,20,22,21,19,15,16,20,22,21,19,17,17,19,21,22,20,16,15,19,21,22,20,18,17,19,21,22,20,18,6,17,19,21,22,20,18,17,19,21,22,18,12,9,13,15,17,22,20,18,13,15,17,20,18,12,9,13,15,22,18,16,14,15,17,19,21,22,18,14,9,13,15,14,12,10,16,18,20,22,21,19,17,16,20,6,4,2,1,3,2,1,20,21,19,17,14,16,22,21,19,3,5,2,1,3,5,21,19,14,16,20,2,1,5,7,6,4,2,1,3,5,8,4,2,1,3,5,6,4,2,1,3,5,17,18,6,4,2,1,3,3,1,2,4,6,18,17,5,3,1,2,4,6,5,3,1,2,4,8,5,3,1,2,4,6,7,5,1,2,20,16,14,19,21,5,3,1,2,5,3,19,21,22,16,14,17,19,21,20,1,2,3,1,2,4,6,20,16,17,19,21,22,20,18,16,8,6,4,2,1,3,5,14,12,10,8,5,7,6,4,3,5,7,9,11,8,6,4,2,1,7,9,4,6,8,7,9,11,10,8,6,4,3,9,8,10,12,13,11,9,7,10,12,14,11,9,7,12,10,8,7,9,11,13,8,10,12,9,7,5,5,7,9,12,10,8,13,11,9,7,8,10,12,7,9,11,14,12,10,7,9,11,13,12,10,8,9,3,4,6,8,10,11,9,7,8,6,4,9,7,1,2,4,6,8,11,9,7,5,3,4,6,7,5,8,10,12,14,5,3,1,2,4,6,8,14,12,10,7,9,11,13,16,18,20,13,11,9,14,12,10,8,17,15,13,10,12,14,15,13,11,10,12,18,19,17,15,13,12,14,16,15,13,11,14,18,20,21,19,17,15,16,18,20,17,15,13,14,18,20,21,19,17,15,14,16,18,15,13,11,11,13,15,18,16,14,15,17,19,21,20,18,14,13,15,17,20,18,16,15,17,19,21,20,18,14,11,13,15,16,14,12,13,15,17,19,18,12,10,11,13,15,14,12,10,13,15,17,8,10,12,14,9,11,13,20,18,16,13,11,9,7,10,12,14,16,18,20,21,19,17,15,4,2,21,19,17,15,16,18,20,21,19,3,7,4,16,18,20,21,19,17,14,16,20,21,3,5,7,6,18,20,21,19,17,16,4,2,1,3,5,7,4,2,1,3,21,19,16,6,4,2,1,3,5,6,4,20,21,19,17,17,19,21,20,4,6,5,3,1,2,4,6,16,19,21,3,1,2,4,7,5,3,1,2,4,16,17,19,21,20,18,6,7,5,3,21,20,16,14,17,19,21,20,18,16,4,7,3,19,21,20,18,16,15,17,19,21,2,4,15,17,19,21,20,18,16,4,2,1,3,5,7,9,6,1,3,5,7,9,8,6,4,2,1,5,9,6,2,1,3,5,7,9,8,6,4,2,1,9,10,8,4,2,1,3,5,10,8,6,9,11,13,12,10,8,6,5,7,9,12,10,8,7,9,11,13,10,8,2,1,3,5,5,3,1,2,8,10,13,11,9,7,8,10,12,9,7,5,6,8,10,12,13,11,9,6,8,10,5,3,1,2,4,8,10,9,1,2,4,6,8,9,7,5,3,1,2,6,9,5,1,2,4,6,8,9,7,5,3,1,6,9,7,5,3,1,2,4,12,10,8,6,11,13,15,8,10,12,14,11,13,15,16,14,12,10,11,13,15,8,10,12,14,11,13,15,14,12,10,15,13,11,16,14,12,7,9,11,13,16,14,12,19,17,15,14,16,18,20,15,13,11,14,18,21,19,17,15,16,14,12,13,11,9,7,7,9,11,13,12,14,16,15,17,19,21,18,14,11,13,15,20,18,16,14,15,17,19,12,14,16,13,11,9,7,12,14,16,11,13,15,10,12,14,15,13,11,14,12,10,8,15,13,11,10,12,14,16,15,13,11,14,12,10,8,15,13,11,6,8,10,12,14,16,18,20,21,19,17,6,16,18,20,21,19,17,18,20,21,19,17,5,8,16,18,20,21,19,17,16,18,20,21,19,17,3,8,18,20,21,19,17,15,18,20,21,0,1,3,10,8,6,4,21,19,17,16,20,6,2,1,5,8,18,20,21,19,17,15,15,17,19,21,20,18,8,5,1,2,6,20,16,17,19,21,4,6,8,10,3,1,0,21,20,18,15,17,19,21,20,18,8,3,17,19,21,20,18,16,17,19,21,20,18,16,8,5,17,19,21,20,18,17,19,21,20,18,16,6,17,19,21,20,18,16,14,8,6,4,2,0,1,3,10,8,4,2,0,1,3,6,4,2,0,1,3,7,10,6,4,2,0,1,3,8,6,4,2,0,1,5,10,6,4,2,0,1,3,8,6,4,2,5,7,16,14,12,2,0,1,3,10,8,4,0,3,7,10,6,4,0,2,1,3,3,1,2,0,4,6,10,7,3,0,4,8,10,3,1,0,2,12,14,16,7,5,2,4,6,8,3,1,0,2,4,6,10,5,1,0,2,4,6,8,3,1,0,2,4,6,10,7,3,1,0,2,4,6,3,1,0,2,4,8,10,3,1,0,2,4,6,8,14,12,10,13,9,7,5,16,14,12,13,9,7,5,14,12,10,8,9,13,15,16,14,12,13,9,7,5,14,12,10,15,13,9,7,16,14,12,13,9,7,5,14,12,10,15,13,9,18,20,22,13,9,7,5,16,14,12,15,13,9,16,14,12,13,9,7,5,5,7,9,13,12,14,16,9,13,15,12,14,16,5,7,9,13,22,20,18,9,13,15,10,12,14,5,7,9,13,12,14,16,7,9,13,15,10,12,14,5,7,9,13,12,14,16,15,13,9,8,10,12,14,5,7,9,13,12,14,16,5,7,9,13,10,12,14,16,20,22,21,19,17,15,18,20,22,21,19,17,15,16,18,20,22,21,19,17,18,20,22,21,19,17,15,16,18,20,22,21,19,17,18,20,22,21,19,17,15,16,18,20,22,21,19,17,6,2,1,21,19,17,15,18,20,22,21,19,17,18,20,22,21,19,17,15,15,17,19,21,22,20,18,17,19,21,22,20,18,15,17,19,21,1,2,6,17,19,21,22,20,18,16,15,17,19,21,22,20,18,17,19,21,22,20,18,16,15,17,19,21,22,20,18,17,19,21,22,20,18,16,15,17,19,21,22,20,18,15,17,19,21,22,20,16,18,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,6,4,2,1,3,5,8,4,3,5,7,9,8,6,4,2,1,3,5,8,6,4,2,1,3,5,5,3,1,2,4,6,8,5,3,1,2,4,6,8,9,7,5,3,4,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,8,5,3,1,2,4,6,18,12,10,8,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,10,12,14,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,14,12,10,13,11,9,7,14,12,10,15,13,11,14,12,10,13,11,9,7,14,12,10,13,11,9,7,7,9,11,13,10,12,14,7,9,11,13,10,12,14,11,13,15,10,12,14,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,14,12,10,7,9,11,13,10,12,14,7,9,11,13,10,12,14,7,9,11,13,8,10,12,14,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,15,16,18,20,21,19,17,16,18,20,21,19,17,15,16,18,20,21,19,17,15,15,17,19,21,20,18,16,15,17,19,21,20,18,16,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,15,17,19,21,20,18,16,14}; -const Int_t AliL3TPCMapping::fgkOFec[fgkNOROC] = {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,27,27,28,28,9,9,9,10,10,10,10,10,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,33,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37,18,18,18,18,18,19,19,19,19,19,19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,29,30,30,30,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,33,34,34,34,34,34,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,45,45,45,45,45,45,46,46,46,46,46,46,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,49,50,50,50,50,50,50,51,51,51,51,51,51,52,52,52,52,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,52,52,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,65,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,70,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,60,60,60,60,60,60,60,61,61,61,61,61,61,61,62,62,62,62,62,62,62,63,63,63,63,63,63,63,64,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77}; -const Int_t AliL3TPCMapping::fgkOFecChannel[fgkNOROC] = {1,3,0,2,3,1,0,2,1,0,2,4,1,3,0,2,1,3,0,2,4,1,0,2,4,1,3,0,2,1,3,0,2,1,0,2,4,4,2,0,1,2,0,3,1,2,0,3,1,4,2,0,1,4,2,0,3,1,2,0,3,1,4,2,0,1,2,0,1,3,2,0,3,1,5,7,4,6,7,5,4,6,3,5,7,6,8,5,7,4,6,5,7,6,8,3,5,7,6,8,5,7,4,6,5,7,4,6,3,5,6,8,8,6,5,3,6,4,7,5,6,4,7,5,8,6,7,5,3,8,6,7,5,6,4,7,5,8,6,7,5,3,6,4,5,7,6,4,7,5,9,11,10,8,9,11,10,8,9,11,13,12,10,9,11,10,8,9,11,12,10,9,11,13,12,10,9,11,10,8,9,11,10,8,7,9,12,10,10,12,9,7,8,10,11,9,8,10,11,9,10,12,13,11,9,10,12,11,9,8,10,11,9,10,12,13,11,9,8,10,11,9,8,10,11,9,13,15,14,12,13,15,14,12,15,17,19,16,14,13,15,14,12,13,15,16,14,15,17,19,16,14,13,15,14,12,13,15,14,12,11,13,16,14,14,16,13,11,12,14,15,13,12,14,15,13,14,16,19,17,15,14,16,15,13,12,14,15,13,14,16,19,17,15,12,14,15,13,12,14,15,13,17,19,18,16,17,19,18,16,25,23,21,20,18,17,19,18,16,17,19,20,18,21,23,25,20,18,17,19,18,16,17,19,18,16,15,17,20,18,18,20,17,15,16,18,19,17,16,18,19,17,18,20,25,23,21,18,20,19,17,16,18,19,17,18,20,21,23,25,16,18,19,17,16,18,19,17,25,23,21,20,25,23,21,22,20,29,27,22,24,23,21,22,20,27,25,23,21,22,27,29,22,24,23,21,22,24,20,23,21,22,20,19,21,23,25,25,23,21,19,20,22,21,23,20,24,22,21,23,24,22,29,27,22,21,23,25,27,20,22,21,23,24,22,27,29,20,22,21,23,25,20,21,23,25,29,27,24,22,29,27,24,26,28,32,31,26,28,27,25,24,26,29,31,24,26,28,32,31,28,26,29,27,25,26,28,27,25,24,26,27,29,22,24,24,22,29,27,26,24,25,27,28,26,25,27,29,26,28,31,32,28,26,24,31,29,26,24,25,27,28,26,31,32,28,26,24,27,29,22,24,27,29,32,31,28,26,31,32,33,30,35,34,36,33,30,31,29,28,30,32,34,33,30,35,36,34,33,30,31,32,34,33,30,31,29,30,28,31,32,28,26,26,28,32,31,28,30,29,31,30,33,34,32,31,30,33,34,36,35,30,33,34,32,30,28,29,31,30,33,36,34,35,30,33,32,31,26,28,31,32,34,36,33,30,34,36,38,39,37,38,40,42,37,35,34,32,35,33,36,38,39,37,42,40,38,37,35,36,38,37,35,34,36,32,35,33,34,36,33,30,30,33,36,34,33,35,32,36,34,35,37,38,36,35,37,38,40,42,37,39,38,36,33,35,32,34,35,37,42,40,38,37,39,38,36,34,30,33,36,34,38,40,37,35,40,42,41,45,47,44,43,45,41,39,38,36,39,37,40,42,41,47,44,43,45,41,39,40,42,41,39,38,40,42,39,37,38,40,37,35,35,37,40,38,37,39,42,40,38,39,41,42,40,39,41,45,43,44,47,41,42,40,37,39,36,38,39,41,45,43,44,47,45,41,42,40,35,37,40,38,43,42,41,39,46,44,43,49,51,48,46,47,49,45,42,40,41,44,45,43,49,51,48,46,47,49,51,45,43,49,51,44,43,45,41,43,45,42,41,39,39,41,42,45,43,41,45,43,44,51,49,43,45,51,49,47,46,48,51,49,43,45,44,41,40,42,45,49,47,46,48,51,49,43,44,46,39,41,42,43,44,45,47,49,50,48,53,55,50,52,54,51,53,43,47,49,51,46,48,50,53,55,50,52,53,55,44,46,47,53,55,48,46,47,49,46,44,47,49,51,51,49,47,44,46,49,47,46,48,55,53,47,46,44,55,53,52,50,55,53,50,48,46,51,49,47,43,53,51,54,52,50,55,53,48,50,49,47,45,44,46,48,50,51,53,52,54,59,57,56,58,55,57,44,46,48,53,55,52,54,56,59,57,54,56,59,57,48,50,52,57,59,52,50,53,51,48,50,52,53,55,55,53,52,50,48,51,53,50,52,59,57,52,50,48,57,59,56,54,57,59,56,54,52,55,53,48,46,44,57,55,58,56,57,59,54,52,53,51,50,48,46,52,54,56,57,55,56,58,63,61,60,62,59,61,50,52,54,59,57,58,60,62,63,61,58,62,63,61,54,56,58,63,61,56,54,57,55,54,56,58,59,57,57,59,58,56,54,55,57,54,56,61,63,58,56,54,61,63,62,58,61,63,62,60,58,57,59,54,52,50,61,59,62,60,61,63,58,56,55,57,56,54,52,58,60,62,61,59,60,62,68,70,66,68,70,63,56,60,62,63,61,67,65,64,66,70,60,64,68,72,60,62,65,66,62,60,58,61,59,60,62,63,61,70,70,61,63,62,60,59,61,58,60,62,66,65,62,60,72,68,64,60,70,66,64,65,67,61,63,62,60,56,63,70,68,66,70,68,62,60,59,61,62,60,58,65,66,64,68,63,65,64,66,72,67,65,64,72,74,58,66,64,70,74,71,69,68,72,67,65,66,70,74,69,67,64,68,64,68,70,72,63,65,64,66,68,72,72,68,66,64,65,63,72,70,68,64,68,64,67,69,74,70,66,65,67,72,68,69,71,74,70,64,66,58,74,72,64,65,67,72,66,64,65,63,68,64,66,65,71,69,67,70,72,67,69,74,76,69,71,73,76,78,65,67,68,72,76,73,75,76,74,69,71,73,76,78,71,73,70,72,65,67,66,74,76,67,69,71,74,76,76,74,71,69,67,76,74,66,67,65,72,70,73,71,78,76,73,71,69,74,76,75,73,76,72,68,67,65,78,76,73,71,69,76,74,69,67,72,70,67,69,71,73,75,77,76,74,71,73,80,78,75,77,79,82,80,69,71,73,78,80,77,79,80,78,75,77,79,82,80,75,77,76,74,69,73,71,78,80,73,75,77,80,78,78,80,77,75,73,80,78,71,73,69,74,76,77,75,80,82,79,77,75,78,80,79,77,80,78,73,71,69,80,82,79,77,75,78,80,73,71,74,76,77,75,73,79,81,83,80,78,75,77,83,84,82,81,83,84,88,75,79,83,84,82,85,81,83,84,82,81,83,84,86,79,81,83,80,78,75,79,77,84,82,79,81,83,84,82,82,84,83,81,79,82,84,77,79,75,78,80,83,81,79,86,84,83,81,82,84,83,81,85,82,84,83,79,75,88,84,83,81,82,84,83,77,75,78,80,83,81,79,87,85,86,84,82,79,81,85,86,88,87,85,86,92,77,81,85,86,88,87,86,88,90,92,85,87,89,88,85,86,88,84,82,83,81,85,86,88,85,88,86,90,92,92,90,86,88,85,88,86,85,81,83,82,84,88,86,85,88,89,87,85,92,90,88,86,87,88,86,85,81,77,92,86,85,87,88,86,85,81,79,82,84,86,85,87,89,91,88,90,92,91,89,87,90,92,91,89,90,94,91,89,87,90,92,89,91,93,94,97,93,91,90,92,91,87,89,90,92,91,89,87,90,92,87,89,91,94,97,97,94,91,89,87,92,90,87,89,91,92,90,89,87,91,92,90,91,93,97,94,93,91,89,92,90,87,89,91,94,90,89,91,92,90,87,89,91,92,90,88,91,89,93,95,94,97,99,93,95,96,97,94,95,93,97,99,93,95,96,97,94,95,96,98,99,101,95,96,97,94,93,95,96,94,97,93,95,96,97,94,93,95,96,101,99,99,101,96,95,93,94,97,96,95,93,97,94,96,95,93,94,97,96,95,101,99,98,96,95,94,97,96,95,93,99,97,93,95,94,97,96,95,93,99,97,94,95,93,96,98,100,103,101,98,100,102,101,99,98,100,96,103,101,98,100,102,101,99,100,104,105,103,98,100,102,101,99,98,100,102,101,99,98,100,102,101,99,98,102,106,105,103,103,105,106,102,98,99,101,102,100,98,99,101,102,100,98,99,101,102,100,98,103,105,104,100,99,101,102,100,98,101,103,96,100,98,99,101,102,100,98,101,103,100,98,96,102,104,106,105,113,107,104,106,105,103,102,104,106,105,111,107,106,104,105,103,102,106,109,113,109,104,106,105,103,104,106,105,103,113,109,104,106,105,103,100,104,107,111,115,115,111,107,104,100,103,105,106,104,109,113,103,105,106,104,103,105,106,104,109,113,109,106,102,103,105,104,106,107,111,105,106,104,102,103,105,106,104,107,113,105,106,104,102,108,107,109,111,115,108,109,111,113,117,108,107,109,113,117,108,109,111,113,117,108,107,111,115,108,111,107,113,115,108,109,107,111,115,108,111,107,113,115,110,108,109,113,117,117,113,109,108,110,115,113,107,111,108,115,111,107,109,108,115,113,107,111,108,115,111,107,108,117,113,111,109,108,117,113,109,107,108,117,113,111,109,108,115,111,109,107,108,110,112,114,117,119,110,112,114,115,119,110,112,114,115,119,110,112,114,115,119,110,112,114,117,119,110,112,114,117,119,110,112,114,117,119,110,112,114,117,119,112,114,116,119,121,121,119,116,114,112,119,117,114,112,110,119,117,114,112,110,119,117,114,112,110,119,117,114,112,110,119,115,114,112,110,119,115,114,112,110,119,115,114,112,110,119,117,114,112,110,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,116,118,120,123,121,118,120,122,125,123,123,125,122,120,118,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,121,123,120,118,116,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,124,126,127,1,2,2,1,127,126,124,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,2,0,6,10,3,1,0,2,4,1,0,2,4,6,1,0,2,4,3,1,0,2,4,2,0,6,10,1,0,2,4,6,1,0,2,4,4,2,0,6,8,5,3,0,4,4,0,3,5,8,6,0,2,4,4,2,0,1,6,4,2,0,1,10,6,0,2,4,2,0,1,3,4,2,0,1,6,4,2,0,1,4,2,0,1,3,10,6,0,2,1,3,4,8,12,7,5,8,6,3,5,7,8,10,3,5,6,8,10,7,5,6,8,1,3,4,8,12,3,7,5,8,10,3,5,6,8,1,3,5,10,12,7,9,6,8,8,6,9,7,12,10,5,3,1,8,6,5,3,10,8,5,7,3,12,8,4,3,1,8,6,5,7,10,8,6,5,3,10,8,7,5,3,6,8,5,7,12,8,4,3,1,5,7,9,14,16,9,11,12,10,9,11,13,14,12,7,9,16,14,12,9,11,12,10,5,7,9,14,16,9,13,11,14,12,7,9,12,10,7,9,11,16,14,11,13,14,10,10,14,13,11,14,16,11,9,7,10,12,9,7,12,14,11,13,9,16,14,9,7,5,10,12,11,9,12,14,16,9,7,12,14,13,11,9,10,12,11,9,16,14,9,7,5,11,17,20,18,13,15,17,16,14,15,17,19,18,16,11,17,20,18,13,15,17,16,14,11,15,19,20,18,15,19,17,18,16,11,13,16,14,13,17,19,20,18,15,17,18,12,12,18,17,15,18,20,19,17,13,14,16,13,11,16,18,17,19,15,18,20,19,15,11,14,16,17,15,13,18,20,17,11,16,18,19,17,15,14,16,17,15,13,18,20,17,11,13,15,19,22,24,21,23,19,20,18,21,22,24,20,13,15,19,21,22,21,22,19,20,18,13,17,22,24,23,25,29,31,20,15,17,19,20,18,15,21,22,26,21,24,19,20,16,16,20,19,24,21,26,22,21,15,18,20,19,17,15,20,31,29,25,23,24,22,17,13,18,20,19,22,21,22,21,19,15,13,20,24,22,21,18,20,19,23,21,24,22,19,15,13,25,23,21,26,28,25,27,22,24,23,25,27,26,28,23,25,27,24,26,23,25,24,26,25,23,21,26,28,21,27,22,24,26,21,22,24,26,28,25,23,24,28,25,23,22,26,28,28,26,22,23,25,28,24,23,25,28,26,24,22,21,26,24,22,27,21,28,26,21,23,25,26,24,25,23,26,24,27,25,23,28,26,27,25,23,24,22,27,25,28,26,21,23,25,27,29,31,30,33,29,31,30,26,29,31,32,33,30,29,31,28,30,33,27,29,28,30,27,29,31,30,33,32,34,28,30,23,25,27,30,33,27,29,31,30,33,27,29,31,30,33,33,30,31,29,27,33,30,31,29,27,33,30,27,25,23,30,28,34,32,33,30,31,29,27,30,28,29,27,33,30,28,31,29,30,33,32,31,29,26,30,31,29,33,30,31,29,27,32,34,40,37,35,32,36,40,35,28,34,40,37,35,32,34,36,37,35,31,34,36,35,33,32,34,36,37,35,36,38,35,33,29,32,34,37,35,32,34,36,37,35,32,34,36,37,35,35,37,36,34,32,35,37,36,34,32,35,37,34,32,29,33,35,38,36,35,37,36,34,32,33,35,36,34,31,35,37,36,34,32,35,37,40,34,28,35,40,36,32,35,37,40,34,32,36,38,42,41,39,34,38,42,39,33,36,42,41,39,38,40,42,41,39,32,40,41,39,37,38,40,42,41,39,40,42,41,37,31,38,42,41,39,38,40,42,41,39,38,40,42,41,39,39,41,42,40,38,39,41,42,40,38,39,41,42,38,31,37,41,42,40,39,41,42,40,38,37,39,41,40,32,39,41,42,40,38,39,41,42,36,33,39,42,38,34,39,41,42,38,36,46,44,43,45,47,46,44,43,41,37,38,43,45,47,44,45,43,47,49,38,42,44,46,45,46,44,43,45,47,45,43,47,39,36,40,43,45,47,44,45,43,47,49,44,45,43,47,49,49,47,43,45,44,49,47,43,45,44,47,45,43,40,36,39,47,43,45,47,45,43,44,46,45,46,44,42,38,49,47,43,45,44,47,45,43,38,37,41,43,44,46,47,45,43,44,46,48,50,49,51,53,48,50,45,47,49,46,44,49,51,46,48,50,51,53,48,50,43,47,49,48,50,51,49,53,44,46,49,51,48,46,44,49,51,46,48,50,51,53,46,48,50,51,53,53,51,50,48,46,53,51,50,48,46,51,49,44,46,48,51,49,46,44,53,49,51,50,48,49,47,43,50,48,53,51,50,48,46,51,49,44,46,49,47,45,50,48,53,51,49,50,48,52,54,56,57,55,52,54,56,53,51,48,50,52,53,55,52,54,56,57,55,52,54,51,53,52,54,56,57,55,48,50,52,53,55,50,52,54,53,55,52,54,56,57,55,52,54,56,57,55,55,57,56,54,52,55,57,56,54,52,55,53,54,52,50,55,53,52,50,48,55,57,56,54,52,53,51,54,52,55,57,56,54,52,55,53,52,50,48,51,53,56,54,52,55,57,56,54,52,58,60,62,63,59,58,60,62,59,55,54,56,58,59,57,58,60,62,63,59,56,58,57,55,58,62,63,61,59,54,56,58,59,57,56,60,61,59,57,58,60,62,63,59,58,62,63,61,59,59,61,63,62,58,59,63,62,60,58,57,59,61,60,56,57,59,58,56,54,59,61,63,62,58,55,57,58,56,59,63,62,60,58,57,59,58,56,54,55,59,62,60,58,59,63,62,60,58,65,64,66,68,61,66,64,63,61,57,64,60,62,63,61,65,64,66,68,61,60,62,63,59,60,65,64,66,68,68,60,62,63,61,58,62,63,66,70,68,66,64,72,61,60,65,64,66,68,68,66,64,65,60,61,72,64,66,68,70,66,63,62,58,61,63,62,60,68,68,66,64,65,60,59,63,62,60,61,68,66,64,65,61,63,62,60,64,57,61,63,64,66,61,68,66,64,65,67,69,71,70,72,67,65,68,70,72,65,68,66,70,72,71,69,67,70,72,65,64,66,68,61,67,69,71,70,72,65,66,64,70,72,67,65,64,68,72,65,67,70,74,76,67,69,71,70,72,72,70,71,69,67,76,74,70,67,65,72,68,64,65,67,72,70,64,66,65,72,70,71,69,67,61,68,66,64,65,72,70,67,69,71,72,70,66,68,65,72,70,68,65,67,72,70,71,69,67,73,75,77,76,74,69,71,73,74,76,67,69,71,74,76,73,75,77,76,74,71,69,67,70,72,73,75,77,76,74,67,69,71,74,76,69,71,73,74,76,69,71,73,78,80,73,75,77,76,74,74,76,77,75,73,80,78,73,71,69,76,74,73,71,69,76,74,71,69,67,74,76,77,75,73,72,70,67,69,71,74,76,77,75,73,76,74,71,69,67,76,74,73,71,69,74,76,77,75,73,79,81,83,80,78,75,77,81,80,78,73,75,77,80,78,79,81,83,80,78,73,75,77,76,74,79,81,83,82,78,73,75,77,80,78,75,77,79,80,78,75,79,83,84,82,79,81,83,80,78,78,80,83,81,79,82,84,83,79,75,78,80,79,77,75,78,80,77,75,73,78,82,83,81,79,74,76,77,75,73,78,80,83,81,79,78,80,77,75,73,78,80,81,77,75,78,80,83,81,79,89,87,85,84,82,87,79,83,84,82,79,81,83,84,82,85,86,88,84,82,83,81,79,80,78,93,89,85,84,80,79,81,83,84,82,85,81,83,84,82,77,81,85,87,89,85,88,86,84,82,82,84,86,88,85,89,87,85,81,77,82,84,83,81,85,82,84,83,81,79,80,84,85,89,93,78,80,79,81,83,82,84,88,86,85,82,84,83,81,79,82,84,83,79,87,82,84,85,87,89,95,93,91,86,88,89,85,86,88,90,85,88,86,90,92,91,89,87,90,92,87,85,86,88,84,82,95,91,87,86,88,89,87,85,86,88,87,88,86,90,92,95,93,91,86,88,87,89,91,90,92,92,90,91,89,87,88,86,91,93,95,92,90,86,88,87,88,86,85,87,89,88,86,87,91,95,82,84,88,86,85,87,92,90,87,89,91,92,90,86,88,85,90,88,86,85,89,88,86,91,93,95,98,96,94,92,90,91,93,95,92,94,87,89,91,94,97,93,95,96,94,97,89,91,93,90,92,94,98,96,94,92,90,91,93,95,90,92,89,91,93,94,97,98,96,94,92,90,96,95,93,94,97,97,94,93,95,96,90,92,94,96,98,97,94,93,91,89,92,90,95,93,91,90,92,94,96,98,94,92,90,93,91,89,97,94,96,95,93,97,94,91,89,87,94,92,95,93,91,90,92,94,96,98,100,104,101,99,97,96,98,100,99,97,93,95,96,101,99,98,100,102,101,99,95,100,102,101,99,97,100,104,101,99,97,96,98,100,97,94,100,96,95,101,99,100,104,101,99,97,98,100,102,101,99,99,101,102,100,98,97,99,101,104,100,99,101,95,96,100,94,97,100,98,96,97,99,101,104,100,97,99,101,102,100,95,99,101,102,100,98,99,101,96,95,93,97,99,100,98,96,97,99,101,104,100,102,106,105,103,111,102,104,106,105,101,98,102,104,106,105,103,104,106,105,103,113,96,104,106,105,103,111,102,106,105,103,102,104,106,105,103,99,102,98,106,105,103,102,106,105,103,113,111,104,106,105,103,103,105,106,104,111,113,103,105,106,102,103,105,106,98,102,99,103,105,106,104,102,103,105,106,102,111,103,105,106,104,96,113,103,105,106,104,103,105,106,104,102,98,101,105,106,104,102,111,103,105,106,102,110,108,107,109,113,107,109,111,113,103,100,108,107,109,111,113,108,107,109,111,115,98,107,109,113,115,108,109,107,113,117,108,107,109,111,113,101,104,109,107,113,115,108,107,109,111,115,108,109,107,113,115,115,113,107,109,108,115,111,109,107,108,115,113,107,109,104,101,113,111,109,107,108,117,113,107,109,108,115,113,109,107,98,115,111,109,107,108,113,111,109,107,108,100,103,113,111,109,107,113,109,107,108,110,114,112,119,115,117,108,110,112,115,117,114,112,110,115,117,119,110,112,114,117,119,108,110,111,117,119,110,112,114,115,119,110,112,114,115,117,119,108,110,111,117,119,110,112,114,117,119,110,112,114,117,119,119,117,114,112,110,119,117,114,112,110,119,117,111,110,108,119,117,115,114,112,110,119,115,114,112,110,119,117,111,110,108,119,117,114,112,110,119,117,115,110,112,114,117,115,112,110,108,117,115,119,112,114,116,118,120,121,123,114,116,118,120,121,119,116,118,120,121,123,120,118,116,121,123,112,114,116,118,121,123,120,118,116,121,123,120,118,116,123,121,112,114,116,118,121,123,120,118,116,121,123,120,118,116,123,121,121,123,116,118,120,123,121,116,118,120,123,121,118,116,114,112,121,123,116,118,120,123,121,116,118,120,123,121,118,116,114,112,123,121,116,118,120,123,121,120,118,116,119,121,120,118,116,114,123,121,120,118,116,122,124,126,127,125,122,124,126,127,125,123,122,124,126,127,125,122,124,126,127,125,120,122,124,126,127,125,122,124,126,127,125,122,124,126,127,125,126,124,122,120,127,125,122,124,126,127,125,122,124,126,127,125,125,127,126,124,122,125,127,126,124,122,125,127,120,122,124,126,125,127,126,124,122,125,127,126,124,122,125,127,126,124,122,120,125,127,126,124,122,125,127,126,124,122,123,125,127,126,124,122,125,127,126,124,122,2,0,4,6,8,4,2,0,6,8,4,2,0,6,10,1,2,0,4,8,4,2,0,6,10,1,4,2,0,6,8,1,2,0,4,6,1,2,0,4,8,10,1,4,2,0,6,8,1,2,0,4,6,6,4,0,2,1,8,6,0,2,4,1,10,8,4,0,2,1,6,4,0,2,1,8,6,0,2,4,1,10,6,0,2,4,8,4,0,2,1,10,6,0,2,4,8,6,0,2,4,8,6,4,0,2,1,3,5,10,12,1,3,5,10,12,1,3,5,8,12,3,5,7,6,10,1,3,5,8,12,3,5,9,11,10,12,3,5,7,8,10,3,5,7,6,12,14,3,5,7,9,10,12,3,5,7,8,10,10,8,7,5,3,12,10,9,7,5,3,14,12,6,7,5,3,10,8,7,5,3,12,10,11,9,5,3,12,8,5,3,1,10,6,7,5,3,12,8,5,3,1,12,10,5,3,1,12,10,5,3,1,7,9,11,16,14,7,9,15,17,16,14,7,11,15,16,14,9,11,13,14,12,7,9,11,16,14,7,13,15,17,16,14,9,11,13,14,12,9,11,13,16,18,20,11,13,15,17,16,14,9,11,13,14,12,12,14,13,11,9,14,16,17,15,13,11,20,18,16,13,11,9,12,14,13,11,9,14,16,17,15,13,7,14,16,11,9,7,12,14,13,11,9,14,16,15,11,7,14,16,17,15,9,7,14,16,11,9,7,13,17,19,20,18,11,13,19,20,18,9,13,17,19,20,18,15,17,19,20,16,13,17,19,20,18,25,21,22,19,20,18,15,17,19,20,16,15,17,19,22,24,26,25,21,22,19,20,18,15,17,19,20,16,16,20,19,17,15,18,20,19,22,21,25,26,24,22,19,17,15,16,20,19,17,15,18,20,19,22,21,25,18,20,19,17,13,16,20,19,17,15,18,20,19,17,13,9,18,20,19,13,11,18,20,19,17,13,15,21,22,24,28,21,22,24,26,28,23,21,22,24,26,28,26,24,22,28,18,15,23,21,22,24,27,23,24,26,28,25,23,21,22,24,18,21,23,25,27,28,30,27,23,24,26,28,27,25,23,21,22,18,18,22,21,23,25,27,28,26,24,23,27,30,28,27,25,23,21,18,24,22,21,23,25,28,26,24,23,27,24,22,21,23,15,18,28,22,24,26,28,26,24,22,21,23,28,26,24,22,21,28,24,22,21,15,23,25,27,26,30,33,23,27,25,30,33,25,27,29,31,30,33,21,23,25,30,33,25,27,29,26,28,29,31,32,30,33,27,29,31,26,28,30,29,31,32,34,33,35,29,31,32,30,33,29,31,32,28,26,24,24,26,28,32,31,29,33,30,32,31,29,35,33,34,32,31,29,30,28,26,31,29,27,33,30,32,31,29,28,26,29,27,25,33,30,25,23,21,33,30,31,29,27,25,33,30,25,27,23,33,30,26,27,25,23,29,31,32,35,37,29,31,34,32,37,35,32,34,36,37,35,27,29,34,36,37,35,31,32,34,33,30,34,36,38,37,35,32,34,36,35,33,37,36,38,42,40,39,37,34,38,40,37,35,34,36,38,37,33,30,30,33,37,38,36,34,35,37,40,38,34,37,39,40,42,38,36,37,33,35,36,34,32,35,37,38,36,34,30,33,34,32,31,35,37,36,34,29,27,35,37,36,34,32,35,37,32,34,31,29,37,35,32,31,29,34,38,42,41,39,36,38,42,40,41,39,38,40,42,41,39,31,32,40,42,41,39,36,38,40,37,35,45,40,42,41,39,38,40,42,41,39,47,48,44,43,47,51,41,36,42,41,39,47,48,40,42,41,39,35,35,39,41,42,40,48,47,39,41,42,36,41,51,47,43,44,48,47,39,41,42,40,38,39,41,42,40,45,35,37,40,38,36,39,41,42,40,32,31,39,41,42,40,38,39,41,40,42,38,36,39,41,42,38,34,36,40,43,47,49,47,45,43,49,53,46,44,43,45,47,49,38,45,43,49,53,46,47,43,42,41,39,44,47,43,49,53,46,44,43,45,49,51,50,46,45,49,53,46,44,43,45,49,51,50,46,44,43,45,47,47,45,43,44,46,50,51,49,45,43,44,46,53,49,45,46,50,51,49,45,43,44,46,53,49,43,47,44,39,41,42,43,47,46,53,49,43,45,38,49,47,45,43,44,46,53,49,43,45,47,49,47,43,40,36,48,46,44,45,51,53,48,46,44,51,55,48,50,52,51,53,55,46,44,47,51,55,48,44,45,49,51,46,48,50,52,51,55,48,50,52,53,55,57,52,54,56,55,57,48,50,52,53,55,57,52,54,56,49,51,53,53,51,49,56,54,52,57,55,53,52,50,48,57,55,56,54,52,57,55,53,52,50,48,55,51,52,50,48,46,51,49,45,44,48,55,51,47,44,46,55,53,51,52,50,48,55,51,44,46,48,53,51,45,44,46,48,50,52,54,55,57,50,52,54,56,57,59,54,56,58,59,57,48,50,52,54,57,59,50,52,54,53,55,54,56,58,60,59,57,54,58,62,63,61,59,58,60,62,61,59,54,58,60,63,61,59,58,60,62,59,57,55,55,57,59,62,60,58,59,61,63,60,58,54,59,61,62,60,58,59,61,63,62,58,54,57,59,60,58,56,54,55,53,54,52,50,59,57,54,52,50,48,57,59,58,56,54,59,57,56,54,52,50,57,55,54,52,50,56,58,60,62,63,61,59,58,60,62,63,61,65,60,62,63,61,56,58,60,62,63,61,56,58,60,61,57,65,66,64,62,63,61,56,60,65,66,68,72,67,65,64,66,63,56,62,65,64,68,72,67,65,64,66,63,61,61,63,66,64,65,67,72,68,64,65,62,56,63,66,64,65,67,72,68,66,65,60,56,61,63,62,64,66,65,57,61,60,58,56,61,63,62,60,58,56,61,63,62,60,65,61,63,62,60,58,59,61,63,62,60,58,56,68,66,64,70,74,65,68,66,64,70,72,69,67,64,66,68,70,65,66,64,68,70,65,64,66,62,63,59,67,69,68,70,72,71,69,67,64,70,74,73,71,69,68,70,72,71,69,67,66,70,74,73,71,69,68,70,72,72,70,68,69,71,73,74,70,66,67,69,71,72,70,68,69,71,73,74,70,64,67,69,71,72,70,68,69,67,59,63,62,66,64,65,70,68,64,66,65,70,68,66,64,67,69,72,70,64,66,68,65,74,70,64,66,68,65,67,69,72,76,67,69,71,73,74,76,71,73,72,74,76,67,69,71,73,72,74,67,69,71,68,70,71,73,75,78,76,74,73,75,77,76,78,80,75,77,79,78,76,74,73,75,81,80,78,76,75,77,79,78,76,74,74,76,78,79,77,75,76,78,80,81,75,73,74,76,78,79,77,75,80,78,76,77,75,73,74,76,78,75,73,71,70,68,71,69,67,74,72,73,71,69,67,76,74,72,73,71,76,74,73,71,69,67,76,72,69,67,65,71,73,75,77,80,78,75,77,79,80,78,75,77,83,82,80,78,75,77,79,83,80,76,73,75,76,74,72,77,81,83,84,82,80,79,81,83,84,82,90,85,81,83,84,82,80,77,79,83,84,82,88,87,81,83,84,82,80,80,82,84,83,81,87,88,82,84,83,79,77,80,82,84,83,81,85,90,82,84,83,81,79,80,82,84,83,81,77,72,74,76,75,73,76,80,83,79,77,75,78,80,82,83,77,75,78,80,79,77,75,78,80,77,75,73,71,87,79,81,83,84,82,89,81,83,84,82,79,81,84,88,92,94,91,89,81,84,82,78,77,83,82,80,78,79,85,88,86,90,92,89,87,85,86,88,92,89,87,86,88,90,92,91,89,87,85,86,90,89,85,86,88,90,92,92,90,88,86,85,89,90,86,85,87,89,91,92,90,88,86,87,89,92,88,86,85,87,89,92,90,86,88,85,79,78,80,82,83,77,78,82,84,81,89,91,94,92,88,84,81,79,82,84,83,81,89,82,84,83,81,79,87,91,89,85,86,88,90,93,91,87,85,86,88,87,85,86,90,97,95,93,87,85,86,88,79,81,84,85,87,86,87,89,91,93,94,97,91,93,95,96,94,97,91,93,95,94,97,99,93,95,96,98,94,92,91,93,95,94,97,99,99,97,94,95,93,91,92,94,98,96,95,93,99,97,94,95,93,91,97,94,96,95,93,91,97,94,93,91,89,87,86,87,85,84,81,79,88,86,85,87,93,95,97,90,86,85,87,88,86,85,87,91,93,90,88,86,85,89,91,93,95,96,97,94,92,95,96,98,100,92,90,89,91,93,99,101,96,98,100,94,92,90,93,91,89,88,90,92,95,96,98,100,101,99,98,100,102,104,101,99,96,98,106,105,103,101,100,102,104,106,99,97,96,102,104,105,103,101,101,103,105,104,102,96,97,99,106,104,102,100,101,103,105,106,98,96,99,101,104,102,100,98,99,101,100,98,96,95,92,90,88,89,91,93,90,92,94,100,98,96,101,99,93,91,89,90,92,100,98,96,95,92,94,97,96,95,93,98,102,106,103,101,99,102,104,106,99,97,94,95,96,102,106,105,103,102,104,106,101,99,97,95,96,98,99,97,94,102,104,106,105,103,113,110,108,109,106,105,103,100,102,104,107,109,113,112,108,107,105,103,101,98,100,106,107,109,113,113,109,107,106,100,98,101,103,105,107,108,112,113,109,107,104,102,100,103,105,106,109,108,110,113,103,105,106,104,102,94,97,99,98,96,95,97,99,101,106,104,102,103,105,106,102,96,95,94,97,99,106,104,102,99,101,103,106,102,98,100,104,105,107,111,113,110,107,111,105,103,101,98,100,104,107,111,113,110,107,109,105,103,100,102,104,106,105,103,101,110,108,107,109,111,115,114,112,107,111,113,115,114,112,110,108,111,115,114,110,109,111,113,115,114,112,110,108,111,115,115,111,108,110,112,114,115,113,111,109,110,114,115,111,108,110,112,114,115,113,111,107,112,114,115,111,109,107,108,110,101,103,105,106,104,102,100,103,105,109,107,110,113,111,107,104,100,98,101,103,105,111,107,110,113,111,107,105,104,100,114,112,110,108,109,115,114,112,108,109,113,115,114,112,110,108,109,115,114,112,108,111,113,115,110,108,107,109,111,113,115,112,114,116,117,119,121,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,121,119,117,116,118,120,117,119,121,121,119,117,120,118,116,117,119,121,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,121,119,117,116,114,112,115,113,111,109,107,108,110,115,113,111,108,112,114,115,109,108,110,112,114,115,113,109,108,112,114,115,109,108,110,112,114,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,117,119,121,116,118,120,121,119,117,112,114,116,118,117,119,121,118,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,118,121,119,117,118,116,114,112,117,119,121,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,121,119,117,120,118,116,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,122,124,126,127,125,123,120,122,124,126,127,125,123,120,122,5,0,2,4,5,3,1,0,2,4,7,5,3,1,0,2,5,3,1,0,2,4,7,5,3,1,0,2,2,0,1,3,5,7,4,2,0,1,3,5,2,0,1,3,5,7,4,2,0,1,3,5,4,2,0,5,122,120,123,125,127,126,124,122,120,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,123,125,127,126,124,122,7,5,3,1,0,2,7,5,3,1,0,2,4,1,0,2,4,6,8,5,3,1,0,2,4,7,5,3,1,0,2,4,9,7,3,1,6,8,7,9,12,10,8,6,13,11,9,8,6,4,7,9,6,8,10,12,13,11,9,8,6,4,4,6,8,9,11,13,12,10,8,6,9,7,4,6,8,9,11,13,6,8,10,12,9,7,8,6,1,3,7,9,4,2,0,1,3,5,7,4,2,0,1,3,5,8,6,4,2,0,1,4,2,0,1,3,5,7,2,0,1,3,5,7,13,11,9,8,6,4,9,11,12,10,8,6,9,7,5,3,10,12,14,7,9,12,10,8,6,13,11,9,12,10,8,6,11,13,15,14,12,10,11,15,20,18,16,14,15,17,19,14,12,10,11,15,20,18,16,14,15,17,19,14,12,10,10,12,14,19,17,15,14,16,18,20,15,11,10,12,14,19,17,15,14,16,18,20,15,11,10,12,14,15,13,11,6,8,10,12,9,11,13,6,8,10,12,9,7,14,12,10,3,5,7,9,6,8,10,12,11,9,4,6,8,9,11,13,15,17,19,14,12,10,13,17,19,20,18,16,14,11,15,19,20,18,16,11,15,19,20,18,16,14,15,17,19,20,18,16,14,21,17,19,20,18,16,13,17,19,23,21,22,25,23,21,20,18,16,13,17,19,25,23,21,25,23,21,20,18,16,16,18,20,21,23,25,21,23,25,19,17,13,16,18,20,21,23,25,22,21,23,19,17,13,16,18,20,19,17,21,14,16,18,20,19,17,15,14,16,18,20,19,15,11,16,18,20,19,15,11,14,16,18,20,19,17,13,10,12,14,19,17,15,23,21,22,20,18,16,15,27,25,23,21,22,24,13,17,25,23,21,22,13,17,25,23,21,22,24,29,27,25,23,21,22,25,23,22,24,26,28,31,29,27,25,24,26,28,29,27,22,24,26,28,31,29,27,22,24,26,29,27,22,24,26,28,28,26,24,22,27,29,26,24,22,27,29,31,28,26,24,22,27,29,28,26,24,25,27,29,31,28,26,24,22,23,25,22,21,23,25,27,29,24,22,21,23,25,17,13,22,21,23,25,17,13,24,22,21,23,25,27,15,16,18,20,22,21,23,29,27,25,24,26,28,29,31,32,26,28,30,33,31,29,27,32,24,26,28,31,29,27,26,28,30,36,34,32,31,28,26,24,31,29,27,30,33,35,32,34,36,30,33,35,36,34,32,31,30,33,35,36,34,32,33,30,28,34,32,31,35,33,30,30,33,35,31,32,34,28,30,33,32,34,36,35,33,30,31,32,34,36,35,33,30,36,34,32,35,33,30,27,29,31,24,26,28,31,32,34,36,30,28,26,27,29,31,28,26,24,32,27,29,31,33,30,28,26,32,31,29,28,26,24,25,27,29,31,32,34,35,33,30,34,38,42,41,39,37,35,34,36,38,42,35,33,30,32,38,40,37,35,33,38,40,42,37,35,33,30,32,38,42,41,39,37,38,40,42,41,39,37,48,38,40,42,41,39,37,38,40,42,41,39,35,36,40,42,41,39,37,37,39,41,42,40,36,35,39,41,42,40,38,37,39,41,42,40,38,48,37,39,41,42,40,38,37,39,41,42,38,32,30,33,35,37,42,40,38,33,35,37,40,38,32,30,33,35,42,38,36,34,35,37,39,41,42,38,34,30,33,35,34,32,31,36,38,40,42,41,39,37,36,40,48,46,44,43,45,44,43,40,41,39,37,34,36,42,41,39,45,47,44,43,45,47,41,39,34,36,40,44,43,47,49,48,46,44,43,45,47,50,46,44,43,45,47,48,46,44,43,45,47,37,38,48,46,44,43,45,45,43,44,46,48,38,37,47,45,43,44,46,48,47,45,43,44,46,50,47,45,43,44,46,48,49,47,43,44,40,36,34,39,41,47,45,43,44,47,45,39,41,42,36,34,37,39,41,40,43,44,45,43,44,46,48,40,36,37,39,41,42,40,38,36,50,48,46,44,43,45,47,56,54,52,50,47,49,48,46,45,47,49,51,53,50,48,46,44,43,49,51,46,48,50,49,51,53,52,50,48,46,45,51,50,52,54,55,53,51,49,52,54,56,53,51,49,54,52,50,49,51,53,55,50,52,54,51,49,47,47,49,51,54,52,50,55,53,51,49,50,52,54,49,51,53,56,54,52,49,51,53,55,54,52,50,51,45,46,48,50,52,53,51,49,50,48,46,51,49,43,44,46,48,50,53,51,49,47,45,46,48,49,47,50,52,54,56,47,45,43,44,46,48,50,56,54,52,49,51,53,55,58,60,62,55,53,51,56,54,52,50,59,57,55,52,54,56,57,55,53,52,54,60,61,59,57,55,54,56,58,57,55,53,56,60,62,63,61,59,57,58,60,62,59,57,55,56,60,62,63,61,59,57,56,58,60,57,55,53,53,55,57,60,58,56,57,59,61,63,62,60,56,55,57,59,62,60,58,57,59,61,63,62,60,56,53,55,57,58,56,54,55,57,59,61,60,54,52,53,55,57,56,54,52,55,57,59,50,52,54,56,51,53,55,62,60,58,55,53,51,49,52,54,56,58,60,62,63,61,59,57,67,65,63,61,59,57,58,60,62,63,61,66,70,67,58,60,62,63,61,59,56,58,62,63,66,68,70,69,60,62,63,61,59,58,67,65,64,66,68,70,67,65,64,66,63,61,58,69,67,65,64,66,68,69,67,62,63,61,59,59,61,63,62,67,69,68,66,64,65,67,69,58,61,63,66,64,65,67,70,68,66,64,65,67,58,59,61,63,62,60,69,70,68,66,63,62,58,56,59,61,63,62,60,58,67,70,66,61,63,62,60,58,57,59,61,63,65,67,57,59,61,63,62,60,58,67,65,64,66,68,70,72,69,64,66,68,70,72,71,69,67,65,64,68,72,69,65,64,66,68,70,72,71,69,67,65,64,72,73,71,67,65,64,66,68,73,71,69,72,74,76,75,73,71,69,68,70,72,75,73,71,70,72,74,76,73,71,65,64,66,68,68,66,64,65,71,73,76,74,72,70,71,73,75,72,70,68,69,71,73,75,76,74,72,69,71,73,68,66,64,65,67,71,73,72,64,65,67,69,71,72,70,68,66,64,65,69,72,68,64,65,67,69,71,72,70,68,66,64,69,72,70,68,66,64,65,67,75,73,71,69,74,76,78,71,73,75,77,74,76,78,79,77,75,73,74,76,78,71,73,75,77,74,76,78,77,75,73,78,76,74,79,77,75,70,72,74,76,79,77,75,82,80,78,77,79,81,83,78,76,74,77,81,84,82,80,78,79,77,75,76,74,72,70,70,72,74,76,75,77,79,78,80,82,84,81,77,74,76,78,83,81,79,77,78,80,82,75,77,79,76,74,72,70,75,77,79,74,76,78,73,75,77,78,76,74,77,75,73,71,78,76,74,73,75,77,79,78,76,74,77,75,73,71,78,76,74,69,71,73,75,77,79,81,83,84,82,80,91,79,81,83,84,82,80,81,83,84,82,80,90,93,79,81,83,84,82,80,79,81,83,84,82,80,88,93,81,83,84,82,80,78,81,83,84,85,86,88,95,93,91,89,84,82,80,79,83,91,87,86,90,93,81,83,84,82,80,78,78,80,82,84,83,81,93,90,86,87,91,83,79,80,82,84,89,91,93,95,88,86,85,84,83,81,78,80,82,84,83,81,93,88,80,82,84,83,81,79,80,82,84,83,81,79,93,90,80,82,84,83,81,80,82,84,83,81,79,91,80,82,84,83,81,79,77,93,91,89,87,85,86,88,95,93,89,87,85,86,88,91,89,87,85,86,88,92,95,91,89,87,85,86,88,93,91,89,87,85,86,90,95,91,89,87,85,86,88,93,91,89,87,90,92,100,98,96,87,85,86,88,95,93,89,85,88,92,95,91,89,85,87,86,88,88,86,87,85,89,91,95,92,88,85,89,93,95,88,86,85,87,96,98,100,92,90,87,89,91,93,88,86,85,87,89,91,95,90,86,85,87,89,91,93,88,86,85,87,89,91,95,92,88,86,85,87,89,91,88,86,85,87,89,93,95,88,86,85,87,89,91,93,98,96,95,97,94,92,90,100,98,96,97,94,92,90,98,96,95,93,94,97,99,100,98,96,97,94,92,90,98,96,95,99,97,94,92,100,98,96,97,94,92,90,98,96,95,99,97,94,102,104,106,97,94,92,90,100,98,96,99,97,94,100,98,96,97,94,92,90,90,92,94,97,96,98,100,94,97,99,96,98,100,90,92,94,97,106,104,102,94,97,99,95,96,98,90,92,94,97,96,98,100,92,94,97,99,95,96,98,90,92,94,97,96,98,100,99,97,94,93,95,96,98,90,92,94,97,96,98,100,90,92,94,97,95,96,98,100,104,106,105,103,101,99,102,104,106,105,103,101,99,100,102,104,106,105,103,101,102,104,106,105,103,101,99,100,102,104,106,105,103,101,102,104,106,105,103,101,99,100,102,104,106,105,103,101,112,108,107,105,103,101,99,102,104,106,105,103,101,102,104,106,105,103,101,99,99,101,103,105,106,104,102,101,103,105,106,104,102,99,101,103,105,107,108,112,101,103,105,106,104,102,100,99,101,103,105,106,104,102,101,103,105,106,104,102,100,99,101,103,105,106,104,102,101,103,105,106,104,102,100,99,101,103,105,106,104,102,99,101,103,105,106,104,100,102,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,112,110,108,107,109,111,114,110,109,111,113,115,114,112,110,108,107,109,111,114,112,110,108,107,109,111,111,109,107,108,110,112,114,111,109,107,108,110,112,114,115,113,111,109,110,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,114,111,109,107,108,110,112,102,118,116,114,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,116,118,120,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,120,118,116,119,117,115,113,120,118,116,121,119,117,120,118,116,119,117,115,113,120,118,116,119,117,115,113,113,115,117,119,116,118,120,113,115,117,119,116,118,120,117,119,121,116,118,120,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,120,118,116,113,115,117,119,116,118,120,113,115,117,119,116,118,120,113,115,117,119,114,116,118,120,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,121,122,124,126,127,125,123,122,124,126,127,125,123,121,122,124,126,127,125,123,121,121,123,125,127,126,124,122,121,123,125,127,126,124,122,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,121,123,125,127,126,124,122,120}; -const Int_t AliL3TPCMapping::fgkOFecCon[fgkNOROC] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,3,3,3,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,3,3,3,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,3,3,2,2,2,3,2,2,2,2,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,2,2,2,2,3,2,2,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,3,3,4,3,3,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,3,4,4,4,4,4,4,3,3,3,3,4,4,4,4,4,4,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,3,3,3,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,4,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,4,4,4,5,5,5,5,5,5,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,3,3,3,3,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,3,3,3,3,3,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,4,4,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5}; diff --git a/HLT/misc/Makefile b/HLT/misc/Makefile index faef680692a..d9d87f8a743 100644 --- a/HLT/misc/Makefile +++ b/HLT/misc/Makefile @@ -6,7 +6,7 @@ # Constantin Loizides # ################################ -MODNAME = AliL3Misc +MODNAME = AliHLTMisc ifndef ALIHLT_TOPDIR ALIHLT_TOPDIR = $(shell pwd)/.. @@ -14,14 +14,14 @@ endif include $(ALIHLT_TOPDIR)/Makefile.conf -SRCS = AliL3TransBit.cxx AliL3AltroMemHandler.cxx \ - AliL3VHDLClusterFinder.cxx AliL3TPCMapping.cxx \ - AliL3FFloat.cxx AliL3Stopwatch.cxx AliL3DDLRawReader.cxx \ - AliL3DDLRawReaderFile.cxx AliL3DDLTPCRawStream.cxx +SRCS = AliHLTTransBit.cxx AliHLTAltroMemHandler.cxx \ + AliHLTVHDLClusterFinder.cxx AliHLTTPCMapping.cxx \ + AliHLTFFloat.cxx AliHLTStopwatch.cxx AliHLTDDLRawReader.cxx \ + AliHLTDDLRawReaderFile.cxx AliHLTDDLTPCRawStream.cxx ifneq ($(ARCH),macosx) ## for macosx put into src as symbolic link -SRCS += AliL3DDLDataFileHandler.cxx AliL3DataHandler.cxx +SRCS += AliHLTDDLDataFileHandler.cxx AliHLTDataHandler.cxx endif include $(ALIHLT_TOPDIR)/Makefile.rules diff --git a/HLT/programs/Makefile b/HLT/programs/Makefile index f47da5e90a7..433939eeb82 100644 --- a/HLT/programs/Makefile +++ b/HLT/programs/Makefile @@ -15,8 +15,8 @@ include $(ALIHLT_TOPDIR)/Makefile.conf DEFSTR = -Dno_root INCLUDES = -I$(ALIHLT_TOPDIR)/src -I$(ALIHLT_TOPDIR)/hough -I$(ALIHLT_TOPDIR)/comp -I$(ALIHLT_TOPDIR)/misc -I$(ALIHLT_TOPDIR)/trigger -I$(ALIHLT_TOPDIR)/kalman -LIBS = -L$(ALIHLT_LIBDIR) -lAliL3Src -lAliL3Hough -lAliL3Comp -lAliL3Misc -STATICLIBS = $(ALIHLT_LIBDIR)/libAliL3Src.a $(ALIHLT_LIBDIR)/libAliL3Hough.a $(ALIHLT_LIBDIR)/libAliL3Comp.a $(ALIHLT_LIBDIR)/libAliL3Misc.a +LIBS = -L$(ALIHLT_LIBDIR) -lAliHLTSrc -lAliHLTHough -lAliHLTComp -lAliHLTMisc +STATICLIBS = $(ALIHLT_LIBDIR)/libAliHLTSrc.a $(ALIHLT_LIBDIR)/libAliHLTHough.a $(ALIHLT_LIBDIR)/libAliHLTComp.a $(ALIHLT_LIBDIR)/libAliHLTMisc.a ifneq ($(ALIHLT_USEPACKAGE),STANDALONE) ROOTCFLAGS := $(shell root-config --cflags) diff --git a/HLT/programs/ali2raw.cxx b/HLT/programs/ali2raw.cxx index 14e530cffc2..690a15bfa05 100644 --- a/HLT/programs/ali2raw.cxx +++ b/HLT/programs/ali2raw.cxx @@ -7,13 +7,13 @@ BOMB THE COMPILE: USEPACKAGE=ALIROOT #endif -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3MemHandler.h" -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" +#include "AliHLTRootTypes.h" +#include "AliHLTMemHandler.h" +#include "AliHLTFileHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" #if __GNUC__ == 3 using namespace std; @@ -49,9 +49,9 @@ int main (Int_t argc, Char_t** argv) /* - AliL3FileHandler *fFileHandler = new AliL3FileHandler(); + AliHLTFileHandler *fFileHandler = new AliHLTFileHandler(); fFileHandler->SetAliInput(in); - AliL3Transform *fTransformer = new AliL3Transform(path); + AliHLTTransform *fTransformer = new AliHLTTransform(path); fFileHandler->Init(fTransformer); @@ -102,7 +102,7 @@ int Make_Init(char *file, char *tofile=NULL){ } else strcpy(tofilename,file); FILE *f = fopen(tofilename,"w"); - fprintf(f,"void AliL3Transform::Init(){\n"); + fprintf(f,"void AliHLTTransform::Init(){\n"); fprintf(f," //sector:\n"); fprintf(f," fNTimeBins = %d ;\n",fNTimeBins); @@ -152,17 +152,17 @@ int Make_Init(char *file, char *tofile=NULL){ #if 0 void singlepatch(Char_t* in,Int_t first, Int_t last,Char_t *path="",Int_t event=0) { - AliL3Logger l; - //l.UnSet(AliL3Logger::kDebug); - //l.UnSet(AliL3Logger::kAll); - //l.Set(AliL3Logger::kInformational); + AliHLTLogger l; + //l.UnSet(AliHLTLogger::kDebug); + //l.UnSet(AliHLTLogger::kAll); + //l.Set(AliHLTLogger::kInformational); //l.UseStdout(); l.UseStream(); Char_t fname[100]; sprintf(fname,"%sevent_%d/",path,event); Char_t name[256]; - AliL3FileHandler *fFileHandler = new AliL3FileHandler(); + AliHLTFileHandler *fFileHandler = new AliHLTFileHandler(); fFileHandler->SetAliInput(in); Int_t srow[2] = {0,175}; Int_t patch=0; diff --git a/HLT/programs/convcosmicsfile.cxx b/HLT/programs/convcosmicsfile.cxx index 1f888ad2abc..6581addd364 100644 --- a/HLT/programs/convcosmicsfile.cxx +++ b/HLT/programs/convcosmicsfile.cxx @@ -7,8 +7,8 @@ Program to convert big <-> little endian cosmics data of 02/2003. */ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" #if __GNUC__ == 3 using namespace std; diff --git a/HLT/programs/gettransform.cxx b/HLT/programs/gettransform.cxx index cdf92357080..b0c76638134 100644 --- a/HLT/programs/gettransform.cxx +++ b/HLT/programs/gettransform.cxx @@ -9,13 +9,13 @@ vhdl implementation of the Hough transform. */ -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #if __GNUC__ == 3 using namespace std; @@ -27,8 +27,8 @@ int main(Int_t argc,Char_t **argv) Int_t slice=0; Char_t path[1000]; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -47,10 +47,10 @@ int main(Int_t argc,Char_t **argv) exit(1); } - AliL3Transform::Init(path); - cerr << "Transform version: " << AliL3Transform::GetVersion() << endl; + AliHLTTransform::Init(path); + cerr << "Transform version: " << AliHLTTransform::GetVersion() << endl; - AliL3HoughTransformerVhdl vtest(slice,patch,100,10); + AliHLTHoughTransformerVhdl vtest(slice,patch,100,10); vtest.CreateHistograms(64,0.1,64,-30,30); vtest.PrintVhdl(); exit(0); diff --git a/HLT/programs/read.cxx b/HLT/programs/read.cxx index 97114d6247a..905858180ad 100644 --- a/HLT/programs/read.cxx +++ b/HLT/programs/read.cxx @@ -4,15 +4,15 @@ //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Logger.h" -#include "AliL3MemHandler.h" -#include "AliL3AltroMemHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTLogger.h" +#include "AliHLTMemHandler.h" +#include "AliHLTAltroMemHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" #if __GNUC__ == 3 using namespace std; @@ -36,8 +36,8 @@ int main(Int_t argc,Char_t **argv) Bool_t altroout=kFALSE; FILE *afile=0; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); //l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -61,11 +61,11 @@ int main(Int_t argc,Char_t **argv) //Loading all specific aliroot version quantities, needed. Char_t fname[1024]; strcpy(fname,argv[1]); - AliL3Transform::Init(dirname(fname)); + AliHLTTransform::Init(dirname(fname)); strcpy(fname,argv[1]); //Filehandler object: - AliL3MemHandler file; + AliHLTMemHandler file; //Give slice and patch information (see filename convention) if((patch>=0)&&(patch<6)) file.Init(slice,patch); @@ -83,14 +83,14 @@ int main(Int_t argc,Char_t **argv) } //Create an RowData object to access the data - AliL3DigitRowData *digits=0; + AliHLTDigitRowData *digits=0; UInt_t nrows=0; //Read the file, and store the data in memory. Return value is a pointer to the data. digits = file.CompBinary2Memory(nrows); //Create an ALtroMemHandler object - AliL3AltroMemHandler altromem; + AliHLTAltroMemHandler altromem; if(altroout) altroout=altromem.SetASCIIOutput(afile); UShort_t time,charge; @@ -100,7 +100,7 @@ int main(Int_t argc,Char_t **argv) for(UInt_t r=0; rfDigitData; + AliHLTDigitData *dataPt = (AliHLTDigitData*)digits->fDigitData; row++; if(lrow+1==row) crows++; diff --git a/HLT/programs/runhough.cxx b/HLT/programs/runhough.cxx index f793d366eab..8a27d015285 100644 --- a/HLT/programs/runhough.cxx +++ b/HLT/programs/runhough.cxx @@ -3,24 +3,24 @@ // Author: Constantin Loizides - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #ifndef no_root #include @@ -41,8 +41,8 @@ int main(Int_t argc,Char_t **argv) Int_t sh=0; Int_t segs=100; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -63,15 +63,15 @@ int main(Int_t argc,Char_t **argv) segs=atoi(argv[4]); } - //AliL3FFloat::SetParams(10000); - AliL3Transform::Init(path); + //AliHLTFFloat::SetParams(10000); + AliHLTTransform::Init(path); #if 0 runhough(sl,sh,path,segs); #else //do some comparison tests - AliL3HoughBaseTransformer *fh1 = new AliL3HoughTransformerVhdl(0,0,segs); - AliL3HoughBaseTransformer *fh2 = new AliL3HoughTransformerLUT(0,0,segs); + AliHLTHoughBaseTransformer *fh1 = new AliHLTHoughTransformerVhdl(0,0,segs); + AliHLTHoughBaseTransformer *fh2 = new AliHLTHoughTransformerLUT(0,0,segs); fh1->CreateHistograms(64,0.1,64,-30.,30.); fh2->CreateHistograms(64,0.1,64,-30.,30.); @@ -80,7 +80,7 @@ int main(Int_t argc,Char_t **argv) #endif - //AliL3FFloat::PrintStat(); + //AliHLTFFloat::PrintStat(); exit(0); } @@ -98,7 +98,7 @@ void runhough(Int_t sl,Int_t sh,Char_t *path,Int_t n_eta_segments, Int_t show_se Int_t tv=1; Int_t th=14000; - AliL3Hough *hough = new AliL3Hough(); + AliHLTHough *hough = new AliHLTHough(); hough->Init(path,binary,n_eta_segments,bit8,tv); hough->GetMaxFinder()->SetThreshold(th); Int_t ntracks=0; @@ -110,11 +110,11 @@ void runhough(Int_t sl,Int_t sh,Char_t *path,Int_t n_eta_segments, Int_t show_se hough->FindTrackCandidates(); //hough->Evaluate(5); - AliL3TrackArray *tracks = (AliL3TrackArray*)hough->GetTracks(0); + AliHLTTrackArray *tracks = (AliHLTTrackArray*)hough->GetTracks(0); ntracks=tracks->GetNTracks(); for(int i=0; iGetCheckedTrack(i); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!track) continue; if(sl==sh) cout<<"pt "<GetPt()<<" psi "<GetPsi()<<" eta "<GetEta()<<" etaindex "<GetEtaIndex()<<" weight "<GetWeight()<GetEtaIndex(); @@ -129,21 +129,21 @@ void runhough(Int_t sl,Int_t sh,Char_t *path,Int_t n_eta_segments, Int_t show_se #endif #if 0 -void display(AliL3Hough *hough,Int_t eta_index) +void display(AliHLTHough *hough,Int_t eta_index) { //Display the data/tracks in eta_index hough->InitEvaluate(); - AliL3Histogram *digitd = new AliL3Histogram("Digits display","",250,0,250,250,-125,125); - AliL3Histogram *trackd = new AliL3Histogram("Found tracks display","",250,0,250,250,-125,125); + AliHLTHistogram *digitd = new AliHLTHistogram("Digits display","",250,0,250,250,-125,125); + AliHLTHistogram *trackd = new AliHLTHistogram("Found tracks display","",250,0,250,250,-125,125); for(int i=0; i<6; i++) hough->GetEval(i)->DisplayEtaSlice(eta_index,digitd); float xyz[3]; - tracks = (AliL3TrackArray*)hough->GetTracks(0); + tracks = (AliHLTTrackArray*)hough->GetTracks(0); for(int i=0; iGetNTracks(); i++) { - AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(i); + AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(i); if(!track) continue; if(track->GetEtaIndex() != eta_index) continue; @@ -193,6 +193,6 @@ void geteff(char *fname) counter++; char filename[100]; - file = new AliL3MemHandler(); + file = new AliHLTMemHandler(); } #endif diff --git a/HLT/programs/runit.cxx b/HLT/programs/runit.cxx index 4984e02a05b..c047f816ac8 100644 --- a/HLT/programs/runit.cxx +++ b/HLT/programs/runit.cxx @@ -11,15 +11,15 @@ */ -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Logger.h" -#include "AliL3RootTypes.h" -#include "AliL3Transform.h" -#include "AliL3ClustFinderNew.h" -#include "AliL3MemHandler.h" -#include "AliL3SpacePointData.h" +#include "AliHLTLogging.h" +#include "AliHLTLogger.h" +#include "AliHLTRootTypes.h" +#include "AliHLTTransform.h" +#include "AliHLTClustFinderNew.h" +#include "AliHLTMemHandler.h" +#include "AliHLTSpacePointData.h" #if __GNUC__ == 3 using namespace std; @@ -39,8 +39,8 @@ int main(Int_t argc,Char_t **argv) Int_t th=10; Bool_t de=kFALSE; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -65,22 +65,22 @@ int main(Int_t argc,Char_t **argv) de=kTRUE; } - AliL3DigitRowData *digits = 0; + AliHLTDigitRowData *digits = 0; unsigned int nrows=0; //reading transformer init file Char_t fname[1024]; strcpy(fname,argv[1]); - AliL3Transform::Init(dirname(fname)); + AliHLTTransform::Init(dirname(fname)); strcpy(fname,argv[1]); //Does all the file/data handling - AliL3MemHandler file; + AliHLTMemHandler file; //Give slice and patch information (see filename convention) if((patch>=0)&&(patch<6)) file.Init(slice,patch); else { - Int_t srows[2]={0,AliL3Transform::GetLastRow(5)}; + Int_t srows[2]={0,AliHLTTransform::GetLastRow(5)}; patch=0; file.Init(slice,patch,srows); } @@ -97,7 +97,7 @@ int main(Int_t argc,Char_t **argv) file.CloseBinaryInput(); //The cluster finder itself. - AliL3ClustFinderNew cf; + AliHLTClustFinderNew cf; //Init cluster finder cf.InitSlice(slice,patch,0,nrows-1,MAXCLUSTER); @@ -110,8 +110,8 @@ int main(Int_t argc,Char_t **argv) cf.SetDeconv(de); //standard is false //Allocate memory to store found spacepoints - AliL3MemHandler fpoints; - AliL3SpacePointData *points=(AliL3SpacePointData*)fpoints.Allocate(MAXCLUSTER*sizeof(AliL3SpacePointData)); + AliHLTMemHandler fpoints; + AliHLTSpacePointData *points=(AliHLTSpacePointData*)fpoints.Allocate(MAXCLUSTER*sizeof(AliHLTSpacePointData)); cf.SetOutputArray(points); //Give the data pointer to the cluster finder diff --git a/HLT/programs/runtracker.cxx b/HLT/programs/runtracker.cxx index 5e549edcaef..1fdb89cfeb5 100644 --- a/HLT/programs/runtracker.cxx +++ b/HLT/programs/runtracker.cxx @@ -3,9 +3,9 @@ // Author: Constantin Loizides //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" #include "AliLevel3.h" //Standalone program to run the track follower for benchmark tests. diff --git a/HLT/programs/runvhdlcf.cxx b/HLT/programs/runvhdlcf.cxx index 58725f31a78..2b9f286f01f 100644 --- a/HLT/programs/runvhdlcf.cxx +++ b/HLT/programs/runvhdlcf.cxx @@ -4,15 +4,15 @@ //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Logger.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" -#include "AliL3VHDLClusterFinder.h" -#include "AliL3AltroMemHandler.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTLogger.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" +#include "AliHLTVHDLClusterFinder.h" +#include "AliHLTAltroMemHandler.h" #if __GNUC__ == 3 @@ -36,8 +36,8 @@ int main(Int_t argc,Char_t **argv) Int_t th=10; Bool_t de=kFALSE; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -66,7 +66,7 @@ int main(Int_t argc,Char_t **argv) //reading transformer config file Char_t fname[1024]; strcpy(fname,argv[1]); - AliL3Transform::Init(dirname(fname)); + AliHLTTransform::Init(dirname(fname)); strcpy(fname,argv[1]); */ @@ -76,7 +76,7 @@ int main(Int_t argc,Char_t **argv) exit(1); } - AliL3VHDLClusterFinder cf; + AliHLTVHDLClusterFinder cf; cf.SetASCIIInput(afile); //set cluster finder parameters diff --git a/HLT/programs/runvhdlhough.cxx b/HLT/programs/runvhdlhough.cxx index 8193e6e87c9..dfa22b0eb25 100644 --- a/HLT/programs/runvhdlhough.cxx +++ b/HLT/programs/runvhdlhough.cxx @@ -4,14 +4,14 @@ //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Transform.h" -#include "AliL3VHDLClusterFinder.h" -#include "AliL3AltroMemHandler.h" -#include "AliL3Logging.h" -#include "AliL3Logger.h" +#include "AliHLTRootTypes.h" +#include "AliHLTTransform.h" +#include "AliHLTVHDLClusterFinder.h" +#include "AliHLTAltroMemHandler.h" +#include "AliHLTLogging.h" +#include "AliHLTLogger.h" #if __GNUC__ == 3 using namespace std; @@ -32,8 +32,8 @@ int main(int argc,char **argv) Int_t fm=4; Int_t th=10; - AliL3Logger l; - l.Set(AliL3Logger::kAll); + AliHLTLogger l; + l.Set(AliHLTLogger::kAll); l.UseStderr(); //l.UseStdout(); //l.UseStream(); @@ -58,7 +58,7 @@ int main(int argc,char **argv) //Storing all specific quantities, needed by the Cluster Finder. //Char_t fname[1024]; //strcpy(fname,argv[1]); - //AliL3Transform::Init(dirname(fname)); + //AliHLTTransform::Init(dirname(fname)); //strcpy(fname,argv[1]); FILE *afile=fopen(argv[1],"r"); @@ -67,7 +67,7 @@ int main(int argc,char **argv) exit(1); } - AliL3VHDLClusterFinder cf; + AliHLTVHDLClusterFinder cf; cf.SetASCIIInput(afile); //set cluster finder parameters diff --git a/HLT/programs/speedtest.cxx b/HLT/programs/speedtest.cxx index b989155cbbf..946b243ce60 100644 --- a/HLT/programs/speedtest.cxx +++ b/HLT/programs/speedtest.cxx @@ -10,16 +10,16 @@ int main(int arg,char **arc){ int n = 0; if(arg!=2) {cerr<<"usage: speedtest #loops \n";return -1;} n = atoi(arc[1]); -// cerr<<"allocate: "< #define ALIL3LOGGING_H -class AliL3Log{ +class AliHLTLog{ public: enum TLogLevel { kNone = 0, kDebug= 0x01, kInformational = 0x02, kWarning = 0x04, kError = 0x08 , kFatal = 0x10, kPrimary = 0x80, kAll = 0x9F }; enum TLogCmd { kEnd, kPrec, kHex, kDec }; @@ -15,7 +15,7 @@ class AliL3Log{ #include #include #include -#include "AliL3ConfMapPoint.cxx" +#include "AliHLTConfMapPoint.cxx" double CpuTime() { diff --git a/HLT/programs/tpcbeamtestdisplay.cxx b/HLT/programs/tpcbeamtestdisplay.cxx index dd43680848f..802d84b6035 100644 --- a/HLT/programs/tpcbeamtestdisplay.cxx +++ b/HLT/programs/tpcbeamtestdisplay.cxx @@ -1,18 +1,18 @@ // $Id$ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" #include "AliLevel3.h" -#include "AliL3Transform.h" -#include "AliL3RawDataFileHandler.h" -#include "AliL3SpacePointData.h" -#include "AliL3ClustFinderNew.h" -#include "AliL3ConfMapper.h" -#include "AliL3Vertex.h" -#include "AliL3MemHandler.h" -#include "AliL3Logging.h" -#include "AliL3TrackArray.h" -#include "AliL3Track.h" +#include "AliHLTTransform.h" +#include "AliHLTRawDataFileHandler.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTClustFinderNew.h" +#include "AliHLTConfMapper.h" +#include "AliHLTVertex.h" +#include "AliHLTMemHandler.h" +#include "AliHLTLogging.h" +#include "AliHLTTrackArray.h" +#include "AliHLTTrack.h" #include #include #include @@ -52,20 +52,20 @@ int main(Int_t argc,Char_t **argv){ //displaying the tracks: UInt_t fNcl; - AliL3MemHandler *clusterfile = new AliL3MemHandler(); + AliHLTMemHandler *clusterfile = new AliHLTMemHandler(); sprintf(fname,"%s/%s-points_0_-1.raw",path,cfile); cout<<"file: "<SetBinaryInput(fname)){ cout<<"file: "<SetBinaryInput(fname); - AliL3SpacePointData *fClusters = new AliL3SpacePointData(); - memset(fClusters,0,sizeof(AliL3SpacePointData*)); - fClusters = (AliL3SpacePointData*)clusterfile->Allocate(); + AliHLTSpacePointData *fClusters = new AliHLTSpacePointData(); + memset(fClusters,0,sizeof(AliHLTSpacePointData*)); + fClusters = (AliHLTSpacePointData*)clusterfile->Allocate(); clusterfile->Binary2Memory(fNcl,fClusters); clusterfile->CloseBinaryInput(); TApplication theApp("App", &argc, argv); @@ -75,7 +75,7 @@ int main(Int_t argc,Char_t **argv){ c1->Clear(); c1->SetFillColor(1); - AliL3SpacePointData *points = fClusters; + AliHLTSpacePointData *points = fClusters; TH2F *clusters = new TH2F("clusters","",65,-1,64,77,17,94); if(!points) cout<<"no points"<SetParameters(xyParamA,xyParamB); - TLine *leftline= new TLine(0,(0-AliL3Transform::GetNPads(0)/2+55),0,AliL3Transform::GetNPads(0)-(AliL3Transform::GetNPads(0)/2)+55); - TLine *rightline=new TLine(63,(0-AliL3Transform::GetNPads(63)/2+55),63,AliL3Transform::GetNPads(63)-(AliL3Transform::GetNPads(63)/2)+55); - TLine *upperline=new TLine(0,(AliL3Transform::GetNPads(0)-AliL3Transform::GetNPads(0)/2+55),63,AliL3Transform::GetNPads(63)-(AliL3Transform::GetNPads(63)/2)+55); - TLine *underline=new TLine(0,(0-AliL3Transform::GetNPads(0)/2+55),63,0-(AliL3Transform::GetNPads(63)/2)+55); + TLine *leftline= new TLine(0,(0-AliHLTTransform::GetNPads(0)/2+55),0,AliHLTTransform::GetNPads(0)-(AliHLTTransform::GetNPads(0)/2)+55); + TLine *rightline=new TLine(63,(0-AliHLTTransform::GetNPads(63)/2+55),63,AliHLTTransform::GetNPads(63)-(AliHLTTransform::GetNPads(63)/2)+55); + TLine *upperline=new TLine(0,(AliHLTTransform::GetNPads(0)-AliHLTTransform::GetNPads(0)/2+55),63,AliHLTTransform::GetNPads(63)-(AliHLTTransform::GetNPads(63)/2)+55); + TLine *underline=new TLine(0,(0-AliHLTTransform::GetNPads(0)/2+55),63,0-(AliHLTTransform::GetNPads(63)/2)+55); nothing->Draw("colz"); nothing->SetXTitle("Padrows"); diff --git a/HLT/programs/tpcbeamtesttracker.cxx b/HLT/programs/tpcbeamtesttracker.cxx index 5c83950d4dc..50cebd0fd9f 100644 --- a/HLT/programs/tpcbeamtesttracker.cxx +++ b/HLT/programs/tpcbeamtesttracker.cxx @@ -1,14 +1,14 @@ // $Id$ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" #include "AliLevel3.h" -#include "AliL3Transform.h" -#include "AliL3RawDataFileHandler.h" -#include "AliL3SpacePointData.h" -#include "AliL3ClustFinderNew.h" -#include "AliL3ConfMapper.h" -#include "AliL3Vertex.h" +#include "AliHLTTransform.h" +#include "AliHLTRawDataFileHandler.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTClustFinderNew.h" +#include "AliHLTConfMapper.h" +#include "AliHLTVertex.h" #if __GNUC__== 3 using namespace std; @@ -41,9 +41,9 @@ int main(Int_t argc,Char_t **argv) sprintf(path,"%s",argv[2]); } - AliL3Transform::Init("./l3-cosmics-transform.config"); - AliL3Transform::SetZeroSup(5); - AliL3RawDataFileHandler *f=new AliL3RawDataFileHandler(); + AliHLTTransform::Init("./l3-cosmics-transform.config"); + AliHLTTransform::SetZeroSup(5); + AliHLTRawDataFileHandler *f=new AliHLTRawDataFileHandler(); f->Init(slice,patch); @@ -73,23 +73,23 @@ int main(Int_t argc,Char_t **argv) #endif UInt_t nrows; - AliL3DigitRowData *data=(AliL3DigitRowData*)f->RawData2Memory(nrows); + AliHLTDigitRowData *data=(AliHLTDigitRowData*)f->RawData2Memory(nrows); - AliL3MemHandler *out = new AliL3MemHandler(); + AliHLTMemHandler *out = new AliHLTMemHandler(); sprintf(fname,"./%s-digits_%d_%d.raw",cfile,slice,patch); out->SetBinaryOutput(fname); out->Memory2Binary(nrows,data); out->CloseBinaryOutput(); out->Free(); - AliL3MemHandler *mem=new AliL3MemHandler(); + AliHLTMemHandler *mem=new AliHLTMemHandler(); UInt_t maxclusters=100000; - UInt_t pointsize = maxclusters*sizeof(AliL3SpacePointData); - AliL3SpacePointData *points = (AliL3SpacePointData*)mem->Allocate(pointsize); + UInt_t pointsize = maxclusters*sizeof(AliHLTSpacePointData); + AliHLTSpacePointData *points = (AliHLTSpacePointData*)mem->Allocate(pointsize); Bool_t rawsp=kTRUE; - AliL3ClustFinderNew *cf = new AliL3ClustFinderNew(); + AliHLTClustFinderNew *cf = new AliHLTClustFinderNew(); cf->InitSlice(slice,patch,maxclusters); cf->SetMatchWidth(10); cf->SetSTDOutput(kTRUE); diff --git a/HLT/sim/AliL3Generator.cxx b/HLT/sim/AliHLTGenerator.cxx similarity index 57% rename from HLT/sim/AliL3Generator.cxx rename to HLT/sim/AliHLTGenerator.cxx index 6affaedccda..5b226f5cef5 100644 --- a/HLT/sim/AliL3Generator.cxx +++ b/HLT/sim/AliHLTGenerator.cxx @@ -1,19 +1,19 @@ -#include "AliL3Generator.h" +#include "AliHLTGenerator.h" -ClassImp(AliL3Generator) +ClassImp(AliHLTGenerator) -AliL3Generator::AliL3Generator() +AliHLTGenerator::AliHLTGenerator() { } -AliL3Generator::~AliL3Generator() +AliHLTGenerator::~AliHLTGenerator() { } -void AliL3Generator::Generate() +void AliHLTGenerator::Generate() { Float_t pt[3]; for(Int_t i=0; i //*-- Copyright © ALICE HLT Group -/** \class AliL3Benchmark +/** \class AliHLTBenchmark
//_____________________________________________________________ // -// AliL3Benchmark +// AliHLTBenchmark // // Benchmark class for level3 code // @@ -22,18 +22,18 @@ #include #include #endif -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Benchmark.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTBenchmark.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3Benchmark) +ClassImp(AliHLTBenchmark) -AliL3Benchmark::AliL3Benchmark() +AliHLTBenchmark::AliHLTBenchmark() { //Constructor fNbench = 0; @@ -46,7 +46,7 @@ AliL3Benchmark::AliL3Benchmark() fCount = 0; } -AliL3Benchmark::~AliL3Benchmark() +AliHLTBenchmark::~AliHLTBenchmark() { //deconstructor fNbench = 0; @@ -58,7 +58,7 @@ AliL3Benchmark::~AliL3Benchmark() if (fCount) {delete [] fCount; fCount =0;} } -Int_t AliL3Benchmark::GetBench(const Char_t *name) +Int_t AliHLTBenchmark::GetBench(const Char_t *name) { //get bench with name for (Int_t i=0;i, Constantin Loizides //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3ClustFinderNew.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "AliL3SpacePointData.h" -#include "AliL3MemHandler.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTClustFinderNew.h" +#include "AliHLTDigitData.h" +#include "AliHLTTransform.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTMemHandler.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3ClustFinderNew +/** \class AliHLTClustFinderNew
 //_____________________________________________________________
-// AliL3ClustFinderNew
+// AliHLTClustFinderNew
 //
 // The current cluster finder for HLT
 // (Based on STAR L3)
 // 
 // The cluster finder is initialized with the Init function, 
 // providing the slice and patch information to work on. 
-// The input is a AliL3DigitRowData structure using the 
+// The input is a AliHLTDigitRowData structure using the 
 // Read function. The resulting space points will be in the
 // array given by the SetOutputArray function.
 // 
@@ -47,17 +47,17 @@ using namespace std;
 //
 // Example Usage:
 //
-// AliL3FileHandler *file = new AliL3FileHandler();
+// AliHLTFileHandler *file = new AliHLTFileHandler();
 // file->SetAliInput(digitfile); //give some input file
 // for(int slice=0; slice<=35; slice++){
 //   for(int patch=0; pat<6; pat++){
 //     file->Init(slice,patch);
 //     UInt_t ndigits=0;
 //     UInt_t maxclusters=100000;
-//     UInt_t pointsize = maxclusters*sizeof(AliL3SpacePointData);
-//     AliL3SpacePointData *points = (AliL3SpacePointData*)memory->Allocate(pointsize);
-//     AliL3DigitRowData *digits = (AliL3DigitRowData*)file->AliAltroDigits2Memory(ndigits,event);
-//     AliL3ClustFinderNew *cf = new AliL3ClustFinderNew();
+//     UInt_t pointsize = maxclusters*sizeof(AliHLTSpacePointData);
+//     AliHLTSpacePointData *points = (AliHLTSpacePointData*)memory->Allocate(pointsize);
+//     AliHLTDigitRowData *digits = (AliHLTDigitRowData*)file->AliAltroDigits2Memory(ndigits,event);
+//     AliHLTClustFinderNew *cf = new AliHLTClustFinderNew();
 //     cf->SetMatchWidth(2);
 //     cf->InitSlice(slice,patch,maxclusters);
 //     cf->SetSTDOutput(kTRUE);    //Some output to standard IO
@@ -69,7 +69,7 @@ using namespace std;
 //     cf->Read(ndigits,digits);   //give the data to the cf
 //     cf->ProcessDigits();        //process the rows given by init
 //     Int_t npoints = cf->GetNumberOfClusters();
-//     AliL3MemHandler *out= new AliL3MemHandler();
+//     AliHLTMemHandler *out= new AliHLTMemHandler();
 //     out->SetBinaryOutput(fname);
 //     out->Memory2Binary(npoints,points); //store the spacepoints
 //     out->CloseBinaryOutput();
@@ -81,9 +81,9 @@ using namespace std;
 
*/ -ClassImp(AliL3ClustFinderNew) +ClassImp(AliHLTClustFinderNew) -AliL3ClustFinderNew::AliL3ClustFinderNew() +AliHLTClustFinderNew::AliHLTClustFinderNew() { //constructor fMatch = 1; @@ -99,13 +99,13 @@ AliL3ClustFinderNew::AliL3ClustFinderNew() fLastRow=0; } -AliL3ClustFinderNew::~AliL3ClustFinderNew() +AliHLTClustFinderNew::~AliHLTClustFinderNew() { //destructor ; } -void AliL3ClustFinderNew::InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t nmaxpoints) +void AliHLTClustFinderNew::InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t nmaxpoints) { //init slice fNClusters = 0; @@ -116,55 +116,55 @@ void AliL3ClustFinderNew::InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_ fLastRow = lastrow; } -void AliL3ClustFinderNew::InitSlice(Int_t slice,Int_t patch,Int_t nmaxpoints) +void AliHLTClustFinderNew::InitSlice(Int_t slice,Int_t patch,Int_t nmaxpoints) { //init slice fNClusters = 0; fMaxNClusters = nmaxpoints; fCurrentSlice = slice; fCurrentPatch = patch; - fFirstRow=AliL3Transform::GetFirstRow(patch); - fLastRow=AliL3Transform::GetLastRow(patch); + fFirstRow=AliHLTTransform::GetFirstRow(patch); + fLastRow=AliHLTTransform::GetLastRow(patch); } -void AliL3ClustFinderNew::SetOutputArray(AliL3SpacePointData *pt) +void AliHLTClustFinderNew::SetOutputArray(AliHLTSpacePointData *pt) { //set pointer to output fSpacePointData = pt; } -void AliL3ClustFinderNew::Read(UInt_t ndigits,AliL3DigitRowData *ptr) +void AliHLTClustFinderNew::Read(UInt_t ndigits,AliHLTDigitRowData *ptr) { //set input pointer fNDigitRowData = ndigits; fDigitRowData = ptr; } -void AliL3ClustFinderNew::ProcessDigits() +void AliHLTClustFinderNew::ProcessDigits() { //Loop over rows, and call processrow - AliL3DigitRowData *tempPt = (AliL3DigitRowData*)fDigitRowData; + AliHLTDigitRowData *tempPt = (AliHLTDigitRowData*)fDigitRowData; fNClusters = 0; for(Int_t i=fFirstRow; i<=fLastRow; i++) { fCurrentRow = i; if((Int_t)tempPt->fRow!=fCurrentRow){ - LOG(AliL3Log::kWarning,"AliL3ClustFinderNew::ProcessDigits","Digits") + LOG(AliHLTLog::kWarning,"AliHLTClustFinderNew::ProcessDigits","Digits") <<"Row number should match! "<fRow<<" "<fNDigit*sizeof(AliL3DigitData); + Int_t size = sizeof(AliHLTDigitRowData) + tempPt->fNDigit*sizeof(AliHLTDigitData); tmp += size; - tempPt = (AliL3DigitRowData*)tmp; + tempPt = (AliHLTDigitRowData*)tmp; } - LOG(AliL3Log::kInformational,"AliL3ClustFinderNew::ProcessDigits","Space points") + LOG(AliHLTLog::kInformational,"AliHLTClustFinderNew::ProcessDigits","Space points") <<"Cluster finder found "<fNDigit; bin++) { - AliL3DigitData *data = tempPt->fDigitData; + AliHLTDigitData *data = tempPt->fDigitData; if(data[bin].fPad != lastpad) { //This is a new pad @@ -228,9 +228,9 @@ void AliL3ClustFinderNew::ProcessRow(AliL3DigitRowData *tempPt) while(1) //Loop over current sequence { - if(data[bin].fTime >= AliL3Transform::GetNTimeBins()) + if(data[bin].fTime >= AliHLTTransform::GetNTimeBins()) { - LOG(AliL3Log::kFatal,"AliL3ClustFinderNew::ProcessRow","Digits") + LOG(AliHLTLog::kFatal,"AliHLTClustFinderNew::ProcessRow","Digits") <<"Timebin out of range "<<(Int_t)data[bin].fTime<= fMaxNClusters) { - LOG(AliL3Log::kError,"AliL3ClustFinder::WriteClusters","Cluster Finder") - <fRow < (UInt_t)fCurrentRow){ - AliL3MemHandler::UpdateRowPointer(rowPt); + AliHLTMemHandler::UpdateRowPointer(rowPt); continue; } - AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData; + AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData; for(UInt_t j=0; jfNDigit; j++){ Int_t cpad = digPt[j].fPad; Int_t ctime = digPt[j].fTime; diff --git a/HLT/src/AliL3ClustFinderNew.h b/HLT/src/AliHLTClustFinderNew.h similarity index 78% rename from HLT/src/AliL3ClustFinderNew.h rename to HLT/src/AliHLTClustFinderNew.h index 7c631897702..bbc95827d0c 100644 --- a/HLT/src/AliL3ClustFinderNew.h +++ b/HLT/src/AliHLTClustFinderNew.h @@ -1,12 +1,12 @@ // @(#) $Id$ -#ifndef AliL3_ClustFinderNew -#define AliL3_ClustFinderNew +#ifndef AliHLT_ClustFinderNew +#define AliHLT_ClustFinderNew -class AliL3DigitRowData; -class AliL3SpacePointData; +class AliHLTDigitRowData; +class AliHLTSpacePointData; -class AliL3ClustFinderNew { +class AliHLTClustFinderNew { public: struct AliClusterData @@ -25,8 +25,8 @@ class AliL3ClustFinderNew { typedef struct AliClusterData AliClusterData; //! private: - AliL3DigitRowData *fDigitRowData; //! - AliL3SpacePointData *fSpacePointData; //! + AliHLTDigitRowData *fDigitRowData; //! + AliHLTSpacePointData *fSpacePointData; //! Bool_t fDeconvTime; //deconv in time direction Bool_t fDeconvPad; //deconv in pad direction Bool_t fStdout; //have print out in write clusters @@ -51,15 +51,15 @@ class AliL3ClustFinderNew { #endif public: - AliL3ClustFinderNew(); - virtual ~AliL3ClustFinderNew(); + AliHLTClustFinderNew(); + virtual ~AliHLTClustFinderNew(); - void Read(UInt_t ndigits,AliL3DigitRowData *ptr); + void Read(UInt_t ndigits,AliHLTDigitRowData *ptr); void InitSlice(Int_t slice,Int_t patch,Int_t firstrow, Int_t lastrow,Int_t maxpoints); void InitSlice(Int_t slice,Int_t patch,Int_t maxpoints); void ProcessDigits(); - void ProcessRow(AliL3DigitRowData *tempPt); - void SetOutputArray(AliL3SpacePointData *pt); + void ProcessRow(AliHLTDigitRowData *tempPt); + void SetOutputArray(AliHLTSpacePointData *pt); void WriteClusters(Int_t n_clusters,AliClusterData *list); void SetXYError(Float_t f) {fXYErr=f;} @@ -72,8 +72,11 @@ class AliL3ClustFinderNew { void SetRawSP(Bool_t f=kFALSE) {fRawSP=f;} Int_t GetNumberOfClusters() const {return fNClusters;} - ClassDef(AliL3ClustFinderNew,1) //Fast cluster finder + ClassDef(AliHLTClustFinderNew,1) //Fast cluster finder }; + +typedef AliHLTClustFinderNew AliL3ClustFinderNew; // for backward compatibility + #endif diff --git a/HLT/src/AliL3ConfMapFit.cxx b/HLT/src/AliHLTConfMapFit.cxx similarity index 81% rename from HLT/src/AliL3ConfMapFit.cxx rename to HLT/src/AliHLTConfMapFit.cxx index 72ae002ac43..36291c908e0 100644 --- a/HLT/src/AliL3ConfMapFit.cxx +++ b/HLT/src/AliHLTConfMapFit.cxx @@ -3,19 +3,19 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Vertex.h" -#include "AliL3ConfMapTrack.h" -#include "AliL3ConfMapPoint.h" -#include "AliL3Transform.h" -#include "AliL3ConfMapFit.h" - -/** \class AliL3ConfMapFit +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTVertex.h" +#include "AliHLTConfMapTrack.h" +#include "AliHLTConfMapPoint.h" +#include "AliHLTTransform.h" +#include "AliHLTConfMapFit.h" + +/** \class AliHLTConfMapFit
 //_____________________________________________________________
-// AliL3ConfMapFit
+// AliHLTConfMapFit
 //
 // Fit class for conformal mapping tracking
 
@@ -25,35 +25,35 @@ using namespace std; #endif -ClassImp(AliL3ConfMapFit) +ClassImp(AliHLTConfMapFit) -AliL3ConfMapFit::AliL3ConfMapFit(AliL3ConfMapTrack *track,AliL3Vertex *vertex) +AliHLTConfMapFit::AliHLTConfMapFit(AliHLTConfMapTrack *track,AliHLTVertex *vertex) { //constructor fTrack = track; fVertex = vertex; } -Int_t AliL3ConfMapFit::FitHelix() +Int_t AliHLTConfMapFit::FitHelix() { //fit the helix if(FitCircle()) { - LOG(AliL3Log::kError,"AliL3ConfMapFit::FitHelix","TrackFit")<StartLoop(); fTrack->LoopDone(); fTrack->GetNextHit()) { co++; - AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)fTrack->GetCurrentHit(); + AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)fTrack->GetCurrentHit(); cHit->SetXYWeight( 1./ (Double_t)(cHit->GetXerr()*cHit->GetXerr() + cHit->GetYerr()*cHit->GetYerr()) ); wsum += cHit->GetXYWeight() ; xav += cHit->GetXYWeight() * cHit->GetX() ; yav += cHit->GetXYWeight() * cHit->GetY() ; } if(co!=num_of_hits) - LOG(AliL3Log::kError,"AliL3ConfMapFit::FitCircle","TrackFit")<ComesFromMainVertex() == true) { @@ -105,8 +105,8 @@ Int_t AliL3ConfMapFit::FitCircle() for(fTrack->StartLoop(); fTrack->LoopDone(); fTrack->GetNextHit()) { - //AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint *)hits->At(hit_counter); - AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)fTrack->GetCurrentHit(); + //AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint *)hits->At(hit_counter); + AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)fTrack->GetCurrentHit(); xi = cHit->GetX() - xav ; yi = cHit->GetY() - yav ; xxav += xi * xi * cHit->GetXYWeight() ; @@ -189,8 +189,8 @@ Int_t AliL3ConfMapFit::FitCircle() //for (hit_counter=0; hit_counterStartLoop(); fTrack->LoopDone(); fTrack->GetNextHit()) { - //AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)hits->At(hit_counter); - AliL3ConfMapPoint* cHit = (AliL3ConfMapPoint*)fTrack->GetCurrentHit(); + //AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)hits->At(hit_counter); + AliHLTConfMapPoint* cHit = (AliHLTConfMapPoint*)fTrack->GetCurrentHit(); xold = cHit->GetX() - xav ; yold = cHit->GetY() - yav ; @@ -302,7 +302,7 @@ Int_t AliL3ConfMapFit::FitCircle() Double_t h24 = yrrav ; Double_t h34 = 1.0 + 2.0*lamda ; if ( h11 == 0.0 || h22 == 0.0 ){ - LOG(AliL3Log::kError,"AliL3ConfMapFit::FitCircle","TrackFit")<GetLastHit(); + AliHLTConfMapPoint *lHit = (AliHLTConfMapPoint*)fTrack->GetLastHit(); x0 = lHit->GetX(); y0 = lHit->GetY(); fTrack->SetFirstPoint(x0,y0,0); //Z-value is set in FitLine psi = (Double_t)atan2(bcent-y0,acent-x0) ; - psi = psi + q * AliL3Transform::PiHalf(); - if ( psi < 0 ) psi = psi + AliL3Transform::TwoPi(); - pt = (Double_t)(AliL3Transform::GetBFieldValue() * radius ) ; + psi = psi + q * AliHLTTransform::PiHalf(); + if ( psi < 0 ) psi = psi + AliHLTTransform::TwoPi(); + pt = (Double_t)(AliHLTTransform::GetBFieldValue() * radius ) ; //Update the track parameters with the parameters from this fit: fTrack->SetPsi(psi); @@ -380,7 +380,7 @@ Int_t AliL3ConfMapFit::FitCircle() //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Fit Line in s-z plane //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Int_t AliL3ConfMapFit::FitLine ( ) +Int_t AliHLTConfMapFit::FitLine ( ) { // //Initialization @@ -394,22 +394,22 @@ Int_t AliL3ConfMapFit::FitLine ( ) //find sum , sums ,sumz, sumss // Double_t dx, dy ; - Double_t radius = (Double_t)(fTrack->GetPt() / AliL3Transform::GetBFieldValue() ) ; + Double_t radius = (Double_t)(fTrack->GetPt() / AliHLTTransform::GetBFieldValue() ) ; //TObjArray *hits = fTrack->GetHits(); //Int_t num_of_hits = fTrack->GetNumberOfPoints(); if (0)// fTrack->ComesFromMainVertex() == true ) { - dx = ((AliL3ConfMapPoint*)fTrack->GetFirstHit())->GetX() - fVertex->GetX(); - dy = ((AliL3ConfMapPoint*)fTrack->GetFirstHit())->GetY() - fVertex->GetY() ; + dx = ((AliHLTConfMapPoint*)fTrack->GetFirstHit())->GetX() - fVertex->GetX(); + dy = ((AliHLTConfMapPoint*)fTrack->GetFirstHit())->GetY() - fVertex->GetY() ; } else { - dx = ((AliL3ConfMapPoint *)fTrack->GetFirstHit())->GetX() - ((AliL3ConfMapPoint *)fTrack->GetLastHit())->GetX() ; - dy = ((AliL3ConfMapPoint *)fTrack->GetFirstHit())->GetY() - ((AliL3ConfMapPoint *)fTrack->GetLastHit())->GetY() ; - //dx = ((AliL3ConfMapPoint *)hits->First())->GetX() - ((AliL3ConfMapPoint *)hits->Last())->GetX() ; - //dy = ((AliL3ConfMapPoint *)hits->First())->GetY() - ((AliL3ConfMapPoint *)hits->Last())->GetY() ; + dx = ((AliHLTConfMapPoint *)fTrack->GetFirstHit())->GetX() - ((AliHLTConfMapPoint *)fTrack->GetLastHit())->GetX() ; + dy = ((AliHLTConfMapPoint *)fTrack->GetFirstHit())->GetY() - ((AliHLTConfMapPoint *)fTrack->GetLastHit())->GetY() ; + //dx = ((AliHLTConfMapPoint *)hits->First())->GetX() - ((AliHLTConfMapPoint *)hits->Last())->GetX() ; + //dy = ((AliHLTConfMapPoint *)hits->First())->GetY() - ((AliHLTConfMapPoint *)hits->Last())->GetY() ; } Double_t localPsi = 0.5F * sqrt ( dx*dx + dy*dy ) / radius ; @@ -421,10 +421,10 @@ Int_t AliL3ConfMapFit::FitLine ( ) } else { - total_s = 2.0 * radius * AliL3Transform::Pi() ; + total_s = 2.0 * radius * AliHLTTransform::Pi() ; } - AliL3ConfMapPoint *previousHit = NULL; + AliHLTConfMapPoint *previousHit = NULL; // FtfBaseHit *previousHit = 0 ; @@ -434,8 +434,8 @@ Int_t AliL3ConfMapFit::FitLine ( ) // for(hit_counter=0; hit_counterStartLoop(); fTrack->LoopDone(); fTrack->GetNextHit()) { - // AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)hits->At(hit_counter); - AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)fTrack->GetCurrentHit(); + // AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)hits->At(hit_counter); + AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)fTrack->GetCurrentHit(); // if ( GetCurrentHit() != GetFirstHit() ) if(cHit != fTrack->GetFirstHit())// hits->First()) { @@ -483,8 +483,8 @@ Int_t AliL3ConfMapFit::FitLine ( ) //for(hit_counter=0; hit_counterStartLoop(); fTrack->LoopDone(); fTrack->GetNextHit()) { - //AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)hits->At(hit_counter); - AliL3ConfMapPoint *cHit = (AliL3ConfMapPoint*)fTrack->GetCurrentHit(); + //AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)hits->At(hit_counter); + AliHLTConfMapPoint *cHit = (AliHLTConfMapPoint*)fTrack->GetCurrentHit(); r1 = cHit->GetZ() - tanl * cHit->GetS() - z0 ; chi2 += (Double_t) ( (Double_t)cHit->GetZWeight() * (r1 * r1) ); } diff --git a/HLT/src/AliHLTConfMapFit.h b/HLT/src/AliHLTConfMapFit.h new file mode 100644 index 00000000000..6cd47070a60 --- /dev/null +++ b/HLT/src/AliHLTConfMapFit.h @@ -0,0 +1,28 @@ +// @(#) $Id$ + +#ifndef ALIL3_ConfMapFit +#define ALIL3_ConfMapFit + +class AliHLTConfMapTrack; +class AliHLTVertex; + +class AliHLTConfMapFit { + + private: + AliHLTConfMapTrack *fTrack; //! + AliHLTVertex *fVertex; //! + + public: + AliHLTConfMapFit (AliHLTConfMapTrack *track,AliHLTVertex *vertex); + virtual ~AliHLTConfMapFit() {}; + + Int_t FitHelix(); + Int_t FitCircle(); + Int_t FitLine(); + + ClassDef(AliHLTConfMapFit,1) //Conformal mapping fit class +}; + +typedef AliHLTConfMapFit AliL3ConfMapFit; // for backward compatibility + +#endif diff --git a/HLT/src/AliL3ConfMapPoint.cxx b/HLT/src/AliHLTConfMapPoint.cxx similarity index 84% rename from HLT/src/AliL3ConfMapPoint.cxx rename to HLT/src/AliHLTConfMapPoint.cxx index ed94af24381..e9ca604934d 100644 --- a/HLT/src/AliL3ConfMapPoint.cxx +++ b/HLT/src/AliHLTConfMapPoint.cxx @@ -3,28 +3,28 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3ConfMapPoint.h" -#include "AliL3SpacePointData.h" -#include "AliL3Vertex.h" -#include "AliL3ConfMapTrack.h" +#include "AliHLTLogging.h" +#include "AliHLTConfMapPoint.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTVertex.h" +#include "AliHLTConfMapTrack.h" /**
 //_____________________________________________________________
-// AliL3ConfMapPoint
+// AliHLTConfMapPoint
 //
 // Hit class for conformal mapper
 
fID); @@ -71,7 +71,7 @@ Bool_t AliL3ConfMapPoint::ReadHits(AliL3SpacePointData* hits ) return kTRUE; } -void AliL3ConfMapPoint::Reset() +void AliHLTConfMapPoint::Reset() { //Reset this point. SetUsage(kFALSE); @@ -81,7 +81,7 @@ void AliL3ConfMapPoint::Reset() fNextTrackHit=0; } -void AliL3ConfMapPoint::Setup(AliL3Vertex *vertex) +void AliHLTConfMapPoint::Setup(AliHLTVertex *vertex) { //Setup. Sets the vertex, conformal coordinates, //and phi and eta of each hit. @@ -97,7 +97,7 @@ void AliL3ConfMapPoint::Setup(AliL3Vertex *vertex) return; } -void AliL3ConfMapPoint::SetIntPoint(Double_t inx, Double_t iny, Double_t inz, +void AliHLTConfMapPoint::SetIntPoint(Double_t inx, Double_t iny, Double_t inz, Double_t inxerr, Double_t inyerr, Double_t inzerr) { // Defines a new interaction point. This point is needed to calculate @@ -113,7 +113,7 @@ void AliL3ConfMapPoint::SetIntPoint(Double_t inx, Double_t iny, Double_t inz, return; } -void AliL3ConfMapPoint::SetAllCoord(const AliL3ConfMapPoint *precedinghit) +void AliHLTConfMapPoint::SetAllCoord(const AliHLTConfMapPoint *precedinghit) { // Sets the interaction point, the shifted coordinates, and the conformal mapping coordinates. // These values are calculated from the interaction point of the given cluster which should be a @@ -135,7 +135,7 @@ void AliL3ConfMapPoint::SetAllCoord(const AliL3ConfMapPoint *precedinghit) return; } -void AliL3ConfMapPoint::SetShiftedCoord() +void AliHLTConfMapPoint::SetShiftedCoord() { // Sets the coordinates with resepct to the given vertex point @@ -150,7 +150,7 @@ void AliL3ConfMapPoint::SetShiftedCoord() return; } -void AliL3ConfMapPoint::SetConfCoord() +void AliHLTConfMapPoint::SetConfCoord() { // Calculates the conformal coordinates of one cluster. // If the option "vertex_constraint" applies the interaction point is @@ -192,7 +192,7 @@ void AliL3ConfMapPoint::SetConfCoord() return; } -void AliL3ConfMapPoint::SetAngles() +void AliHLTConfMapPoint::SetAngles() { // Calculates the angle phi and the pseudorapidity eta for each cluster. /* @@ -236,10 +236,10 @@ void AliL3ConfMapPoint::SetAngles() } /* -AliL3ConfMapTrack *AliL3ConfMapPoint::GetTrack(TClonesArray *tracks) const +AliHLTConfMapTrack *AliHLTConfMapPoint::GetTrack(TClonesArray *tracks) const { // Returns the pointer to the track to which this hit belongs. - return (AliL3ConfMapTrack*)tracks->At(this->GetTrackNumber()); + return (AliHLTConfMapTrack*)tracks->At(this->GetTrackNumber()); } */ diff --git a/HLT/src/AliL3ConfMapPoint.h b/HLT/src/AliHLTConfMapPoint.h similarity index 83% rename from HLT/src/AliL3ConfMapPoint.h rename to HLT/src/AliHLTConfMapPoint.h index 45a477982c2..1639c9e622f 100644 --- a/HLT/src/AliL3ConfMapPoint.h +++ b/HLT/src/AliHLTConfMapPoint.h @@ -3,13 +3,13 @@ #ifndef ALIL3ConfMapPointH #define ALIL3ConfMapPointH -#include "AliL3RootTypes.h" +#include "AliHLTRootTypes.h" -class AliL3SpacePointData; -class AliL3ConfMapTrack; -class AliL3Vertex; +class AliHLTSpacePointData; +class AliHLTConfMapTrack; +class AliHLTVertex; -class AliL3ConfMapPoint { +class AliHLTConfMapPoint { private: @@ -63,9 +63,9 @@ class AliL3ConfMapPoint { Double_t fPhi; // angle phi Double_t fEta; // pseudorapidity - AliL3ConfMapPoint *fNextVolumeHit; //! - AliL3ConfMapPoint *fNextRowHit; //! - AliL3ConfMapPoint *fNextTrackHit; //! Linked chain of points in a track + AliHLTConfMapPoint *fNextVolumeHit; //! + AliHLTConfMapPoint *fNextRowHit; //! + AliHLTConfMapPoint *fNextTrackHit; //! Linked chain of points in a track Short_t fPhiIndex; //phi index Short_t fEtaIndex; //eta index Double_t fXYChi2; //xy chi @@ -76,11 +76,11 @@ class AliL3ConfMapPoint { public: - AliL3ConfMapPoint(); - virtual ~AliL3ConfMapPoint(); + AliHLTConfMapPoint(); + virtual ~AliHLTConfMapPoint(); void Reset(); - Bool_t ReadHits(AliL3SpacePointData* hits ); + Bool_t ReadHits(AliHLTSpacePointData* hits ); // getter Double_t GetX() const {return fx;} @@ -124,9 +124,9 @@ class AliL3ConfMapPoint { Int_t GetTrackNumber() const {return fTrackNumber;} //Int_t const *GetMCTrackID() const {return fMCTrackID;} - AliL3ConfMapPoint* GetNextVolumeHit(){return fNextVolumeHit;} - AliL3ConfMapPoint* GetNextRowHit(){return fNextRowHit;} - AliL3ConfMapPoint* GetNextTrackHit(){return fNextTrackHit;} + AliHLTConfMapPoint* GetNextVolumeHit(){return fNextVolumeHit;} + AliHLTConfMapPoint* GetNextRowHit(){return fNextRowHit;} + AliHLTConfMapPoint* GetNextTrackHit(){return fNextTrackHit;} Short_t GetPhiIndex() const {return fPhiIndex;} Short_t GetEtaIndex() const {return fEtaIndex;} Double_t GetXYChi2() const {return fXYChi2;} @@ -134,9 +134,9 @@ class AliL3ConfMapPoint { //Int_t fMCTrackID[3]; //MClabel of tracks, may overlap // setter - void SetNextVolumeHit(AliL3ConfMapPoint* p){fNextVolumeHit=p;} - void SetNextRowHit(AliL3ConfMapPoint* p){fNextRowHit=p;} - void SetNextTrackHit(AliL3ConfMapPoint* p){fNextTrackHit=p;} + void SetNextVolumeHit(AliHLTConfMapPoint* p){fNextVolumeHit=p;} + void SetNextRowHit(AliHLTConfMapPoint* p){fNextRowHit=p;} + void SetNextTrackHit(AliHLTConfMapPoint* p){fNextTrackHit=p;} void SetPhiIndex(Short_t p){fPhiIndex=p;} void SetEtaIndex(Short_t p){fEtaIndex=p;} @@ -181,17 +181,19 @@ class AliL3ConfMapPoint { void SetTrackNumber(Int_t f){fTrackNumber=f;} void SetNextHitNumber(Int_t f){fNextHitNumber=f;} - void Setup(AliL3Vertex *vertex);// does the usual setup in the right order + void Setup(AliHLTVertex *vertex);// does the usual setup in the right order void SetAngles(); // calculate spherical angles and set values void SetIntPoint(Double_t inx = 0., Double_t iny = 0., Double_t inz = 0., Double_t inxerr = 0., Double_t inyerr = 0., Double_t inzerr = 0.); //-> set interaction point void SetShiftedCoord();// set shifted coordinates - void SetAllCoord(const AliL3ConfMapPoint *hit);// set conformal mapping coordinates in respect to given hit + void SetAllCoord(const AliHLTConfMapPoint *hit);// set conformal mapping coordinates in respect to given hit void SetConfCoord();// conformal mapping - ClassDef(AliL3ConfMapPoint, 1) //Conformal mapping hit class. + ClassDef(AliHLTConfMapPoint, 1) //Conformal mapping hit class. }; +typedef AliHLTConfMapPoint AliL3ConfMapPoint; // for backward compatibility + #endif diff --git a/HLT/src/AliL3ConfMapTrack.cxx b/HLT/src/AliHLTConfMapTrack.cxx similarity index 73% rename from HLT/src/AliL3ConfMapTrack.cxx rename to HLT/src/AliHLTConfMapTrack.cxx index 37761d2554b..f8504a4e480 100644 --- a/HLT/src/AliL3ConfMapTrack.cxx +++ b/HLT/src/AliHLTConfMapTrack.cxx @@ -3,21 +3,21 @@ // Author: Anders Vestbo , Uli Frankenfeld //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Vertex.h" -#include "AliL3ConfMapPoint.h" -#include "AliL3ConfMapFit.h" -#include "AliL3ConfMapTrack.h" -#include "AliL3Transform.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTVertex.h" +#include "AliHLTConfMapPoint.h" +#include "AliHLTConfMapFit.h" +#include "AliHLTConfMapTrack.h" +#include "AliHLTTransform.h" #include "AliLevel3.h" -/** \class AliL3ConfMapTrack +/** \class AliHLTConfMapTrack
 //_____________________________________________________________
-// AliL3ConfMapTrack
+// AliHLTConfMapTrack
 //
 // Track class for conformal mapper
 
@@ -27,32 +27,32 @@ using namespace std; #endif -ClassImp(AliL3ConfMapTrack) +ClassImp(AliHLTConfMapTrack) -AliL3ConfMapTrack::AliL3ConfMapTrack() +AliHLTConfMapTrack::AliHLTConfMapTrack() { //Constructor fChiSq[0] = 0.; fChiSq[1] = 0.; } -AliL3ConfMapTrack::~AliL3ConfMapTrack() +AliHLTConfMapTrack::~AliHLTConfMapTrack() { //deconstructor } -void AliL3ConfMapTrack::DeleteCandidate() +void AliHLTConfMapTrack::DeleteCandidate() { //Deletes this track by resetting all its parameters. Does not delete //the object itself. - AliL3ConfMapPoint *curHit = (AliL3ConfMapPoint*)fFirstHit; - AliL3ConfMapPoint *nextHit; + AliHLTConfMapPoint *curHit = (AliHLTConfMapPoint*)fFirstHit; + AliHLTConfMapPoint *nextHit; while(curHit != 0) { - nextHit = (AliL3ConfMapPoint*)curHit->GetNextTrackHit(); + nextHit = (AliHLTConfMapPoint*)curHit->GetNextTrackHit(); curHit->SetNextTrackHit(0); curHit = nextHit; } @@ -77,18 +77,18 @@ void AliL3ConfMapTrack::DeleteCandidate() } -void AliL3ConfMapTrack::SetProperties(Bool_t usage) +void AliHLTConfMapTrack::SetProperties(Bool_t usage) { //Set the hits to this track to 'usage' for(StartLoop(); LoopDone(); GetNextHit()) { - AliL3ConfMapPoint *p = (AliL3ConfMapPoint*)fCurrentHit; + AliHLTConfMapPoint *p = (AliHLTConfMapPoint*)fCurrentHit; p->SetUsage(usage); } return; } -void AliL3ConfMapTrack::Reset() +void AliHLTConfMapTrack::Reset() { //Resets the fit parameters of this track. @@ -111,7 +111,7 @@ void AliL3ConfMapTrack::Reset() SetNHits(0); } -void AliL3ConfMapTrack::UpdateParam(AliL3ConfMapPoint *thisHit) +void AliHLTConfMapTrack::UpdateParam(AliHLTConfMapPoint *thisHit) { //Function to update fit parameters of track //Also, it updates the hit pointers. @@ -129,7 +129,7 @@ void AliL3ConfMapTrack::UpdateParam(AliL3ConfMapPoint *thisHit) if(GetNHits()==1) fFirstHit = thisHit; else - ((AliL3ConfMapPoint*)fLastHit)->SetNextTrackHit(thisHit); + ((AliHLTConfMapPoint*)fLastHit)->SetNextTrackHit(thisHit); fLastHit = thisHit; @@ -162,7 +162,7 @@ void AliL3ConfMapTrack::UpdateParam(AliL3ConfMapPoint *thisHit) } -void AliL3ConfMapTrack::Fill(AliL3Vertex *vertex,Double_t max_Dca) +void AliHLTConfMapTrack::Fill(AliHLTVertex *vertex,Double_t max_Dca) { //Fill track variables with or without fit. @@ -170,18 +170,18 @@ void AliL3ConfMapTrack::Fill(AliL3Vertex *vertex,Double_t max_Dca) Double_t radius = sqrt(fa2Xy*fa2Xy+1)/(2*fabs(fa1Xy)); SetRadius(radius); - //fPt = (Double_t)(AliL3Transform::GetBFieldValue() * fRadius); - Double_t pt = (Double_t)(AliL3Transform::GetBFieldValue() * GetRadius()); + //fPt = (Double_t)(AliHLTTransform::GetBFieldValue() * fRadius); + Double_t pt = (Double_t)(AliHLTTransform::GetBFieldValue() * GetRadius()); SetPt(pt); if(GetPt() > max_Dca) //go for fit of helix in real space { - AliL3ConfMapFit *fit = new AliL3ConfMapFit(this,vertex); + AliHLTConfMapFit *fit = new AliHLTConfMapFit(this,vertex); ComesFromMainVertex(AliLevel3::DoVertexFit()); fit->FitHelix(); - //AliL3ConfMapPoint *lHit = (AliL3ConfMapPoint*)fLastHit; - AliL3ConfMapPoint *fHit = (AliL3ConfMapPoint*)fFirstHit; + //AliHLTConfMapPoint *lHit = (AliHLTConfMapPoint*)fLastHit; + AliHLTConfMapPoint *fHit = (AliHLTConfMapPoint*)fFirstHit; SetLastPoint(fHit->GetX(),fHit->GetY(),fHit->GetZ()); UpdateToFirstPoint(); @@ -189,16 +189,16 @@ void AliL3ConfMapTrack::Fill(AliL3Vertex *vertex,Double_t max_Dca) delete fit; } else if(GetPt() == 0) - LOG(AliL3Log::kError,"AliL3ConfMapTrack::Fill","Tracks")<UncheckedAt(i); + AliHLTConfMapPoint *c=(AliHLTConfMapPoint*)fPoints->UncheckedAt(i); lab=fabs(c->fMCTrackID[0]); Int_t j; for (j=0; jUncheckedAt(i); + AliHLTConfMapPoint *c=(AliHLTConfMapPoint*)fPoints->UncheckedAt(i); if (fabs(c->fMCTrackID[1]) == lab || fabs(c->fMCTrackID[2]) == lab ) max++; } @@ -245,7 +245,7 @@ Int_t AliL3ConfMapTrack::GetMCLabel() max=0; for (i=1; i<=tail; i++) { - AliL3ConfMapPoint *c = (AliL3ConfMapPoint*)fPoints->UncheckedAt(num_of_clusters-i); + AliHLTConfMapPoint *c = (AliHLTConfMapPoint*)fPoints->UncheckedAt(num_of_clusters-i); if (lab == fabs(c->fMCTrackID[0]) || lab == fabs(c->fMCTrackID[1]) || lab == fabs(c->fMCTrackID[2])) max++; diff --git a/HLT/src/AliL3ConfMapTrack.h b/HLT/src/AliHLTConfMapTrack.h similarity index 68% rename from HLT/src/AliL3ConfMapTrack.h rename to HLT/src/AliHLTConfMapTrack.h index 199f5574718..dc67a581a55 100644 --- a/HLT/src/AliL3ConfMapTrack.h +++ b/HLT/src/AliHLTConfMapTrack.h @@ -5,26 +5,26 @@ #include -#include "AliL3Track.h" +#include "AliHLTTrack.h" -#include "AliL3RootTypes.h" -#include "AliL3ConfMapPoint.h" +#include "AliHLTRootTypes.h" +#include "AliHLTConfMapPoint.h" -class AliL3Vertex; +class AliHLTVertex; -class AliL3ConfMapTrack :public AliL3Track { +class AliHLTConfMapTrack :public AliHLTTrack { public: - AliL3ConfMapTrack(); - virtual ~AliL3ConfMapTrack(); - void Fill(AliL3Vertex *vertex,Double_t max_Dca); + AliHLTConfMapTrack(); + virtual ~AliHLTConfMapTrack(); + void Fill(AliHLTVertex *vertex,Double_t max_Dca); void Reset(); - void UpdateParam(AliL3ConfMapPoint *hit); + void UpdateParam(AliHLTConfMapPoint *hit); void DeleteCandidate(); void StartLoop() {fCurrentHit = fFirstHit;} - void GetNextHit() {fCurrentHit = ((AliL3ConfMapPoint*)fCurrentHit)->GetNextTrackHit();} + void GetNextHit() {fCurrentHit = ((AliHLTConfMapPoint*)fCurrentHit)->GetNextTrackHit();} Int_t LoopDone() const {return fCurrentHit != 0;} // setter @@ -57,16 +57,16 @@ class AliL3ConfMapTrack :public AliL3Track { Double_t GetA1Sz() const {return fa1Sz;} Double_t GetA2Sz() const {return fa2Sz;} - AliL3ConfMapPoint* GetFirstHit() const {return fFirstHit;} - AliL3ConfMapPoint* GetLastHit() const {return fLastHit;} - AliL3ConfMapPoint* GetCurrentHit() const {return fCurrentHit;} + AliHLTConfMapPoint* GetFirstHit() const {return fFirstHit;} + AliHLTConfMapPoint* GetLastHit() const {return fLastHit;} + AliHLTConfMapPoint* GetCurrentHit() const {return fCurrentHit;} Int_t GetMCLabel(); protected: - AliL3ConfMapPoint *fCurrentHit; //! - AliL3ConfMapPoint *fLastHit; //! - AliL3ConfMapPoint *fFirstHit; //! + AliHLTConfMapPoint *fCurrentHit; //! + AliHLTConfMapPoint *fLastHit; //! + AliHLTConfMapPoint *fFirstHit; //! Double_t fChiSq[2]; //chi squared @@ -86,8 +86,10 @@ class AliL3ConfMapTrack :public AliL3Track { Double_t fddXy, fa1Xy, fa2Xy ; /*fit par in xy */ Double_t fddSz, fa1Sz, fa2Sz ; /*fit par in sz */ - ClassDef(AliL3ConfMapTrack,1) //Conformal mapping track class + ClassDef(AliHLTConfMapTrack,1) //Conformal mapping track class }; + +typedef AliHLTConfMapTrack AliL3ConfMapTrack; // for backward compatibility #endif diff --git a/HLT/src/AliL3ConfMapper.cxx b/HLT/src/AliHLTConfMapper.cxx similarity index 73% rename from HLT/src/AliL3ConfMapper.cxx rename to HLT/src/AliHLTConfMapper.cxx index c3c6dd3c6ae..9369c7f4c08 100644 --- a/HLT/src/AliL3ConfMapper.cxx +++ b/HLT/src/AliHLTConfMapper.cxx @@ -1,9 +1,9 @@ // @(#) $Id$ -/** \class AliL3ConfMapper +/** \class AliHLTConfMapper
 //_____________________________________________________________
-// AliL3ConfMapper
+// AliHLTConfMapper
 //
 // Conformal mapping base class
 //
@@ -14,24 +14,24 @@
 
 #include 
  
-#include "AliL3StandardIncludes.h"
-#include "AliL3RootTypes.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3Logging.h" 
-#include "AliL3Vertex.h"
-#include "AliL3ConfMapTrack.h"
-#include "AliL3ConfMapPoint.h"
-#include "AliL3TrackArray.h"
-#include "AliL3Transform.h"
-#include "AliL3ConfMapper.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTRootTypes.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTLogging.h" 
+#include "AliHLTVertex.h"
+#include "AliHLTConfMapTrack.h"
+#include "AliHLTConfMapPoint.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTTransform.h"
+#include "AliHLTConfMapper.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
-ClassImp(AliL3ConfMapper)
+ClassImp(AliHLTConfMapper)
 
-AliL3ConfMapper::AliL3ConfMapper()
+AliHLTConfMapper::AliHLTConfMapper()
 {
   //Default constructor
   fVertex = NULL;
@@ -46,7 +46,7 @@ AliL3ConfMapper::AliL3ConfMapper()
 }
 
 
-AliL3ConfMapper::~AliL3ConfMapper()
+AliHLTConfMapper::~AliHLTConfMapper()
 {
   // Destructor.
   if(fVolume) {
@@ -63,14 +63,14 @@ AliL3ConfMapper::~AliL3ConfMapper()
   }
 }
  
-void AliL3ConfMapper::InitVolumes()
+void AliHLTConfMapper::InitVolumes()
 {
   //Data organization.
   //Allocate volumes, set conformal coordinates and pointers.
   
   //Should be done after setting the track parameters
   
-  fNumRowSegmentPlusOne = AliL3Transform::GetNRows();//NumRows[0]; //Maximum 32.
+  fNumRowSegmentPlusOne = AliHLTTransform::GetNRows();//NumRows[0]; //Maximum 32.
   fNumPhiSegmentPlusOne = fNumPhiSegment+1;
   fNumEtaSegmentPlusOne = fNumEtaSegment+1;
   fNumPhiEtaSegmentPlusOne = fNumPhiSegmentPlusOne*fNumEtaSegmentPlusOne;
@@ -80,16 +80,16 @@ void AliL3ConfMapper::InitVolumes()
   if(fVolume) delete [] fVolume;
   if(fRow) delete [] fRow;
   
-  LOG(AliL3Log::kInformational,"AliL3ConfMapper::InitVolumes","Memory")<GetAngle(sector) - 10/todeg;
-  fPhiMax =  10*AliL3Transform::ToRad();//fParam->GetAngle(sector) + 10/todeg;
+  fPhiMin = -10*AliHLTTransform::ToRad();//fParam->GetAngle(sector) - 10/todeg;
+  fPhiMax =  10*AliHLTTransform::ToRad();//fParam->GetAngle(sector) + 10/todeg;
 
   fNTracks=0;
   fMainVertexTracks = 0;
@@ -145,13 +145,13 @@ void AliL3ConfMapper::InitSector(Int_t sector,Int_t *rowrange,Float_t *etarange)
   fPhiHitsOutOfRange=0;
   
   fNumRowSegment = fRowMax - fRowMin; //number of rows to be considered by tracker
-  LOG(AliL3Log::kInformational,"AliL3ConfMapper::InitSector","B-field")
-    <<"Tracker initializing with a magnetic field of "<Reset();
 }
 
-Bool_t AliL3ConfMapper::ReadHits(UInt_t count, AliL3SpacePointData* hits )
+Bool_t AliHLTConfMapper::ReadHits(UInt_t count, AliHLTSpacePointData* hits )
 {
   //read hits
   Int_t nhit=(Int_t)count; 
@@ -161,13 +161,13 @@ Bool_t AliL3ConfMapper::ReadHits(UInt_t count, AliL3SpacePointData* hits )
       fHit[i].ReadHits(&(hits[i]));
     }
   fClustersUnused += nhit;
-  LOG(AliL3Log::kInformational,"AliL3ConfMapper::ReadHits","#hits")
-    <At(j);
-      AliL3ConfMapPoint *thisHit = &(fHit[j]);
+      //AliHLTConfMapPoint *thisHit = (AliHLTConfMapPoint*)fHit->At(j);
+      AliHLTConfMapPoint *thisHit = &(fHit[j]);
 
       thisHit->Setup(fVertex);
       
@@ -221,7 +221,7 @@ void AliL3ConfMapper::SetPointers()
       if(fVolume[volumeIndex].first == NULL)
 	fVolume[volumeIndex].first = (void *)thisHit;
       else
- 	((AliL3ConfMapPoint *)fVolume[volumeIndex].last)->SetNextVolumeHit(thisHit);
+ 	((AliHLTConfMapPoint *)fVolume[volumeIndex].last)->SetNextVolumeHit(thisHit);
       fVolume[volumeIndex].last = (void *)thisHit;
       
       
@@ -229,28 +229,28 @@ void AliL3ConfMapper::SetPointers()
       if(fRow[(localrow-fRowMin)].first == NULL)
  	fRow[(localrow-fRowMin)].first = (void *)thisHit;
       else
- 	((AliL3ConfMapPoint *)(fRow[(localrow-fRowMin)].last))->SetNextRowHit(thisHit);
+ 	((AliHLTConfMapPoint *)(fRow[(localrow-fRowMin)].last))->SetNextRowHit(thisHit);
 	fRow[(localrow-fRowMin)].last = (void *)thisHit;
     }
   
   if(fClustersUnused>0 && localcounter==0)
-    LOG(AliL3Log::kError,"AliL3ConfMapper::SetPointers","Parameters")
-      < 2)
@@ -389,7 +389,7 @@ void AliL3ConfMapper::SetTrackletCuts(Double_t maxangle,Double_t goodDist, Bool_
   SetMaxAngleTracklet(maxangle, vc);
 }
 
-void AliL3ConfMapper::ClusterLoop()
+void AliHLTConfMapper::ClusterLoop()
 {
   //Loop over hits, starting at outermost padrow, and trying to build segments.
   
@@ -399,17 +399,17 @@ void AliL3ConfMapper::ClusterLoop()
     return;
   
   Int_t rowsegm,lastrow = fRowMin + fMinPoints[fVertexConstraint];
-  AliL3ConfMapPoint *hit;
+  AliHLTConfMapPoint *hit;
   
   //Loop over rows, and try to create tracks from the hits.
   //Starts at the outermost row, and loops as long as a track can be build, due to length.
   
   for(rowsegm = fRowMax; rowsegm >= lastrow; rowsegm--)
     {
-      if(fRow[(rowsegm-fRowMin)].first && ((AliL3ConfMapPoint*)fRow[(rowsegm-fRowMin)].first)->GetPadRow() < fRowMin + 1)
+      if(fRow[(rowsegm-fRowMin)].first && ((AliHLTConfMapPoint*)fRow[(rowsegm-fRowMin)].first)->GetPadRow() < fRowMin + 1)
 	break;
 
-      for(hit = (AliL3ConfMapPoint*)fRow[(rowsegm-fRowMin)].first; hit!=0; hit=hit->GetNextRowHit())
+      for(hit = (AliHLTConfMapPoint*)fRow[(rowsegm-fRowMin)].first; hit!=0; hit=hit->GetNextRowHit())
 	{
 	  if(hit->GetUsage() == true)
 	    continue;
@@ -422,18 +422,18 @@ void AliL3ConfMapper::ClusterLoop()
 }
 
 
-void AliL3ConfMapper::CreateTrack(AliL3ConfMapPoint *hit)
+void AliHLTConfMapper::CreateTrack(AliHLTConfMapPoint *hit)
 {
   //Tries to create a track from the initial hit given by ClusterLoop()
 
-  AliL3ConfMapPoint *closesthit = NULL;
-  AliL3ConfMapTrack *track = NULL;
+  AliHLTConfMapPoint *closesthit = NULL;
+  AliHLTConfMapTrack *track = NULL;
   
   Int_t point;
   Int_t tracks = fNTracks;
   fNTracks++;
 
-  track = (AliL3ConfMapTrack*)fTrack->NextTrack();
+  track = (AliHLTConfMapTrack*)fTrack->NextTrack();
 
   //reset hit parameters:
   track->Reset();
@@ -459,8 +459,8 @@ void AliL3ConfMapper::CreateTrack(AliL3ConfMapPoint *hit)
 	{//closest hit exist
 	  
 	  //   Calculate track length in sz plane
-	  dx = ((AliL3ConfMapPoint*)closesthit)->GetX() - ((AliL3ConfMapPoint*)hit)->GetX();
-	  dy = ((AliL3ConfMapPoint*)closesthit)->GetY() - ((AliL3ConfMapPoint*)hit)->GetY();
+	  dx = ((AliHLTConfMapPoint*)closesthit)->GetX() - ((AliHLTConfMapPoint*)hit)->GetX();
+	  dy = ((AliHLTConfMapPoint*)closesthit)->GetY() - ((AliHLTConfMapPoint*)hit)->GetY();
 	  //track->fLength += (Double_t)sqrt ( dx * dx + dy * dy ) ;
 	  Double_t length = track->GetLength()+(Double_t)sqrt ( dx * dx + dy * dy );
 	  track->SetLength(length);
@@ -509,7 +509,7 @@ void AliL3ConfMapper::CreateTrack(AliL3ConfMapPoint *hit)
 	  for(point = fTrackletLength[fVertexConstraint]; point <= fNumRowSegment; point++)
 	    {
 	      track->SetChiSq1(fHitChi2Cut[fVertexConstraint]);
-	      closesthit = GetNextNeighbor((AliL3ConfMapPoint*)track->GetLastHit(),track);
+	      closesthit = GetNextNeighbor((AliHLTConfMapPoint*)track->GetLastHit(),track);
 	      
 	      if(closesthit)
 		{
@@ -574,16 +574,16 @@ void AliL3ConfMapper::CreateTrack(AliL3ConfMapPoint *hit)
   return;
 }
 
-AliL3ConfMapPoint *AliL3ConfMapper::GetNextNeighbor(AliL3ConfMapPoint *starthit,
-					  AliL3ConfMapTrack *track)
+AliHLTConfMapPoint *AliHLTConfMapper::GetNextNeighbor(AliHLTConfMapPoint *starthit,
+					  AliHLTConfMapTrack *track)
 {
   //When forming segments: Finds closest hit to input hit
   //When forming tracks: Find closest hit to track fit.
   
   Double_t dist,closestdist = fMaxDist[fVertexConstraint];
   
-  AliL3ConfMapPoint *hit = NULL;
-  AliL3ConfMapPoint *closesthit = NULL;
+  AliHLTConfMapPoint *hit = NULL;
+  AliHLTConfMapPoint *closesthit = NULL;
     
   Int_t subrowsegm;
   Int_t subphisegm;
@@ -644,11 +644,11 @@ AliL3ConfMapPoint *AliL3ConfMapper::GetNextNeighbor(AliL3ConfMapPoint *starthit,
 	      
 	      if(volumeIndex<0)
 		{//debugging
-		  LOG(AliL3Log::kError,"AliL3ConfMapper::GetNextNeighbor","Memory")<GetNextVolumeHit())
 		{
 		  
@@ -715,7 +715,7 @@ AliL3ConfMapPoint *AliL3ConfMapper::GetNextNeighbor(AliL3ConfMapPoint *starthit,
     return 0;
 }
 
-Int_t AliL3ConfMapper::EvaluateHit(AliL3ConfMapPoint *starthit,AliL3ConfMapPoint *hit,AliL3ConfMapTrack *track) 
+Int_t AliHLTConfMapper::EvaluateHit(AliHLTConfMapPoint *starthit,AliHLTConfMapPoint *hit,AliHLTConfMapTrack *track) 
 {
   //Check if space point gives a fit with acceptable chi2.
   
@@ -762,23 +762,23 @@ Int_t AliL3ConfMapper::EvaluateHit(AliL3ConfMapPoint *starthit,AliL3ConfMapPoint
   
 }
 
-Double_t AliL3ConfMapper::CalcDistance(const AliL3ConfMapPoint *hit1,const AliL3ConfMapPoint *hit2) const
+Double_t AliHLTConfMapper::CalcDistance(const AliHLTConfMapPoint *hit1,const AliHLTConfMapPoint *hit2) const
 {
   //Return distance between two clusters, defined by Pablo
   
   Double_t phidiff = fabs( hit1->GetPhi() - hit2->GetPhi() );
-  if (phidiff > AliL3Transform::Pi()) phidiff = AliL3Transform::TwoPi() - phidiff;
+  if (phidiff > AliHLTTransform::Pi()) phidiff = AliHLTTransform::TwoPi() - phidiff;
   
-  return AliL3Transform::ToDeg()*fabs((Float_t)((hit1->GetPadRow() - hit2->GetPadRow()) * 
+  return AliHLTTransform::ToDeg()*fabs((Float_t)((hit1->GetPadRow() - hit2->GetPadRow()) * 
          (phidiff + fabs( hit1->GetEta() - hit2->GetEta()))));
 }
 
-Bool_t AliL3ConfMapper::VerifyRange(const AliL3ConfMapPoint *hit1,const AliL3ConfMapPoint *hit2) const
+Bool_t AliHLTConfMapper::VerifyRange(const AliHLTConfMapPoint *hit1,const AliHLTConfMapPoint *hit2) const
 {
   //Check if the hit are within reasonable range in phi and eta
   Double_t dphi,deta;//maxphi=0.1,maxeta=0.1;
   dphi = fabs(hit1->GetPhi() - hit2->GetPhi());
-  if(dphi > AliL3Transform::Pi()) dphi = fabs(AliL3Transform::TwoPi() - dphi);
+  if(dphi > AliHLTTransform::Pi()) dphi = fabs(AliHLTTransform::TwoPi() - dphi);
   if(dphi > fMaxPhi) return false;
   
   deta = fabs(hit1->GetEta() - hit2->GetEta());
@@ -788,7 +788,7 @@ Bool_t AliL3ConfMapper::VerifyRange(const AliL3ConfMapPoint *hit1,const AliL3Con
 
 }
 
-Double_t AliL3ConfMapper::TrackletAngle(AliL3ConfMapTrack *track,Int_t n) const
+Double_t AliHLTConfMapper::TrackletAngle(AliHLTConfMapTrack *track,Int_t n) const
 {
   // Returns the angle 'between' the last three points (started at point number n) on this track.
   
@@ -805,7 +805,7 @@ Double_t AliL3ConfMapper::TrackletAngle(AliL3ConfMapTrack *track,Int_t n) const
   Int_t counter=0;
   for(track->StartLoop(); track->LoopDone(); track->GetNextHit())
     {
-      AliL3ConfMapPoint *p = (AliL3ConfMapPoint*)track->GetCurrentHit();
+      AliHLTConfMapPoint *p = (AliHLTConfMapPoint*)track->GetCurrentHit();
       if( (n-1) == counter)
 	{
 	  x1[0] = p->GetX();
@@ -843,11 +843,11 @@ Double_t AliL3ConfMapper::TrackletAngle(AliL3ConfMapTrack *track,Int_t n) const
     return 0;
   
 
-  x1[0] = ((AliL3ConfMapPoint *)hits->At(n-2))->GetX() - ((AliL3ConfMapPoint *)hits->At(n-3))->GetX();
-  x1[1] = ((AliL3ConfMapPoint *)hits->At(n-2))->GetY() - ((AliL3ConfMapPoint *)hits->At(n-3))->GetY();
+  x1[0] = ((AliHLTConfMapPoint *)hits->At(n-2))->GetX() - ((AliHLTConfMapPoint *)hits->At(n-3))->GetX();
+  x1[1] = ((AliHLTConfMapPoint *)hits->At(n-2))->GetY() - ((AliHLTConfMapPoint *)hits->At(n-3))->GetY();
 
-  x2[0] = ((AliL3ConfMapPoint *)hits->At(n-1))->GetX() - ((AliL3ConfMapPoint *)hits->At(n-2))->GetX();
-  x2[1] = ((AliL3ConfMapPoint *)hits->At(n-1))->GetY() - ((AliL3ConfMapPoint *)hits->At(n-2))->GetY();
+  x2[0] = ((AliHLTConfMapPoint *)hits->At(n-1))->GetX() - ((AliHLTConfMapPoint *)hits->At(n-2))->GetX();
+  x2[1] = ((AliHLTConfMapPoint *)hits->At(n-1))->GetY() - ((AliHLTConfMapPoint *)hits->At(n-2))->GetY();
   
   angle1 = atan2(x1[1],x1[0]);
   angle2 = atan2(x2[1],x1[0]);
@@ -855,7 +855,7 @@ Double_t AliL3ConfMapper::TrackletAngle(AliL3ConfMapTrack *track,Int_t n) const
   */
 }
 
-Int_t AliL3ConfMapper::FillTracks()
+Int_t AliHLTConfMapper::FillTracks()
 {
   //Fill track parameters. Which basically means do a fit of helix in real space,
   //which should be done in order to get nice tracks.
@@ -863,24 +863,24 @@ Int_t AliL3ConfMapper::FillTracks()
   Int_t numoftracks = fNTracks;
   if(fNTracks == 0)
     {
-      LOG(AliL3Log::kError,"AliL3ConfMapper::FillTracks","fNTracks")<Sort();
   for(Int_t i=0; iGetTrack(i);
+      AliHLTConfMapTrack *track = (AliHLTConfMapTrack*)fTrack->GetTrack(i);
       track->Fill(fVertex,fMaxDca);
     }
   return 1;
 }
 
-Double_t AliL3ConfMapper::CpuTime()
+Double_t AliHLTConfMapper::CpuTime()
 {
   //Return the Cputime in seconds.
  struct timeval tv;
diff --git a/HLT/src/AliL3ConfMapper.h b/HLT/src/AliHLTConfMapper.h
similarity index 76%
rename from HLT/src/AliL3ConfMapper.h
rename to HLT/src/AliHLTConfMapper.h
index 00f7df3a8b3..15d08773e66 100644
--- a/HLT/src/AliL3ConfMapper.h
+++ b/HLT/src/AliHLTConfMapper.h
@@ -10,24 +10,24 @@
 //*-- Copyright © ALICE HLT Group
 
 
-class AliL3ConfMapPoint;
-class AliL3ConfMapTrack;
-class AliL3Vertex;
-class AliL3TrackArray;
-class AliL3SpacePointData;
+class AliHLTConfMapPoint;
+class AliHLTConfMapTrack;
+class AliHLTVertex;
+class AliHLTTrackArray;
+class AliHLTSpacePointData;
 
 
-class AliL3ConfMapper {
+class AliHLTConfMapper {
 
  public:
 
-  AliL3ConfMapper();
-  //  AliL3ConfMapper(AliTPCParam *param,AliL3Vertex *vertex,Bool_t bench=(Bool_t)false);
-  virtual ~AliL3ConfMapper();
+  AliHLTConfMapper();
+  //  AliHLTConfMapper(AliTPCParam *param,AliHLTVertex *vertex,Bool_t bench=(Bool_t)false);
+  virtual ~AliHLTConfMapper();
   
   void InitVolumes();
   void InitSector(Int_t sector,Int_t *rowrange=0,Float_t *etarange=0);
-  void SetVertex(AliL3Vertex *vertex){fVertex = vertex;}
+  void SetVertex(AliHLTVertex *vertex){fVertex = vertex;}
   void MainVertexTracking_a();
   void MainVertexTracking_b();
   void MainVertexTracking();
@@ -36,22 +36,22 @@ class AliL3ConfMapper {
 			  Int_t rowscopetracklet, Int_t rowscopetrack,Double_t maxphi=0.1,Double_t maxeta=0.1);
   void NonVertexSettings(Int_t trackletlength, Int_t tracklength, 
 			 Int_t rowscopetracklet, Int_t rowscopetrack);
-  Bool_t ReadHits(UInt_t count, AliL3SpacePointData* hits );
+  Bool_t ReadHits(UInt_t count, AliHLTSpacePointData* hits );
   void ClusterLoop();
-  void CreateTrack(AliL3ConfMapPoint *hit);
-  AliL3ConfMapPoint *GetNextNeighbor(AliL3ConfMapPoint *start_hit,AliL3ConfMapTrack *track=NULL);
-  Int_t EvaluateHit(AliL3ConfMapPoint *start_hit,AliL3ConfMapPoint *hit,AliL3ConfMapTrack *track);
+  void CreateTrack(AliHLTConfMapPoint *hit);
+  AliHLTConfMapPoint *GetNextNeighbor(AliHLTConfMapPoint *start_hit,AliHLTConfMapTrack *track=NULL);
+  Int_t EvaluateHit(AliHLTConfMapPoint *start_hit,AliHLTConfMapPoint *hit,AliHLTConfMapTrack *track);
 
-  Double_t CalcDistance(const AliL3ConfMapPoint *hit1,const AliL3ConfMapPoint *hit2) const;
-  Double_t TrackletAngle(AliL3ConfMapTrack *track,Int_t n=3) const;
-  Bool_t VerifyRange(const AliL3ConfMapPoint *hit1,const AliL3ConfMapPoint *hit2) const;
+  Double_t CalcDistance(const AliHLTConfMapPoint *hit1,const AliHLTConfMapPoint *hit2) const;
+  Double_t TrackletAngle(AliHLTConfMapTrack *track,Int_t n=3) const;
+  Bool_t VerifyRange(const AliHLTConfMapPoint *hit1,const AliHLTConfMapPoint *hit2) const;
   Int_t FillTracks();
   
   //getters
   Int_t GetNumberOfTracks()    const {return fNTracks;}
-  AliL3TrackArray *GetTracks() const {return fTrack;}
+  AliHLTTrackArray *GetTracks() const {return fTrack;}
   Double_t GetMaxDca()         const {return fMaxDca;}
-  AliL3Vertex* GetVertex()     const {return fVertex;}
+  AliHLTVertex* GetVertex()     const {return fVertex;}
   Double_t CpuTime();
 
   //setters
@@ -78,7 +78,7 @@ class AliL3ConfMapper {
 
  private:
 
-  struct AliL3ConfMapContainer 
+  struct AliHLTConfMapContainer 
   {
     void *first; // first track
     void *last;  // last track
@@ -87,17 +87,17 @@ class AliL3ConfMapper {
   Bool_t fBench; //run-time measurements
   Int_t fNTracks; //number of tracks build.
 
-  AliL3Vertex *fVertex; //!
+  AliHLTVertex *fVertex; //!
   Bool_t fParamSet[2];  //!
   Bool_t fVertexFinder; //Include vertexfinding or not 
                         //(latter case vertex=(0,0,0))
 
-  AliL3ConfMapPoint *fHit;  //!
-  AliL3TrackArray *fTrack;  //!
+  AliHLTConfMapPoint *fHit;  //!
+  AliHLTTrackArray *fTrack;  //!
   Double_t fMaxDca;      //cut value for momentum fit
   
-  AliL3ConfMapContainer *fVolume;  //!  Segment volume
-  AliL3ConfMapContainer *fRow;     //!  Row volume
+  AliHLTConfMapContainer *fVolume;  //!  Segment volume
+  AliHLTConfMapContainer *fRow;     //!  Row volume
 
    //Number of cells (segments)
   Int_t  fNumRowSegment;          // Total number of padrows
@@ -139,7 +139,9 @@ class AliL3ConfMapper {
   Int_t fMainVertexTracks; //number of tracks coming from the main vertex
   Int_t fClustersUnused;   //number of unused clusters
 
-  ClassDef(AliL3ConfMapper,1) //Base class for conformal mapping tracking
+  ClassDef(AliHLTConfMapper,1) //Base class for conformal mapping tracking
 };
 
+typedef AliHLTConfMapper AliL3ConfMapper; // for backward compatibility
+
 #endif
diff --git a/HLT/src/AliHLTDigitData.h b/HLT/src/AliHLTDigitData.h
new file mode 100644
index 00000000000..20b1fd429e5
--- /dev/null
+++ b/HLT/src/AliHLTDigitData.h
@@ -0,0 +1,45 @@
+// @(#) $Id$
+
+#ifndef _DIGITDATA_H_
+#define _DIGITDATA_H_
+
+#include "AliHLTRootTypes.h" 
+
+struct AliHLTDigitData
+{
+#ifdef do_mc
+  Int_t fTrackID[3];
+#endif
+  UShort_t fCharge;
+  UChar_t fPad;
+  UShort_t fTime;
+#ifdef IA64
+  UChar_t dummy1;
+  UChar_t dummy2;
+#endif
+};
+typedef struct AliHLTDigitData AliHLTDigitData;
+typedef AliHLTDigitData AliL3DigitData;
+
+struct AliHLTDigitRowData
+{
+  UInt_t fNDigit;
+  UInt_t fRow;
+#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
+  AliHLTDigitData fDigitData[1];
+#else
+  AliHLTDigitData fDigitData[0];
+#endif
+};
+typedef struct AliHLTDigitRowData AliHLTDigitRowData;
+typedef AliHLTDigitRowData AliL3DigitRowData;
+
+struct AliHLTRandomDigitData{
+  UChar_t fRow;
+  UShort_t fCharge;
+  UChar_t fPad;
+  UShort_t fTime;
+};
+typedef struct AliHLTRandomDigitData AliHLTRandomDigitData;
+typedef AliHLTRandomDigitData AliL3RandomDigitData;
+#endif /* _DIGITDATA_H_ */
diff --git a/HLT/src/AliL3Display.cxx b/HLT/src/AliHLTDisplay.cxx
similarity index 80%
rename from HLT/src/AliL3Display.cxx
rename to HLT/src/AliHLTDisplay.cxx
index cebc0f25907..6d82a7bccb9 100644
--- a/HLT/src/AliL3Display.cxx
+++ b/HLT/src/AliHLTDisplay.cxx
@@ -1,9 +1,9 @@
 // @(#) $Id$
 
-/** \class AliL3Display
+/** \class AliHLTDisplay
 
 //_____________________________________________________________
-// AliL3Display
+// AliHLTDisplay
 //
 // Simple display class for the HLT tracks.
 
@@ -11,7 +11,7 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" #include #include #include @@ -30,35 +30,35 @@ #include #endif -#include "AliL3Logging.h" -#include "AliL3Display.h" -#include "AliL3Transform.h" -#include "AliL3Track.h" -#include "AliL3TrackArray.h" -#include "AliL3SpacePointData.h" -#include "AliL3MemHandler.h" +#include "AliHLTLogging.h" +#include "AliHLTDisplay.h" +#include "AliHLTTransform.h" +#include "AliHLTTrack.h" +#include "AliHLTTrackArray.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTMemHandler.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3Display) +ClassImp(AliHLTDisplay) -AliL3Display::AliL3Display() +AliHLTDisplay::AliHLTDisplay() { //constructor fGeom = NULL; fTracks = NULL; } -AliL3Display::AliL3Display(Int_t *slice,Char_t *gfile) +AliHLTDisplay::AliHLTDisplay(Int_t *slice,Char_t *gfile) { //ctor. Specify which slices you want to look at. TFile *file = TFile::Open(gfile); if(!file) { - LOG(AliL3Log::kError,"AliL3Display::AliL3Display","File Open") + LOG(AliHLTLog::kError,"AliHLTDisplay::AliHLTDisplay","File Open") <<"Geometry file " << gfile << " does not exist!"<SetBinaryInput(fname)) { - LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open") + LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open") <<"Inputfile "<Allocate(); + fClusters[s][p] = (AliHLTSpacePointData*)clusterfile[s][p]->Allocate(); clusterfile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]); clusterfile[s][p]->CloseBinaryInput(); if(sp==kTRUE) @@ -116,21 +116,21 @@ void AliL3Display::Setup(Char_t *trackfile,Char_t *path,Int_t event,Bool_t sp) } if(!trackfile) return; - AliL3MemHandler *tfile = new AliL3MemHandler(); + AliHLTMemHandler *tfile = new AliHLTMemHandler(); if(!tfile->SetBinaryInput(trackfile)) { - LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open") + LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open") <<"Inputfile "<Binary2TrackArray(fTracks); tfile->CloseBinaryInput(); delete tfile; } -void AliL3Display::DisplayTracks(Int_t minhits,Bool_t x3don,Float_t thr) +void AliHLTDisplay::DisplayTracks(Int_t minhits,Bool_t x3don,Float_t thr) { //Display the found tracks. @@ -152,7 +152,7 @@ void AliL3Display::DisplayTracks(Int_t minhits,Bool_t x3don,Float_t thr) for(Int_t j=0; jGetCheckedTrack(j); + AliHLTTrack *gtrack = fTracks->GetCheckedTrack(j); if(!gtrack) continue; if((thr>=0)&&(gtrack->GetPt()GetNHits(); @@ -168,17 +168,17 @@ void AliL3Display::DisplayTracks(Int_t minhits,Bool_t x3don,Float_t thr) Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; //cout << h << " id " << pos << endl; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; if(slice < fMinSlice || slice > fMaxSlice) continue; if(!points) { - LOG(AliL3Log::kError,"AliL3Display::DisplayTracks","Clusterarray") + LOG(AliHLTLog::kError,"AliHLTDisplay::DisplayTracks","Clusterarray") <<"No points at slice "<=fNcl[slice][patch]){ - LOG(AliL3Log::kError,"AliL3Display::DisplayTracks","Clusterarray") + LOG(AliHLTLog::kError,"AliHLTDisplay::DisplayTracks","Clusterarray") <<"Pos is too large: pos "<SetPoint(i,xyz[0],xyz[1],xyz[2]); } pm->SetMarkerColor(2); @@ -274,7 +274,7 @@ void AliL3Display::DisplayClusters(Bool_t x3don) } -void AliL3Display::DisplayAll(Int_t minhits,Bool_t x3don) +void AliHLTDisplay::DisplayAll(Int_t minhits,Bool_t x3don) { //Display tracks & all hits. @@ -291,7 +291,7 @@ void AliL3Display::DisplayAll(Int_t minhits,Bool_t x3don) { for(Int_t p=0;p<6;p++) { - AliL3SpacePointData *points = fClusters[s][p]; + AliHLTSpacePointData *points = fClusters[s][p]; if(!points) continue; Int_t npoints = fNcl[s][p]; TPolyMarker3D *pm = new TPolyMarker3D(npoints); @@ -318,7 +318,7 @@ void AliL3Display::DisplayAll(Int_t minhits,Bool_t x3don) for(Int_t j=0; jGetCheckedTrack(j); + AliHLTTrack *gtrack = fTracks->GetCheckedTrack(j); if(!gtrack) continue; Int_t nHits = gtrack->GetNHits(); UInt_t *hitnum = gtrack->GetHitNumbers(); @@ -334,14 +334,14 @@ void AliL3Display::DisplayAll(Int_t minhits,Bool_t x3don) if(slice < fMinSlice || slice > fMaxSlice) continue; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; if(!points) { - LOG(AliL3Log::kError,"AliL3Display::DisplayAll","Clusterarray") + LOG(AliHLTLog::kError,"AliHLTDisplay::DisplayAll","Clusterarray") <<"No points at slice "<=fNcl[slice][patch]) { - LOG(AliL3Log::kError,"AliL3Display::DisplayAll","Clusterarray") + LOG(AliHLTLog::kError,"AliHLTDisplay::DisplayAll","Clusterarray") <<"Pos is too large: pos "<x3d(); } -void AliL3Display::DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile,Char_t *type) +void AliHLTDisplay::DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile,Char_t *type) { //Display the found clusters on this row together with the raw data. #ifdef use_aliroot TFile *file = new TFile(digitsFile); - AliTPCParam *param = (AliTPCParam*)file->Get(AliL3Transform::GetParamName()); + AliTPCParam *param = (AliTPCParam*)file->Get(AliHLTTransform::GetParamName()); Char_t dname[100]; - sprintf(dname,"TreeD_%s_0",AliL3Transform::GetParamName()); + sprintf(dname,"TreeD_%s_0",AliHLTTransform::GetParamName()); TTree *td=(TTree*)file->Get(dname); AliSimDigits da, *digits=&da; td->GetBranch("Segment")->SetAddress(&digits); //Return pointer to branch segment. Int_t sector,row; - AliL3Transform::Slice2Sector(slice,padrow,sector,row); + AliHLTTransform::Slice2Sector(slice,padrow,sector,row); Int_t npads = param->GetNPads(sector,row); Int_t ntimes = param->GetMaxTBin(); TH2F *histdig = new TH2F("histdig","",npads,0,npads-1,ntimes,0,ntimes-1); @@ -439,13 +439,13 @@ void AliL3Display::DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile gAlice->GetEvent(0); TClonesArray *fParticles=gAlice->Particles(); TParticle *part = (TParticle*)fParticles->UncheckedAt(0); - AliL3Evaluate *eval = new AliL3Evaluate(); + AliHLTEvaluate *eval = new AliHLTEvaluate(); Float_t xyzcross[3]; */ for(Int_t p=0;p<6;p++) { - AliL3SpacePointData *points = fClusters[slice][p]; + AliHLTSpacePointData *points = fClusters[slice][p]; if(!points) continue; Int_t npoints = fNcl[slice][p]; @@ -456,8 +456,8 @@ void AliL3Display::DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile xyz[0] = points[i].fX; xyz[1] = points[i].fY; xyz[2] = points[i].fZ; - AliL3Transform::Global2Raw(xyz,sector,row); - //AliL3Transform::Local2Raw(xyz,sector,row); + AliHLTTransform::Global2Raw(xyz,sector,row); + //AliHLTTransform::Local2Raw(xyz,sector,row); histfast->Fill(xyz[1],xyz[2],1); diff --git a/HLT/src/AliL3Display.h b/HLT/src/AliHLTDisplay.h similarity index 56% rename from HLT/src/AliL3Display.h rename to HLT/src/AliHLTDisplay.h index 9171cf859a4..90f374dd568 100644 --- a/HLT/src/AliL3Display.h +++ b/HLT/src/AliHLTDisplay.h @@ -3,10 +3,10 @@ #ifndef ALIL3DISPLAY_H #define ALIL3DISPLAY_H -/** \class AliL3Display +/** \class AliHLTDisplay
 //_____________________________________________________________
-// AliL3Display
+// AliHLTDisplay
 //
 // Simple display class for the HLT tracks.
 
@@ -16,15 +16,15 @@ #include class TGeometry; -class AliL3SpacePointData; -class AliL3TrackArray; +class AliHLTSpacePointData; +class AliHLTTrackArray; -class AliL3Display : public TObject { +class AliHLTDisplay : public TObject { public: - AliL3Display(); - AliL3Display(Int_t *slice, Char_t *gfile="$(ALIHLT_BASEDIR)/geo/alice.geom"); - virtual ~AliL3Display(); + AliHLTDisplay(); + AliHLTDisplay(Int_t *slice, Char_t *gfile="$(ALIHLT_BASEDIR)/geo/alice.geom"); + virtual ~AliHLTDisplay(); void Setup(Char_t *trackfile,Char_t *path,Int_t event=-1,Bool_t sp=kFALSE); void DisplayTracks(Int_t min_hits=10,Bool_t x3don=kTRUE,Float_t thr=0.); @@ -32,20 +32,22 @@ class AliL3Display : public TObject { void DisplayClusters(Bool_t x3don=kTRUE); void DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile,Char_t *type="hist"); - void SetTracks(AliL3TrackArray *tracks) {fTracks=tracks;} + void SetTracks(AliHLTTrackArray *tracks) {fTracks=tracks;} private: - AliL3Display(const AliL3Display &/*d*/):TObject(){;} - AliL3Display& operator=(const AliL3Display &/*d*/){return *this;} + AliHLTDisplay(const AliHLTDisplay &/*d*/):TObject(){;} + AliHLTDisplay& operator=(const AliHLTDisplay &/*d*/){return *this;} TGeometry *fGeom; //! - AliL3SpacePointData *fClusters[36][6]; //! - AliL3TrackArray *fTracks; //! + AliHLTSpacePointData *fClusters[36][6]; //! + AliHLTTrackArray *fTracks; //! UInt_t fNcl[36][6]; //number of cluster Int_t fMinSlice; //min slice Int_t fMaxSlice; //max slice - ClassDef(AliL3Display,1) //Display class + ClassDef(AliHLTDisplay,1) //Display class }; +typedef AliHLTDisplay AliL3Display; // for backward compatibility + #endif diff --git a/HLT/src/AliL3Evaluate.cxx b/HLT/src/AliHLTEvaluate.cxx similarity index 78% rename from HLT/src/AliL3Evaluate.cxx rename to HLT/src/AliHLTEvaluate.cxx index e43ab9062f6..0c78c3ba76c 100644 --- a/HLT/src/AliL3Evaluate.cxx +++ b/HLT/src/AliHLTEvaluate.cxx @@ -3,10 +3,10 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -/** \class AliL3Evaluate +/** \class AliHLTEvaluate
 //_____________________________________________________________
-// AliL3Evaluate
+// AliHLTEvaluate
 //
 // Evaluation class for tracking; plots, efficiencies etc..
 //
@@ -32,29 +32,29 @@
 #include 
 #include 
 
-#include "AliL3StandardIncludes.h"
-#include "AliL3Logging.h"
-#include "AliL3Transform.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3Track.h"
-#include "AliL3FileHandler.h"
-#include "AliL3TrackArray.h"
-#include "AliL3Evaluate.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransform.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTTrack.h"
+#include "AliHLTFileHandler.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTEvaluate.h"
 
 #if __GNUC__ == 3
 #include 
 using namespace std;
 #endif
 
-ClassImp(AliL3Evaluate)
+ClassImp(AliHLTEvaluate)
 
-AliL3Evaluate::AliL3Evaluate()
+AliHLTEvaluate::AliHLTEvaluate()
 { 
   //constructor
   Clear();
 }
 
-AliL3Evaluate::AliL3Evaluate(Char_t *datapath,Int_t minclusters,Int_t minhits,Double_t minpt,Double_t maxpt,Int_t *slice)
+AliHLTEvaluate::AliHLTEvaluate(Char_t *datapath,Int_t minclusters,Int_t minhits,Double_t minpt,Double_t maxpt,Int_t *slice)
 { 
   //constructor
   Clear();
@@ -77,7 +77,7 @@ AliL3Evaluate::AliL3Evaluate(Char_t *datapath,Int_t minclusters,Int_t minhits,Do
   fMaxGoodPt = maxpt;
 }
 
-AliL3Evaluate::~AliL3Evaluate()
+AliHLTEvaluate::~AliHLTEvaluate()
 { 
   //destructor
   if(fGoodTracks) delete[] fGoodTracks;
@@ -107,7 +107,7 @@ AliL3Evaluate::~AliL3Evaluate()
       }
 }
 
-void AliL3Evaluate::Clear()
+void AliHLTEvaluate::Clear()
 { 
   //clear
   fTracks = 0;
@@ -148,14 +148,14 @@ void AliL3Evaluate::Clear()
   sprintf(fPath,"./");
 }
 
-void AliL3Evaluate::LoadData(Int_t event,Bool_t sp)
+void AliHLTEvaluate::LoadData(Int_t event,Bool_t sp)
 { 
   //load cluster points
   Char_t fname[1024];
 
   for(Int_t s=fMinSlice; s<=fMaxSlice; s++)
     {
-      for(Int_t p=0; pSetBinaryInput(fname))
 	    {
-	      LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open")
+	      LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open")
 		<<"Inputfile "<Allocate();
+	  fClusters[s][p] = (AliHLTSpacePointData*)fClustersFile[s][p]->Allocate();
 	  fClustersFile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]);
 	  fClustersFile[s][p]->CloseBinaryInput();
 	  if(sp==kTRUE)
@@ -188,31 +188,31 @@ void AliL3Evaluate::LoadData(Int_t event,Bool_t sp)
     }
    
   sprintf(fname,"%s/tracks_%d.raw",fPath,event);
-  AliL3FileHandler *tfile = new AliL3FileHandler();
+  AliHLTFileHandler *tfile = new AliHLTFileHandler();
   if(!tfile->SetBinaryInput(fname)){
-    LOG(AliL3Log::kError,"AliL3Evaluation::Setup","File Open")
+    LOG(AliHLTLog::kError,"AliHLTEvaluation::Setup","File Open")
       <<"Inputfile "<Binary2TrackArray(fTracks);
   tfile->CloseBinaryInput();
   fTracks->QSort();
   delete tfile;
 }
 
-void AliL3Evaluate::AssignPIDs()
+void AliHLTEvaluate::AssignPIDs()
 { 
   //assign pid 
   if(!fTracks) return;
   fTracks->QSort();
-  LOG(AliL3Log::kDebug,"AliL3Evaluate::AssignPIDs","Track Loop")
+  LOG(AliHLTLog::kDebug,"AliHLTEvaluate::AssignPIDs","Track Loop")
     <<"Assigning pid to the found tracks...."<GetNTracks(); i++)
     {
-      AliL3Track *track = (AliL3Track*)fTracks->GetCheckedTrack(i);
+      AliHLTTrack *track = (AliHLTTrack*)fTracks->GetCheckedTrack(i);
       if(!track) continue; 
       if(track->GetNumberOfPoints() < fMinPointsOnTrack)
 	track->SetPID(0);
@@ -223,21 +223,21 @@ void AliL3Evaluate::AssignPIDs()
     }
 }
   
-void AliL3Evaluate::AssignIDs()
+void AliHLTEvaluate::AssignIDs()
 { 
   //Assign MC id to the tracks.
 #ifndef do_mc
-  cerr<<"AliL3Evaluate::AssignIDs() : You need to compile with the do_mc flag!"<QSort();
-  LOG(AliL3Log::kDebug,"AliL3Evaluate::AssignIDs","Track Loop")
+  LOG(AliHLTLog::kDebug,"AliHLTEvaluate::AssignIDs","Track Loop")
     <<"Assigning MC id to the found tracks...."<GetNTracks(); i++)
     {
-      AliL3Track *track = (AliL3Track*)fTracks->GetCheckedTrack(i);
+      AliHLTTrack *track = (AliHLTTrack*)fTracks->GetCheckedTrack(i);
       if(!track) continue; 
       if(track->GetNumberOfPoints() < fMinPointsOnTrack) break;
       
@@ -249,7 +249,7 @@ void AliL3Evaluate::AssignIDs()
 #endif
 }
 
-Float_t AliL3Evaluate::GetTrackPID(AliL3Track *track)
+Float_t AliHLTEvaluate::GetTrackPID(AliHLTTrack *track)
 { 
   //get track pid
   track->CalculateHelix();
@@ -262,18 +262,18 @@ Float_t AliL3Evaluate::GetTrackPID(AliL3Track *track)
     Int_t iSector = (hitID>>25) & 0x7f;
     Int_t patch = (hitID>>22) & 0x7;
     UInt_t position = hitID&0x3fffff;
-    AliL3SpacePointData *points = fClusters[iSector][patch];
+    AliHLTSpacePointData *points = fClusters[iSector][patch];
     if(!points) continue; 
     if(position>=fNcl[iSector][patch]) 
       {
-	LOG(AliL3Log::kError,"AliL3Evaluate::GetMCTrackLabel","Clusterarray")
-	  <63)
-      pWidth = AliL3Transform::GetPadPitchWidthUp(); 
+      pWidth = AliHLTTransform::GetPadPitchWidthUp(); 
     Float_t corr=1.; if (padrow>63) corr=0.67;
     sampleDEdx[iHit] = points[position].fCharge/pWidth*corr;
     Double_t crossingangle = track->GetCrossingAngle(padrow,iSector);
@@ -306,7 +306,7 @@ Float_t AliL3Evaluate::GetTrackPID(AliL3Track *track)
 }
 
 #ifdef do_mc
-Int_t AliL3Evaluate::GetMCTrackLabel(AliL3Track *track)
+Int_t AliHLTEvaluate::GetMCTrackLabel(AliHLTTrack *track)
 { 
   //Returns the MCtrackID of the belonging clusters.
   //If MCLabel < 0, means that track is fake.
@@ -332,12 +332,12 @@ Int_t AliL3Evaluate::GetMCTrackLabel(AliL3Track *track)
       Int_t patch = (id>>22) & 0x7;
       UInt_t pos = id&0x3fffff;	      
       
-      AliL3SpacePointData *points = fClusters[slice][patch];
+      AliHLTSpacePointData *points = fClusters[slice][patch];
       if(!points) continue; 
       if(pos>=fNcl[slice][patch]) 
 	{
-	  LOG(AliL3Log::kError,"AliL3Evaluate::GetMCTrackLabel","Clusterarray")
-	    <>22) & 0x7;
       UInt_t pos = id&0x3fffff;	      
       
-      AliL3SpacePointData *points = fClusters[slice][patch];
+      AliHLTSpacePointData *points = fClusters[slice][patch];
       if(!points) continue; 
       if(pos>=fNcl[slice][patch]) 
 	{
-	  LOG(AliL3Log::kError,"AliL3Evaluate::GetMCTrackLabel","Clusterarray")
-	    <>22) & 0x7;
 	  UInt_t pos = id&0x3fffff;	      
 	  
-	  AliL3SpacePointData *points = fClusters[slice][patch];
+	  AliHLTSpacePointData *points = fClusters[slice][patch];
 	  if(!points) continue;
 	  if(lab == abs(points[pos].fTrackID[0]) ||
 	     lab == abs(points[pos].fTrackID[1]) ||
@@ -410,7 +410,7 @@ Int_t AliL3Evaluate::GetMCTrackLabel(AliL3Track *track)
 
   return lab;
 #else //If we are running with mc_ids or not
-  Int_t AliL3Evaluate::GetMCTrackLabel(AliL3Track */*track*/)
+  Int_t AliHLTEvaluate::GetMCTrackLabel(AliHLTTrack */*track*/)
 { 
   // Does nothing if do_mc undefined
   return 0;
@@ -418,7 +418,7 @@ Int_t AliL3Evaluate::GetMCTrackLabel(AliL3Track *track)
 
 }
 
-void AliL3Evaluate::GetFastClusterIDs(Char_t *path)
+void AliHLTEvaluate::GetFastClusterIDs(Char_t *path)
 {
   //Get the MC id of space points in case of using the fast simulator. 
   char name[256];
@@ -443,11 +443,11 @@ void AliL3Evaluate::GetFastClusterIDs(Char_t *path)
   fclose(infile);
 }
 
-void AliL3Evaluate::CreateHistos(Int_t nbin,Float_t xlow,Float_t xup)
+void AliHLTEvaluate::CreateHistos(Int_t nbin,Float_t xlow,Float_t xup)
 {
   //Create the histograms 
   
-  LOG(AliL3Log::kInformational,"AliL3Evaluate::CreateHistos","Allocating")
+  LOG(AliHLTLog::kInformational,"AliHLTEvaluate::CreateHistos","Allocating")
     <<"Creating histograms..."<GetNTracks(); k++)
 	{
-	  AliL3Track *track = fTracks->GetCheckedTrack(k);
+	  AliHLTTrack *track = fTracks->GetCheckedTrack(k);
 	  if(!track) continue;
 	  Int_t nHits = track->GetNumberOfPoints();
 	  if(nHits < fMinPointsOnTrack) break;
@@ -586,7 +586,7 @@ void AliL3Evaluate::FillEffHistos()
     }
 }
 
-void AliL3Evaluate::FillEffHistosNAIVE()
+void AliHLTEvaluate::FillEffHistosNAIVE()
 {  
   //Fill the efficiency histograms.
   
@@ -607,7 +607,7 @@ void AliL3Evaluate::FillEffHistosNAIVE()
   
   for(Int_t k=0; kGetNTracks(); k++)
     {
-      AliL3Track *track = fTracks->GetCheckedTrack(k);
+      AliHLTTrack *track = fTracks->GetCheckedTrack(k);
       if(!track) continue;
       Int_t nHits = track->GetNumberOfPoints();
       if(nHits < fMinPointsOnTrack) break;
@@ -621,7 +621,7 @@ void AliL3Evaluate::FillEffHistosNAIVE()
     }
 }
 
-void AliL3Evaluate::CalcEffHistos()
+void AliHLTEvaluate::CalcEffHistos()
 { 
   //calc eff histos
 
@@ -629,16 +629,16 @@ void AliL3Evaluate::CalcEffHistos()
   Stat_t nfound=fNFoundTracksPt->GetEntries();
   Stat_t nfake=fNFakeTracksPt->GetEntries();
 
-  LOG(AliL3Log::kInformational,"AliL3Evaluate::FillEffHistos","Efficiency")
-    <Sumw2(); fNGoodTracksPt->Sumw2();
   fTrackEffPt->Divide(fNFoundTracksPt,fNGoodTracksPt,1,1.,"b");
@@ -661,14 +661,14 @@ void AliL3Evaluate::CalcEffHistos()
   fFakeTrackEffEta->SetFillColor(2);
 }
 
-void AliL3Evaluate::Write2File(Char_t *outputfile)
+void AliHLTEvaluate::Write2File(Char_t *outputfile)
 {
   //Write histograms to file:
   
   TFile *of = TFile::Open(outputfile,"RECREATE");
   if(!of->IsOpen())
     {
-      LOG(AliL3Log::kError,"AliL3Evaluate::Write2File","File Open")
+      LOG(AliHLTLog::kError,"AliHLTEvaluate::Write2File","File Open")
 	<<"Problems opening rootfile"<Close();
 }
 
-TNtuple *AliL3Evaluate::GetNtuple()
+TNtuple *AliHLTEvaluate::GetNtuple()
 { 
   //get ntuple
   if(!fNtupleRes)
@@ -701,7 +701,7 @@ TNtuple *AliL3Evaluate::GetNtuple()
   return fNtupleRes;
 }
 
-void AliL3Evaluate::CalculateResiduals()
+void AliHLTEvaluate::CalculateResiduals()
 { 
   //calculate residuals
   TNtuple *ntuppel = GetNtuple();
@@ -709,7 +709,7 @@ void AliL3Evaluate::CalculateResiduals()
   for(Int_t i=0; iGetNTracks(); i++)
     {
       
-      AliL3Track *track = (AliL3Track*)fTracks->GetCheckedTrack(i);
+      AliHLTTrack *track = (AliHLTTrack*)fTracks->GetCheckedTrack(i);
       if(!track) continue;
       if(track->GetNHits() < fMinPointsOnTrack) break;
       
@@ -728,17 +728,17 @@ void AliL3Evaluate::CalculateResiduals()
 
 	  //if(slice<18) continue;
 	  
-	  AliL3SpacePointData *points = fClusters[slice][patch];
+	  AliHLTSpacePointData *points = fClusters[slice][patch];
 	  if(!points) 
 	    {
-	      LOG(AliL3Log::kError,"AliL3Evaluate::CalculateResiduals","Clusterarray")
+	      LOG(AliHLTLog::kError,"AliHLTEvaluate::CalculateResiduals","Clusterarray")
 		<<"No points at slice "<=fNcl[slice][patch]) 
 	    {
-	      LOG(AliL3Log::kError,"AliL3Evaluate::CalculateResiduals","Clusterarray")
-		<CalculateReferencePoint(angle,AliL3Transform::Row2X(padrow)))
+	  AliHLTTransform::Local2GlobalAngle(&angle,slice);
+	  if(!track->CalculateReferencePoint(angle,AliHLTTransform::Row2X(padrow)))
 	    {
-	      LOG(AliL3Log::kError,"AliL3Evaluate::CalculateResiduals","Crossing point")
+	      LOG(AliHLTLog::kError,"AliHLTEvaluate::CalculateResiduals","Crossing point")
 		<<"Track does not crossing padrow "<GetPointX(),track->GetPointY(),track->GetPointZ()};
-	  //AliL3Transform::Global2Local(xyzcross,slice,kTRUE);	  
-	  AliL3Transform::Global2LocHLT(xyzcross,slice);
+	  //AliHLTTransform::Global2Local(xyzcross,slice,kTRUE);	  
+	  AliHLTTransform::Global2LocHLT(xyzcross,slice);
 	  
 	  Double_t beta = track->GetCrossingAngle(padrow,slice);
 	  
@@ -775,14 +775,14 @@ void AliL3Evaluate::CalculateResiduals()
 
 enum tagprimary {kPrimaryCharged = 0x4000};
 #ifndef do_mc
-void AliL3Evaluate::EvaluatePoints(Char_t */*rootfile*/,Char_t */*exactfile*/,Char_t */*tofile*/,Int_t /*nevent*/,Bool_t /*offline*/,Bool_t /*sp*/)
+void AliHLTEvaluate::EvaluatePoints(Char_t */*rootfile*/,Char_t */*exactfile*/,Char_t */*tofile*/,Int_t /*nevent*/,Bool_t /*offline*/,Bool_t /*sp*/)
 {
   // Does nothing if do_mc undefined
   
-  cerr<<"AliL3Evaluate::EvaluatePoints : Compile with do_mc flag!"<Get("gAlice");
   if (!gAlice) 
     {
-      LOG(AliL3Log::kError,"AliL3Evaluate::InitMC","gAlice")
+      LOG(AliHLTLog::kError,"AliHLTEvaluate::InitMC","gAlice")
 	<<"AliRun object non existing on file"<Get(AliL3Transform::GetParamName());
+  AliTPCParam *param = (AliTPCParam*)exfile->Get(AliHLTTransform::GetParamName());
   
   TFile *exact = TFile::Open(exactfile);
   if(!exact)
     {
-      cerr<<"AliL3Evaluate::EvaluatePoints : Problems opening file :"<GetTitle(),event);
       Bool_t clusterok = arr->ConnectTree(treeName);//Segment Tree (for offline clusters)
-      if(!clusterok) {printf("AliL3Evaluate::EvaluatePoints : Error in clusterloading\n"); return;}
+      if(!clusterok) {printf("AliHLTEvaluate::EvaluatePoints : Error in clusterloading\n"); return;}
       
       //cout<<"Entering loop with "<<(Int_t)arr->GetTree()->GetEntries()<GetTree()->GetEntries(); i++)
@@ -856,14 +856,14 @@ void AliL3Evaluate::EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *to
 	  
 	  //Get the found clusters:
 	  Int_t slice,padrow;
-	  AliL3Transform::Sector2Slice(slice,padrow,cursec,currow);
+	  AliHLTTransform::Sector2Slice(slice,padrow,cursec,currow);
 	  if(slice < fMinSlice) continue;
 	  if(slice > fMaxSlice) break;
 	  
-	  Int_t patch = AliL3Transform::GetPatch(padrow);
+	  Int_t patch = AliHLTTransform::GetPatch(padrow);
 	  if(sp)
 	    patch=0;
-	  AliL3SpacePointData *points = fClusters[slice][patch];
+	  AliHLTSpacePointData *points = fClusters[slice][patch];
 	  if(!points)
 	    continue;
 	  
@@ -881,27 +881,27 @@ void AliL3Evaluate::EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *to
 	      if(mcId <0) continue;
 	
 #ifdef use_newio      
-	      if(cluster->GetY() < 1 || cluster->GetY() > AliL3Transform::GetNPads(padrow) - 2 ||
-		 cluster->GetX() < 1 || cluster->GetX() > AliL3Transform::GetNTimeBins() - 2)
+	      if(cluster->GetY() < 1 || cluster->GetY() > AliHLTTransform::GetNPads(padrow) - 2 ||
+		 cluster->GetX() < 1 || cluster->GetX() > AliHLTTransform::GetNTimeBins() - 2)
 		continue;
 #else
-	      if(cluster->fY < 1 || cluster->fY > AliL3Transform::GetNPads(padrow) - 2 ||
-		 cluster->fX < 1 || cluster->fX > AliL3Transform::GetNTimeBins() - 2)
+	      if(cluster->fY < 1 || cluster->fY > AliHLTTransform::GetNPads(padrow) - 2 ||
+		 cluster->fX < 1 || cluster->fX > AliHLTTransform::GetNTimeBins() - 2)
 		continue;
 #endif	      
 	      Float_t xyzex[3];
 	      
 #ifdef use_newio
-	      AliL3Transform::Raw2Local(xyzex,cursec,currow,cluster->GetY(),cluster->GetX());
+	      AliHLTTransform::Raw2Local(xyzex,cursec,currow,cluster->GetY(),cluster->GetX());
 #else	      
-	      AliL3Transform::Raw2Local(xyzex,cursec,currow,cluster->fY,cluster->fX);
+	      AliHLTTransform::Raw2Local(xyzex,cursec,currow,cluster->fY,cluster->fX);
 #endif	      
 	      //In function AliTPC::Hits2ExactClusters the time offset is not included,
 	      //so we have to substract it again here.
 	      if(slice<18)
-		xyzex[2]-=AliL3Transform::GetZOffset();
+		xyzex[2]-=AliHLTTransform::GetZOffset();
 	      else
-		xyzex[2]+=AliL3Transform::GetZOffset();
+		xyzex[2]+=AliHLTTransform::GetZOffset();
 	      
 	      //Outside our cone:
 	      if(param->GetPadRowRadii(cursec,currow)<230./250.*fabs(xyzex[2]))
@@ -923,7 +923,7 @@ void AliL3Evaluate::EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *to
 		  Float_t xyzcl[3] = {points[c].fX,points[c].fY,points[c].fZ};
 		  
 		  if(!offline)
-		    AliL3Transform::Global2Local(xyzcl,cursec);
+		    AliHLTTransform::Global2Local(xyzcl,cursec);
 		  tempcount++;
 		  
 		  if(points[c].fTrackID[0] != mcId &&
@@ -939,8 +939,8 @@ void AliL3Evaluate::EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *to
 		  Int_t charge = (Int_t)points[c].fCharge;
 		  Float_t beta = GetCrossingAngle(part,slice,padrow,xyzex);
 		  Double_t tanl = xyzex[2]/sqrt(xyzex[0]*xyzex[0]+xyzex[1]*xyzex[1]);
-		  Float_t psigmaY2 = AliL3Transform::GetParSigmaY2(padrow,xyzex[2],beta);
-		  Float_t psigmaZ2 = AliL3Transform::GetParSigmaZ2(padrow,xyzex[2],tanl);
+		  Float_t psigmaY2 = AliHLTTransform::GetParSigmaY2(padrow,xyzex[2],beta);
+		  Float_t psigmaZ2 = AliHLTTransform::GetParSigmaZ2(padrow,xyzex[2],tanl);
 		  Float_t sigmaY2 = points[c].fSigmaY2;
 		  Float_t sigmaZ2 = points[c].fSigmaZ2;
 		  ntuppel->Fill(slice,padrow,charge,resy,resz,xyzex[2],part->Pt(),beta,sigmaY2,sigmaZ2,psigmaY2,psigmaZ2);
@@ -962,14 +962,14 @@ void AliL3Evaluate::EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *to
 }
 
 #ifndef do_mc
-void AliL3Evaluate::GetCFeff(Char_t */*path*/,Char_t */*outfile*/,Int_t /*nevent*/,Bool_t /*sp*/)
+void AliHLTEvaluate::GetCFeff(Char_t */*path*/,Char_t */*outfile*/,Int_t /*nevent*/,Bool_t /*sp*/)
 {
   // Does nothing if do_mc undefined
   
-  cerr<<"AliL3Evaluate::GetCFeff : Compile with do_mc flag"<Stack();
   
-  AliTPCParam *param = (AliTPCParam*)rfile->Get(AliL3Transform::GetParamName());
+  AliTPCParam *param = (AliTPCParam*)rfile->Get(AliHLTTransform::GetParamName());
       
   Int_t zero=param->GetZeroSup();
 
@@ -1016,7 +1016,7 @@ void AliL3Evaluate::GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent,Bool_t sp
 	  crossed=recs=0;
 	  if (!TD->GetEvent(i)) continue;
 	  param->AdjustSectorRow(digits->GetID(),sec,row);
-	  AliL3Transform::Sector2Slice(sl,sr,sec,row);
+	  AliHLTTransform::Sector2Slice(sl,sr,sec,row);
 	  if(sl < fMinSlice) continue;
 	  if(sl > fMaxSlice) break;
 	  cout<<"Processing slice "<GetDigit(it,ip);
 	    
 	    if(dig<=param->GetZeroSup()) continue;
-	    AliL3Transform::Raw2Local(xyz,sec,row,ip,it);
+	    AliHLTTransform::Raw2Local(xyz,sec,row,ip,it);
 	    if(param->GetPadRowRadii(sec,row)<230./250.*fabs(xyz[2]))
 	      continue;
 	    
@@ -1050,10 +1050,10 @@ void AliL3Evaluate::GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent,Bool_t sp
 		}
 	    }
 
-	  Int_t patch = AliL3Transform::GetPatch(sr);
+	  Int_t patch = AliHLTTransform::GetPatch(sr);
 	  if(sp==kTRUE)
 	    patch=0;
-	  AliL3SpacePointData *points = fClusters[sl][patch];
+	  AliHLTSpacePointData *points = fClusters[sl][patch];
 	  if(!points)
 	    continue;
 	  for(UInt_t k=0; kPt();
+  Double_t kappa = AliHLTTransform::GetBField()*AliHLTTransform::GetBFact()/part->Pt();
   
   Double_t radius = 1/fabs(kappa);
   if(part->GetPdgCode() > 0) kappa = -kappa;
 
   Float_t angl[1] = {part->Phi()};
   
-  AliL3Transform::Global2LocalAngle(angl,slice);
+  AliHLTTransform::Global2LocalAngle(angl,slice);
   
   Double_t charge = -1.*kappa;
 
-  Double_t trackPhi0 = angl[0] + charge*0.5*AliL3Transform::Pi()/fabs(charge);
+  Double_t trackPhi0 = angl[0] + charge*0.5*AliHLTTransform::Pi()/fabs(charge);
   
   Double_t x0=0;
   Double_t y0=0;
@@ -1109,7 +1109,7 @@ Float_t AliL3Evaluate::GetCrossingAngle(TParticle *part,Int_t slice,Int_t /*padr
   return acos(cosbeta);
 }
 
-Int_t AliL3Evaluate::FindPrimaries(Int_t nparticles)
+Int_t AliHLTEvaluate::FindPrimaries(Int_t nparticles)
 {
   // cuts:
   Double_t vertcut = 0.001;
diff --git a/HLT/src/AliL3Evaluate.h b/HLT/src/AliHLTEvaluate.h
similarity index 82%
rename from HLT/src/AliL3Evaluate.h
rename to HLT/src/AliHLTEvaluate.h
index d890bd5f30b..b4866011839 100644
--- a/HLT/src/AliL3Evaluate.h
+++ b/HLT/src/AliHLTEvaluate.h
@@ -4,25 +4,25 @@
 #define ALIL3_Evaluate
 
 
-class AliL3Track;
+class AliHLTTrack;
 class TClonesArray;
 class TFile;
-class AliL3TrackArray;
-class AliL3SpacePointData;
+class AliHLTTrackArray;
+class AliHLTSpacePointData;
 class TH1F;
 class AliTPCParam;
 class TTree;
 class AliSimDigits;
 class TObjArray;
 class TParticle;
-class AliL3FileHandler;
+class AliHLTFileHandler;
 class TClonesArray;
 class TNtuple;
 class TH1F;
 //#include 
 //#include 
 
-class AliL3Evaluate {
+class AliHLTEvaluate {
 
 struct AliGoodTrack 
 {
@@ -45,9 +45,9 @@ typedef struct AliS AliS;
 
  private:
 
-  AliL3TrackArray *fTracks; //!
-  AliL3SpacePointData *fClusters[36][6]; //!
-  AliL3FileHandler *fClustersFile[36][6]; //!
+  AliHLTTrackArray *fTracks; //!
+  AliHLTSpacePointData *fClusters[36][6]; //!
+  AliHLTFileHandler *fClustersFile[36][6]; //!
   Char_t fPath[1024];      //path
   Int_t fMinSlice;         //min slice
   Int_t fMaxSlice;         //max slice
@@ -84,9 +84,9 @@ typedef struct AliS AliS;
   
   void Clear();
  public:
-  AliL3Evaluate();
-  AliL3Evaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Double_t maxpt=4.,Int_t *slice=0);
-  virtual ~AliL3Evaluate();
+  AliHLTEvaluate();
+  AliHLTEvaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Double_t maxpt=4.,Int_t *slice=0);
+  virtual ~AliHLTEvaluate();
   
   void LoadData(Int_t event=-1,Bool_t sp=kFALSE);
   void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4);
@@ -99,8 +99,8 @@ typedef struct AliS AliS;
   void GetGoodParticles(Char_t *particlefile,Int_t event=-1,Int_t *padrowrange=0);
   void GetFastClusterIDs(Char_t *path);
   void GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent=0,Bool_t sp=kFALSE);
-  Int_t GetMCTrackLabel(AliL3Track *track);
-  Float_t GetTrackPID(AliL3Track *track);
+  Int_t GetMCTrackLabel(AliHLTTrack *track);
+  Float_t GetTrackPID(AliHLTTrack *track);
   void CalculateResiduals();
   void EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *tofile,Int_t nevent=1,Bool_t offline=kFALSE,Bool_t sp=kFALSE);
   Float_t GetCrossingAngle(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
@@ -117,9 +117,11 @@ typedef struct AliS AliS;
   TH1F *GetFakeEffEta() {return fFakeTrackEffEta;}
   TH1F *GetFakeEffPt() {return fFakeTrackEffPt;}
   TH1F *GetPtRes() {return fPtRes;}
-  AliL3TrackArray *GetTracks() {return fTracks;}
+  AliHLTTrackArray *GetTracks() {return fTracks;}
   
-  ClassDef(AliL3Evaluate,1) //Tracking evaluation class
+  ClassDef(AliHLTEvaluate,1) //Tracking evaluation class
 };
 
+typedef AliHLTEvaluate AliL3Evaluate; // for backward compatibility
+
 #endif
diff --git a/HLT/src/AliL3FileHandler.cxx b/HLT/src/AliHLTFileHandler.cxx
similarity index 73%
rename from HLT/src/AliL3FileHandler.cxx
rename to HLT/src/AliHLTFileHandler.cxx
index 50375b23baa..a81f1620ddc 100644
--- a/HLT/src/AliL3FileHandler.cxx
+++ b/HLT/src/AliHLTFileHandler.cxx
@@ -3,7 +3,7 @@
 // Author: Uli Frankenfeld , Anders Vestbo , C. Loizides 
 //*-- Copyright © ALICE HLT Group 
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 #include 
 #include 
 #include 
@@ -18,23 +18,23 @@
 #include 
 #include 
 
-#include "AliL3Logging.h"
-#include "AliL3Transform.h"
-#include "AliL3MemHandler.h"
-#include "AliL3DigitData.h"
-#include "AliL3TrackSegmentData.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3TrackArray.h"
-#include "AliL3FileHandler.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransform.h"
+#include "AliHLTMemHandler.h"
+#include "AliHLTDigitData.h"
+#include "AliHLTTrackSegmentData.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTFileHandler.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
-/** \class AliL3FileHandler
+/** \class AliHLTFileHandler
 
 //_____________________________________________________________
-// AliL3FileHandler
+// AliHLTFileHandler
 //
 // The HLT ROOT <-> binary files handling class
 //
@@ -50,17 +50,17 @@ using namespace std;
 //
 // For reading a AliROOT file into HLT format in memory, do the following:
 //
-// AliL3FileHandler file;
+// AliHLTFileHandler file;
 // file.Init(slice,patch);
 // file.SetAliInput("galice.root");
-// AliL3DigitRowData *dataPt = (AliL3DigitRowData*)file.AliDigits2Memory(nrows,eventnr);
+// AliHLTDigitRowData *dataPt = (AliHLTDigitRowData*)file.AliDigits2Memory(nrows,eventnr);
 // 
 // All the data are then stored in memory and accessible via the pointer dataPt.
-// Accesing the data is then identical to the example 1) showed in AliL3MemHandler class.
+// Accesing the data is then identical to the example 1) showed in AliHLTMemHandler class.
 //
 // For converting the data back, and writing it to a new AliROOT file do:
 //
-// AliL3FileHandler file;
+// AliHLTFileHandler file;
 // file.Init(slice,patch);
 // file.SetAliInput("galice.root");
 // file.Init(slice,patch,NumberOfRowsInPatch);
@@ -69,24 +69,24 @@ using namespace std;
 
*/ -ClassImp(AliL3FileHandler) +ClassImp(AliHLTFileHandler) // of course on start up the index is not created -Bool_t AliL3FileHandler::fgStaticIndexCreated=kFALSE; -Int_t AliL3FileHandler::fgStaticIndex[36][159]; +Bool_t AliHLTFileHandler::fgStaticIndexCreated=kFALSE; +Int_t AliHLTFileHandler::fgStaticIndex[36][159]; -void AliL3FileHandler::CleanStaticIndex() +void AliHLTFileHandler::CleanStaticIndex() { // use this static call to clean static index after // running over one event - for(Int_t i=0;i> fgStaticIndex[i][j]; } file.close(); @@ -137,7 +137,7 @@ Int_t AliL3FileHandler::LoadStaticIndex(Char_t *prefix,Int_t event) return 0; } -AliL3FileHandler::AliL3FileHandler(Bool_t b) +AliHLTFileHandler::AliHLTFileHandler(Bool_t b) { //Default constructor fInAli = 0; @@ -151,14 +151,14 @@ AliL3FileHandler::AliL3FileHandler(Bool_t b) fIndexCreated=kFALSE; fUseStaticIndex=b; - for(Int_t i=0;iCdGAFile(); fParam = (AliTPCParam*)gFile->Get("75x40_100x60_150x60"); if(!fParam){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::SetAliInput","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::SetAliInput","File") <<"No TPC parameters found in \""<GetName() <<"\", creating standard parameters " <<"which might not be what you want!"<GetName()<GetName()<IsOpen()){ - LOG(AliL3Log::kError,"AliL3FileHandler::SetAliInput","File Open") + LOG(AliHLTLog::kError,"AliHLTFileHandler::SetAliInput","File Open") <<"Ali File "<GetName()<<" does not exist"<Get(AliL3Transform::GetParamName()); + fParam = (AliTPCParam*)fInAli->Get(AliHLTTransform::GetParamName()); if(!fParam){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::SetAliInput","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::SetAliInput","File") <<"No TPC parameters found in \""<GetName() <<"\", creating standard parameters " <<"which might not be what you want!"<GetName()<GetName()<GetLoader("TPCLoader"); if(!tpcLoader){ - LOG(AliL3Log::kWarning,"AliL3FileHandlerNewIO::IsDigit","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandlerNewIO::IsDigit","File") <<"Pointer to AliLoader for TPC = 0x0 "<TreeD(); #else Char_t name[1024]; - sprintf(name,"TreeD_%s_%d",AliL3Transform::GetParamName(),event); + sprintf(name,"TreeD_%s_%d",AliHLTTransform::GetParamName(),event); TTree *t=(TTree*)fInAli->Get(name); #endif if(t){ - LOG(AliL3Log::kInformational,"AliL3FileHandlerNewIO::IsDigit","File Type") + LOG(AliHLTLog::kInformational,"AliHLTFileHandlerNewIO::IsDigit","File Type") <<"Found Digit Tree -> Use Fast Cluster Finder"< Use Cluster Tree"<GetEntries(); n++) { @@ -423,9 +423,9 @@ Bool_t AliL3FileHandler::CreateIndex() Int_t lslice,lrow; fDigitsTree->GetEvent(n); fParam->AdjustSectorRow(fDigits->GetID(),sector,row); - if(!AliL3Transform::Sector2Slice(lslice,lrow,sector,row)){ - LOG(AliL3Log::kError,"AliL3FileHandler::CreateIndex","Slice/Row") - <IsOpen()){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2Memory","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2Memory","File") <<"No Input avalible: TFile not opened"<GetEntries(); if(entries==0) { - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2Memory","ndigits") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2Memory","ndigits") <<"No TPC digits (entries==0)!"<fRow = r; tempPt->fNDigit = 0; @@ -511,11 +511,11 @@ AliL3DigitRowData * AliL3FileHandler::AliDigits2Memory(UInt_t & nrow,Int_t event if(n!=-1){ //data on that row fDigitsTree->GetEvent(n); fParam->AdjustSectorRow(fDigits->GetID(),sector,row); - AliL3Transform::Sector2Slice(lslice,lrow,sector,row); + AliHLTTransform::Sector2Slice(lslice,lrow,sector,row); if(lrow!=r){ - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2Memory","Row") - <CurrentColumn(); dig = fDigits->GetDigit(time,pad); if(dig <= fParam->GetZeroSup()) continue; - if(dig >= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); // if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) // continue; // why 230??? @@ -542,15 +542,15 @@ AliL3DigitRowData * AliL3FileHandler::AliDigits2Memory(UInt_t & nrow,Int_t event nrows++; } - Int_t size = sizeof(AliL3DigitData)*ndigitcount - + nrows*sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData)*ndigitcount + + nrows*sizeof(AliHLTDigitRowData); - LOG(AliL3Log::kDebug,"AliL3FileHandler::AliDigits2Memory","Digits") - <GetEvent(n); fParam->AdjustSectorRow(fDigits->GetID(),sector,row); - AliL3Transform::Sector2Slice(lslice,lrow,sector,row); + AliHLTTransform::Sector2Slice(lslice,lrow,sector,row); if(lrow!=r){ - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2Memory","Row") - <CurrentColumn(); dig = fDigits->GetDigit(time,pad); if (dig <= fParam->GetZeroSup()) continue; - if(dig >= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); //Exclude data outside cone: - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); // if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) // continue; // why 230??? if(localcount >= ndigits[lrow]) - LOG(AliL3Log::kFatal,"AliL3FileHandler::AliDigits2Binary","Memory") - <fDigitData[localcount].fCharge=dig; @@ -601,16 +601,16 @@ AliL3DigitRowData * AliL3FileHandler::AliDigits2Memory(UInt_t & nrow,Int_t event } while (fDigits->Next()); } Byte_t *tmp = (Byte_t*)tempPt; - Int_t size = sizeof(AliL3DigitRowData) - + ndigits[lrow]*sizeof(AliL3DigitData); + Int_t size = sizeof(AliHLTDigitRowData) + + ndigits[lrow]*sizeof(AliHLTDigitData); tmp += size; - tempPt = (AliL3DigitRowData*)tmp; + tempPt = (AliHLTDigitRowData*)tmp; } delete [] ndigits; return data; } -AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t event,Bool_t eventmerge) +AliHLTDigitRowData * AliHLTFileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t event,Bool_t eventmerge) { //Read data from AliROOT file into memory, and store it in the HLT data format. //Returns a pointer to the data. @@ -618,24 +618,24 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t //are removed are timebins which have the 4 zero neighbours; //(pad-1,time),(pad+1,time),(pad,time-1),(pad,time+1). - AliL3DigitRowData *data = 0; + AliHLTDigitRowData *data = 0; nrow=0; if(!fInAli){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliAltroDigits2Memory","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliAltroDigits2Memory","File") <<"No Input avalible: Pointer to TFile == NULL"<IsOpen()){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliAltroDigits2Memory","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliAltroDigits2Memory","File") <<"No Input avalible: TFile not opened"<= 1024) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliAltroDigits2Memory","TrackIDs") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliAltroDigits2Memory","TrackIDs") <<"Too many events if you want to merge!"<GetEntries(); if(entries==0) { - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliAltroDigits2Memory","ndigits") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliAltroDigits2Memory","ndigits") <<"No TPC digits (entries==0)!"<fRow = r; tempPt->fNDigit = 0; @@ -673,7 +673,7 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t } Int_t * ndigits = new Int_t[fRowMax+1]; Int_t lslice,lrow; - Int_t zerosupval=AliL3Transform::GetZeroSup(); + Int_t zerosupval=AliHLTTransform::GetZeroSup(); Float_t xyz[3]; for(Int_t r=fRowMin;r<=fRowMax;r++){ @@ -684,11 +684,11 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t if(n!=-1){//data on that row fDigitsTree->GetEvent(n); fParam->AdjustSectorRow(fDigits->GetID(),sector,row); - AliL3Transform::Sector2Slice(lslice,lrow,sector,row); + AliHLTTransform::Sector2Slice(lslice,lrow,sector,row); //cout << lslice << " " << fSlice << " " << lrow << " " << r << " " << sector << " " << row << endl; if((lslice!=fSlice)||(lrow!=r)){ - LOG(AliL3Log::kError,"AliL3FileHandler::AliAltroDigits2Memory","Row") - <GetDigitFast(time,pad); if(dig <= zerosupval) continue; - if(dig >= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); //Check for single timebins, and remove them because they are noise for sure. if(i>0 && iGetNCols()-1 && j>0 && jGetNRows()-1) @@ -791,7 +791,7 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t } } - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); // if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) // continue; @@ -803,15 +803,15 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t nrows++; } - Int_t size = sizeof(AliL3DigitData)*ndigitcount - + nrows*sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData)*ndigitcount + + nrows*sizeof(AliHLTDigitRowData); - LOG(AliL3Log::kDebug,"AliL3FileHandler::AliAltroDigits2Memory","Digits") - <GetEvent(n); fParam->AdjustSectorRow(fDigits->GetID(),sector,row); - AliL3Transform::Sector2Slice(lslice,lrow,sector,row); + AliHLTTransform::Sector2Slice(lslice,lrow,sector,row); if(lrow!=r){ - LOG(AliL3Log::kError,"AliL3FileHandler::AliAltroDigits2Memory","Row") - <GetDigitFast(time,pad); if(dig <= zerosupval) continue; - if(dig >= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); //Check for single timebins, and remove them because they are noise for sure. if(i>0 && iGetNCols()-1 && j>0 && jGetNRows()-1) @@ -929,13 +929,13 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t } } - AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); // if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) // continue; if(localcount >= ndigits[lrow]) - LOG(AliL3Log::kFatal,"AliL3FileHandler::AliAltroDigits2Binary","Memory") - <fDigitData[localcount].fCharge=dig; @@ -960,22 +960,22 @@ AliL3DigitRowData * AliL3FileHandler::AliAltroDigits2Memory(UInt_t & nrow,Int_t } } Byte_t *tmp = (Byte_t*)tempPt; - Int_t size = sizeof(AliL3DigitRowData) - + ndigits[r]*sizeof(AliL3DigitData); + Int_t size = sizeof(AliHLTDigitRowData) + + ndigits[r]*sizeof(AliHLTDigitData); tmp += size; - tempPt = (AliL3DigitRowData*)tmp; + tempPt = (AliHLTDigitRowData*)tmp; } delete [] ndigits; return data; } -Bool_t AliL3FileHandler::GetDigitsTree(Int_t event) +Bool_t AliHLTFileHandler::GetDigitsTree(Int_t event) { //Connects to the TPC digit tree in the AliROOT file. #ifdef use_newio AliLoader* tpcLoader = fInAli->GetLoader("TPCLoader"); if(!tpcLoader){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::GetDigitsTree","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::GetDigitsTree","File") <<"Pointer to AliLoader for TPC = 0x0 "<cd(); Char_t dname[100]; - sprintf(dname,"TreeD_%s_%d",AliL3Transform::GetParamName(),event); + sprintf(dname,"TreeD_%s_%d",AliHLTTransform::GetParamName(),event); fDigitsTree = (TTree*)fInAli->Get(dname); #endif if(!fDigitsTree) { - LOG(AliL3Log::kError,"AliL3FileHandler::GetDigitsTree","Digits Tree") - <GetBranch("Segment")->SetAddress(&fDigits); @@ -1000,7 +1000,7 @@ Bool_t AliL3FileHandler::GetDigitsTree(Int_t event) else return kTRUE; } -void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_digitsfile) +void AliHLTFileHandler::AliDigits2RootFile(AliHLTDigitRowData *rowPt,Char_t *new_digitsfile) { //Write the data stored in rowPt, into a new AliROOT file. //The data is stored in the AliROOT format @@ -1012,13 +1012,13 @@ void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_d if(!fInAli) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2RootFile","File") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliDigits2RootFile","File") <<"No rootfile "<GetLoader("TPCLoader"); if(!tpcLoader){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2RootFile","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2RootFile","File") <<"Pointer to AliLoader for TPC = 0x0 "<ConnectTree(t); if(!ok) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2RootFile","File") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliDigits2RootFile","File") << "No digits tree object" << ENDLOG; return; } @@ -1058,7 +1058,7 @@ void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_d //Get the original digitstree: Char_t dname[100]; - sprintf(dname,"TreeD_%s_0",AliL3Transform::GetParamName()); + sprintf(dname,"TreeD_%s_0",AliHLTTransform::GetParamName()); fInAli->cd(); AliTPCDigitsArray *old_array = new AliTPCDigitsArray(); @@ -1068,7 +1068,7 @@ void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_d Bool_t ok = old_array->ConnectTree(dname); if(!ok) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2RootFile","File") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliDigits2RootFile","File") <<"No digits tree object." <AccessPathName(new_digitsfile)) { - LOG(AliL3Log::kInformational,"AliL3FileHandler::AliDigits2RootFile","File") + LOG(AliHLTLog::kInformational,"AliHLTFileHandler::AliDigits2RootFile","File") <<"Creating new file "<IsOpen()) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2RootFile","Rootfile") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliDigits2RootFile","Rootfile") <<"Error opening rootfile "<ConnectTree(dname); if(!ok) { - LOG(AliL3Log::kError,"AliL3FileHandler::AliDigits2RootFile","Rootfile") + LOG(AliHLTLog::kError,"AliHLTFileHandler::AliDigits2RootFile","Rootfile") <<"No digits tree object in existing file"<fRow != i) - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2RootFile","Data") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2RootFile","Data") <<"Mismatching row numbering "<<(Int_t)rowPt->fRow<<" "<LoadRow(sector,row); AliSimDigits * dig = (AliSimDigits*)arr->CreateRow(sector,row); @@ -1137,10 +1137,10 @@ void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_d dig->ExpandTrackBuffer(); if(!old_dig) - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2RootFile","Data") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2RootFile","Data") <<"No padrow " << sector << " " << row <fDigitData; + AliHLTDigitData *digPt = rowPt->fDigitData; digcounter=0; for(UInt_t j=0; jfNDigit; j++) { @@ -1150,7 +1150,7 @@ void AliL3FileHandler::AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_d if(charge == 0) //Only write the digits that has not been removed { - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliDigits2RootFile","Data") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliDigits2RootFile","Data") <<"Zero charge" <IsOpen()){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliPoints2Memory","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliPoints2Memory","File") <<"No Input avalible: TFile not opend"<GetLoader("TPCLoader"); if(!tpcLoader){ - LOG(AliL3Log::kWarning,"AliL3FileHandler::AliPoints2Memory","File") + LOG(AliHLTLog::kWarning,"AliHLTFileHandler::AliPoints2Memory","File") <<"Pointer to AliLoader for TPC = 0x0 "<fRowMax) continue; clusterrow[i] = carray.GetRow(sector,row); if(clusterrow[i]) sum+=clusterrow[i]->GetArray()->GetEntriesFast(); } - UInt_t size = sum*sizeof(AliL3SpacePointData); + UInt_t size = sum*sizeof(AliHLTSpacePointData); - LOG(AliL3Log::kDebug,"AliL3FileHandler::AliPoints2Memory","File") - <GetArray()->GetEntriesFast(); for(Int_t j = 0;j #include -class AliL3SpacePointData; -class AliL3DigitRowData; -class AliL3TrackSegmentData; -class AliL3TrackArray; +class AliHLTSpacePointData; +class AliHLTDigitRowData; +class AliHLTTrackSegmentData; +class AliHLTTrackArray; -class AliL3FileHandler:public AliL3MemHandler{ +class AliHLTFileHandler:public AliHLTMemHandler{ protected: #ifdef use_newio @@ -50,8 +50,8 @@ class AliL3FileHandler:public AliL3MemHandler{ Bool_t CreateIndex(); //create the index public: - AliL3FileHandler(Bool_t b=kFALSE); - ~AliL3FileHandler(); + AliHLTFileHandler(Bool_t b=kFALSE); + ~AliHLTFileHandler(); void FreeDigitsTree(); static void CleanStaticIndex(); @@ -73,17 +73,19 @@ class AliL3FileHandler:public AliL3MemHandler{ //Digit IO Bool_t AliDigits2Binary(Int_t event=0,Bool_t altro=kFALSE); - AliL3DigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0); //Allocates Memory - AliL3DigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t eventmerge=kFALSE); + AliHLTDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0); //Allocates Memory + AliHLTDigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t eventmerge=kFALSE); //Allocates Memory Bool_t AliDigits2CompBinary(Int_t event=0,Bool_t altro=kFALSE); - void AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_digitsfile); + void AliDigits2RootFile(AliHLTDigitRowData *rowPt,Char_t *new_digitsfile); //Point IO Bool_t AliPoints2Binary(Int_t eventn=0); - AliL3SpacePointData *AliPoints2Memory(UInt_t & npoint,Int_t eventn=0);//Allocates Memory + AliHLTSpacePointData *AliPoints2Memory(UInt_t & npoint,Int_t eventn=0);//Allocates Memory - ClassDef(AliL3FileHandler,1) //Filehandler class + ClassDef(AliHLTFileHandler,1) //Filehandler class }; +typedef AliHLTFileHandler AliL3FileHandler; // for backward compatibility + #endif diff --git a/HLT/src/AliL3Fitter.cxx b/HLT/src/AliHLTFitter.cxx similarity index 86% rename from HLT/src/AliL3Fitter.cxx rename to HLT/src/AliHLTFitter.cxx index fe9035fc7a5..ee35ccd2430 100644 --- a/HLT/src/AliL3Fitter.cxx +++ b/HLT/src/AliHLTFitter.cxx @@ -3,51 +3,51 @@ // Author: Anders Vestbo //*-- Copyright © ALICE HLT Group -/** \class AliL3Fitter +/** \class AliHLTFitter
 //_____________________________________________________________
-// AliL3Fitter
+// AliHLTFitter
 //
 // Fit class HLT for helix
 
*/ #include -#include "AliL3StandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Fitter.h" -#include "AliL3Vertex.h" -#include "AliL3Track.h" -#include "AliL3SpacePointData.h" -#include "AliL3MemHandler.h" -#include "AliL3Transform.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTLogging.h" +#include "AliHLTFitter.h" +#include "AliHLTVertex.h" +#include "AliHLTTrack.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTMemHandler.h" +#include "AliHLTTransform.h" #include "AliLevel3.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3Fitter) +ClassImp(AliHLTFitter) -AliL3Fitter::AliL3Fitter() +AliHLTFitter::AliHLTFitter() { //constructor fTrack=0; fVertex=0; - memset(fClusters,0,36*6*sizeof(AliL3SpacePointData*)); + memset(fClusters,0,36*6*sizeof(AliHLTSpacePointData*)); } -AliL3Fitter::AliL3Fitter(AliL3Vertex *vertex,Bool_t vertexconstraint) +AliHLTFitter::AliHLTFitter(AliHLTVertex *vertex,Bool_t vertexconstraint) { //constructor fTrack=0; fVertex = vertex; fVertexConstraint=vertexconstraint; - memset(fClusters,0,36*6*sizeof(AliL3SpacePointData*)); + memset(fClusters,0,36*6*sizeof(AliHLTSpacePointData*)); } -AliL3Fitter::~AliL3Fitter() +AliHLTFitter::~AliHLTFitter() { //destructor for(Int_t i=0; i<36; i++) @@ -60,11 +60,11 @@ AliL3Fitter::~AliL3Fitter() } } -void AliL3Fitter::LoadClusters(Char_t *path,Int_t event,Bool_t sp) +void AliHLTFitter::LoadClusters(Char_t *path,Int_t event,Bool_t sp) { //load clusters Char_t fname[256]; - AliL3MemHandler *clusterfile[36][6]; + AliHLTMemHandler *clusterfile[36][6]; for(Int_t s=0; s<=35; s++) { for(Int_t p=0; p<6; p++) @@ -77,7 +77,7 @@ void AliL3Fitter::LoadClusters(Char_t *path,Int_t event,Bool_t sp) if(fClusters[s][p]) delete fClusters[s][p]; fClusters[s][p] = 0; - clusterfile[s][p] = new AliL3MemHandler(); + clusterfile[s][p] = new AliHLTMemHandler(); sprintf(fname,"%s/points_%d_%d_%d.raw",path,event,s,patch); if(!clusterfile[s][p]->SetBinaryInput(fname)) { @@ -85,7 +85,7 @@ void AliL3Fitter::LoadClusters(Char_t *path,Int_t event,Bool_t sp) clusterfile[s][p] = 0; continue; } - fClusters[s][p] = (AliL3SpacePointData*)clusterfile[s][p]->Allocate(); + fClusters[s][p] = (AliHLTSpacePointData*)clusterfile[s][p]->Allocate(); clusterfile[s][p]->Binary2Memory(fNcl[s][p],fClusters[s][p]); clusterfile[s][p]->CloseBinaryInput(); if(sp==kTRUE) @@ -94,7 +94,7 @@ void AliL3Fitter::LoadClusters(Char_t *path,Int_t event,Bool_t sp) } } -void AliL3Fitter::SortTrackClusters(AliL3Track *track) const +void AliHLTFitter::SortTrackClusters(AliHLTTrack *track) const { //Sort the internal cluster list in each track with respect to row numbering. //This may be necessary when no conventional track follower has been @@ -122,7 +122,7 @@ void AliL3Fitter::SortTrackClusters(AliL3Track *track) const slice = (id>>25) & 0x7f; patch = (id>>22) & 0x7; pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; padrow = points[pos].fPadRow; if(padrow > maxrow) { @@ -140,26 +140,26 @@ void AliL3Fitter::SortTrackClusters(AliL3Track *track) const delete [] mk; } -Int_t AliL3Fitter::FitHelix(AliL3Track *track) +Int_t AliHLTFitter::FitHelix(AliHLTTrack *track) { //fit helix parameters fTrack = track; if(FitCircle()) { - LOG(AliL3Log::kError,"AliL3Fitter::FitHelix","TrackFit")<>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; fXYWeight[i] = 1./ (Double_t)(points[pos].fSigmaY2 + points[pos].fSigmaY2); wsum += fXYWeight[i]; xav += fXYWeight[i]*points[pos].fX; @@ -214,7 +214,7 @@ Int_t AliL3Fitter::FitCircle() Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; xi = points[pos].fX -xav; yi = points[pos].fY - yav ; @@ -301,7 +301,7 @@ Int_t AliL3Fitter::FitCircle() Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; xold = points[pos].fX - xav ; yold = points[pos].fY - yav ; @@ -412,7 +412,7 @@ Int_t AliL3Fitter::FitCircle() Double_t h24 = yrrav ; Double_t h34 = 1.0 + 2.0*lamda ; if ( h11 == 0.0 || h22 == 0.0 ){ - LOG(AliL3Log::kError,"AliL3Fitter::FitCircle","TrackFit")<SetCharge(q); //Set the first point on the track to the space point coordinates of the innermost track - //This will be updated to lie on the fit later on (AliL3Track::UpdateToFirstPoint). + //This will be updated to lie on the fit later on (AliHLTTrack::UpdateToFirstPoint). Double_t x0,y0,psi,pt ; Int_t lastid=fTrack->GetNHits()-1; UInt_t id = hitnum[lastid]; Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; x0 = points[pos].fX; y0 = points[pos].fY; fTrack->SetFirstPoint(x0,y0,0); //Z-value is set in FitLine //Set the remaining fit parameters psi = (Double_t)atan2(bcent-y0,acent-x0) ; - psi = psi + q * 0.5F * AliL3Transform::Pi() ; - if ( psi < 0 ) psi = psi + 2*AliL3Transform::Pi(); + psi = psi + q * 0.5F * AliHLTTransform::Pi() ; + if ( psi < 0 ) psi = psi + 2*AliHLTTransform::Pi(); - pt = (Double_t)(AliL3Transform::GetBFact() * AliL3Transform::GetBField() * radius ) ; + pt = (Double_t)(AliHLTTransform::GetBFact() * AliHLTTransform::GetBField() * radius ) ; fTrack->SetPsi(psi); fTrack->SetPt(pt); fTrack->SetRadius(radius); @@ -492,7 +492,7 @@ Int_t AliL3Fitter::FitCircle() //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Fit Line in s-z plane //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Int_t AliL3Fitter::FitLine ( ) +Int_t AliHLTFitter::FitLine ( ) { // //Initialization @@ -506,7 +506,7 @@ Int_t AliL3Fitter::FitLine ( ) //find sum , sums ,sumz, sumss // Double_t dx, dy ; - Double_t radius = (Double_t)(fTrack->GetPt() / ( AliL3Transform::GetBFact() * AliL3Transform::GetBField() ) ) ; + Double_t radius = (Double_t)(fTrack->GetPt() / ( AliHLTTransform::GetBFact() * AliHLTTransform::GetBField() ) ) ; Double_t * fS = new Double_t[(fTrack->GetNHits())]; Double_t *fZWeight = new Double_t[fTrack->GetNHits()]; @@ -517,7 +517,7 @@ Int_t AliL3Fitter::FitLine ( ) Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; dx = points[pos].fX - fVertex->GetX(); dy = points[pos].fY - fVertex->GetY(); @@ -528,12 +528,12 @@ Int_t AliL3Fitter::FitLine ( ) Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t posf = id&0x3fffff; - AliL3SpacePointData *pointsf = fClusters[slice][patch]; + AliHLTSpacePointData *pointsf = fClusters[slice][patch]; id = hitnum[(fTrack->GetNHits()-1)]; slice = (id>>25) & 0x7f; patch = (id>>22) & 0x7; UInt_t posl = id&0x3fffff; - AliL3SpacePointData *pointsl = fClusters[slice][patch]; + AliHLTSpacePointData *pointsl = fClusters[slice][patch]; dx = pointsf[posf].fX - pointsl[posl].fX; dy = pointsf[posf].fY - pointsl[posl].fY; } @@ -547,7 +547,7 @@ Int_t AliL3Fitter::FitLine ( ) } else { - totals = 2.0 * radius * AliL3Transform::Pi() ; + totals = 2.0 * radius * AliHLTTransform::Pi() ; } Double_t dpsi,s; @@ -558,7 +558,7 @@ Int_t AliL3Fitter::FitLine ( ) Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; fZWeight[i] = 1./(Double_t)(points[pos].fSigmaZ2); if(i>0) @@ -567,7 +567,7 @@ Int_t AliL3Fitter::FitLine ( ) slice = (id>>25) & 0x7f; patch = (id>>22) & 0x7; UInt_t lastpos = id&0x3fffff; - AliL3SpacePointData *lastpoints = fClusters[slice][patch]; + AliHLTSpacePointData *lastpoints = fClusters[slice][patch]; dx = points[pos].fX -lastpoints[lastpos].fX; dy = points[pos].fY -lastpoints[lastpos].fY; dpsi = 0.5 * (Double_t)sqrt ( dx*dx + dy*dy ) / radius ; @@ -616,7 +616,7 @@ Int_t AliL3Fitter::FitLine ( ) Int_t slice = (id>>25) & 0x7f; Int_t patch = (id>>22) & 0x7; UInt_t pos = id&0x3fffff; - AliL3SpacePointData *points = fClusters[slice][patch]; + AliHLTSpacePointData *points = fClusters[slice][patch]; r1 = points[pos].fZ - tanl * fS[i] - z0 ; chi2 += (Double_t) ( (Double_t)(fZWeight[i]) * (r1 * r1) ); } diff --git a/HLT/src/AliHLTFitter.h b/HLT/src/AliHLTFitter.h new file mode 100644 index 00000000000..17d3b643a21 --- /dev/null +++ b/HLT/src/AliHLTFitter.h @@ -0,0 +1,43 @@ +// @(#) $Id$ + +#ifndef ALIL3FITTER_H +#define ALIL3FITTER_H + +//_____________________________________________________________ +// AliHLTFitter +// +// Fit class HLT +// +// Author: Anders Vestbo + +class AliHLTTrack; +class AliHLTVertex; +class AliHLTSpacePointData; + +class AliHLTFitter { + + public: + AliHLTFitter(); + AliHLTFitter(AliHLTVertex *vertex,Bool_t vertexconstraint=kTRUE); + virtual ~AliHLTFitter(); + + void LoadClusters(Char_t *path,Int_t event=0,Bool_t sp=kFALSE); + void SortTrackClusters(AliHLTTrack *track) const; + Int_t FitHelix(AliHLTTrack *track); + Int_t FitCircle(); + Int_t FitLine(); + void NoVertex() {fVertexConstraint=kFALSE;} + + private: + AliHLTTrack *fTrack; //! actual track + AliHLTVertex *fVertex; //! vertex info + Bool_t fVertexConstraint; // include vertex constraint + AliHLTSpacePointData *fClusters[36][6]; //! clusters + UInt_t fNcl[36][6]; // cluster numbers + + ClassDef(AliHLTFitter,1) //HLT fit class +}; + +typedef AliHLTFitter AliL3Fitter; // for backward compatibility + +#endif diff --git a/HLT/src/AliL3GlobalMerger.cxx b/HLT/src/AliHLTGlobalMerger.cxx similarity index 77% rename from HLT/src/AliL3GlobalMerger.cxx rename to HLT/src/AliHLTGlobalMerger.cxx index c506b1adaa4..136fbb60f2e 100644 --- a/HLT/src/AliL3GlobalMerger.cxx +++ b/HLT/src/AliHLTGlobalMerger.cxx @@ -3,18 +3,18 @@ // Author: Uli Frankenfeld //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3GlobalMerger.h" -#include "AliL3Track.h" -#include "AliL3Transform.h" -#include "AliL3TrackArray.h" +#include "AliHLTLogging.h" +#include "AliHLTGlobalMerger.h" +#include "AliHLTTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTTrackArray.h" -/** \class AliL3GlobalMerger +/** \class AliHLTGlobalMerger
 //_____________________________________________________________
-// AliL3GlobalMerger
+// AliHLTGlobalMerger
 //
 // The L3 Slice merger
 //
@@ -25,9 +25,9 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3GlobalMerger)
+ClassImp(AliHLTGlobalMerger)
 
-AliL3GlobalMerger::AliL3GlobalMerger()
+AliHLTGlobalMerger::AliHLTGlobalMerger()
 {
   //Default constructor. Use Setup to specify and setup the necessary parameters and arrays.
   Is2Global(kTRUE);
@@ -38,12 +38,12 @@ AliL3GlobalMerger::AliL3GlobalMerger()
 }
 
 
-AliL3GlobalMerger::~AliL3GlobalMerger()
+AliHLTGlobalMerger::~AliHLTGlobalMerger()
 {
   //Destructor
 }
 
-void AliL3GlobalMerger::Setup(Int_t first,Int_t last)
+void AliHLTGlobalMerger::Setup(Int_t first,Int_t last)
 {
   //Used to setup the arrays and everything
   
@@ -53,7 +53,7 @@ void AliL3GlobalMerger::Setup(Int_t first,Int_t last)
   InitMerger(last-first+1);
 }
 
-void AliL3GlobalMerger::InitSlice(Int_t slice)
+void AliHLTGlobalMerger::InitSlice(Int_t slice)
 {
   // 
   // Select Sector The following FillTracks call will 
@@ -63,7 +63,7 @@ void AliL3GlobalMerger::InitSlice(Int_t slice)
   fCurrentTracks = fSlice - fFirst; 
 }
 
-Double_t AliL3GlobalMerger::CheckTracks(AliL3Track *innertrack,AliL3Track *outertrack,Int_t slice)
+Double_t AliHLTGlobalMerger::CheckTracks(AliHLTTrack *innertrack,AliHLTTrack *outertrack,Int_t slice)
 {
   //Compare the tracks by propagating the outermost track to the last and first point plane
   //of the innermost track. This plane is defined by the padrow plane where these points
@@ -72,10 +72,10 @@ Double_t AliL3GlobalMerger::CheckTracks(AliL3Track *innertrack,AliL3Track *outer
   if(innertrack->GetCharge()!=outertrack->GetCharge()) return -1;
   
   Float_t angle = 0;//perpendicular to the padrowplane (in local system)
-  AliL3Transform::Local2GlobalAngle(&angle,slice);
+  AliHLTTransform::Local2GlobalAngle(&angle,slice);
   Double_t dx[2],dy[2],dz[2];
   Double_t diff =-1;
-  AliL3Track *tracks[2];
+  AliHLTTrack *tracks[2];
   tracks[0] = innertrack;
   tracks[1] = outertrack;
   SortGlobalTracks(tracks,2);
@@ -87,7 +87,7 @@ Double_t AliL3GlobalMerger::CheckTracks(AliL3Track *innertrack,AliL3Track *outer
   point[0]=innertrack->GetLastPointX();
   point[1]=innertrack->GetLastPointY();
   point[2]=innertrack->GetLastPointZ();
-  AliL3Transform::Global2LocHLT(point,slice);
+  AliHLTTransform::Global2LocHLT(point,slice);
   
   outertrack->CalculateReferencePoint(angle,point[0]);//local x = global distance to padrowplane
   if(!outertrack->IsPoint()) return diff;
@@ -98,7 +98,7 @@ Double_t AliL3GlobalMerger::CheckTracks(AliL3Track *innertrack,AliL3Track *outer
   point[0]=innertrack->GetFirstPointX();
   point[1]=innertrack->GetFirstPointY();
   point[2]=innertrack->GetFirstPointZ();
-  AliL3Transform::Global2LocHLT(point,slice);
+  AliHLTTransform::Global2LocHLT(point,slice);
   
   outertrack->CalculateReferencePoint(angle,point[0]);//local x = global distance to padrowplane
   if(!outertrack->IsPoint()) return diff;
@@ -112,7 +112,7 @@ Double_t AliL3GlobalMerger::CheckTracks(AliL3Track *innertrack,AliL3Track *outer
   return diff;
 }
 
-void AliL3GlobalMerger::SlowMerge(Char_t *path)
+void AliHLTGlobalMerger::SlowMerge(Char_t *path)
 {
   //Tuning of parameters. This matches _all_ tracks between two neighbouring
   //slices, and merges the ones which are closest in space. The difference
@@ -121,11 +121,11 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
   
   
   void* ntuple=GetNtuple();
-  AliL3Track *track[2];
-  AliL3TrackArray *tout = GetOutTracks();
+  AliHLTTrack *track[2];
+  AliHLTTrackArray *tout = GetOutTracks();
   if(fNSlices<2)
     {
-      LOG(AliL3Log::kWarning,"AliL3GlobalMerger::SlowMerge","Slice Number")
+      LOG(AliHLTLog::kWarning,"AliHLTGlobalMerger::SlowMerge","Slice Number")
 	<<"Need more than one Slice!"< the border of the slices in local coordinates
-      Float_t angle = AliL3Transform::Pi()/18; 
-      AliL3Transform::Local2GlobalAngle(&angle,slice);
+      Float_t angle = AliHLTTransform::Pi()/18; 
+      AliHLTTransform::Local2GlobalAngle(&angle,slice);
       
       //In the two following cases, the angle is 2*pi, so set it back to 0 in order for
       //the calculation of crossing points to be correct.
@@ -155,7 +155,7 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
       ttt1->QSort();
       for(Int_t s0=0;s0GetNTracks();s0++)
 	{
-	  AliL3Track *track0=ttt0->GetCheckedTrack(s0);
+	  AliHLTTrack *track0=ttt0->GetCheckedTrack(s0);
 	  if(!track0) continue;
 	  track0->CalculateHelix();
 	  track0->CalculateEdgePoint(angle);
@@ -163,7 +163,7 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
 	}
       for(Int_t s1=0;s1GetNTracks();s1++)
 	{
-	  AliL3Track *track1=ttt1->GetCheckedTrack(s1);
+	  AliHLTTrack *track1=ttt1->GetCheckedTrack(s1);
 	  if(!track1) continue;
 	  track1->CalculateHelix();
 	  track1->CalculateEdgePoint(angle);
@@ -177,12 +177,12 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
 	  Int_t n0=ttt0->GetNTracks(),n1=ttt1->GetNTracks();
 	  for(Int_t s0=0;s0GetCheckedTrack(s0);
+	      AliHLTTrack *track0=ttt0->GetCheckedTrack(s0);
 	      if(!track0) continue;
 	      if(!track0->IsPoint()) continue;
 	      for(Int_t s1=0;s1GetCheckedTrack(s1);
+		  AliHLTTrack *track1=ttt1->GetCheckedTrack(s1);
 		  if(!track1) continue;
 		  if(!track1->IsPoint()) continue;
 		  
@@ -199,12 +199,12 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
 	    }
 	  if(min0>=0&&min1>=0)
 	    {
-	      AliL3Track *track0=ttt0->GetTrack(min0);
-	      AliL3Track *track1=ttt1->GetTrack(min1);
+	      AliHLTTrack *track0=ttt0->GetTrack(min0);
+	      AliHLTTrack *track1=ttt1->GetTrack(min1);
 	      track[0] = track0;
 	      track[1] = track1;
 	      SortGlobalTracks(track,2);
-	      track1->CalculateEdgePoint((angle+AliL3Transform::Pi()/9));
+	      track1->CalculateEdgePoint((angle+AliHLTTransform::Pi()/9));
 	      if(track1->IsPoint())//Check if the track will cross the boundary of yet another slice.
 		MultiMerge(ttt1,track,2);
 	      else
@@ -221,8 +221,8 @@ void AliL3GlobalMerger::SlowMerge(Char_t *path)
 	}
       ttt0->Compress();
       ttt1->Compress();
-      LOG(AliL3Log::kInformational,"AliL3GlobalMerger::SlowMerge","Result")
-	<GetNTracks()<<" at:"
+      LOG(AliHLTLog::kInformational,"AliHLTGlobalMerger::SlowMerge","Result")
+	<GetNTracks()<<" at:"
 	< the border of the slices in local coordinates
-      Float_t angle = AliL3Transform::Pi()/18; 
-      AliL3Transform::Local2GlobalAngle(&angle,slice);
+      Float_t angle = AliHLTTransform::Pi()/18; 
+      AliHLTTransform::Local2GlobalAngle(&angle,slice);
       
       //In the two following cases, the angle is 2*pi, so set it back to 0 in order for
       //the calculation of crossing points to be correct.
@@ -272,7 +272,7 @@ void AliL3GlobalMerger::Merge()
       for(Int_t s0=0;s0GetNTracks();s0++)
 	{
 	  ismatched0[s0]=kFALSE;
-	  AliL3Track *track0=ttt0->GetCheckedTrack(s0);
+	  AliHLTTrack *track0=ttt0->GetCheckedTrack(s0);
 	  if(!track0) continue;
 	  track0->CalculateHelix();
 	  track0->CalculateEdgePoint(angle);
@@ -285,7 +285,7 @@ void AliL3GlobalMerger::Merge()
       for(Int_t s1=0;s1GetNTracks();s1++)
 	{
 	  ismatched1[s1]=kFALSE;
-	  AliL3Track *track1=ttt1->GetCheckedTrack(s1);
+	  AliHLTTrack *track1=ttt1->GetCheckedTrack(s1);
 	  if(!track1) continue;
 	  track1->CalculateHelix();
 	  track1->CalculateEdgePoint(angle);
@@ -298,13 +298,13 @@ void AliL3GlobalMerger::Merge()
       for(Int_t s0=0;s0GetNTracks();s0++)
 	{
 	  if(ismatched0[s0]) continue;
-	  AliL3Track *track0=ttt0->GetCheckedTrack(s0);
+	  AliHLTTrack *track0=ttt0->GetCheckedTrack(s0);
 	  if(!track0) continue;
 	  if(!track0->IsPoint()) continue;
 	  for(Int_t s1=0;s1GetNTracks();s1++)
 	    {
 	      if(ismatched1[s1]) continue;
-	      AliL3Track *track1=ttt1->GetCheckedTrack(s1);
+	      AliHLTTrack *track1=ttt1->GetCheckedTrack(s1);
 	      if(!track1) continue;
 	      if(!track1->IsPoint()) continue;
 	      if(IsRTrack(track0,track1))
@@ -333,8 +333,8 @@ void AliL3GlobalMerger::Merge()
 		}
 	    }
 	}
-      LOG(AliL3Log::kInformational,"AliL3GlobalMerger::Merge","Result")
-	<GetNTracks()<
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3Logging.h"
-#include "AliL3InterMerger.h"
-#include "AliL3Track.h"
-#include "AliL3TrackSegmentData.h"
-#include "AliL3Transform.h"
-#include "AliL3TrackArray.h"
+#include "AliHLTLogging.h"
+#include "AliHLTInterMerger.h"
+#include "AliHLTTrack.h"
+#include "AliHLTTrackSegmentData.h"
+#include "AliHLTTransform.h"
+#include "AliHLTTrackArray.h"
 
-/** \class AliL3InterMerger
+/** \class AliHLTInterMerger
 
 //_____________________________________________________________
-// AliL3InterMerger
+// AliHLTInterMerger
 //
 // The L3 track segment merger
 //
@@ -26,9 +26,9 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3InterMerger)
+ClassImp(AliHLTInterMerger)
 
-AliL3InterMerger::AliL3InterMerger()
+AliHLTInterMerger::AliHLTInterMerger()
 {
   //Default constructor
   InitMerger(1);
@@ -39,17 +39,17 @@ AliL3InterMerger::AliL3InterMerger()
 }
 
 
-AliL3InterMerger::~AliL3InterMerger(){
+AliHLTInterMerger::~AliHLTInterMerger(){
   //Destructor
   
 }
 
-void AliL3InterMerger::SlowMerge(){
+void AliHLTInterMerger::SlowMerge(){
   Int_t nrow= fRowMax-fRowMin+1;
   void *ntuple=GetNtuple();
-  AliL3TrackArray * tracks = GetInTracks(0);
+  AliHLTTrackArray * tracks = GetInTracks(0);
   const Int_t  kNIn =tracks->GetNTracks();
-  AliL3Track *tr[2];
+  AliHLTTrack *tr[2];
   Bool_t merge = kTRUE;
   for(Int_t in=0;inGetCheckedTrack(in)->CalculateHelix();
@@ -57,11 +57,11 @@ void AliL3InterMerger::SlowMerge(){
     Int_t inmin=-1,outmin=-1;
     Double_t min=10;
     for(Int_t out=0;outGetCheckedTrack(out);
+    AliHLTTrack *outertrack=tracks->GetCheckedTrack(out);
     if(!outertrack) continue;
       for(Int_t in=0;inGetCheckedTrack(in);
+        AliHLTTrack *innertrack=tracks->GetCheckedTrack(in);
         if(!innertrack) continue;
         if(outertrack->GetNHits()+innertrack->GetNHits()>nrow) continue;
 
@@ -75,8 +75,8 @@ void AliL3InterMerger::SlowMerge(){
       } 
     }
     if(inmin>=0&&outmin>=0){
-      AliL3Track *outertrack=tracks->GetTrack(outmin);
-      AliL3Track *innertrack=tracks->GetTrack(inmin);
+      AliHLTTrack *outertrack=tracks->GetTrack(outmin);
+      AliHLTTrack *innertrack=tracks->GetTrack(inmin);
       tr[0]=innertrack;
       tr[1]=outertrack;
       SortTracks(tr,2);
@@ -90,38 +90,38 @@ void AliL3InterMerger::SlowMerge(){
     }
     else merge = kFALSE;
   }
-  LOG(AliL3Log::kInformational,"AliL3InterMerger::SlowMerge","Result")
-  <GetNTracks()-kNIn<GetNTracks()-kNIn<AddTracks(GetInTracks(0));
 }
 
-Int_t AliL3InterMerger::Merge(){
+Int_t AliHLTInterMerger::Merge(){
   Int_t nrow= fRowMax-fRowMin+1;
-  Double_t xval =AliL3Transform::Row2X((fRowMax+fRowMin)/2);
-  AliL3TrackArray * tracks = GetInTracks(0);
+  Double_t xval =AliHLTTransform::Row2X((fRowMax+fRowMin)/2);
+  AliHLTTrackArray * tracks = GetInTracks(0);
   const Int_t  kNIn =tracks->GetNTracks();
-  AliL3Track *tr[2];
+  AliHLTTrack *tr[2];
   for(Int_t in=0;inGetCheckedTrack(in);
+    AliHLTTrack *t = tracks->GetCheckedTrack(in);
     if(t){
       t->CalculateHelix();
       t->CalculatePoint(xval);
     }
   }
   for(Int_t out=0;outGetCheckedTrack(out);
+  AliHLTTrack *outertrack=tracks->GetCheckedTrack(out);
   if(!outertrack) continue;
     for(Int_t in=0;inGetCheckedTrack(in);
+      AliHLTTrack *innertrack=tracks->GetCheckedTrack(in);
       if(!innertrack) continue;
       if(outertrack->GetNHits()+innertrack->GetNHits()>nrow) continue;
 
@@ -144,8 +144,8 @@ Int_t AliL3InterMerger::Merge(){
     } 
   }
   Int_t nmerged = tracks->GetNTracks()-kNIn; 
-  LOG(AliL3Log::kInformational,"AliL3InterMerger::Merge","Result")
-  <AddTracks(GetInTracks(0)); 
 
diff --git a/HLT/src/AliL3InterMerger.h b/HLT/src/AliHLTInterMerger.h
similarity index 55%
rename from HLT/src/AliL3InterMerger.h
rename to HLT/src/AliHLTInterMerger.h
index ee0ece0ba21..81357adb4dd 100644
--- a/HLT/src/AliL3InterMerger.h
+++ b/HLT/src/AliHLTInterMerger.h
@@ -4,27 +4,29 @@
 #define ALIL3INTERMERGER_H
 
 #ifndef __CINT__ 
-#include "AliL3Merger.h"
+#include "AliHLTMerger.h"
 #endif
 
-#include "AliL3RootTypes.h"
+#include "AliHLTRootTypes.h"
 
-class AliL3InterMerger : public AliL3Merger {
+class AliHLTInterMerger : public AliHLTMerger {
 
  private:
   Int_t fPatch;
   Int_t fRowMin;
   Int_t fRowMax;
  public:
-  AliL3InterMerger();
-  virtual ~AliL3InterMerger();
+  AliHLTInterMerger();
+  virtual ~AliHLTInterMerger();
 
   void Init(Int_t *row,Int_t p){fRowMin=row[0];fRowMax=row[1];fPatch=p;}
   void SlowMerge();
   Int_t Merge();
   void MMerge();  //Loop over tracks from different subsectors
   
-  ClassDef(AliL3InterMerger,1) //Intermerging class
+  ClassDef(AliHLTInterMerger,1) //Intermerging class
 };
 
+typedef AliHLTInterMerger AliL3InterMerger; // for backward compatibility
+
 #endif
diff --git a/HLT/src/AliHLTLog.cxx b/HLT/src/AliHLTLog.cxx
new file mode 100644
index 00000000000..1816547e7a4
--- /dev/null
+++ b/HLT/src/AliHLTLog.cxx
@@ -0,0 +1,10 @@
+// $Id$
+
+#ifndef use_logging
+
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTLogging.h"
+
+AliHLTLog::TLogLevel AliHLTLog::fgLevel=AliHLTLog::kNone;
+
+#endif
diff --git a/HLT/src/AliL3Log.h b/HLT/src/AliHLTLog.h
similarity index 68%
rename from HLT/src/AliL3Log.h
rename to HLT/src/AliHLTLog.h
index 627ef1457c4..4d3a560d8da 100644
--- a/HLT/src/AliL3Log.h
+++ b/HLT/src/AliHLTLog.h
@@ -3,7 +3,7 @@
 #ifndef ALIL3LOG_H
 #define ALIL3LOG_H
 
-class AliL3Log {
+class AliHLTLog {
   public:
   enum TLogLevel { kNone = 0, kDebug= 0x01, kInformational = 0x02, kWarning = 0x04, kError = 0x08 , kFatal = 0x10, kPrimary = 0x80, kAll = 0x9F };
   enum TLogCmd { kEnd, kPrec, kHex, kDec };
@@ -12,11 +12,14 @@ class AliL3Log {
 
 #if __GNUC__ == 3
 #define LOG( lvl, origin, keyword ) \
- if (lvl>=AliL3Log::fgLevel) std::cerr<<"["<=AliHLTLog::fgLevel) std::cerr<<"["<=AliL3Log::fgLevel) cerr<<"["<=AliHLTLog::fgLevel) cerr<<"["<, Constantin Loizides 
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3Logging.h"
-#include "AliL3Logger.h"
+#include "AliHLTLogging.h"
+#include "AliHLTLogger.h"
 
-ClassImp(AliL3Logger)
+ClassImp(AliHLTLogger)
 
 #ifdef use_logging
 
-Int_t AliL3Logger::fgAll= AliL3Log::kAll;
-Int_t AliL3Logger::fgDebug = AliL3Log::kDebug;
-Int_t AliL3Logger::fgInformational = AliL3Log::kInformational;
-Int_t AliL3Logger::fgWarning = AliL3Log::kWarning;
-Int_t AliL3Logger::fgError = AliL3Log::kError;
-Int_t AliL3Logger::fgFatal = AliL3Log::kFatal;
+Int_t AliHLTLogger::fgAll= AliHLTLog::kAll;
+Int_t AliHLTLogger::fgDebug = AliHLTLog::kDebug;
+Int_t AliHLTLogger::fgInformational = AliHLTLog::kInformational;
+Int_t AliHLTLogger::fgWarning = AliHLTLog::kWarning;
+Int_t AliHLTLogger::fgError = AliHLTLog::kError;
+Int_t AliHLTLogger::fgFatal = AliHLTLog::kFatal;
 
-AliL3Logger::AliL3Logger()
+AliHLTLogger::AliHLTLogger()
 {
   //constructor
  if (!gLogP) {
@@ -34,12 +34,12 @@ AliL3Logger::AliL3Logger()
    gLogLevelP = &MLUCLog::gLogLevel;
    //printf( "gLogLevelP set...\n" );
  }
- (*gLogLevelP)=AliL3Log::kAll;
+ (*gLogLevelP)=AliHLTLog::kAll;
   fdn = fso = fse = fsm =0;
   fof = 0;
 }
 
-AliL3Logger::~AliL3Logger()
+AliHLTLogger::~AliHLTLogger()
 {
   //destructor
   if(fdn) {gLogP->DelServer(fdn);delete fdn;}
@@ -49,41 +49,41 @@ AliL3Logger::~AliL3Logger()
   if(fof) {fof->close();delete fof;}
 }
 
-void AliL3Logger::Set(Int_t l)
+void AliHLTLogger::Set(Int_t l)
 { 
   //set logger
   (*gLogLevelP) |=l;
 }
 
-void AliL3Logger::UnSet(Int_t l)
+void AliHLTLogger::UnSet(Int_t l)
 { 
   //unset logger
   (*gLogLevelP) &=(~l);
 }
 
-void AliL3Logger::UseDevNull()
+void AliHLTLogger::UseDevNull()
 {
   //use dev null
   if(fdn) return;
-  fdn = new AliL3DevNullLogServer();
+  fdn = new AliHLTDevNullLogServer();
   gLogP->AddServer(fdn);
 }
-void AliL3Logger::UseStdout()
+void AliHLTLogger::UseStdout()
 {
   //use stdout
   if(fso)return;
-  fso = new AliL3StdoutLogServer(); 
+  fso = new AliHLTStdoutLogServer(); 
   gLogP->AddServer(fso);
 }
-void AliL3Logger::UseStderr()
+void AliHLTLogger::UseStderr()
 {
   //use stderr
   if(fse) return;
-  fse = new AliL3StderrLogServer();
+  fse = new AliHLTStderrLogServer();
   gLogP->AddServer(fse);
 }
 
-void AliL3Logger::UseStream(Char_t *name)
+void AliHLTLogger::UseStream(Char_t *name)
 {
   //use stream
   if(fsm) return;
@@ -92,29 +92,29 @@ void AliL3Logger::UseStream(Char_t *name)
   fof = 0;
   fof = new ofstream();
   fof->open(name);
-  fsm = new  AliL3StreamLogServer(*fof);
+  fsm = new  AliHLTStreamLogServer(*fof);
   gLogP->AddServer(fsm);
 }
 
-void AliL3Logger::NotUseDevNull()
+void AliHLTLogger::NotUseDevNull()
 {
   //not dev null
   if(fdn) {gLogP->DelServer(fdn);delete fdn;fdn=0;}
 }
 
-void AliL3Logger::NotUseStdout()
+void AliHLTLogger::NotUseStdout()
 {
   //not stdout
   if(fso) {gLogP->DelServer(fso);delete fso;fso=0;}
 }
 
-void AliL3Logger::NotUseStderr()
+void AliHLTLogger::NotUseStderr()
 {
   //not stderr
   if(fse) {gLogP->DelServer(fse);delete fse;fse=0;}
 }
 
-void AliL3Logger::NotUseStream()
+void AliHLTLogger::NotUseStream()
 {
   //not stream
   if(fsm) {gLogP->DelServer(fsm);delete fsm;fsm=0;}
@@ -123,80 +123,80 @@ void AliL3Logger::NotUseStream()
 
 #else /*not use_logging*/
 
-Int_t AliL3Logger::fgAll= AliL3Log::kAll;
-Int_t AliL3Logger::fgDebug = AliL3Log::kDebug;
-Int_t AliL3Logger::fgInformational = AliL3Log::kInformational;
-Int_t AliL3Logger::fgWarning = AliL3Log::kWarning;
-Int_t AliL3Logger::fgError = AliL3Log::kError;
-Int_t AliL3Logger::fgFatal = AliL3Log::kFatal;
+Int_t AliHLTLogger::fgAll= AliHLTLog::kAll;
+Int_t AliHLTLogger::fgDebug = AliHLTLog::kDebug;
+Int_t AliHLTLogger::fgInformational = AliHLTLog::kInformational;
+Int_t AliHLTLogger::fgWarning = AliHLTLog::kWarning;
+Int_t AliHLTLogger::fgError = AliHLTLog::kError;
+Int_t AliHLTLogger::fgFatal = AliHLTLog::kFatal;
 
-AliL3Logger::AliL3Logger()
+AliHLTLogger::AliHLTLogger()
 {
   //
   ;
 }
 
-AliL3Logger::~AliL3Logger()
+AliHLTLogger::~AliHLTLogger()
 {
   //
   ;
 }
 
-void AliL3Logger::Set(Int_t /*l*/)
+void AliHLTLogger::Set(Int_t /*l*/)
 {
   //
   ;
 }
 
-void AliL3Logger::UnSet(Int_t /*l*/)
+void AliHLTLogger::UnSet(Int_t /*l*/)
 {
   //
   ;
 }
 
-void AliL3Logger::UseDevNull()
+void AliHLTLogger::UseDevNull()
 {
   //
   ;
 }
 
-void AliL3Logger::UseStdout()
+void AliHLTLogger::UseStdout()
 {
   //
   ;
 }
 
-void AliL3Logger::UseStderr()
+void AliHLTLogger::UseStderr()
 {
   //
   ;
 }
 
-void AliL3Logger::UseStream(Char_t */*name*/)
+void AliHLTLogger::UseStream(Char_t */*name*/)
 {
   //
   ;
 }
 
-void AliL3Logger::NotUseDevNull()
+void AliHLTLogger::NotUseDevNull()
 {
   //
   ;
 }
 
-void AliL3Logger::NotUseStdout()
+void AliHLTLogger::NotUseStdout()
 {
   //
   ;
 }
 
-void AliL3Logger::NotUseStderr()
+void AliHLTLogger::NotUseStderr()
 {
   //
   ;
 }
 
-void AliL3Logger::NotUseStream()
+void AliHLTLogger::NotUseStream()
 {
   //
   ;
diff --git a/HLT/src/AliL3Logger.h b/HLT/src/AliHLTLogger.h
similarity index 78%
rename from HLT/src/AliL3Logger.h
rename to HLT/src/AliHLTLogger.h
index b4a5c768c11..98ff87f6118 100644
--- a/HLT/src/AliL3Logger.h
+++ b/HLT/src/AliHLTLogger.h
@@ -3,17 +3,17 @@
 #ifndef ALIL3LOGGER_H
 #define ALIL3LOGGER_H
 
-#include "AliL3RootTypes.h"
-#include "AliL3StandardIncludes.h"
+#include "AliHLTRootTypes.h"
+#include "AliHLTStandardIncludes.h"
 
 class MLUCLogServer;
 
-class AliL3Logger {
+class AliHLTLogger {
 
  public:
  
-  AliL3Logger();
-  virtual ~AliL3Logger();
+  AliHLTLogger();
+  virtual ~AliHLTLogger();
 
   void Set(Int_t l);
   void UnSet(Int_t l);
@@ -47,8 +47,10 @@ class AliL3Logger {
   ofstream *fof; //!
 #endif
 
-  ClassDef(AliL3Logger,0)
+  ClassDef(AliHLTLogger,0)
 };
 
+typedef AliHLTLogger AliL3Logger; // for backward compatibility
+
 #endif
 
diff --git a/HLT/src/AliHLTLogging.h b/HLT/src/AliHLTLogging.h
new file mode 100644
index 00000000000..9650c4bc295
--- /dev/null
+++ b/HLT/src/AliHLTLogging.h
@@ -0,0 +1,24 @@
+// @(#) $Id$
+
+#ifndef ALIL3LOGGING_H
+#define ALIL3LOGGING_H
+
+#include "AliHLTRootTypes.h"
+#include "AliHLTStandardIncludes.h"
+
+#ifdef use_logging
+#include 
+#include 
+
+typedef MLUCLog AliHLTLog;
+typedef MLUCLogServer AliHLTLogServer;
+typedef MLUCDevNullLogServer AliHLTDevNullLogServer;
+typedef MLUCStdoutLogServer AliHLTStdoutLogServer;
+typedef MLUCStderrLogServer AliHLTStderrLogServer;
+typedef MLUCStreamLogServer AliHLTStreamLogServer;
+
+#else
+
+#include "AliHLTLog.h"
+#endif /* use_logging */ 
+#endif /* ALIL3LOGGING_H */
diff --git a/HLT/src/AliL3MemHandler.cxx b/HLT/src/AliHLTMemHandler.cxx
similarity index 62%
rename from HLT/src/AliL3MemHandler.cxx
rename to HLT/src/AliHLTMemHandler.cxx
index 7a511ed69a4..0176577bc7d 100644
--- a/HLT/src/AliL3MemHandler.cxx
+++ b/HLT/src/AliHLTMemHandler.cxx
@@ -3,10 +3,10 @@
 // Author: Uli Frankenfeld , Anders Vestbo , Constantin Loizides 
 //*-- Copyright © ALICE HLT Group 
 
-/** \class AliL3MemHandler 
+/** \class AliHLTMemHandler 
 
 //_____________________________________________________________
-// AliL3MemHandler
+// AliHLTMemHandler
 //
 // The HLT Binary File handler 
 //
@@ -17,17 +17,17 @@
 //
 //  1) Reading a binary file:
 //  
-//  AliL3MemHandler file;
+//  AliHLTMemHandler file;
 //  file.SetBinaryInput(filename);
 //  file.Init(slice,patch);
 //
 //  UInt_t nrowss;
-//  AliL3DigitRowData *data = file.CompBinary2Memory(nrows);
+//  AliHLTDigitRowData *data = file.CompBinary2Memory(nrows);
 //  
 //  for(int i=0; ifDigitData;
+//    AliHLTDigitData *dataPt = (AliHLTDigitData*)data->fDigitData;
 //    for(int j=0; jfNDigit; j++) 
 //      {
 //        pad = dataPt[j].fPad;
@@ -44,14 +44,14 @@
 //  2) Writing a binary file:
 //  
 //  //First of all you need to store the data in memory,
-//  //and have a pointer to it of type AliL3DigitRowData.
+//  //and have a pointer to it of type AliHLTDigitRowData.
 //  //E.g. if you just want to write the data you read in example 1)
 //  //into a new file, you can do the following:
 //  
-//  AliL3MemHandler newfile;
+//  AliHLTMemHandler newfile;
 //  newfile.Init(slice,patch);
 //  newfile.SetBinaryOutput(newfilename);
-//  newfile.Memory2CompBinary((UInt_t)NumberOfRowsInPatch,(AliL3DigitRowData*)data);
+//  newfile.Memory2CompBinary((UInt_t)NumberOfRowsInPatch,(AliHLTDigitRowData*)data);
 //  newfile.CloseBinaryOutput();
 //
 //
@@ -62,23 +62,23 @@
 
*/ -#include "AliL3RootTypes.h" -#include "AliL3StandardIncludes.h" -#include "AliL3DigitData.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3TrackSegmentData.h" -#include "AliL3SpacePointData.h" -#include "AliL3TrackArray.h" -#include "AliL3MemHandler.h" +#include "AliHLTRootTypes.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTDigitData.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTTrackSegmentData.h" +#include "AliHLTSpacePointData.h" +#include "AliHLTTrackArray.h" +#include "AliHLTMemHandler.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3MemHandler) +ClassImp(AliHLTMemHandler) -AliL3MemHandler::AliL3MemHandler() +AliHLTMemHandler::AliHLTMemHandler() { //Constructor fPt = 0; @@ -97,7 +97,7 @@ AliL3MemHandler::AliL3MemHandler() } -AliL3MemHandler::~AliL3MemHandler() +AliHLTMemHandler::~AliHLTMemHandler() { //Destructor if(fPt) delete[] fPt; @@ -105,7 +105,7 @@ AliL3MemHandler::~AliL3MemHandler() if(fDPt) delete [] fDPt; } -void AliL3MemHandler::Init(Int_t s,Int_t p, Int_t *r) +void AliHLTMemHandler::Init(Int_t s,Int_t p, Int_t *r) { //init handler fSlice=s;fPatch=p; @@ -113,23 +113,23 @@ void AliL3MemHandler::Init(Int_t s,Int_t p, Int_t *r) fRowMin=r[0]; fRowMax=r[1]; }else{ - fRowMin=AliL3Transform::GetFirstRow(p); - fRowMax=AliL3Transform::GetLastRow(p); + fRowMin=AliHLTTransform::GetFirstRow(p); + fRowMax=AliHLTTransform::GetLastRow(p); } ResetROI(); } -void AliL3MemHandler::ResetROI() +void AliHLTMemHandler::ResetROI() { //Resets the Look-up table for Region of Interest mode. for(Int_t i=fRowMin; i<=fRowMax; i++) { fEtaMinTimeBin[i] = 0; - fEtaMaxTimeBin[i] = AliL3Transform::GetNTimeBins()-1; + fEtaMaxTimeBin[i] = AliHLTTransform::GetNTimeBins()-1; } } -void AliL3MemHandler::SetROI(Float_t *eta,Int_t */*slice*/) +void AliHLTMemHandler::SetROI(Float_t *eta,Int_t */*slice*/) { // Init the Look-up table for the Region of Interest mode. // Here you can specify a certain etaregion, - all data @@ -142,7 +142,7 @@ void AliL3MemHandler::SetROI(Float_t *eta,Int_t */*slice*/) if(eta[1]==0) { - LOG(AliL3Log::kWarning,"AliL3MemHandler::SetROI","Eta Values") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::SetROI","Eta Values") <<"Bad ROI parameters. IDIOT! "<GetOutSize()); } -Byte_t *AliL3MemHandler::Allocate(UInt_t size) +Byte_t *AliHLTMemHandler::Allocate(UInt_t size) { //Allocate memory of size in bytes. if(fPt){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::Allocate","Memory") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::Allocate","Memory") <<"Delete Memory"<=AliL3Transform::GetNPads(row)) continue; - if(dtime<0||dtime>=AliL3Transform::GetNTimeBins()) continue; + if(dpad<0||dpad>=AliHLTTransform::GetNPads(row)) continue; + if(dtime<0||dtime>=AliHLTTransform::GetNTimeBins()) continue; fRandomDigits[fNDigits].fCharge = dcharge; fRandomDigits[fNDigits].fRow = row; @@ -441,82 +441,82 @@ void AliL3MemHandler::DigitizePoint(Int_t row, Int_t pad, } ///////////////////////////////////////// Digit IO -Bool_t AliL3MemHandler::Memory2Binary(UInt_t nrow,AliL3DigitRowData *data) +Bool_t AliHLTMemHandler::Memory2Binary(UInt_t nrow,AliHLTDigitRowData *data) { //Write data to the outputfile as is. No run-length encoding is done. if(!fOutBinary){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::Memory2Binary","File") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::Memory2Binary","File") <<"No Output File"<fNDigit - + sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData) * rowPt->fNDigit + + sizeof(AliHLTDigitRowData); outsize += size; fwrite(rowPt,size,1,fOutBinary); Byte_t *bytePt =(Byte_t *) rowPt; bytePt += size; - rowPt = (AliL3DigitRowData *) bytePt; + rowPt = (AliHLTDigitRowData *) bytePt; } - LOG(AliL3Log::kDebug,"AliL3MemHandler::Memory2Binary","Memory") - <fNDigit; + Int_t size = sizeof(AliHLTDigitData) * rowPt->fNDigit; //if(fread(bytePt,size,1,fInBinary)!=1) break; fread(bytePt,size,1,fInBinary); bytePt += size; outsize += size; - rowPt = (AliL3DigitRowData *) bytePt; + rowPt = (AliHLTDigitRowData *) bytePt; rowcount++; } nrow= rowcount; - LOG(AliL3Log::kDebug,"AliL3MemHandler::Binary2Memory","Memory") - <fPad; @@ -536,7 +536,7 @@ void AliL3MemHandler::AddRandom(AliL3DigitData *data, UInt_t & ndata) fNUsed++; } -void AliL3MemHandler::MergeDataRandom(AliL3DigitData *data, UInt_t & ndata, +void AliHLTMemHandler::MergeDataRandom(AliHLTDigitData *data, UInt_t & ndata, UInt_t row, UShort_t pad, UShort_t time, UShort_t charge) { //merge random data @@ -545,14 +545,14 @@ void AliL3MemHandler::MergeDataRandom(AliL3DigitData *data, UInt_t & ndata, data[ndata].fCharge = charge; while(ComparePoints(row,pad,time)==0){ Int_t ch = data[ndata].fCharge + fDPt[fNUsed]->fCharge; - if(charge>=AliL3Transform::GetADCSat()) ch = AliL3Transform::GetADCSat(); + if(charge>=AliHLTTransform::GetADCSat()) ch = AliHLTTransform::GetADCSat(); data[ndata].fCharge = ch; fNUsed++; } ndata++; } -void AliL3MemHandler::AddDataRandom(AliL3DigitData *data, UInt_t & ndata, +void AliHLTMemHandler::AddDataRandom(AliHLTDigitData *data, UInt_t & ndata, UInt_t row, UShort_t pad, UShort_t time, UShort_t charge) { //add data random @@ -568,7 +568,7 @@ void AliL3MemHandler::AddDataRandom(AliL3DigitData *data, UInt_t & ndata, } } -void AliL3MemHandler::Write(UInt_t *comp, UInt_t & index, +void AliHLTMemHandler::Write(UInt_t *comp, UInt_t & index, UInt_t & subindex, UShort_t value) const { //write compressed data @@ -582,7 +582,7 @@ void AliL3MemHandler::Write(UInt_t *comp, UInt_t & index, else subindex++; } -UShort_t AliL3MemHandler::Read(UInt_t *comp, UInt_t & index, UInt_t & subindex) const +UShort_t AliHLTMemHandler::Read(UInt_t *comp, UInt_t & index, UInt_t & subindex) const { //read compressed data UInt_t shift[3] = {0,10,20}; @@ -596,7 +596,7 @@ UShort_t AliL3MemHandler::Read(UInt_t *comp, UInt_t & index, UInt_t & subindex) return value; } -UShort_t AliL3MemHandler::Test(UInt_t *comp, +UShort_t AliHLTMemHandler::Test(UInt_t *comp, UInt_t index, UInt_t subindex) const { //supi dupi test @@ -604,22 +604,22 @@ UShort_t AliL3MemHandler::Test(UInt_t *comp, return (comp[index]>>shift[subindex])&0x03ff; } -Int_t AliL3MemHandler::Memory2CompMemory(UInt_t nrow, - AliL3DigitRowData *data,UInt_t *comp) +Int_t AliHLTMemHandler::Memory2CompMemory(UInt_t nrow, + AliHLTDigitRowData *data,UInt_t *comp) { //Performs run-length encoding on data stored in memory pointed to by data. //The compressed data is written to comp. if(!comp){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::Memory2CompMemory","Memory") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::Memory2CompMemory","Memory") <<"Pointer to compressed data = 0x0 "<fNDigit+ - sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData) * rowPt->fNDigit+ + sizeof(AliHLTDigitRowData); Byte_t *bytePt =(Byte_t *) rowPt; bytePt += size; - rowPt = (AliL3DigitRowData *) bytePt; + rowPt = (AliHLTDigitRowData *) bytePt; } while(subindex) Write(comp,index,subindex,0); return index * sizeof(UInt_t); } -Int_t AliL3MemHandler::CompMemory2Memory(UInt_t nrow, - AliL3DigitRowData *data,UInt_t *comp) +Int_t AliHLTMemHandler::CompMemory2Memory(UInt_t nrow, + AliHLTDigitRowData *data,UInt_t *comp) { //Uncompress the run-length encoded data in memory pointed to by comp, and // store it in data. if(!comp){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::CompMemory2Memory","Memory") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::CompMemory2Memory","Memory") <<"Pointer to compressed data = 0x0 "<fNDigit = ndigit; - Int_t size = sizeof(AliL3DigitData) * rowPt->fNDigit+ - sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData) * rowPt->fNDigit+ + sizeof(AliHLTDigitRowData); Byte_t *bytePt =(Byte_t *) rowPt; bytePt += size; outsize += size; - rowPt = (AliL3DigitRowData *) bytePt; + rowPt = (AliHLTDigitRowData *) bytePt; } return outsize; } -UInt_t AliL3MemHandler::GetCompMemorySize(UInt_t nrow,AliL3DigitRowData *data) const +UInt_t AliHLTMemHandler::GetCompMemorySize(UInt_t nrow,AliHLTDigitRowData *data) const { //Return the size of RLE data, after compressing data. if(!data){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::GetCompMemorySize","Memory") - <<"Pointer to AliL3DigitRowData = 0x0 "<fNDigit+ - sizeof(AliL3DigitRowData); + Int_t size = sizeof(AliHLTDigitData) * rowPt->fNDigit+ + sizeof(AliHLTDigitRowData); Byte_t *bytePt =(Byte_t *) rowPt; bytePt += size; - rowPt = (AliL3DigitRowData *) bytePt; + rowPt = (AliHLTDigitRowData *) bytePt; } while(index%3) index++; return (index/3) * sizeof(UInt_t); } -UInt_t AliL3MemHandler::GetMemorySize(UInt_t nrow,UInt_t *comp) const +UInt_t AliHLTMemHandler::GetMemorySize(UInt_t nrow,UInt_t *comp) const { //get memory size if(!comp){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::GetMemorySize","Memory") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::GetMemorySize","Memory") <<"Pointer to compressed data = 0x0 "<SetBinaryInput(fInBinary); UInt_t *comp =(UInt_t *)handler->Allocate(); handler->CompBinary2CompMemory(nrow,comp); UInt_t size = GetMemorySize(nrow,comp); - AliL3DigitRowData *data = (AliL3DigitRowData *)Allocate(size); + AliHLTDigitRowData *data = (AliHLTDigitRowData *)Allocate(size); CompMemory2Memory(nrow,data,comp); handler->Free(); delete handler; return data; } -Bool_t AliL3MemHandler::Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data) +Bool_t AliHLTMemHandler::Memory2CompBinary(UInt_t nrow,AliHLTDigitRowData *data) { //Perform RLE on the data, and write it to the output file. Bool_t out = kTRUE; - AliL3MemHandler * handler = new AliL3MemHandler(); + AliHLTMemHandler * handler = new AliHLTMemHandler(); UInt_t size = GetCompMemorySize(nrow,data); UInt_t *comp =(UInt_t *)handler->Allocate(size); Memory2CompMemory(nrow,data,comp); @@ -972,31 +972,31 @@ Bool_t AliL3MemHandler::Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data) ///////////////////////////////////////// Point IO -Bool_t AliL3MemHandler::Memory2Binary(UInt_t npoint,AliL3SpacePointData *data) +Bool_t AliHLTMemHandler::Memory2Binary(UInt_t npoint,AliHLTSpacePointData *data) { //Writing spacepoints stored in data to the outputfile. if(!fOutBinary){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::Memory2Binary","File") + LOG(AliHLTLog::kWarning,"AliHLTMemHandler::Memory2Binary","File") <<"No Output File"<fNPoints*sizeof(UInt_t); + Int_t size=sizeof(AliHLTTrackSegmentData)+trackPt->fNPoints*sizeof(UInt_t); fwrite(trackPt,size,1,fOutBinary); Byte_t *bytePt = (Byte_t*) trackPt; bytePt += size; - trackPt = (AliL3TrackSegmentData*) bytePt; + trackPt = (AliHLTTrackSegmentData*) bytePt; } - LOG(AliL3Log::kDebug,"AliL3MemHandler::Memory2Binary","File") - <fNPoints*sizeof(UInt_t); if(fread(trackPt->fPointIDs,size,1,fInBinary)!=1) break; Byte_t *bytePt = (Byte_t*) trackPt; - bytePt += sizeof(AliL3TrackSegmentData)+size; - trackPt = (AliL3TrackSegmentData*) bytePt; + bytePt += sizeof(AliHLTTrackSegmentData)+size; + trackPt = (AliHLTTrackSegmentData*) bytePt; ntrack++; } - LOG(AliL3Log::kDebug,"AliL3MemHandler::Binary2Memory","File") - <FillTracks(ntrack,data); return kTRUE; } -Bool_t AliL3MemHandler::Memory2TrackArray(UInt_t ntrack,AliL3TrackSegmentData *data,AliL3TrackArray *array,Int_t slice) const +Bool_t AliHLTMemHandler::Memory2TrackArray(UInt_t ntrack,AliHLTTrackSegmentData *data,AliHLTTrackArray *array,Int_t slice) const { //Fill the tracks in data into trackarray, and rotate the tracks to global coordinates. if(!data){ - LOG(AliL3Log::kWarning,"AliL3MemHandler::Memory2TrackArray","Memory") - <<"Pointer to AliL3TrackSegmentData = 0x0 "<FillTracks(ntrack,data,slice); return kTRUE; } -void AliL3MemHandler::UpdateRowPointer(AliL3DigitRowData *&tempPt) +void AliHLTMemHandler::UpdateRowPointer(AliHLTDigitRowData *&tempPt) { //Update the data pointer to the next padrow in memory. Byte_t *tmp = (Byte_t*)tempPt; - Int_t size = sizeof(AliL3DigitRowData) + tempPt->fNDigit*sizeof(AliL3DigitData); + Int_t size = sizeof(AliHLTDigitRowData) + tempPt->fNDigit*sizeof(AliHLTDigitData); tmp += size; - tempPt = (AliL3DigitRowData*)tmp; + tempPt = (AliHLTDigitRowData*)tmp; } -Int_t AliL3MemHandler::ComparePoints(UInt_t /*row*/,UShort_t pad,UShort_t time) const +Int_t AliHLTMemHandler::ComparePoints(UInt_t /*row*/,UShort_t pad,UShort_t time) const { //compare two points if(fNUsed>=fNDigits) return -2; @@ -1231,7 +1231,7 @@ Int_t AliL3MemHandler::ComparePoints(UInt_t /*row*/,UShort_t pad,UShort_t time) return 1; } -Int_t AliL3MemHandler::CompareDigits(AliL3RandomDigitData *a,AliL3RandomDigitData *b) const +Int_t AliHLTMemHandler::CompareDigits(AliHLTRandomDigitData *a,AliHLTRandomDigitData *b) const { //compare two digits if(a->fPad==b->fPad && a->fTime == b->fTime) return 0; diff --git a/HLT/src/AliL3MemHandler.h b/HLT/src/AliHLTMemHandler.h similarity index 65% rename from HLT/src/AliL3MemHandler.h rename to HLT/src/AliHLTMemHandler.h index 325fedb1293..1dfd062890a 100644 --- a/HLT/src/AliL3MemHandler.h +++ b/HLT/src/AliHLTMemHandler.h @@ -4,7 +4,7 @@ #define ALIL3_MEMHANDLER_H //_____________________________________________________________ -// AliL3MemHandler +// AliHLTMemHandler // // The HLT Binary File handler // @@ -15,13 +15,13 @@ // Constantin Loizides // *-- Copyright © ALICE HLT Group -class AliL3DigitData; -class AliL3SpacePointData; -class AliL3DigitRowData; -class AliL3TrackSegmentData; -class AliL3TrackArray; -class AliL3RandomPointData; -class AliL3RandomDigitData; +class AliHLTDigitData; +class AliHLTSpacePointData; +class AliHLTDigitRowData; +class AliHLTTrackSegmentData; +class AliHLTTrackArray; +class AliHLTRandomPointData; +class AliHLTRandomDigitData; #ifdef use_newio class AliRunLoader; @@ -29,13 +29,13 @@ class AliRawEvent; #endif class AliTPCRawStream; -class AliL3MemHandler { +class AliHLTMemHandler { public: - AliL3MemHandler(); - virtual ~AliL3MemHandler(); - AliL3MemHandler(const AliL3MemHandler& /*m*/){}; - AliL3MemHandler& operator=(const AliL3MemHandler& /*&m*/) + AliHLTMemHandler(); + virtual ~AliHLTMemHandler(); + AliHLTMemHandler(const AliHLTMemHandler& /*m*/){}; + AliHLTMemHandler& operator=(const AliHLTMemHandler& /*&m*/) {return (*this);} void Reset(){CloseBinaryInput();CloseBinaryOutput();Free();} @@ -62,44 +62,44 @@ class AliL3MemHandler { void ResetROI(); //Digit IO - Bool_t Memory2Binary(UInt_t nrow,AliL3DigitRowData *data); - Bool_t Binary2Memory(UInt_t & nrow,AliL3DigitRowData *data); + Bool_t Memory2Binary(UInt_t nrow,AliHLTDigitRowData *data); + Bool_t Binary2Memory(UInt_t & nrow,AliHLTDigitRowData *data); - Int_t Memory2CompMemory(UInt_t nrow,AliL3DigitRowData *data,UInt_t *comp); - Int_t CompMemory2Memory(UInt_t nrow,AliL3DigitRowData *data,UInt_t *comp); + Int_t Memory2CompMemory(UInt_t nrow,AliHLTDigitRowData *data,UInt_t *comp); + Int_t CompMemory2Memory(UInt_t nrow,AliHLTDigitRowData *data,UInt_t *comp); Bool_t CompMemory2CompBinary(UInt_t nrow,UInt_t *comp, UInt_t size=0); Bool_t CompBinary2CompMemory(UInt_t & nrow,UInt_t *comp); - virtual AliL3DigitRowData *CompBinary2Memory(UInt_t & nrow); - virtual Bool_t Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data); + virtual AliHLTDigitRowData *CompBinary2Memory(UInt_t & nrow); + virtual Bool_t Memory2CompBinary(UInt_t nrow,AliHLTDigitRowData *data); UInt_t GetNRow(UInt_t *comp,UInt_t size); //Point IO - Bool_t Memory2Binary(UInt_t npoint,AliL3SpacePointData *data); - Bool_t Binary2Memory(UInt_t & npoint,AliL3SpacePointData *data); - Bool_t Transform(UInt_t npoint,AliL3SpacePointData *data,Int_t slice); - static void UpdateRowPointer(AliL3DigitRowData *&tempPt); + Bool_t Memory2Binary(UInt_t npoint,AliHLTSpacePointData *data); + Bool_t Binary2Memory(UInt_t & npoint,AliHLTSpacePointData *data); + Bool_t Transform(UInt_t npoint,AliHLTSpacePointData *data,Int_t slice); + static void UpdateRowPointer(AliHLTDigitRowData *&tempPt); //Track IO - Bool_t Memory2Binary(UInt_t ntrack,AliL3TrackSegmentData *data); - Bool_t Binary2Memory(UInt_t & ntrack,AliL3TrackSegmentData *data); - Bool_t TrackArray2Binary(AliL3TrackArray *array); - Bool_t Binary2TrackArray(AliL3TrackArray *array); - Bool_t TrackArray2Memory(UInt_t & ntrack,AliL3TrackSegmentData *data,AliL3TrackArray *array) const; - Bool_t Memory2TrackArray(UInt_t ntrack,AliL3TrackSegmentData *data,AliL3TrackArray *array) const; - Bool_t Memory2TrackArray(UInt_t ntrack,AliL3TrackSegmentData *data,AliL3TrackArray *array,Int_t slice) const; + Bool_t Memory2Binary(UInt_t ntrack,AliHLTTrackSegmentData *data); + Bool_t Binary2Memory(UInt_t & ntrack,AliHLTTrackSegmentData *data); + Bool_t TrackArray2Binary(AliHLTTrackArray *array); + Bool_t Binary2TrackArray(AliHLTTrackArray *array); + Bool_t TrackArray2Memory(UInt_t & ntrack,AliHLTTrackSegmentData *data,AliHLTTrackArray *array) const; + Bool_t Memory2TrackArray(UInt_t ntrack,AliHLTTrackSegmentData *data,AliHLTTrackArray *array) const; + Bool_t Memory2TrackArray(UInt_t ntrack,AliHLTTrackSegmentData *data,AliHLTTrackArray *array,Int_t slice) const; //Memory Allocation UInt_t GetAllocatedSize() const {return fSize;} UInt_t GetFileSize(); UInt_t GetMemorySize(UInt_t nrow,UInt_t *comp) const; - UInt_t GetCompMemorySize(UInt_t nrow,AliL3DigitRowData *data) const; + UInt_t GetCompMemorySize(UInt_t nrow,AliHLTDigitRowData *data) const; UInt_t GetRandomSize() const; Byte_t *Allocate(UInt_t size); Byte_t *Allocate(); // allocate size of Binary Input File - Byte_t *Allocate(AliL3TrackArray *array); + Byte_t *Allocate(AliHLTTrackArray *array); Byte_t *GetDataPointer(UInt_t &size) {size = fSize; return fPt;} FILE *GetFilePointer() {return fInBinary;} void Free(); @@ -123,13 +123,13 @@ class AliL3MemHandler { virtual void CloseMCOutput(){fDummy=0; return;} virtual Bool_t AliDigits2Binary(Int_t /*event*/=0,Bool_t /*altro*/=kFALSE){fDummy=0; return 0;} virtual Bool_t AliDigits2CompBinary(Int_t /*event*/=0,Bool_t /*altro*/=kFALSE){fDummy=0; return 0;} - virtual AliL3DigitRowData *AliDigits2Memory(UInt_t & /*nrow*/,Int_t /*event*/=0){fDummy=0; return 0;} - virtual AliL3DigitRowData *AliAltroDigits2Memory(UInt_t & /*nrow*/,Int_t /*event*/=0,Bool_t /*eventmerge*/=kFALSE){fDummy=0; return 0;} - virtual void AliDigits2RootFile(AliL3DigitRowData */*rowPt*/,Char_t */*new_digitsfile*/){fDummy=0; return;} + virtual AliHLTDigitRowData *AliDigits2Memory(UInt_t & /*nrow*/,Int_t /*event*/=0){fDummy=0; return 0;} + virtual AliHLTDigitRowData *AliAltroDigits2Memory(UInt_t & /*nrow*/,Int_t /*event*/=0,Bool_t /*eventmerge*/=kFALSE){fDummy=0; return 0;} + virtual void AliDigits2RootFile(AliHLTDigitRowData */*rowPt*/,Char_t */*new_digitsfile*/){fDummy=0; return;} virtual Bool_t AliPoints2Binary(Int_t /*eventn*/=0){fDummy=0; return 0;} - virtual AliL3SpacePointData *AliPoints2Memory(UInt_t & /*npoint*/,Int_t /*eventn*/=0){fDummy=0; return 0;} + virtual AliHLTSpacePointData *AliPoints2Memory(UInt_t & /*npoint*/,Int_t /*eventn*/=0){fDummy=0; return 0;} - //AliL3RawDataFileHandler + //AliHLTRawDataFileHandler virtual Bool_t SetRawInput(Char_t */*name*/){fDummy=0; return 0;} virtual Bool_t SetRawInput(ifstream */*file*/){fDummy=0; return 0;} virtual void CloseRawInput(){} @@ -151,10 +151,10 @@ class AliL3MemHandler { virtual void CloseRawPedestalsInput(){} virtual Int_t ReadRawPedestalsInput(){fDummy=0; return 0;} - virtual AliL3DigitRowData* RawData2Memory(UInt_t &/*nrow*/,Int_t /*event*/=-1){fDummy=0; return 0;} + virtual AliHLTDigitRowData* RawData2Memory(UInt_t &/*nrow*/,Int_t /*event*/=-1){fDummy=0; return 0;} virtual Bool_t RawData2CompMemory(Int_t /*event*/=-1){fDummy=0; return 0;} - //AliL3DDLDataFileHandler + //AliHLTDDLDataFileHandler #ifdef use_newio virtual Bool_t SetReaderInput(AliRawEvent */*rawevent*/){fDummy=0; return 0;} virtual Bool_t SetReaderInput(Char_t */*name*/,Int_t /*event*/=0){fDummy=0; return 0;} @@ -163,7 +163,7 @@ class AliL3MemHandler { #endif virtual void CloseReaderInput(){}; - virtual AliL3DigitRowData* DDLData2Memory(UInt_t &/*nrow*/,Int_t /*event*/=-1){fDummy=0; return 0;} + virtual AliHLTDigitRowData* DDLData2Memory(UInt_t &/*nrow*/,Int_t /*event*/=-1){fDummy=0; return 0;} virtual Bool_t DDLData2CompBinary(Int_t /*event*/=-1){fDummy=0; return 0;} virtual AliTPCRawStream* GetTPCRawStream(){fDummy=0; return 0;} @@ -191,8 +191,8 @@ class AliL3MemHandler { Int_t fNUsed; //count used digits Int_t fNDigits; //count digits from digitstree - AliL3RandomDigitData **fDPt;//! - AliL3RandomDigitData *fRandomDigits;//! + AliHLTRandomDigitData **fDPt;//! + AliHLTRandomDigitData *fRandomDigits;//! Int_t fDummy; // to fool the virtual const problem // of the coding conventions tool @@ -202,18 +202,21 @@ class AliL3MemHandler { UShort_t Test(UInt_t *comp, UInt_t index, UInt_t subindex) const; void DigitizePoint(Int_t row,Int_t pad, Int_t time,Int_t charge); - void QSort(AliL3RandomDigitData **a, Int_t first, Int_t last); + void QSort(AliHLTRandomDigitData **a, Int_t first, Int_t last); Int_t ComparePoints(UInt_t row,UShort_t pad,UShort_t time) const ; - Int_t CompareDigits(AliL3RandomDigitData *a,AliL3RandomDigitData *b) const; - void AddData(AliL3DigitData *data,UInt_t & ndata, + Int_t CompareDigits(AliHLTRandomDigitData *a,AliHLTRandomDigitData *b) const; + void AddData(AliHLTDigitData *data,UInt_t & ndata, UInt_t row,UShort_t pad,UShort_t time,UShort_t charge) const; - void AddRandom(AliL3DigitData *data,UInt_t & ndata); - void MergeDataRandom(AliL3DigitData *data,UInt_t & ndata, + void AddRandom(AliHLTDigitData *data,UInt_t & ndata); + void MergeDataRandom(AliHLTDigitData *data,UInt_t & ndata, UInt_t row,UShort_t pad,UShort_t time,UShort_t charge); - void AddDataRandom(AliL3DigitData *data,UInt_t & ndata, + void AddDataRandom(AliHLTDigitData *data,UInt_t & ndata, UInt_t row,UShort_t pad,UShort_t time,UShort_t charge); - ClassDef(AliL3MemHandler,1) // Memory handler class + ClassDef(AliHLTMemHandler,1) // Memory handler class }; + +typedef AliHLTMemHandler AliL3MemHandler; // for backward compatibility + #endif diff --git a/HLT/src/AliL3Merger.cxx b/HLT/src/AliHLTMerger.cxx similarity index 70% rename from HLT/src/AliL3Merger.cxx rename to HLT/src/AliHLTMerger.cxx index 8044694a636..15944466687 100644 --- a/HLT/src/AliL3Merger.cxx +++ b/HLT/src/AliHLTMerger.cxx @@ -3,14 +3,14 @@ // Author: Uli Frankenfeld //*-- Copyright © Uli -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3Merger.h" -#include "AliL3Track.h" -#include "AliL3TrackSegmentData.h" -#include "AliL3Transform.h" -#include "AliL3TrackArray.h" +#include "AliHLTLogging.h" +#include "AliHLTMerger.h" +#include "AliHLTTrack.h" +#include "AliHLTTrackSegmentData.h" +#include "AliHLTTransform.h" +#include "AliHLTTrackArray.h" #ifdef use_root //use root ntuple for slow merge #include @@ -18,10 +18,10 @@ #include #endif -/** \class AliL3Merger +/** \class AliHLTMerger
 //_____________________________________________________________
-// AliL3Merger
+// AliHLTMerger
 //
 // The L3 merger base class
 //
@@ -32,9 +32,9 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3Merger)
+ClassImp(AliHLTMerger)
 
-AliL3Merger::AliL3Merger()
+AliHLTMerger::AliHLTMerger()
 {
   //Default constructor
   fInTrack=0;
@@ -43,28 +43,28 @@ AliL3Merger::AliL3Merger()
   fNIn=0;
 }
 
-AliL3Merger::~AliL3Merger()
+AliHLTMerger::~AliHLTMerger()
 {
   //Destructor
   DeleteArray();
 }
 
-void AliL3Merger::InitMerger(Int_t ntrackarrays,Char_t *tracktype)
+void AliHLTMerger::InitMerger(Int_t ntrackarrays,Char_t *tracktype)
 {
   //Used to setup all arrays
   
-  if(strcmp(tracktype,"AliL3Track")==0) fTrackType='t';
-  else if(strcmp(tracktype,"AliL3ConfMapTrack")==0) fTrackType='c';
-  else if(strcmp(tracktype,"AliL3HoughTrack")==0) fTrackType='h';
+  if(strcmp(tracktype,"AliHLTTrack")==0) fTrackType='t';
+  else if(strcmp(tracktype,"AliHLTConfMapTrack")==0) fTrackType='c';
+  else if(strcmp(tracktype,"AliHLTHoughTrack")==0) fTrackType='h';
   else
-    LOG(AliL3Log::kError,"AliL3Merger::AliL3Merger","Track types")
+    LOG(AliHLTLog::kError,"AliHLTMerger::AliHLTMerger","Track types")
       <<"Unknown tracktype"<Reset();
 }
 
-void AliL3Merger::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr)
+void AliHLTMerger::FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr)
 {
   //Read tracks from shared memory (or memory)
-  AliL3TrackArray *destination = GetInTracks(fCurrentTracks);
+  AliHLTTrackArray *destination = GetInTracks(fCurrentTracks);
   if(Is2Global())
     destination->FillTracks(ntracks, tr, fSlice);
   else
     destination->FillTracks(ntracks, tr);
 }
 
-void AliL3Merger::AddAllTracks()
+void AliHLTMerger::AddAllTracks()
 { 
   //add all tracks
   for(Int_t i=0; iAddTracks(in);
     }
 }
 
-void AliL3Merger::SortGlobalTracks(AliL3Track **tracks, Int_t ntrack)
+void AliHLTMerger::SortGlobalTracks(AliHLTTrack **tracks, Int_t ntrack)
 { 
   //sort global tracks
-  AliL3Track **tmp = new AliL3Track*[ntrack]; 
+  AliHLTTrack **tmp = new AliHLTTrack*[ntrack]; 
   for(Int_t i=0;iGetNHits();
     }
-  if(nps>AliL3Transform::GetNRows())
+  if(nps>AliHLTTransform::GetNRows())
     {
-      LOG(AliL3Log::kWarning,"AliL3Merger::MultiMerge","Adding Points")
-	<NextTrack();
+  AliHLTTrack *newtrack = mergedtracks->NextTrack();
   //copy points
-  UInt_t * nn = new UInt_t[AliL3Transform::GetNRows()];
+  UInt_t * nn = new UInt_t[AliHLTTransform::GetNRows()];
   nps = 0;
   
   //  for(Int_t i=0;iGetHitNumbers(),tracks[i]->GetNHits()*sizeof(UInt_t));
       nps+=tracks[i]->GetNHits();
     }
-  AliL3Track *tpf=tracks[0];
-  AliL3Track *tpl=tracks[ntrack-1];
-  AliL3Track *best = tpf;
+  AliHLTTrack *tpf=tracks[0];
+  AliHLTTrack *tpl=tracks[ntrack-1];
+  AliHLTTrack *best = tpf;
   if(tpf->GetNHits()GetNHits() && Is2Global())
     best = tpl;//Best means = most points and therefore best fit (in global case)
   
@@ -256,7 +256,7 @@ AliL3Track * AliL3Merger::MultiMerge(AliL3TrackArray *mergedtracks,AliL3Track **
   return newtrack;
 }
 
-void* AliL3Merger::GetNtuple(char *varlist) const
+void* AliHLTMerger::GetNtuple(char *varlist) const
 { 
   //get ntuple
 #ifdef use_root
@@ -267,7 +267,7 @@ void* AliL3Merger::GetNtuple(char *varlist) const
 #endif
 }
 
-void* AliL3Merger::GetNtuple() const
+void* AliHLTMerger::GetNtuple() const
 { 
   //get ntuple
 #ifdef use_root
@@ -279,7 +279,7 @@ void* AliL3Merger::GetNtuple() const
 #endif
 }
 
-Bool_t AliL3Merger::WriteNtuple(char *filename, void* nt) const
+Bool_t AliHLTMerger::WriteNtuple(char *filename, void* nt) const
 { 
   //write ntuple
 #ifdef use_root
@@ -294,7 +294,7 @@ Bool_t AliL3Merger::WriteNtuple(char *filename, void* nt) const
 #endif
 }
 
-void AliL3Merger::FillNtuple(void *nt,AliL3Track *innertrack,AliL3Track *outertrack)
+void AliHLTMerger::FillNtuple(void *nt,AliHLTTrack *innertrack,AliHLTTrack *outertrack)
 { 
   //fill ntuple
   Float_t data[17];
@@ -305,8 +305,8 @@ void AliL3Merger::FillNtuple(void *nt,AliL3Track *innertrack,AliL3Track *outertr
       data[2] =Float_t(innertrack->GetPointZ()-outertrack->GetPointZ());
       data[3] =Float_t(innertrack->GetKappa()-outertrack->GetKappa());
       Double_t psi= innertrack->GetPointPsi() - outertrack->GetPointPsi();
-      if(psi>AliL3Transform::Pi()) psi-=AliL3Transform::TwoPi();
-      else if(psi<-AliL3Transform::Pi()) psi+=AliL3Transform::TwoPi();
+      if(psi>AliHLTTransform::Pi()) psi-=AliHLTTransform::TwoPi();
+      else if(psi<-AliHLTTransform::Pi()) psi+=AliHLTTransform::TwoPi();
       data[4] =Float_t(psi);
       data[5] =Float_t(innertrack->GetTgl()-outertrack->GetTgl());
       data[6] =Float_t(innertrack->GetCharge()-outertrack->GetCharge());
@@ -327,7 +327,7 @@ void AliL3Merger::FillNtuple(void *nt,AliL3Track *innertrack,AliL3Track *outertr
     }
 }
 
-void AliL3Merger::FillNtuple(void *nt,Float_t *data) const
+void AliHLTMerger::FillNtuple(void *nt,Float_t *data) const
 { 
   //fill ntuple
 #ifdef use_root
@@ -336,16 +336,16 @@ void AliL3Merger::FillNtuple(void *nt,Float_t *data) const
 #endif
 }
 
-Double_t AliL3Merger::GetAngle(Double_t a1,Double_t a2)
+Double_t AliHLTMerger::GetAngle(Double_t a1,Double_t a2)
 { 
   //get angle
-  Double_t da = a1 - a2 + 4*AliL3Transform::Pi();
-  da = fmod(da,AliL3Transform::TwoPi());
-  if(da>AliL3Transform::Pi()) da = AliL3Transform::TwoPi()-da;
+  Double_t da = a1 - a2 + 4*AliHLTTransform::Pi();
+  da = fmod(da,AliHLTTransform::TwoPi());
+  if(da>AliHLTTransform::Pi()) da = AliHLTTransform::TwoPi()-da;
   return da;
 }
 
-void AliL3Merger::SetParameter(Double_t maxy, Double_t maxz, Double_t maxkappa, Double_t maxpsi, Double_t maxtgl)
+void AliHLTMerger::SetParameter(Double_t maxy, Double_t maxz, Double_t maxkappa, Double_t maxpsi, Double_t maxtgl)
 { 
   //set parameters for merger
   fMaxY = maxy;
@@ -355,12 +355,12 @@ void AliL3Merger::SetParameter(Double_t maxy, Double_t maxz, Double_t maxkappa,
   fMaxTgl = maxtgl;
 }
 
-Bool_t AliL3Merger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrack)
+Bool_t AliHLTMerger::IsTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack)
 {
   //is track to be merged
   if(innertrack->GetCharge()!=outertrack->GetCharge()) return kFALSE;
   if( (!innertrack->IsPoint()) || (!outertrack->IsPoint()) )  return kFALSE; 
-  if(innertrack->GetNHits()+outertrack->GetNHits()>AliL3Transform::GetNRows()) return kFALSE;
+  if(innertrack->GetNHits()+outertrack->GetNHits()>AliHLTTransform::GetNRows()) return kFALSE;
   
   if(fabs(innertrack->GetPointY()-outertrack->GetPointY()) >fMaxY) return kFALSE;
   if(fabs(innertrack->GetPointZ()-outertrack->GetPointZ()) >fMaxZ) return kFALSE;
@@ -371,18 +371,18 @@ Bool_t AliL3Merger::IsTrack(AliL3Track *innertrack,AliL3Track *outertrack)
   return kTRUE;
 }
 
-Bool_t AliL3Merger::IsRTrack(AliL3Track *innertrack,AliL3Track *outertrack)
+Bool_t AliHLTMerger::IsRTrack(AliHLTTrack *innertrack,AliHLTTrack *outertrack)
 { 
   //same as IsTrack
   return IsTrack(innertrack,outertrack);
 }
 
-Double_t AliL3Merger::TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack)
+Double_t AliHLTMerger::TrackDiff(AliHLTTrack *innertrack,AliHLTTrack *outertrack)
 { 
   //return track difference
   Double_t diff =-1;
   Double_t x[4],y[4],z[4],dy[4],dz[4];
-  AliL3Track *tracks[2]; 
+  AliHLTTrack *tracks[2]; 
   
   tracks[0] = innertrack;
   tracks[1] = outertrack;
@@ -432,13 +432,13 @@ Double_t AliL3Merger::TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack)
   return diff; 
 }
 
-void AliL3Merger::PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack)
+void AliHLTMerger::PrintDiff(AliHLTTrack *innertrack,AliHLTTrack *outertrack)
 { 
   // print difference
   if(!innertrack->IsPoint()||!outertrack->IsPoint())
     {
-      LOG(AliL3Log::kInformational,"AliL3Merger::PrintDiff","No Points")<GetPointZ()-outertrack->GetPointZ();
   Double_t dk = innertrack->GetKappa()-outertrack->GetKappa();
   Double_t dpsi= innertrack->GetPointPsi() - outertrack->GetPointPsi();
-  if(dpsi>AliL3Transform::Pi()) dpsi-=AliL3Transform::TwoPi();
-  else if(dpsi<-AliL3Transform::Pi())dpsi+=AliL3Transform::TwoPi();
+  if(dpsi>AliHLTTransform::Pi()) dpsi-=AliHLTTransform::TwoPi();
+  else if(dpsi<-AliHLTTransform::Pi())dpsi+=AliHLTTransform::TwoPi();
   //Double_t dpsi = GetAngle(innertrack->GetPointPsi(),outertrack->GetPointPsi());
   Double_t dtgl= innertrack->GetTgl()-outertrack->GetTgl();
   Double_t dq =innertrack->GetCharge()-outertrack->GetCharge();
   
-  LOG(AliL3Log::kInformational,"AliL3Merger::PrintDiff","Points") <<"dx: "<GetNTracks();j++)
 	{
-	  AliL3Track *track=ttt->GetCheckedTrack(j);
+	  AliHLTTrack *track=ttt->GetCheckedTrack(j);
 	  if(!track) continue;
 	  track->CalculateHelix();
 	  //      Double_t angle = atan2(track->GetLastPointY(),track->GetLastPointX());
-	  //      if(angle<0) angle+=AliL3Transform::Pi();
+	  //      if(angle<0) angle+=AliHLTTransform::Pi();
 	  if(track->CalculatePoint(135))
 	    //      if(!track->CalculateEdgePoint(angle)) cerr<<"**************"<CalculatePoint(track->GetLastPointX()))
 	    //      if(track->CalculatePoint(0))
 	    {
 	      //      PrintTrack(track);
-	      //      track->CalculateReferencePoint(AliL3Transform::Pi()/180.);
+	      //      track->CalculateReferencePoint(AliHLTTransform::Pi()/180.);
 	      track->CalculateReferencePoint(0.001);
 	      Float_t dx=(float)track->GetPointX()-track->GetPointX();
 	      Float_t dy=(float)track->GetPointY()-track->GetPointY();
 	      Float_t dz=(float)track->GetPointZ()-track->GetPointZ();
-	      LOG(AliL3Log::kInformational,"AliL3Merger::Print","RefPoint") <<"npt: "<GetNHits()<<" dx: "<GetNHits()<<" dx: "<GetNHits(),dx,dy,dz);
 	      //cerr<<"---------------------------"<
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
-#include "AliL3RootTypes.h"
-#include "AliL3Logging.h"
-#include "AliL3Transform.h"
-#include "AliL3MemHandler.h"
-#include "AliL3DigitData.h"
+#include "AliHLTRootTypes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransform.h"
+#include "AliHLTMemHandler.h"
+#include "AliHLTDigitData.h"
 
-#include "AliL3RawDataFileHandler.h"
+#include "AliHLTRawDataFileHandler.h"
 
 #if __GNUC__ >= 3
 using namespace std;
 #endif
 
-/** \class AliL3RawDataFileHandler 
+/** \class AliHLTRawDataFileHandler 
 
 //_____________________________________________________________
-// AliL3RawDataFileHandler
+// AliHLTRawDataFileHandler
 //
 
*/ -ClassImp(AliL3RawDataFileHandler) +ClassImp(AliHLTRawDataFileHandler) -AliL3RawDataFileHandler::AliL3RawDataFileHandler() +AliHLTRawDataFileHandler::AliHLTRawDataFileHandler() { //constructor fConvert=kTRUE; @@ -44,18 +44,18 @@ AliL3RawDataFileHandler::AliL3RawDataFileHandler() FreeAll(); if((sizeof(Int_t) != 4) || (sizeof(Short_t) != 2)){ - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::AliL3RawDataFileHandler","Constructor") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::AliHLTRawDataFileHandler","Constructor") <<"Check architecture to run the conversion on! Int_t should be 32 and Short_t should be 16 bit."<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawInput","File Open") <<"Pointer to ifstream = 0x0"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawInput","File Open") <<"Pointer to ifstream = 0x0"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawOutput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawOutput","File Open") <<"Pointer to ofstream = 0x0"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawOutput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawOutput","File Open") <<"Pointer to ofstream = 0x0"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawPedestalsInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawPedestalsInput","File Open") <<"Pointer to ifstream = 0x0"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::SetRawPedestalsInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::SetRawPedestalsInput","File Open") <<"Pointer to ifstream = 0x0"< LittleEndian i3i2i1i0 if(!fConvert) return i; @@ -416,7 +416,7 @@ inline Int_t AliL3RawDataFileHandler::Convert4(Int_t i) const return (*(Int_t*)temp); } -inline Short_t AliL3RawDataFileHandler::Convert2(Short_t s) const +inline Short_t AliHLTRawDataFileHandler::Convert2(Short_t s) const { //BigEndian i0i1 -> LittleEndian i1i0 if(!fConvert) return s; @@ -427,11 +427,11 @@ inline Short_t AliL3RawDataFileHandler::Convert2(Short_t s) const return (*(Short_t*)temp); } -Int_t AliL3RawDataFileHandler::ReadRawInput() +Int_t AliHLTRawDataFileHandler::ReadRawInput() { //Read data from cosmics file into memory if(!fInRaw){ - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::ReadRawInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::ReadRawInput","File Open") <<"No Input avalible: no object ifstream"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::ReadRawInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::ReadRawInput","File Open") <<"No Input avalible: ifstream not opened"<read((Char_t*)&dummy2,sizeof(dummy2)); UShort_t channel = Convert2(dummy2); if(channel>fNChannels){ - LOG(AliL3Log::kWarning,"AliL3RawDataFileHandler::ReadRawInput","Data Inconsistency") - <read((Char_t*)&dummy4,sizeof(dummy4)); fNTimeBins=Convert4(dummy4); - if(fNTimeBins!=AliL3Transform::GetNTimeBins()){ - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::ReadRawInput","Data Inconsistency") - <fNChannels){ - LOG(AliL3Log::kWarning,"AliL3RawDataFileHandler::ReadRawInputPointer","Data Inconsistency") - <is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::StoreRawData","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::StoreRawData","File Open") <<"No Output avalible: ofstream not opened"<is_open()){ #endif - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::ReadRawPedestalsInput","File Open") + LOG(AliHLTLog::kError,"AliHLTRawDataFileHandler::ReadRawPedestalsInput","File Open") <<"No Input avalible: ifstream not opened"<read((Char_t*)&dummy4,sizeof(dummy4)); fNTimeBins=Convert4(dummy4); - if(fNTimeBins!=AliL3Transform::GetNTimeBins()){ - LOG(AliL3Log::kError,"AliL3RawDataFileHandler::ReadRawPedestalsInput","Data Inconsistency") - <fRowMax) break; - for(Int_t pad=0;pad= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig <= AliHLTTransform::GetZeroSup()) continue; + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); ndigits[slrow]++; //for this row only ndigitcount++; //total number of digits to be published @@ -784,25 +784,25 @@ AliL3DigitRowData * AliL3RawDataFileHandler::RawData2Memory(UInt_t &nrow,Int_t / //test data consistency Int_t ndigitcounttest=0; - for(Int_t slrow=0;slrowfRowMax) break; @@ -811,19 +811,19 @@ AliL3DigitRowData * AliL3RawDataFileHandler::RawData2Memory(UInt_t &nrow,Int_t / tempPt->fNDigit = ndigits[slrow]; Int_t localcount=0; - for(Int_t pad=0;pad= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig <= AliHLTTransform::GetZeroSup()) continue; + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); //Exclude data outside cone: - //AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + //AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); //if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) continue; tempPt->fDigitData[localcount].fCharge=(UShort_t)dig; @@ -840,31 +840,31 @@ AliL3DigitRowData * AliL3RawDataFileHandler::RawData2Memory(UInt_t &nrow,Int_t / } //pad if(localcount != ndigits[slrow]) - LOG(AliL3Log::kFatal,"AliL3RawDataFileHandler::RawData2Memory","Memory") - < #include -#include "AliL3StandardIncludes.h" -#include "AliL3Logging.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTLogging.h" #include "AliLevel3.h" -#include "AliL3Evaluate.h" +#include "AliHLTEvaluate.h" #include "AliHLTReconstructor.h" -#include "AliL3Transform.h" -#include "AliL3Hough.h" -#include "AliL3FileHandler.h" -#include "AliL3Track.h" -#include "AliL3HoughTrack.h" -#include "AliL3TrackArray.h" +#include "AliHLTTransform.h" +#include "AliHLTHough.h" +#include "AliHLTFileHandler.h" +#include "AliHLTTrack.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTTrackArray.h" #include "AliRun.h" #include "AliITS.h" #include "AliITSgeom.h" -#include "AliL3ITStracker.h" -#include "AliL3TPCtracker.h" +#include "AliHLTITStracker.h" +#include "AliHLTTPCtracker.h" #include "MUON/src/AliRoot/AliHLTMUONTracker.h" #if __GNUC__== 3 @@ -50,7 +50,7 @@ AliHLTReconstructor::AliHLTReconstructor(): AliReconstructor() { //constructor #ifndef use_logging - AliL3Log::fgLevel=AliL3Log::kWarning; + AliHLTLog::fgLevel=AliHLTLog::kWarning; #endif fDoTracker=1; fDoHough=0; @@ -62,7 +62,7 @@ AliHLTReconstructor::AliHLTReconstructor(Bool_t doTracker, Bool_t doHough): AliR { //constructor #ifndef use_logging - AliL3Log::fgLevel=AliL3Log::kWarning; + AliHLTLog::fgLevel=AliHLTLog::kWarning; #endif fDoTracker=doTracker; fDoHough=doHough; @@ -88,7 +88,7 @@ void AliHLTReconstructor::Reconstruct(AliRunLoader* runLoader) const { // do the standard and hough reconstruction chain if(!runLoader) { - LOG(AliL3Log::kFatal,"AliHLTReconstructor::Reconstruct","RunLoader") + LOG(AliHLTLog::kFatal,"AliHLTReconstructor::Reconstruct","RunLoader") <<" Missing RunLoader! 0x0"<Exec("rm -rf hough"); gSystem->MakeDirectory("hough"); - Bool_t isinit=AliL3Transform::Init(runLoader); + Bool_t isinit=AliHLTTransform::Init(runLoader); if(!isinit){ - LOG(AliL3Log::kError,"AliHLTReconstructor::Reconstruct","Transformer") + LOG(AliHLTLog::kError,"AliHLTReconstructor::Reconstruct","Transformer") << "Could not create transform settings, please check log for error messages!" << ENDLOG; return; } @@ -167,7 +167,7 @@ void AliHLTReconstructor::ReconstructWithHoughTransform(AliRunLoader* runLoader, //reconstruct with hough //not used anymore, Hough tracking is moved out of the local //reconstruction chain - Float_t ptmin = 0.1*AliL3Transform::GetSolenoidField(); + Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField(); Float_t zvertex = 0; TArrayF mcVertex(3); @@ -178,10 +178,10 @@ void AliHLTReconstructor::ReconstructWithHoughTransform(AliRunLoader* runLoader, } zvertex = mcVertex[2]; - LOG(AliL3Log::kInformational,"AliHLTReconstructor::Reconstruct","HoughTransform") + LOG(AliHLTLog::kInformational,"AliHLTReconstructor::Reconstruct","HoughTransform") <<" Hough Transform will run with ptmin="<SetMaxFalseClusters(maxfalseratio); fHLTEval->LoadData(iEvent,kTRUE); fHLTEval->AssignPIDs(); fHLTEval->AssignIDs(); - AliL3TrackArray *fTracks = fHLTEval->GetTracks(); + AliHLTTrackArray *fTracks = fHLTEval->GetTracks(); if(!fTracks){ delete fHLTEval; return; } for(Int_t i=0; iGetNTracks(); i++) { - AliL3Track *tpt = (AliL3Track *)fTracks->GetCheckedTrack(i); + AliHLTTrack *tpt = (AliHLTTrack *)fTracks->GetCheckedTrack(i); if(!tpt) continue; if(tpt->GetNumberOfPoints() < nminpointsontracks) continue; @@ -274,21 +274,21 @@ void AliHLTReconstructor::FillESDforHoughTransform(AliESD* esd,Int_t iEvent) con char filename[256]; sprintf(filename,"./hough/tracks_%d.raw",iEvent); - AliL3FileHandler *tfile = new AliL3FileHandler(); + AliHLTFileHandler *tfile = new AliHLTFileHandler(); if(!tfile->SetBinaryInput(filename)){ - LOG(AliL3Log::kError,"AliHLTReconstructor::FillESDforHoughTransform","Input file") + LOG(AliHLTLog::kError,"AliHLTReconstructor::FillESDforHoughTransform","Input file") <<" Missing file "<Binary2TrackArray(fTracks); tfile->CloseBinaryInput(); delete tfile; if(!fTracks) return; for(Int_t i=0; iGetNTracks(); i++) { - AliL3HoughTrack *tpt = (AliL3HoughTrack *)fTracks->GetCheckedTrack(i); + AliHLTHoughTrack *tpt = (AliHLTHoughTrack *)fTracks->GetCheckedTrack(i); if(!tpt) continue; AliESDHLTtrack *esdtrack = new AliESDHLTtrack() ; @@ -322,13 +322,13 @@ AliTracker* AliHLTReconstructor::CreateTracker(AliRunLoader* runLoader) const TString opt = GetOption(); if(!opt.CompareTo("TPC")) { // Create Hough tracker for TPC - return new AliL3TPCtracker(runLoader); + return new AliHLTTPCtracker(runLoader); } if(!opt.CompareTo("ITS")) { // Create ITS tracker AliITSgeom* geom = GetITSgeom(runLoader); if (!geom) return NULL; - return new AliL3ITStracker(geom); + return new AliHLTITStracker(geom); } if(!opt.CompareTo("MUON")) { return new AliHLTMUONTracker(runLoader); diff --git a/HLT/src/AliHLTReconstructor.h b/HLT/src/AliHLTReconstructor.h index eeabfd569f6..3f7757b6905 100644 --- a/HLT/src/AliHLTReconstructor.h +++ b/HLT/src/AliHLTReconstructor.h @@ -61,4 +61,6 @@ private: }; #endif +typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility + #endif diff --git a/HLT/src/AliL3RootTypes.h b/HLT/src/AliHLTRootTypes.h similarity index 96% rename from HLT/src/AliL3RootTypes.h rename to HLT/src/AliHLTRootTypes.h index 1120a282b2e..65089acb875 100644 --- a/HLT/src/AliL3RootTypes.h +++ b/HLT/src/AliHLTRootTypes.h @@ -83,14 +83,14 @@ const Ssiz_t kNPOS = ~(Ssiz_t)0; #endif //end of Rtypes #endif //end of root selection -//---- Timms AliL3EventDataType from AliL3EventDataType.h +//---- Timms AliHLTEventDataType from AliHLTEventDataType.h -union AliL3EventDataTypeRoot{ +union AliHLTEventDataTypeRoot{ ULong_t fID; unsigned char fDescr[8]; }; -typedef union AliL3EventDataTypeRoot AliL3EventDataTypeRoot; +typedef union AliHLTEventDataTypeRoot AliHLTEventDataTypeRoot; #define ROOT_UNKNOWN_DATAID (((ULong_t)'UNKN')<<32 | 'OWN ') #define ROOT_COMPOSITE_DATAID (((ULong_t)'COMP')<<32 | 'OSIT') diff --git a/HLT/src/AliL3SpacePointData.h b/HLT/src/AliHLTSpacePointData.h similarity index 71% rename from HLT/src/AliL3SpacePointData.h rename to HLT/src/AliHLTSpacePointData.h index 62534bcdb64..5921deaac80 100644 --- a/HLT/src/AliL3SpacePointData.h +++ b/HLT/src/AliHLTSpacePointData.h @@ -3,8 +3,8 @@ #ifndef SPACEPOINTDATA_H #define SPACEPOINTDATA_H -#include "AliL3RootTypes.h" -struct AliL3SpacePointData{ +#include "AliHLTRootTypes.h" +struct AliHLTSpacePointData{ #ifdef do_mc Int_t fTrackID[3]; #endif @@ -17,7 +17,8 @@ struct AliL3SpacePointData{ Float_t fSigmaZ2; //error (former width) of the clusters UInt_t fCharge; }; -typedef struct AliL3SpacePointData AliL3SpacePointData; +typedef struct AliHLTSpacePointData AliHLTSpacePointData; +typedef AliHLTSpacePointData AliL3SpacePointData; #endif /* SPACEPOINTDATA_H */ diff --git a/HLT/src/AliHLTSrcLinkDef.h b/HLT/src/AliHLTSrcLinkDef.h new file mode 100644 index 00000000000..a72d149e64b --- /dev/null +++ b/HLT/src/AliHLTSrcLinkDef.h @@ -0,0 +1,82 @@ +// @(#) $Id$ + +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ typedef AliL3Benchmark; +#pragma link C++ typedef AliL3DigitRowData; +#pragma link C++ typedef AliL3DigitData; +#pragma link C++ typedef AliL3SpacePointData; +#pragma link C++ typedef AliL3ConfMapper; +#pragma link C++ typedef AliL3ConfMapPoint; +#pragma link C++ typedef AliL3Vertex; +#pragma link C++ typedef AliL3VertexFinder; +#pragma link C++ typedef AliL3VertexArray; +#pragma link C++ typedef AliL3Track; +#pragma link C++ typedef AliL3ConfMapTrack; +#pragma link C++ typedef AliL3ConfMapFit; +#pragma link C++ typedef AliL3Transform; +#pragma link C++ typedef AliL3Merger; +#pragma link C++ typedef AliL3TrackMerger; +#pragma link C++ typedef AliL3GlobalMerger; +#pragma link C++ typedef AliL3InterMerger; +#pragma link C++ typedef AliL3TrackArray; +#pragma link C++ typedef AliL3Logger; +#pragma link C++ typedef AliL3MemHandler; +#pragma link C++ typedef AliL3Display; +#pragma link C++ typedef AliL3ClustFinderNew; +#pragma link C++ typedef AliL3Fitter; +#pragma link C++ typedef AliL3RawDataFileHandler; +#pragma link C++ typedef AliL3TPCBeamTestMemHandler; + +#ifdef use_aliroot +#pragma link C++ typedef AliL3FileHandler; +#pragma link C++ typedef AliL3Evaluate; +#ifdef use_reconstruction +#pragma link C++ typedef AliL3Reconstructor; +#pragma link C++ typedef AliL3TPCtracker; +#endif +#endif + + +#pragma link C++ class AliHLTBenchmark; +#pragma link C++ class AliHLTDigitRowData; +#pragma link C++ class AliHLTDigitData; +#pragma link C++ class AliHLTSpacePointData; +#pragma link C++ class AliHLTConfMapper; +#pragma link C++ class AliHLTConfMapPoint; +#pragma link C++ class AliHLTVertex; +#pragma link C++ class AliHLTVertexFinder; +#pragma link C++ class AliHLTVertexArray; +#pragma link C++ class AliHLTTrack; +#pragma link C++ class AliHLTConfMapTrack; +#pragma link C++ class AliHLTConfMapFit; +#pragma link C++ class AliHLTTransform; +#pragma link C++ class AliHLTMerger; +#pragma link C++ class AliHLTTrackMerger; +#pragma link C++ class AliHLTGlobalMerger; +#pragma link C++ class AliHLTInterMerger; +#pragma link C++ class AliLevel3; +#pragma link C++ class AliHLTTrackArray; +#pragma link C++ class AliHLTLogger; +#pragma link C++ class AliHLTMemHandler; +#pragma link C++ class AliHLTDisplay; +#pragma link C++ class AliHLTClustFinderNew; +#pragma link C++ class AliHLTFitter; +#pragma link C++ class AliHLTRawDataFileHandler; +#pragma link C++ class AliHLTTPCBeamTestMemHandler; + +#ifdef use_aliroot +#pragma link C++ class AliHLTFileHandler; +#pragma link C++ class AliHLTEvaluate; +#ifdef use_reconstruction +#pragma link C++ class AliHLTReconstructor; +#pragma link C++ class AliHLTTPCtracker; +#endif +#endif + +#endif + diff --git a/HLT/src/AliL3StandardIncludes.h b/HLT/src/AliHLTStandardIncludes.h similarity index 100% rename from HLT/src/AliL3StandardIncludes.h rename to HLT/src/AliHLTStandardIncludes.h diff --git a/HLT/src/AliL3TPCBeamTestMemHandler.cxx b/HLT/src/AliHLTTPCBeamTestMemHandler.cxx similarity index 64% rename from HLT/src/AliL3TPCBeamTestMemHandler.cxx rename to HLT/src/AliHLTTPCBeamTestMemHandler.cxx index d799a25a253..3a176334e14 100644 --- a/HLT/src/AliL3TPCBeamTestMemHandler.cxx +++ b/HLT/src/AliHLTTPCBeamTestMemHandler.cxx @@ -1,9 +1,9 @@ // @(#) $Id$ -/** \class AliL3TPCBeamTestMemHandler +/** \class AliHLTTPCBeamTestMemHandler
 //_____________________________________________________________
-// AliL3TPCBeamTestMemHandler
+// AliHLTTPCBeamTestMemHandler
 //
 // Class for converting the test beam data of May 2004 
 // to the HLT file format using R. Bramms tables.
@@ -13,22 +13,22 @@
 
*/ -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Transform.h" -#include "AliL3MemHandler.h" -#include "AliL3DigitData.h" -#include "AliL3TPCBeamTestMemHandler.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" +#include "AliHLTMemHandler.h" +#include "AliHLTDigitData.h" +#include "AliHLTTPCBeamTestMemHandler.h" #if __GNUC__ >= 3 using namespace std; #endif -ClassImp(AliL3TPCBeamTestMemHandler) +ClassImp(AliHLTTPCBeamTestMemHandler) -AliL3TPCBeamTestMemHandler::AliL3TPCBeamTestMemHandler(Char_t *fPathToMappingFile) : AliL3MemHandler() +AliHLTTPCBeamTestMemHandler::AliHLTTPCBeamTestMemHandler(Char_t *fPathToMappingFile) : AliHLTMemHandler() { //constructor fMinTimeBin=1; @@ -44,7 +44,7 @@ AliL3TPCBeamTestMemHandler::AliL3TPCBeamTestMemHandler(Char_t *fPathToMappingFil #else if(!in->is_open()){ #endif - LOG(AliL3Log::kFatal,"AliL3TPCBeamTestMemHandler","Mapping File") + LOG(AliHLTLog::kFatal,"AliHLTTPCBeamTestMemHandler","Mapping File") <<"Can't open file " << fPathToMappingFile << " !!!" <= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig <= AliHLTTransform::GetZeroSup()) continue; + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); fRows[lrow].fNDigits++; //for this row only ndigitcount++; @@ -144,31 +144,31 @@ AliL3DigitRowData* AliL3TPCBeamTestMemHandler::RawData2Memory(UInt_t &nrow,Int_t } Int_t nrows=0; - for(Int_t i=0;ifNDigit = fRows[i].fNDigits; Int_t localcount=0; - for(Int_t pad=0;pad= AliL3Transform::GetADCSat()) - dig = AliL3Transform::GetADCSat(); + if(dig <= AliHLTTransform::GetZeroSup()) continue; + if(dig >= AliHLTTransform::GetADCSat()) + dig = AliHLTTransform::GetADCSat(); //Exclude data outside cone: - //AliL3Transform::Raw2Local(xyz,sector,row,pad,time); + //AliHLTTransform::Raw2Local(xyz,sector,row,pad,time); //if(fParam->GetPadRowRadii(sector,row)<230./250.*fabs(xyz[2])) continue; tempPt->fDigitData[localcount].fCharge=(UShort_t)dig; @@ -215,20 +215,20 @@ AliL3DigitRowData* AliL3TPCBeamTestMemHandler::RawData2Memory(UInt_t &nrow,Int_t } //pad if(localcount != fRows[i].fNDigits) - LOG(AliL3Log::kFatal,"AliL3TPCBeamTestMemHandler::RawData2Memory","Memory") - <GetEventNumber(); - Float_t ptmin = 0.1*AliL3Transform::GetSolenoidField(); + Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField(); Float_t zvertex = GetZ(); AliInfo(Form("Hough Transform will run with ptmin=%f and zvertex=%f",ptmin,zvertex)); - AliL3Hough *hough = new AliL3Hough(); + AliHLTHough *hough = new AliHLTHough(); hough->SetThreshold(4); hough->CalcTransformerParams(ptmin); diff --git a/HLT/src/AliL3TPCtracker.h b/HLT/src/AliHLTTPCtracker.h similarity index 84% rename from HLT/src/AliL3TPCtracker.h rename to HLT/src/AliHLTTPCtracker.h index b1e393f3e86..0b74762ac90 100644 --- a/HLT/src/AliL3TPCtracker.h +++ b/HLT/src/AliHLTTPCtracker.h @@ -18,15 +18,15 @@ #include "AliTracker.h" #include "AliLog.h" -#include "AliL3Transform.h" +#include "AliHLTTransform.h" class AliRunLoader; class AliESD; //------------------------------------------------------------------------- -class AliL3TPCtracker : public AliTracker { +class AliHLTTPCtracker : public AliTracker { public: - AliL3TPCtracker(AliRunLoader *runLoader); + AliHLTTPCtracker(AliRunLoader *runLoader); Int_t Clusters2Tracks(AliESD *event); @@ -40,7 +40,9 @@ public: private: AliRunLoader *fRunLoader; // Pointer to the runloader - ClassDef(AliL3TPCtracker,1) //HLT TPC Hough tracker + ClassDef(AliHLTTPCtracker,1) //HLT TPC Hough tracker }; +typedef AliHLTTPCtracker AliL3TPCtracker; // for backward compatibility + #endif diff --git a/HLT/src/AliL3Track.cxx b/HLT/src/AliHLTTrack.cxx similarity index 75% rename from HLT/src/AliL3Track.cxx rename to HLT/src/AliHLTTrack.cxx index ecee8403896..1a45e211bc3 100644 --- a/HLT/src/AliL3Track.cxx +++ b/HLT/src/AliHLTTrack.cxx @@ -3,23 +3,23 @@ // Author: Anders Vestbo , Uli Frankenfeld //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3Track.h" -#include "AliL3Transform.h" -#include "AliL3Vertex.h" -#include "AliL3SpacePointData.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTTrack.h" +#include "AliHLTTransform.h" +#include "AliHLTVertex.h" +#include "AliHLTSpacePointData.h" #if __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3Track +/** \class AliHLTTrack //
 //_____________________________________________________________
-// AliL3Track
+// AliHLTTrack
 //
 // Track base class
 //Begin_Html
@@ -28,10 +28,10 @@ using namespace std;
 
*/ -ClassImp(AliL3Track) +ClassImp(AliHLTTrack) -AliL3Track::AliL3Track() +AliHLTTrack::AliHLTTrack() { //Constructor fNHits = 0; @@ -66,7 +66,7 @@ AliL3Track::AliL3Track() fPointPsi=0; } -void AliL3Track::Set(AliL3Track *tpt) +void AliHLTTrack::Set(AliHLTTrack *tpt) { //setter SetRowRange(tpt->GetFirstRow(),tpt->GetLastRow()); @@ -90,7 +90,7 @@ void AliL3Track::Set(AliL3Track *tpt) SetSector(tpt->GetSector()); } -Int_t AliL3Track::Compare(const AliL3Track *track) const +Int_t AliHLTTrack::Compare(const AliHLTTrack *track) const { // compare tracks if(track->GetNHits() < GetNHits()) return 1; @@ -98,37 +98,37 @@ Int_t AliL3Track::Compare(const AliL3Track *track) const return 0; } -AliL3Track::~AliL3Track() +AliHLTTrack::~AliHLTTrack() { //Nothing to do } -Double_t AliL3Track::GetP() const +Double_t AliHLTTrack::GetP() const { // Returns total momentum. return fabs(GetPt())*sqrt(1. + GetTgl()*GetTgl()); } -Double_t AliL3Track::GetPseudoRapidity() const +Double_t AliHLTTrack::GetPseudoRapidity() const { //get pseudo rap return 0.5 * log((GetP() + GetPz()) / (GetP() - GetPz())); } /* -Double_t AliL3Track::GetEta() const +Double_t AliHLTTrack::GetEta() const { return GetPseudoRapidity(); } */ -Double_t AliL3Track::GetRapidity() const +Double_t AliHLTTrack::GetRapidity() const { //get rap const Double_t kmpi = 0.13957; return 0.5 * log((kmpi + GetPz()) / (kmpi - GetPz())); } -void AliL3Track::Rotate(Int_t slice,Bool_t tolocal) +void AliHLTTrack::Rotate(Int_t slice,Bool_t tolocal) { //Rotate track to global parameters //If flag tolocal is set, the track is rotated @@ -136,19 +136,19 @@ void AliL3Track::Rotate(Int_t slice,Bool_t tolocal) Float_t psi[1] = {GetPsi()}; if(!tolocal) - AliL3Transform::Local2GlobalAngle(psi,slice); + AliHLTTransform::Local2GlobalAngle(psi,slice); else - AliL3Transform::Global2LocalAngle(psi,slice); + AliHLTTransform::Global2LocalAngle(psi,slice); SetPsi(psi[0]); Float_t first[3]; first[0] = GetFirstPointX(); first[1] = GetFirstPointY(); first[2] = GetFirstPointZ(); if(!tolocal) - AliL3Transform::Local2Global(first,slice); + AliHLTTransform::Local2Global(first,slice); else - AliL3Transform::Global2LocHLT(first,slice); - //AliL3Transform::Global2Local(first,slice,kTRUE); + AliHLTTransform::Global2LocHLT(first,slice); + //AliHLTTransform::Global2Local(first,slice,kTRUE); SetFirstPoint(first[0],first[1],first[2]); Float_t last[3]; @@ -156,18 +156,18 @@ void AliL3Track::Rotate(Int_t slice,Bool_t tolocal) last[1] = GetLastPointY(); last[2] = GetLastPointZ(); if(!tolocal) - AliL3Transform::Local2Global(last,slice); + AliHLTTransform::Local2Global(last,slice); else - AliL3Transform::Global2LocHLT(last,slice); - //AliL3Transform::Global2Local(last,slice,kTRUE); + AliHLTTransform::Global2LocHLT(last,slice); + //AliHLTTransform::Global2Local(last,slice,kTRUE); SetLastPoint(last[0],last[1],last[2]); Float_t center[3] = {GetCenterX(),GetCenterY(),0}; if(!tolocal) - AliL3Transform::Local2Global(center,slice); + AliHLTTransform::Local2Global(center,slice); else - AliL3Transform::Global2LocHLT(center,slice); - //AliL3Transform::Global2Local(center,slice,kTRUE); + AliHLTTransform::Global2LocHLT(center,slice); + //AliHLTTransform::Global2Local(center,slice,kTRUE); SetCenterX(center[0]); SetCenterY(center[1]); @@ -180,13 +180,13 @@ void AliL3Track::Rotate(Int_t slice,Bool_t tolocal) fIsLocal=kTRUE; } -void AliL3Track::CalculateHelix() +void AliHLTTrack::CalculateHelix() { //Calculate Radius, CenterX and CenterY from Psi, X0, Y0 - fRadius = fPt / (AliL3Transform::GetBFieldValue()); + fRadius = fPt / (AliHLTTransform::GetBFieldValue()); if(fRadius) fKappa = -fQ*1./fRadius; else fRadius = 999999; //just zero - Double_t trackPhi0 = fPsi + fQ * AliL3Transform::PiHalf(); + Double_t trackPhi0 = fPsi + fQ * AliHLTTransform::PiHalf(); fCenterX = fFirstPoint[0] - fRadius * cos(trackPhi0); fCenterY = fFirstPoint[1] - fRadius * sin(trackPhi0); @@ -195,7 +195,7 @@ void AliL3Track::CalculateHelix() SetR0(sqrt(fFirstPoint[0]*fFirstPoint[0]+fFirstPoint[1]*fFirstPoint[1])); } -Double_t AliL3Track::GetCrossingAngle(Int_t padrow,Int_t slice) +Double_t AliHLTTrack::GetCrossingAngle(Int_t padrow,Int_t slice) { //Calculate the crossing angle between track and given padrow. //Take the dot product of the tangent vector of the track, and @@ -208,9 +208,9 @@ Double_t AliL3Track::GetCrossingAngle(Int_t padrow,Int_t slice) Float_t angle=0;//Angle perpendicular to the padrow in local coordinates if(slice>=0)//Global coordinates { - AliL3Transform::Local2GlobalAngle(&angle,slice); - if(!CalculateReferencePoint(angle,AliL3Transform::Row2X(padrow))) - cerr<<"AliL3Track::GetCrossingAngle : Track does not cross line in slice "< 0) diffangle = diffangle - GetCharge()*AliL3Transform::TwoPi(); + diffangle = fmod(diffangle,AliHLTTransform::TwoPi()); + if((GetCharge()*diffangle) > 0) diffangle = diffangle - GetCharge()*AliHLTTransform::TwoPi(); Double_t stot = fabs(diffangle)*GetRadius(); Double_t zHit = GetFirstPointZ() + stot*GetTgl(); xyz[2] = zHit; @@ -272,16 +272,16 @@ Bool_t AliL3Track::GetCrossingPoint(Int_t padrow,Float_t *xyz) } -Bool_t AliL3Track::CalculateReferencePoint(Double_t angle,Double_t radius) +Bool_t AliHLTTrack::CalculateReferencePoint(Double_t angle,Double_t radius) { // Global coordinate: crossing point with y = ax+ b; - // a=tan(angle-AliL3Transform::PiHalf()); + // a=tan(angle-AliHLTTransform::PiHalf()); // const Double_t krr=radius; //position of reference plane const Double_t kxr = cos(angle) * krr; const Double_t kyr = sin(angle) * krr; - Double_t a = tan(angle-AliL3Transform::PiHalf()); + Double_t a = tan(angle-AliHLTTransform::PiHalf()); Double_t b = kyr - a * kxr; Double_t pp=(fCenterX+a*fCenterY-a*b)/(1+pow(a,2)); @@ -310,26 +310,26 @@ Bool_t AliL3Track::CalculateReferencePoint(Double_t angle,Double_t radius) Double_t pointPhi0 = atan2(fPoint[1]-fCenterY,fPoint[0]-fCenterX); Double_t trackPhi0 = atan2(fFirstPoint[1]-fCenterY,fFirstPoint[0]-fCenterX); - if(fabs(trackPhi0-pointPhi0)>AliL3Transform::Pi()){ - if(trackPhi0AliHLTTransform::Pi()){ + if(trackPhi0rmin&&r0rmin&&r1AliL3Transform::Pi()){ - if(trackPhi0AliHLTTransform::Pi()){ + if(trackPhi0AliL3Transform::Pi()){ - if(trackPhi0AliHLTTransform::Pi()){ + if(trackPhi0 //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" - -#include "AliL3Logging.h" -#include "AliL3TrackArray.h" -#include "AliL3HoughTrack.h" -#include "AliL3ModelTrack.h" -#include "AliL3ConfMapTrack.h" -#include "AliL3TrackSegmentData.h" -#include "AliL3Transform.h" -#include "AliL3ConfMapPoint.h" - -/** \class AliL3TrackArray +#include "AliHLTStandardIncludes.h" + +#include "AliHLTLogging.h" +#include "AliHLTTrackArray.h" +#include "AliHLTHoughTrack.h" +#include "AliHLTModelTrack.h" +#include "AliHLTConfMapTrack.h" +#include "AliHLTTrackSegmentData.h" +#include "AliHLTTransform.h" +#include "AliHLTConfMapPoint.h" + +/** \class AliHLTTrackArray
 //_____________________________________________________________
-// AliL3TrackArray
+// AliHLTTrackArray
 //
 // Track array class 
 //
@@ -28,9 +28,9 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3TrackArray)
+ClassImp(AliHLTTrackArray)
 
-AliL3TrackArray::AliL3TrackArray()
+AliHLTTrackArray::AliHLTTrackArray()
 {
   //Default constructor
   fSize = 0;
@@ -41,7 +41,7 @@ AliL3TrackArray::AliL3TrackArray()
 }
 
 
-AliL3TrackArray::AliL3TrackArray(Int_t ntrack)
+AliHLTTrackArray::AliHLTTrackArray(Int_t ntrack)
 {
   //Constructor.
   fSize = 0;
@@ -51,40 +51,40 @@ AliL3TrackArray::AliL3TrackArray(Int_t ntrack)
   SetSize(ntrack);
 }
 
-AliL3TrackArray::AliL3TrackArray(char* tracktype,Int_t ntrack)
+AliHLTTrackArray::AliHLTTrackArray(char* tracktype,Int_t ntrack)
 {
   //Constructor.
   fSize = 0;
   fNTracks=0;
   fNAbsent=0;
-  if(strcmp(tracktype,"AliL3Track")==0) fTrackType='t';
-  if(strcmp(tracktype,"AliL3ConfMapTrack")==0) fTrackType='c';
-  if(strcmp(tracktype,"AliL3HoughTrack")==0) fTrackType='h';
-  if(strcmp(tracktype,"AliL3ModelTrack")==0) fTrackType='m';
+  if(strcmp(tracktype,"AliHLTTrack")==0) fTrackType='t';
+  if(strcmp(tracktype,"AliHLTConfMapTrack")==0) fTrackType='c';
+  if(strcmp(tracktype,"AliHLTHoughTrack")==0) fTrackType='h';
+  if(strcmp(tracktype,"AliHLTModelTrack")==0) fTrackType='m';
   SetSize(ntrack);
 }
 
-AliL3TrackArray::AliL3TrackArray(char* tracktype)
+AliHLTTrackArray::AliHLTTrackArray(char* tracktype)
 {
   //Constructor.
   fSize = 0;
   fNTracks=0;
   fNAbsent=0;
-  if(strcmp(tracktype,"AliL3Track")==0) fTrackType='t';
-  if(strcmp(tracktype,"AliL3ConfMapTrack")==0) fTrackType='c';
-  if(strcmp(tracktype,"AliL3HoughTrack")==0) fTrackType='h';
-  if(strcmp(tracktype,"AliL3ModelTrack")==0) fTrackType='m';
+  if(strcmp(tracktype,"AliHLTTrack")==0) fTrackType='t';
+  if(strcmp(tracktype,"AliHLTConfMapTrack")==0) fTrackType='c';
+  if(strcmp(tracktype,"AliHLTHoughTrack")==0) fTrackType='h';
+  if(strcmp(tracktype,"AliHLTModelTrack")==0) fTrackType='m';
   SetSize();
 }
 
-AliL3TrackArray::~AliL3TrackArray()
+AliHLTTrackArray::~AliHLTTrackArray()
 {
   //Destructor
   DeleteArray();
 }
 
 
-AliL3Track *AliL3TrackArray::NextTrack()
+AliHLTTrack *AliHLTTrackArray::NextTrack()
 {
   //next track in array
   if(fNTracksSetPt(trs->fPt);
     track->SetPsi(trs->fPsi);
     track->SetTgl(trs->fTgl);
@@ -223,8 +223,8 @@ void AliL3TrackArray::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr){
     track->SetHits( trs->fNPoints, trs->fPointIDs );
 #ifdef ROWHOUGHPARAMS
     if(GetTrackType()=='h') {
-      ((AliL3HoughTrack *)track)->SetWeight(trs->fWeight);
-      ((AliL3HoughTrack *)track)->SetBinXY(trs->fBinX,trs->fBinY,trs->fBinXSize,trs->fBinYSize);
+      ((AliHLTHoughTrack *)track)->SetWeight(trs->fWeight);
+      ((AliHLTHoughTrack *)track)->SetBinXY(trs->fBinX,trs->fBinY,trs->fBinXSize,trs->fBinYSize);
     }
     track->SetMCid(trs->fTrackID);
     track->SetRowRange(trs->fRowRange1,trs->fRowRange2);
@@ -232,22 +232,22 @@ void AliL3TrackArray::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr){
     track->SetPID(trs->fPID);
 #endif
     UChar_t *tmpP = (UChar_t*)trs;
-    tmpP += sizeof(AliL3TrackSegmentData)+trs->fNPoints*sizeof(UInt_t);
-    trs = (AliL3TrackSegmentData*)tmpP;
+    tmpP += sizeof(AliHLTTrackSegmentData)+trs->fNPoints*sizeof(UInt_t);
+    trs = (AliHLTTrackSegmentData*)tmpP;
   }
 }
 
-void AliL3TrackArray::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr,Int_t slice)
+void AliHLTTrackArray::FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr,Int_t slice)
 {
   //Read tracks from shared memory (or memory)
-  AliL3TrackSegmentData *trs = tr;
+  AliHLTTrackSegmentData *trs = tr;
   for(Int_t i=0; iSetPt(trs->fPt);
     track->SetPterr(trs->fPterr);
     Float_t psi[1];
     psi[0]=trs->fPsi;
-    AliL3Transform::Local2GlobalAngle(psi,slice);
+    AliHLTTransform::Local2GlobalAngle(psi,slice);
     track->SetPsi(psi[0]);
     track->SetTgl(trs->fTgl);
     track->SetPsierr(trs->fPsierr);
@@ -256,17 +256,17 @@ void AliL3TrackArray::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr,Int_t
     track->SetCharge(trs->fCharge);
     Float_t first[3];
     first[0]=trs->fX;first[1]=trs->fY;first[2]=trs->fZ;
-    AliL3Transform::Local2Global(first,slice);
+    AliHLTTransform::Local2Global(first,slice);
     track->SetFirstPoint(first[0],first[1],first[2]);
     Float_t last[3];
     last[0]=trs->fLastX;last[1]=trs->fLastY;last[2]=trs->fLastZ;
-    AliL3Transform::Local2Global(last,slice);
+    AliHLTTransform::Local2Global(last,slice);
     track->SetLastPoint(last[0],last[1],last[2]);
     track->SetHits( trs->fNPoints, trs->fPointIDs );
 #ifdef ROWHOUGHPARAMS
     if(GetTrackType()=='h') {
-      ((AliL3HoughTrack *)track)->SetWeight(trs->fWeight);
-      ((AliL3HoughTrack *)track)->SetBinXY(trs->fBinX,trs->fBinY,trs->fBinXSize,trs->fBinYSize);
+      ((AliHLTHoughTrack *)track)->SetWeight(trs->fWeight);
+      ((AliHLTHoughTrack *)track)->SetBinXY(trs->fBinX,trs->fBinY,trs->fBinXSize,trs->fBinYSize);
     }
     track->SetMCid(trs->fTrackID);
     track->SetRowRange(trs->fRowRange1,trs->fRowRange2);
@@ -274,41 +274,41 @@ void AliL3TrackArray::FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr,Int_t
     track->SetPID(trs->fPID);
 #endif
     UChar_t *tmpP = (UChar_t*)trs;
-    tmpP += sizeof(AliL3TrackSegmentData)+trs->fNPoints*sizeof(UInt_t);
-    trs = (AliL3TrackSegmentData*)tmpP;
+    tmpP += sizeof(AliHLTTrackSegmentData)+trs->fNPoints*sizeof(UInt_t);
+    trs = (AliHLTTrackSegmentData*)tmpP;
   }
 }
 
-UInt_t AliL3TrackArray::GetOutSize()
+UInt_t AliHLTTrackArray::GetOutSize()
 {
   //get size for IO
   UInt_t count = GetOutCount();   //use only present tracks
   UInt_t tHits = 0;
   for(Int_t i=0;iGetNHits();
   }
 
   //calculate size of track
-  return count*sizeof(AliL3TrackSegmentData)+sizeof(UInt_t)*tHits;
+  return count*sizeof(AliHLTTrackSegmentData)+sizeof(UInt_t)*tHits;
 }
 
-UInt_t AliL3TrackArray::WriteTracks(UInt_t & ntracks,AliL3TrackSegmentData* tr)
+UInt_t AliHLTTrackArray::WriteTracks(UInt_t & ntracks,AliHLTTrackSegmentData* tr)
 {
   //write tracks
   ntracks = GetOutCount();
   return WriteTracks(tr);
 }
 
-UInt_t AliL3TrackArray::WriteTracks(AliL3TrackSegmentData* tr)
+UInt_t AliHLTTrackArray::WriteTracks(AliHLTTrackSegmentData* tr)
 {
   //if(GetTrackType()=='c') return WriteConfMapTracks(tr);
-  AliL3TrackSegmentData *tP = tr;
+  AliHLTTrackSegmentData *tP = tr;
   UInt_t *pP;
   UInt_t size = 0;
   for(Int_t i=0; ifX = track->GetFirstPointX();
     tP->fY = track->GetFirstPointY();
@@ -326,11 +326,11 @@ UInt_t AliL3TrackArray::WriteTracks(AliL3TrackSegmentData* tr)
     tP->fNPoints = track->GetNHits();
 #ifdef ROWHOUGHPARAMS
     if(GetTrackType()=='h') {
-      tP->fWeight = ((AliL3HoughTrack *)track)->GetWeight();
-      tP->fBinX = ((AliL3HoughTrack *)track)->GetBinX();
-      tP->fBinY = ((AliL3HoughTrack *)track)->GetBinY();
-      tP->fBinXSize = ((AliL3HoughTrack *)track)->GetSizeX();
-      tP->fBinYSize = ((AliL3HoughTrack *)track)->GetSizeY();
+      tP->fWeight = ((AliHLTHoughTrack *)track)->GetWeight();
+      tP->fBinX = ((AliHLTHoughTrack *)track)->GetBinX();
+      tP->fBinY = ((AliHLTHoughTrack *)track)->GetBinY();
+      tP->fBinXSize = ((AliHLTHoughTrack *)track)->GetSizeX();
+      tP->fBinYSize = ((AliHLTHoughTrack *)track)->GetSizeY();
     }
     tP->fTrackID = track->GetMCid();
     tP->fRowRange1 = track->GetFirstRow();
@@ -343,24 +343,24 @@ UInt_t AliL3TrackArray::WriteTracks(AliL3TrackSegmentData* tr)
       tP->fPointIDs[j] = pP[j];
     }
     Byte_t *tmpP = (Byte_t *)tP;
-    tmpP += sizeof(AliL3TrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
-    size += sizeof(AliL3TrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
-    tP = (AliL3TrackSegmentData*)tmpP;
+    tmpP += sizeof(AliHLTTrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
+    size += sizeof(AliHLTTrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
+    tP = (AliHLTTrackSegmentData*)tmpP;
   }
   return size;
 }
 
-UInt_t AliL3TrackArray::WriteConfMapTracks(AliL3TrackSegmentData* tr)
+UInt_t AliHLTTrackArray::WriteConfMapTracks(AliHLTTrackSegmentData* tr)
 {
   // use first and last point objects
-  AliL3TrackSegmentData *tP = tr;
+  AliHLTTrackSegmentData *tP = tr;
   UInt_t *pP;
   UInt_t size = 0;
   for(Int_t i=0; iGetLastHit();
-    AliL3ConfMapPoint *lastHit = (AliL3ConfMapPoint*)track->GetFirstHit();
+    AliHLTConfMapPoint *hit = (AliHLTConfMapPoint*)track->GetLastHit();
+    AliHLTConfMapPoint *lastHit = (AliHLTConfMapPoint*)track->GetFirstHit();
     tP->fX = hit->GetX();
     tP->fY = hit->GetY();
     tP->fZ = hit->GetZ();
@@ -394,45 +394,45 @@ UInt_t AliL3TrackArray::WriteConfMapTracks(AliL3TrackSegmentData* tr)
       tP->fPointIDs[j] = pP[j];
     }
     Byte_t *tmpP = (Byte_t *)tP;
-    tmpP += sizeof(AliL3TrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
-    size +=sizeof(AliL3TrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
-    tP = (AliL3TrackSegmentData*)tmpP;
+    tmpP += sizeof(AliHLTTrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
+    size +=sizeof(AliHLTTrackSegmentData)+tP->fNPoints*sizeof(UInt_t);
+    tP = (AliHLTTrackSegmentData*)tmpP;
   }
   return size;
 }
 
-void AliL3TrackArray::AddLast(AliL3Track *track)
+void AliHLTTrackArray::AddLast(AliHLTTrack *track)
 {
   //add track to last position
-  AliL3Track *tpt = NextTrack();
+  AliHLTTrack *tpt = NextTrack();
   tpt->Set(track);
   
 }
 
-void AliL3TrackArray::AddTracks(AliL3TrackArray *newtrack,Bool_t remove_old,Int_t slice)
+void AliHLTTrackArray::AddTracks(AliHLTTrackArray *newtrack,Bool_t remove_old,Int_t slice)
 {
   //add tracks
   if(GetTrackType() != newtrack->GetTrackType() && GetTrackType()!='t')
     {
-      LOG(AliL3Log::kError,"AliL3TrackArray::AddTracks","Track types")
+      LOG(AliHLTLog::kError,"AliHLTTrackArray::AddTracks","Track types")
 	<<"Bad idea to add tracks of different types"<GetNPresent())
     SetSize(fSize+newtrack->GetSize());
   for(Int_t i =0;iGetNTracks();i++){
-    AliL3Track *tpt = newtrack->GetCheckedTrack(i);
+    AliHLTTrack *tpt = newtrack->GetCheckedTrack(i);
     if(!tpt) continue;
     if(remove_old)
       newtrack->Remove(i);
-    AliL3Track *track = NextTrack();
+    AliHLTTrack *track = NextTrack();
     track->Set(tpt);
     if(slice>=0)
       track->Rotate(slice); //Rotate track to global coordinates
     /*
-      AliL3Track *track;
+      AliHLTTrack *track;
       if(GetTrackType()=='h')
-      track = (AliL3HoughTrack*)NextTrack();
+      track = (AliHLTHoughTrack*)NextTrack();
       else
       track = NextTrack();
       track->Set(tpt);
@@ -440,11 +440,11 @@ void AliL3TrackArray::AddTracks(AliL3TrackArray *newtrack,Bool_t remove_old,Int_
   }
 }
 
-void AliL3TrackArray::Compress()
+void AliHLTTrackArray::Compress()
 {
   //compress array
   if(GetNPresent()==GetNTracks()) return;
-  AliL3Track **tmp =  new AliL3Track *[fNTracks];
+  AliHLTTrack **tmp =  new AliHLTTrack *[fNTracks];
   Int_t present=0;
   Int_t absent=GetNPresent();
   for(Int_t i=0;iGetWeight() < trb->GetWeight()) return 1;
     if(tra->GetWeight() > trb->GetWeight()) return -1;
     }
diff --git a/HLT/src/AliHLTTrackArray.h b/HLT/src/AliHLTTrackArray.h
new file mode 100644
index 00000000000..12ab25c58da
--- /dev/null
+++ b/HLT/src/AliHLTTrackArray.h
@@ -0,0 +1,65 @@
+// @(#) $Id$
+
+#ifndef ALIL3TRACKARRAY_H
+#define ALIL3TRACKARRAY_H
+
+#include "AliHLTRootTypes.h"
+
+class AliHLTConfMapTrack;
+class AliHLTTrack;
+class AliHLTTrackSegmentData;
+
+class AliHLTTrackArray {
+
+ private:
+
+  Char_t fTrackType; //track type
+  Int_t fSize; //size of arra
+  Bool_t *fIsPresent;//!
+  Int_t fNAbsent; //ntracks absent
+
+  AliHLTTrack **fTrack;//!
+  Int_t fNTracks; //ntracks in
+
+  UInt_t WriteConfMapTracks(AliHLTTrackSegmentData* tr); 
+  void DeleteArray();
+
+ public:
+  AliHLTTrackArray();
+  AliHLTTrackArray(Int_t ntrack);
+  AliHLTTrackArray(char* tracktype,Int_t ntrack);
+  AliHLTTrackArray(char* tracktype);
+  virtual ~AliHLTTrackArray();
+  Int_t GetTrackType(){return fTrackType;}
+  Int_t GetSize() const {return fSize;}
+  Bool_t SetSize(Int_t newsize=2000);
+
+  Int_t GetNPresent() const {return (fNTracks- fNAbsent);}
+  Int_t GetNTracks() const {return fNTracks;}
+  AliHLTTrack *NextTrack();
+  AliHLTTrack *GetCheckedTrack(Int_t t){if(fIsPresent[t]) return fTrack[t]; return 0;}
+  AliHLTTrack *GetTrack(Int_t t){return fTrack[t];}
+
+  void Remove(Int_t track); 
+  void RemoveLast() {fNTracks--;}
+  void Compress();
+  void Reset();
+  void QSort();
+  void QSort( AliHLTTrack **a, Int_t first, Int_t last);
+  Int_t TrackCompare(AliHLTTrack *a, AliHLTTrack *b) const;
+
+  void FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr,Int_t slice); //Fill tracks and transform
+  void FillTracks(Int_t ntracks, AliHLTTrackSegmentData* tr); //Fill tracks
+  UInt_t WriteTracks(AliHLTTrackSegmentData* tr); //Write tracks
+  UInt_t WriteTracks(UInt_t & ntracks,AliHLTTrackSegmentData* tr); //Write tracks
+  UInt_t GetOutSize();
+  UInt_t GetOutCount(){return (UInt_t) GetNPresent();}
+  void AddTracks(AliHLTTrackArray *newtrack,Bool_t remove_old=kTRUE,Int_t slice=-1);//add all Tracks to this 
+  void AddLast(AliHLTTrack *track);
+
+  ClassDef(AliHLTTrackArray,1) //Track array class
+};
+
+typedef AliHLTTrackArray AliL3TrackArray; // for backward compatibility
+
+#endif
diff --git a/HLT/src/AliL3TrackMerger.cxx b/HLT/src/AliHLTTrackMerger.cxx
similarity index 67%
rename from HLT/src/AliL3TrackMerger.cxx
rename to HLT/src/AliHLTTrackMerger.cxx
index 0bd883e00c3..d3f7d7514a3 100644
--- a/HLT/src/AliL3TrackMerger.cxx
+++ b/HLT/src/AliHLTTrackMerger.cxx
@@ -3,32 +3,32 @@
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
 
-/** \class AliL3TrackMerger
+/** \class AliHLTTrackMerger
 
 //_____________________________________________________________
-// AliL3TrackMerger
+// AliHLTTrackMerger
 //
 // The L3 track segment merger
 //
 
= 3 using namespace std; #endif -ClassImp(AliL3TrackMerger) +ClassImp(AliHLTTrackMerger) -AliL3TrackMerger::AliL3TrackMerger(){ +AliHLTTrackMerger::AliHLTTrackMerger(){ //Default constructor Is2Global(kFALSE); fSlow = kFALSE; @@ -38,7 +38,7 @@ AliL3TrackMerger::AliL3TrackMerger(){ } -AliL3TrackMerger::AliL3TrackMerger(Int_t nsubsectors) : AliL3Merger() +AliHLTTrackMerger::AliHLTTrackMerger(Int_t nsubsectors) : AliHLTMerger() { //Constructor. InitMerger(nsubsectors); @@ -51,11 +51,11 @@ AliL3TrackMerger::AliL3TrackMerger(Int_t nsubsectors) : AliL3Merger() } -AliL3TrackMerger::~AliL3TrackMerger(){ +AliHLTTrackMerger::~AliHLTTrackMerger(){ //Destructor } -void AliL3TrackMerger::SetRows(Int_t *row){ +void AliHLTTrackMerger::SetRows(Int_t *row){ //Set the indeces of the first and last //TPC padrows // @@ -65,7 +65,7 @@ void AliL3TrackMerger::SetRows(Int_t *row){ } } -void AliL3TrackMerger::InitSector(Int_t slice,Int_t subsector){ +void AliHLTTrackMerger::InitSector(Int_t slice,Int_t subsector){ // // Select Sector and subsector. The following FillTracks call will // fill this subsector @@ -75,25 +75,25 @@ void AliL3TrackMerger::InitSector(Int_t slice,Int_t subsector){ fCurrentTracks = fSubSector; } -void AliL3TrackMerger::SlowMerge(AliL3TrackArray *mergedtrack,AliL3TrackArray *tracksin,AliL3TrackArray *tracksout,Double_t xval){ +void AliHLTTrackMerger::SlowMerge(AliHLTTrackArray *mergedtrack,AliHLTTrackArray *tracksin,AliHLTTrackArray *tracksout,Double_t xval){ // - // Slow merging of two AliL3TrackArrays + // Slow merging of two AliHLTTrackArrays // at reference plane x=xval // void *ntuple=GetNtuple(); const Int_t kNOut=tracksout->GetNTracks(); const Int_t kNIn =tracksin->GetNTracks(); const Int_t kNMerged =mergedtrack->GetNTracks(); - AliL3Track *tracks[2]; + AliHLTTrack *tracks[2]; Bool_t merge = kTRUE; while(merge){ Int_t inmin=-1,outmin=-1; Double_t min=10; for(Int_t out=0;outGetCheckedTrack(out); + AliHLTTrack *outertrack=tracksout->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in=0;inGetCheckedTrack(in); + AliHLTTrack *innertrack=tracksin->GetCheckedTrack(in); if(!innertrack) continue; Double_t diff = TrackDiff(innertrack,outertrack); if(diff>=0&&diff=0&&outmin>=0){ - AliL3Track *outertrack=tracksout->GetTrack(outmin); - AliL3Track *innertrack=tracksin->GetTrack(inmin); + AliHLTTrack *outertrack=tracksout->GetTrack(outmin); + AliHLTTrack *innertrack=tracksin->GetTrack(inmin); tracks[0]=innertrack; tracks[1]=outertrack; SortTracks(tracks,2); @@ -121,8 +121,8 @@ void AliL3TrackMerger::SlowMerge(AliL3TrackArray *mergedtrack,AliL3TrackArray *t } else merge = kFALSE; } - LOG(AliL3Log::kInformational,"AliL3TrackMerger::SlowMerge","Result") - <GetNTracks()-kNMerged<GetNTracks(); - AliL3Track *tr[2]; + AliHLTTrack *tr[2]; for(Int_t in=0;inGetCheckedTrack(in); + AliHLTTrack *t = tracks->GetCheckedTrack(in); if(t){ t->CalculateHelix(); t->CalculatePoint(xval); } } for(Int_t out=0;outGetCheckedTrack(out); + AliHLTTrack *outertrack=tracks->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in=0;inGetCheckedTrack(in); + AliHLTTrack *innertrack=tracks->GetCheckedTrack(in); if(!innertrack) continue; if(outertrack->GetNHits()+innertrack->GetNHits()>nrow) continue; @@ -177,33 +177,33 @@ void AliL3TrackMerger::InterMerge(){ } } Int_t nmerged = tracks->GetNTracks()-kNIn; - LOG(AliL3Log::kInformational,"AliL3TrackMerger::InterMerge","Result") - <AddTracks(GetInTracks(0)); - LOG(AliL3Log::kInformational,"AliL3TrackMerger::Merge","Result") - <GetNPresent() + LOG(AliHLTLog::kInformational,"AliHLTTrackMerger::Merge","Result") + <GetNPresent() <=0;i--){ - AliL3TrackArray *tout = GetOutTracks(); + AliHLTTrackArray *tout = GetOutTracks(); if(i==subsec) tout = GetInTracks(subsec+1); - AliL3TrackArray *tin = GetInTracks(i); - Double_t xval = AliL3Transform::Row2X(fRowMax[i]); - Double_t xmax = AliL3Transform::Row2X(fRowMax[i+1]); + AliHLTTrackArray *tin = GetInTracks(i); + Double_t xval = AliHLTTransform::Row2X(fRowMax[i]); + Double_t xmax = AliHLTTransform::Row2X(fRowMax[i+1]); Double_t ymax = xval*tan(edge0); for(Int_t out=0;outGetNTracks();out++){ - AliL3Track *outtrack=tout->GetCheckedTrack(out); + AliHLTTrack *outtrack=tout->GetCheckedTrack(out); if(!outtrack) continue; outtrack->CalculateHelix(); outtrack->CalculatePoint(xval); @@ -214,7 +214,7 @@ void AliL3TrackMerger::Merge(){ } // tout->Compress(); for(Int_t in=0;inGetNTracks();in++){ - AliL3Track *intrack=(AliL3Track*)tin->GetTrack(in); + AliHLTTrack *intrack=(AliHLTTrack*)tin->GetTrack(in); intrack->CalculateHelix(); intrack->CalculatePoint(xval); } @@ -224,7 +224,7 @@ void AliL3TrackMerger::Merge(){ if(fSlow) SlowMerge(ttt,tin,tout,xval); else Merge(ttt,tin,tout); for(Int_t in=0;inGetNTracks();in++){ - AliL3Track *intrack=(AliL3Track*)tin->GetCheckedTrack(in); + AliHLTTrack *intrack=(AliHLTTrack*)tin->GetCheckedTrack(in); if(!intrack) continue; if(intrack->CalculateEdgePoint(edge0)){ if(intrack->GetPointX()GetNTracks();in++){ - AliL3Track *intrack=(AliL3Track*)tin->GetCheckedTrack(in); + AliHLTTrack *intrack=(AliHLTTrack*)tin->GetCheckedTrack(in); if(!intrack) continue; if(intrack->GetNHits()<10) continue; AddTrack(ttt,intrack); @@ -249,14 +249,14 @@ void AliL3TrackMerger::Merge(){ } */ } // end subsector loop - LOG(AliL3Log::kInformational,"AliL3TrackMerger::Merge","Result") - <GetNPresent() + LOG(AliHLTLog::kInformational,"AliHLTTrackMerger::Merge","Result") + <GetNPresent() <GetNTracks(); const Int_t kNIn =tracksin->GetNTracks(); @@ -269,11 +269,11 @@ Int_t AliL3TrackMerger::Merge(AliL3TrackArray* mergedtrack,AliL3TrackArray *trac for(Int_t out =0;outGetCheckedTrack(out); + AliHLTTrack *outertrack=(AliHLTTrack*)tracksout->GetCheckedTrack(out); if(!outertrack) continue; for(Int_t in =0;inGetCheckedTrack(in); + AliHLTTrack *innertrack=(AliHLTTrack*)tracksin->GetCheckedTrack(in); if(!innertrack) continue; if(outertrack==innertrack) continue; if(outertrack->GetCharge()!=innertrack->GetCharge()) continue; @@ -293,8 +293,8 @@ Int_t AliL3TrackMerger::Merge(AliL3TrackArray* mergedtrack,AliL3TrackArray *trac } Int_t nmerged = mergedtrack->GetNTracks()-kNMerged; - LOG(AliL3Log::kInformational,"AliL3TrackMerger::Merge","Result") - < #endif -#include "AliL3Logging.h" -#include "AliL3Transform.h" +#include "AliHLTLogging.h" +#include "AliHLTTransform.h" #if defined(__GNUC__) && __GNUC__ >= 3 using namespace std; #endif -/** \class AliL3Transform +/** \class AliHLTTransform
 //_____________________________________________________________
-// AliL3Transform
+// AliHLTTransform
 //
 // Transformation class for ALICE TPC.
 //
@@ -41,14 +41,14 @@ using namespace std;
 // The class is completely static, which means that no object needs
 // to be instantiated. Function calls should then be done like, e.g.:
 //
-// Double_t eta = AliL3Transform::GetEta(xyz);
+// Double_t eta = AliHLTTransform::GetEta(xyz);
 //
 // IMPORTANT: If used as is, default detector parameters will be used,
 //            and you really have to make sure that these correspond to
 //            the AliROOT version you are currently working on!!
 //            You should therefore always initialize the parameters by
 //
-//            AliL3Transform::Init(path);
+//            AliHLTTransform::Init(path);
 // 
 //            where path is a char*, giving the path to where file containing
 //            the detector parameter is located. This file should be called
@@ -57,7 +57,7 @@ using namespace std;
 //            You can also force reading the parameters from a AliTPCParam object
 //            by setting the flag;
 //
-//            AliL3Transform::Init(path,kTRUE);
+//            AliHLTTransform::Init(path,kTRUE);
 //
 //            where path is a char* 
 //            either providing the rootfile name containing the geometry or 
@@ -74,55 +74,55 @@ using namespace std;
 
*/ -ClassImp(AliL3Transform) +ClassImp(AliHLTTransform) -const Double_t AliL3Transform::fgkAnodeWireSpacing = 0.25; //Taken from the TDR -const Double_t AliL3Transform::fgkBFACT = 0.0029980; //Conversion Factor -const Double_t AliL3Transform::fgkPi = 3.141592653589793; -const Double_t AliL3Transform::fgk2Pi = 2*3.141592653589793; -const Double_t AliL3Transform::fgkPi2 = 0.5*3.141592653589793; -const Double_t AliL3Transform::fgkToDeg = 180/3.141592653589793; +const Double_t AliHLTTransform::fgkAnodeWireSpacing = 0.25; //Taken from the TDR +const Double_t AliHLTTransform::fgkBFACT = 0.0029980; //Conversion Factor +const Double_t AliHLTTransform::fgkPi = 3.141592653589793; +const Double_t AliHLTTransform::fgk2Pi = 2*3.141592653589793; +const Double_t AliHLTTransform::fgkPi2 = 0.5*3.141592653589793; +const Double_t AliHLTTransform::fgkToDeg = 180/3.141592653589793; //Defined by HLT and GSI -Int_t AliL3Transform::fgNPatches = 6; -Int_t AliL3Transform::fgRows[6][2] = {{0,29},{30,62},{63,90},{91,116},{117,139},{140,158}}; -Int_t AliL3Transform::fgNRows[6] = {30,33,28,26,23,19}; +Int_t AliHLTTransform::fgNPatches = 6; +Int_t AliHLTTransform::fgRows[6][2] = {{0,29},{30,62},{63,90},{91,116},{117,139},{140,158}}; +Int_t AliHLTTransform::fgNRows[6] = {30,33,28,26,23,19}; // The following definition is generated by MakeInitFile function -Double_t AliL3Transform::fgBField = 0.2; -Double_t AliL3Transform::fgSolenoidBField = 2; -Double_t AliL3Transform::fgBFieldFactor = 1; -Int_t AliL3Transform::fgVersion = kVdefault; -Int_t AliL3Transform::fgNTimeBins = 446; -Int_t AliL3Transform::fgNRowLow = 63; -Int_t AliL3Transform::fgNRowUp = 96; -Int_t AliL3Transform::fgNRowUp1 = 64; -Int_t AliL3Transform::fgNRowUp2 = 32; -Int_t AliL3Transform::fgNSectorLow = 36; -Int_t AliL3Transform::fgNSectorUp = 36; -Int_t AliL3Transform::fgNSector = 72; -Double_t AliL3Transform::fgPadPitchWidthLow = 0.4; -Double_t AliL3Transform::fgPadPitchWidthUp = 0.6; -Double_t AliL3Transform::fgZWidth = 0.5660; -Double_t AliL3Transform::fgZSigma = 0.2288; -Double_t AliL3Transform::fgZLength = 250.0000; -Double_t AliL3Transform::fgZOffset = 0.6864; -Double_t AliL3Transform::fgDiffT = 0.0220; -Double_t AliL3Transform::fgDiffL = 0.0220; -Double_t AliL3Transform::fgOmegaTau = 0.1450; -Double_t AliL3Transform::fgInnerPadLength = 0.75; -Double_t AliL3Transform::fgOuter1PadLength = 1.00; -Double_t AliL3Transform::fgOuter2PadLength = 1.50; -Double_t AliL3Transform::fgInnerPRFSigma = 0.203811; -Double_t AliL3Transform::fgOuter1PRFSigma = 0.299325; -Double_t AliL3Transform::fgOuter2PRFSigma = 0.299323; -Double_t AliL3Transform::fgTimeSigma = 0.228809; -Int_t AliL3Transform::fgADCSat = 1024; -Int_t AliL3Transform::fgZeroSup = 0; -Int_t AliL3Transform::fgNSlice = 36; -Int_t AliL3Transform::fgNRow = 159; -Double_t AliL3Transform::fgNRotShift = 0.5; -Int_t AliL3Transform::fgSlice2Sector[36][2] = { { 0, 36}, +Double_t AliHLTTransform::fgBField = 0.2; +Double_t AliHLTTransform::fgSolenoidBField = 2; +Double_t AliHLTTransform::fgBFieldFactor = 1; +Int_t AliHLTTransform::fgVersion = kVdefault; +Int_t AliHLTTransform::fgNTimeBins = 446; +Int_t AliHLTTransform::fgNRowLow = 63; +Int_t AliHLTTransform::fgNRowUp = 96; +Int_t AliHLTTransform::fgNRowUp1 = 64; +Int_t AliHLTTransform::fgNRowUp2 = 32; +Int_t AliHLTTransform::fgNSectorLow = 36; +Int_t AliHLTTransform::fgNSectorUp = 36; +Int_t AliHLTTransform::fgNSector = 72; +Double_t AliHLTTransform::fgPadPitchWidthLow = 0.4; +Double_t AliHLTTransform::fgPadPitchWidthUp = 0.6; +Double_t AliHLTTransform::fgZWidth = 0.5660; +Double_t AliHLTTransform::fgZSigma = 0.2288; +Double_t AliHLTTransform::fgZLength = 250.0000; +Double_t AliHLTTransform::fgZOffset = 0.6864; +Double_t AliHLTTransform::fgDiffT = 0.0220; +Double_t AliHLTTransform::fgDiffL = 0.0220; +Double_t AliHLTTransform::fgOmegaTau = 0.1450; +Double_t AliHLTTransform::fgInnerPadLength = 0.75; +Double_t AliHLTTransform::fgOuter1PadLength = 1.00; +Double_t AliHLTTransform::fgOuter2PadLength = 1.50; +Double_t AliHLTTransform::fgInnerPRFSigma = 0.203811; +Double_t AliHLTTransform::fgOuter1PRFSigma = 0.299325; +Double_t AliHLTTransform::fgOuter2PRFSigma = 0.299323; +Double_t AliHLTTransform::fgTimeSigma = 0.228809; +Int_t AliHLTTransform::fgADCSat = 1024; +Int_t AliHLTTransform::fgZeroSup = 0; +Int_t AliHLTTransform::fgNSlice = 36; +Int_t AliHLTTransform::fgNRow = 159; +Double_t AliHLTTransform::fgNRotShift = 0.5; +Int_t AliHLTTransform::fgSlice2Sector[36][2] = { { 0, 36}, { 1, 37}, { 2, 38}, { 3, 39}, @@ -160,7 +160,7 @@ Int_t AliL3Transform::fgSlice2Sector[36][2] = { { 0, 36}, {35, 71} }; -Int_t AliL3Transform::fgSector2Slice[72] = { 0, +Int_t AliHLTTransform::fgSector2Slice[72] = { 0, 1, 2, 3, @@ -234,7 +234,7 @@ Int_t AliL3Transform::fgSector2Slice[72] = { 0, 35 }; -Int_t AliL3Transform::fgSectorLow[72] = { 1, +Int_t AliHLTTransform::fgSectorLow[72] = { 1, 1, 1, 1, @@ -308,7 +308,7 @@ Int_t AliL3Transform::fgSectorLow[72] = { 1, 0 }; -Double_t AliL3Transform::fgX[159] = { 85.195, +Double_t AliHLTTransform::fgX[159] = { 85.195, 85.945, 86.695, 87.445, @@ -469,7 +469,7 @@ Double_t AliL3Transform::fgX[159] = { 85.195, 245.930 }; -Int_t AliL3Transform::fgNPads[159] = {67, +Int_t AliHLTTransform::fgNPads[159] = {67, 67, 69, 69, @@ -630,7 +630,7 @@ Int_t AliL3Transform::fgNPads[159] = {67, 139 }; -Double_t AliL3Transform::fgCos[36] = { 0.9848077297, +Double_t AliHLTTransform::fgCos[36] = { 0.9848077297, 0.8660253882, 0.6427876353, 0.3420201540, @@ -668,7 +668,7 @@ Double_t AliL3Transform::fgCos[36] = { 0.9848077297, 0.9848077297 }; -Double_t AliL3Transform::fgSin[36] = { 0.1736481786, +Double_t AliHLTTransform::fgSin[36] = { 0.1736481786, 0.5000000000, 0.7660444379, 0.9396926165, @@ -707,18 +707,18 @@ Double_t AliL3Transform::fgSin[36] = { 0.1736481786, }; #ifdef use_aliroot -Bool_t AliL3Transform::Init(AliRunLoader *runLoader) +Bool_t AliHLTTransform::Init(AliRunLoader *runLoader) { //init with runloader if(!runLoader) { - LOG(AliL3Log::kFatal,"AliL3Transform::Init","RunLoader") + LOG(AliHLTLog::kFatal,"AliHLTTransform::Init","RunLoader") <<" Missing RunLoader! 0x0"<CdGAFile(); @@ -726,7 +726,7 @@ Bool_t AliL3Transform::Init(AliRunLoader *runLoader) savedir1->cd(); if(!param) { - LOG(AliL3Log::kFatal,"AliL3Transform::Init","File") + LOG(AliHLTLog::kFatal,"AliHLTTransform::Init","File") <<"No TPC parameters found!"<IsOpen()) { - LOG(AliL3Log::kError,"AliL3Transform::Init","File") + LOG(AliHLTLog::kError,"AliHLTTransform::Init","File") <<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !"<GetNRowUp2(); fgNRow= fgNRowLow + fgNRowUp; if(fgNRow!=159){ - LOG(AliL3Log::kError,"AliL3Transform::Init","fNRow") + LOG(AliHLTLog::kError,"AliHLTTransform::Init","fNRow") <<"Number of rows have changed in ALIROOT"<Get("gAlice"); if(!gAlice) { - LOG(AliL3Log::kError,"AliL3Transform::MakeInitFile","File") + LOG(AliHLTLog::kError,"AliHLTTransform::MakeInitFile","File") <<"No gAlice in file: "<Get(GetParamName()); if(!param) { - LOG(AliL3Log::kWarning,"AliL3Transform::MakeInitFile","File") + LOG(AliHLTLog::kWarning,"AliHLTTransform::MakeInitFile","File") <<"No TPC parameters found in \""<IsOpen()) { - LOG(AliL3Log::kError,"AliL3Transform::MakeInitFile","File") + LOG(AliHLTLog::kError,"AliHLTTransform::MakeInitFile","File") <<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !"<GetNRowUp2(); fgNRow= fgNRowLow + fgNRowUp; if(fgNRow!=159){ - LOG(AliL3Log::kError,"AliL3Transform::MakeInitFile","fNRow") + LOG(AliHLTLog::kError,"AliHLTTransform::MakeInitFile","fNRow") <<"Number of rows have changed in ALIROOT"<= fgNRow) { - LOG(AliL3Log::kError,"AliL3Transform::GetNPads","Row") - <= 6) { - LOG(AliL3Log::kError,"AliL3Transform::GetFirstRow","Patch") - <= 6) { - LOG(AliL3Log::kError,"AliL3Transform::GetLastRow","Patch") - <= 6) { - LOG(AliL3Log::kError,"AliL3Transform::GetFirstRow","Patch") - <= 6) { - LOG(AliL3Log::kError,"AliL3Transform::GetLastRow","Patch") - <= 6) { - LOG(AliL3Log::kError,"AliL3Transform::GetNRows","Patch") - < 250) { - LOG(AliL3Log::kError,"AliL3Transform::GetPadRow","X-value") - <= fgNRow) { - LOG(AliL3Log::kError,"AliL3Transform::GetPatch","Padrow") - <= fgNRow){ - LOG(AliL3Log::kError,"AliL3Transform::GetPadLength","Padrow") - < fgNPatches) { - LOG(AliL3Log::kError,"AliL3Transform::GetPadPitchWidth","patct") - < 0) - drift = AliL3Transform::GetZLength() - z; + drift = AliHLTTransform::GetZLength() - z; else - drift = AliL3Transform::GetZLength() + z; + drift = AliHLTTransform::GetZLength() + z; Double_t t1 = fgZSigma*fgZSigma; Double_t t2 = fgDiffL*fgDiffL*drift; @@ -1497,13 +1497,13 @@ Double_t AliL3Transform::GetParSigmaZ2(Int_t padrow,Float_t z,Float_t tgl) return (t1 + t2 + t3); } -Double_t AliL3Transform::GetPRFSigma(Int_t padrow) +Double_t AliHLTTransform::GetPRFSigma(Int_t padrow) { //get sigma of pad response function for padrow if(padrow >= fgNRow){ - LOG(AliL3Log::kError,"AliL3Transform::GetPRFSigma","Padrow") - <=fgNRow){ - LOG(AliL3Log::kError,"AliL3Transform::Slice2Sector","Slicerow") - <=fgNSlice){ - LOG(AliL3Log::kError,"AliL3Transform::Slice2Sector","Slice") - <=fgNSector){ - LOG(AliL3Log::kError,"AliL3Transform::Sector2Slice","Sector") - <=fgNSector){ - LOG(AliL3Log::kError,"AliL3Transform::Sector2Slice","Sector") - <=fgNRowLow){ - LOG(AliL3Log::kError,"AliL3Transform::Sector2Slice","Row") - <=fgNRowUp){ - LOG(AliL3Log::kError,"AliL3Transform::Sector2Slice","Row") - <=fgNRow){ - LOG(AliL3Log::kError,"AliL3Transform::Row2X","Slicerow") - < //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" -#include "AliL3RootTypes.h" -#include "AliL3Logging.h" -#include "AliL3VertexData.h" -#include "AliL3Vertex.h" +#include "AliHLTStandardIncludes.h" +#include "AliHLTRootTypes.h" +#include "AliHLTLogging.h" +#include "AliHLTVertexData.h" +#include "AliHLTVertex.h" -/** \class AliL3Vertex +/** \class AliHLTVertex
 //_____________________________________________________________
-// AliL3Vertex
+// AliHLTVertex
 //
 // Stores the information of the vertex position
 //
 
*/ -ClassImp(AliL3Vertex) +ClassImp(AliHLTVertex) -AliL3Vertex::AliL3Vertex(){ +AliHLTVertex::AliHLTVertex(){ // - // default constructor for the AliL3Vertex class. + // default constructor for the AliHLTVertex class. // SetZero(); } -AliL3Vertex::~AliL3Vertex(){ +AliHLTVertex::~AliHLTVertex(){ // // destructor // } -void AliL3Vertex::SetZero() +void AliHLTVertex::SetZero() { // set vertex to zero SetX(0); @@ -49,7 +49,7 @@ void AliL3Vertex::SetZero() fMWxy = 1.; } -void AliL3Vertex::Read(const AliL3VertexData *vertex) +void AliHLTVertex::Read(const AliHLTVertexData *vertex) { // read vertex SetX(vertex->fX); diff --git a/HLT/src/AliL3Vertex.h b/HLT/src/AliHLTVertex.h similarity index 73% rename from HLT/src/AliL3Vertex.h rename to HLT/src/AliHLTVertex.h index bd3d243ba24..c518e9faab6 100644 --- a/HLT/src/AliL3Vertex.h +++ b/HLT/src/AliHLTVertex.h @@ -3,17 +3,17 @@ #ifndef ALIL3VERTEX_H #define ALIL3VERTEX_H -class AliL3VertexData; +class AliHLTVertexData; -class AliL3Vertex { +class AliHLTVertex { public: - AliL3Vertex(); + AliHLTVertex(); - virtual ~AliL3Vertex(); + virtual ~AliHLTVertex(); void SetZero(); - void Read(const AliL3VertexData *vertex); + void Read(const AliHLTVertexData *vertex); Double_t GetX() const {return fX;} Double_t GetY() const {return fY;} @@ -33,8 +33,8 @@ class AliL3Vertex { void SetXYWeight(Double_t f) {fMWxy = f;} private: - AliL3Vertex(const AliL3Vertex&){;} - AliL3Vertex& operator=(const AliL3Vertex&){return *this;} + AliHLTVertex(const AliHLTVertex&){;} + AliHLTVertex& operator=(const AliHLTVertex&){return *this;} Double_t fX; //x Double_t fY; //y @@ -46,6 +46,9 @@ class AliL3Vertex { Double_t fZErr; //error in y Double_t fMWxy; //weight - ClassDef(AliL3Vertex,1) // Vertex base class + ClassDef(AliHLTVertex,1) // Vertex base class }; + +typedef AliHLTVertex AliL3Vertex; // for backward compatibility + #endif diff --git a/HLT/src/AliL3VertexArray.cxx b/HLT/src/AliHLTVertexArray.cxx similarity index 83% rename from HLT/src/AliL3VertexArray.cxx rename to HLT/src/AliHLTVertexArray.cxx index 2bebaf7505e..f134233d33d 100644 --- a/HLT/src/AliL3VertexArray.cxx +++ b/HLT/src/AliHLTVertexArray.cxx @@ -3,16 +3,16 @@ // Author: Uli Frankenfeld //*-- Copyright © ALICE HLT Group -#include "AliL3StandardIncludes.h" +#include "AliHLTStandardIncludes.h" -#include "AliL3Logging.h" -#include "AliL3VertexArray.h" +#include "AliHLTLogging.h" +#include "AliHLTVertexArray.h" -/** \class AliL3VertexArray +/** \class AliHLTVertexArray
 //_____________________________________________________________
-// AliL3VertexArray
+// AliHLTVertexArray
 //
 // The L3 Fast Vertex Finder Base Class
 //
@@ -34,19 +34,19 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3VertexArray)
+ClassImp(AliHLTVertexArray)
 
-void AliL3VertexArray::AnalyzeSector(Float_t *vertex, Int_t *array, Int_t len)
+void AliHLTVertexArray::AnalyzeSector(Float_t *vertex, Int_t *array, Int_t len)
 {
   //loop over all seeds and all vertex position
-  LOG(AliL3Log::kInformational,"AliL3VertexArray::AnalyzeSector","Analyze")
-  <
-#include "AliL3RootTypes.h"
+#include "AliHLTRootTypes.h"
  
-class AliL3VertexArray {
+class AliHLTVertexArray {
   private:
 
   Char_t fArray[8320][8][8]; //array
@@ -22,10 +22,10 @@ class AliL3VertexArray {
   void AnalyzeSector(Float_t *vertex, Int_t *array, Int_t len);
 
   public:
-  AliL3VertexArray(){fNSeed=0;fMaxSeed=400;}
-  AliL3VertexArray(AliL3VertexArray&){fNSeed=0;fMaxSeed=400;}
-  AliL3VertexArray(Int_t maxseed){fNSeed=0;fMaxSeed=maxseed;}
-  virtual ~AliL3VertexArray(){;}
+  AliHLTVertexArray(){fNSeed=0;fMaxSeed=400;}
+  AliHLTVertexArray(AliHLTVertexArray&){fNSeed=0;fMaxSeed=400;}
+  AliHLTVertexArray(Int_t maxseed){fNSeed=0;fMaxSeed=maxseed;}
+  virtual ~AliHLTVertexArray(){;}
   
   Int_t GetContent(Float_t z,Float_t r,Int_t sec);
   Int_t Trace(Float_t z,Float_t r,Int_t sec,Float_t vertex);
@@ -45,11 +45,13 @@ class AliL3VertexArray {
   void FindSectorVertex(Double_t pos = 0,Double_t range = 60,Int_t nbin = 60);
   void ResetSector();
 
-  ClassDef(AliL3VertexArray,1)  //The L3 Fast Vertex Finder Base Class
+  ClassDef(AliHLTVertexArray,1)  //The L3 Fast Vertex Finder Base Class
 
 };
 
-inline void AliL3VertexArray::FillSector3D(Float_t x, Float_t y, Float_t z)
+typedef AliHLTVertexArray AliL3VertexArray; // for backward compatibility
+
+inline void AliHLTVertexArray::FillSector3D(Float_t x, Float_t y, Float_t z)
 {
   // Filling routine in coordinates
   Int_t sec = Int_t( (y+.168*x)/(.336*x)*8); // 8 subsec!!
@@ -57,7 +59,7 @@ inline void AliL3VertexArray::FillSector3D(Float_t x, Float_t y, Float_t z)
   FillSector2D(z,r,sec); 
 }
 
-inline void AliL3VertexArray:: FillSectorSeed3D(Float_t x,Float_t y, Float_t z)
+inline void AliHLTVertexArray:: FillSectorSeed3D(Float_t x,Float_t y, Float_t z)
 {
   // Filling routine for seeds in coordinates
   Int_t sec = Int_t( (y+.168*x)/(.336*x)*8); // 8 subsec!!
@@ -65,7 +67,7 @@ inline void AliL3VertexArray:: FillSectorSeed3D(Float_t x,Float_t y, Float_t z)
   FillSectorSeed2D(z,r,sec);    
 }
 
-inline void AliL3VertexArray::FillSectorSeed2D(Float_t z,Float_t r,Int_t sec)
+inline void AliHLTVertexArray::FillSectorSeed2D(Float_t z,Float_t r,Int_t sec)
 {
   // Filling routine in r,z coordinates 
   if(fNSeed>=400) return;
@@ -73,21 +75,21 @@ inline void AliL3VertexArray::FillSectorSeed2D(Float_t z,Float_t r,Int_t sec)
   fNSeed++; 
 }
 
-inline void AliL3VertexArray::FillSector2D(Float_t z,Float_t r,Int_t sec)
+inline void AliHLTVertexArray::FillSector2D(Float_t z,Float_t r,Int_t sec)
 {
   // Filling routine for seeds in r,z coordinates
   if(z>r||z<=0||r<220||r>=252) return;
   fArray[Int_t(z/r*32*260)][(Int_t(r-220))/4][sec] += 1;
 }
 
-inline Int_t AliL3VertexArray::GetContent(Float_t z,Float_t r,Int_t sec)
+inline Int_t AliHLTVertexArray::GetContent(Float_t z,Float_t r,Int_t sec)
 {
   // Return content of array in r,z coordinates
   if(z>r||z<=0||r<220||r>=252) return 0;
   return  fArray[Int_t(z/r*32*260)][(Int_t(r-220))/4][sec];
 }
 
-inline void AliL3VertexArray::ResetSector()
+inline void AliHLTVertexArray::ResetSector()
 {
   // do it!
   fZSector=0;
@@ -101,7 +103,7 @@ inline void AliL3VertexArray::ResetSector()
         fArray[z][r][sec] = 0;
 }
 
-inline Int_t AliL3VertexArray::Trace(Float_t z,Float_t r,Int_t sec,Float_t vertex)
+inline Int_t AliHLTVertexArray::Trace(Float_t z,Float_t r,Int_t sec,Float_t vertex)
 {
 // count the number of entries along starting from z,r to vertex,0
   Int_t cont=0;
diff --git a/HLT/src/AliL3VertexData.h b/HLT/src/AliHLTVertexData.h
similarity index 65%
rename from HLT/src/AliL3VertexData.h
rename to HLT/src/AliHLTVertexData.h
index 01bcc96b134..db13e79c75d 100644
--- a/HLT/src/AliL3VertexData.h
+++ b/HLT/src/AliHLTVertexData.h
@@ -3,9 +3,9 @@
 #ifndef VERTEXDATA_H
 #define VERTEXDATA_H
 
-#include "AliL3RootTypes.h"
+#include "AliHLTRootTypes.h"
 
-struct AliL3VertexData{
+struct AliHLTVertexData{
     Double_t fX;
     Double_t fY;
     Double_t fZ;
@@ -13,6 +13,6 @@ struct AliL3VertexData{
     Double_t fYErr;
     Double_t fZErr;
 };
-typedef struct AliL3VertexData AliL3VertexData;
+typedef struct AliHLTVertexData AliHLTVertexData;
 
 #endif /* VERTEXDATA_H */
diff --git a/HLT/src/AliL3VertexFinder.cxx b/HLT/src/AliHLTVertexFinder.cxx
similarity index 59%
rename from HLT/src/AliL3VertexFinder.cxx
rename to HLT/src/AliHLTVertexFinder.cxx
index ade080673c3..12a31ad19b2 100644
--- a/HLT/src/AliL3VertexFinder.cxx
+++ b/HLT/src/AliHLTVertexFinder.cxx
@@ -3,23 +3,23 @@
 // Author: Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
-#include "AliL3RootTypes.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3VertexData.h"
-#include "AliL3Logging.h"
-#include "AliL3VertexArray.h"
-#include "AliL3Vertex.h"
-#include "AliL3VertexFinder.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3Transform.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTRootTypes.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTVertexData.h"
+#include "AliHLTLogging.h"
+#include "AliHLTVertexArray.h"
+#include "AliHLTVertex.h"
+#include "AliHLTVertexFinder.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTTransform.h"
 
-/** \class AliL3VertexFinder
+/** \class AliHLTVertexFinder
 
 //_____________________________________________________________
-// AliL3VertexFinder
+// AliHLTVertexFinder
 //
-//   Implementation of AliL3Array 
+//   Implementation of AliHLTArray 
 //   usage:
 // 
 //   ResetSector();
@@ -37,12 +37,12 @@
 using namespace std;
 #endif
 
-ClassImp(AliL3VertexFinder)
+ClassImp(AliHLTVertexFinder)
 
-AliL3VertexFinder::AliL3VertexFinder()
+AliHLTVertexFinder::AliHLTVertexFinder()
 {
   //
-  // default constructor for the AliL3VertexFinder class. 
+  // default constructor for the AliHLTVertexFinder class. 
   //
 
   //Set vertex to zero.
@@ -57,14 +57,14 @@ AliL3VertexFinder::AliL3VertexFinder()
   fMWxy = 1.;
 }
 
-AliL3VertexFinder::~AliL3VertexFinder()
+AliHLTVertexFinder::~AliHLTVertexFinder()
 {
   //
   // destructor
   //
 }
 
-void AliL3VertexFinder::Reset()
+void AliHLTVertexFinder::Reset()
 {
   //
   // Reset
@@ -73,13 +73,13 @@ void AliL3VertexFinder::Reset()
 }
 
 
-void AliL3VertexFinder::Read(Int_t ncluster, AliL3SpacePointData* hits )
+void AliHLTVertexFinder::Read(Int_t ncluster, AliHLTSpacePointData* hits )
 {
   //
   //  analyze sector 
   // 
   
-  const Int_t kseedRow = AliL3Transform::GetNRows() - 1; 
+  const Int_t kseedRow = AliHLTTransform::GetNRows() - 1; 
   const Int_t kfirstRow = kseedRow-32;
   for(Int_t n=0;nSetXYWeight(GetXYWeight());
 }
 
-void AliL3VertexFinder::Write(AliL3VertexData *vertex) const
+void AliHLTVertexFinder::Write(AliHLTVertexData *vertex) const
 {
   //
   // write
diff --git a/HLT/src/AliL3VertexFinder.h b/HLT/src/AliHLTVertexFinder.h
similarity index 60%
rename from HLT/src/AliL3VertexFinder.h
rename to HLT/src/AliHLTVertexFinder.h
index 5d7735ecc8e..e7cd1f7c2eb 100644
--- a/HLT/src/AliL3VertexFinder.h
+++ b/HLT/src/AliHLTVertexFinder.h
@@ -1,15 +1,15 @@
 // @(#) $Id$
 
-#ifndef AliL3VERTEXFINDER_H
-#define AliL3VERTEXFINDER_H
+#ifndef AliHLTVERTEXFINDER_H
+#define AliHLTVERTEXFINDER_H
 
-class AliL3SpacePointData;
-class AliL3VertexData;
-class AliL3Vertex;
+class AliHLTSpacePointData;
+class AliHLTVertexData;
+class AliHLTVertex;
 
-#include "AliL3VertexArray.h"
+#include "AliHLTVertexArray.h"
 
-class AliL3VertexFinder:public AliL3VertexArray {
+class AliHLTVertexFinder:public AliHLTVertexArray {
  private:
   Double_t fX;     // x
   Double_t fY;     // y
@@ -23,15 +23,15 @@ class AliL3VertexFinder:public AliL3VertexArray {
   Double_t fMWxy;  // xy weight
 
  public:
-  AliL3VertexFinder(); 
-  AliL3VertexFinder(AliL3VertexFinder &vf) : AliL3VertexArray(vf){;}
-  virtual ~AliL3VertexFinder();
+  AliHLTVertexFinder(); 
+  AliHLTVertexFinder(AliHLTVertexFinder &vf) : AliHLTVertexArray(vf){;}
+  virtual ~AliHLTVertexFinder();
 
   void Reset();
-  void Read(Int_t ncluster, AliL3SpacePointData* hits);
+  void Read(Int_t ncluster, AliHLTSpacePointData* hits);
   void Analyze();
-  void Write(AliL3Vertex *vertex) const;
-  void Write(AliL3VertexData *vertex) const;
+  void Write(AliHLTVertex *vertex) const;
+  void Write(AliHLTVertexData *vertex) const;
 
   Double_t GetX() const {return fX;}
   Double_t GetY() const {return fY;}
@@ -51,6 +51,9 @@ class AliL3VertexFinder:public AliL3VertexArray {
 
   void SetXYWeight(Double_t f) {fMWxy = f;}
  
-  ClassDef(AliL3VertexFinder,1)  // Vertex finder class
+  ClassDef(AliHLTVertexFinder,1)  // Vertex finder class
 };
+
+typedef AliHLTVertexFinder AliL3VertexFinder; // for backward compatibility
+
 #endif
diff --git a/HLT/src/AliL3ConfMapFit.h b/HLT/src/AliL3ConfMapFit.h
deleted file mode 100644
index d9a2a91efb9..00000000000
--- a/HLT/src/AliL3ConfMapFit.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// @(#) $Id$
-
-#ifndef ALIL3_ConfMapFit
-#define ALIL3_ConfMapFit
-
-class AliL3ConfMapTrack;
-class AliL3Vertex;
-
-class AliL3ConfMapFit {
-
- private:
-  AliL3ConfMapTrack *fTrack; //!
-  AliL3Vertex *fVertex; //!
-  
- public:
-  AliL3ConfMapFit (AliL3ConfMapTrack *track,AliL3Vertex *vertex);
-  virtual ~AliL3ConfMapFit() {};
-
-  Int_t FitHelix();
-  Int_t FitCircle();
-  Int_t FitLine();
-
-  ClassDef(AliL3ConfMapFit,1) //Conformal mapping fit class
-};
-
-#endif
diff --git a/HLT/src/AliL3DigitData.h b/HLT/src/AliL3DigitData.h
deleted file mode 100644
index d1a48558bb3..00000000000
--- a/HLT/src/AliL3DigitData.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// @(#) $Id$
-
-#ifndef _DIGITDATA_H_
-#define _DIGITDATA_H_
-
-#include "AliL3RootTypes.h" 
-
-struct AliL3DigitData
-{
-#ifdef do_mc
-  Int_t fTrackID[3];
-#endif
-  UShort_t fCharge;
-  UChar_t fPad;
-  UShort_t fTime;
-#ifdef IA64
-  UChar_t dummy1;
-  UChar_t dummy2;
-#endif
-};
-typedef struct AliL3DigitData AliL3DigitData;
-
-struct AliL3DigitRowData
-{
-  UInt_t fNDigit;
-  UInt_t fRow;
-#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
-  AliL3DigitData fDigitData[1];
-#else
-  AliL3DigitData fDigitData[0];
-#endif
-};
-typedef struct AliL3DigitRowData AliL3DigitRowData;
-
-struct AliL3RandomDigitData{
-  UChar_t fRow;
-  UShort_t fCharge;
-  UChar_t fPad;
-  UShort_t fTime;
-};
-typedef struct AliL3RandomDigitData AliL3RandomDigitData;
-#endif /* _DIGITDATA_H_ */
diff --git a/HLT/src/AliL3Fitter.h b/HLT/src/AliL3Fitter.h
deleted file mode 100644
index 970e7ebc4ea..00000000000
--- a/HLT/src/AliL3Fitter.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// @(#) $Id$
-
-#ifndef ALIL3FITTER_H
-#define ALIL3FITTER_H
-
-//_____________________________________________________________
-// AliL3Fitter
-//
-// Fit class HLT
-//
-// Author: Anders Vestbo 
-
-class AliL3Track;
-class AliL3Vertex;
-class AliL3SpacePointData;
-
-class AliL3Fitter {
-
-  public:
-  AliL3Fitter();
-  AliL3Fitter(AliL3Vertex *vertex,Bool_t vertexconstraint=kTRUE);
-  virtual ~AliL3Fitter();
-  
-  void LoadClusters(Char_t *path,Int_t event=0,Bool_t sp=kFALSE);
-  void SortTrackClusters(AliL3Track *track) const;
-  Int_t FitHelix(AliL3Track *track);
-  Int_t FitCircle();
-  Int_t FitLine();
-  void NoVertex() {fVertexConstraint=kFALSE;}
- 
- private:
-  AliL3Track *fTrack; //!                    actual track
-  AliL3Vertex *fVertex; //!                  vertex info
-  Bool_t fVertexConstraint; //               include vertex constraint
-  AliL3SpacePointData *fClusters[36][6]; //! clusters
-  UInt_t fNcl[36][6]; //                     cluster numbers
- 
-  ClassDef(AliL3Fitter,1) //HLT fit class
-};
-
-#endif
diff --git a/HLT/src/AliL3GlobalMerger.h b/HLT/src/AliL3GlobalMerger.h
deleted file mode 100644
index b933ab7b21e..00000000000
--- a/HLT/src/AliL3GlobalMerger.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// @(#) $Id$
-
-#ifndef ALIL3_GLOBALMERGER_H
-#define ALIL3_GLOBALMERGER_H
-
-#ifndef  __CINT__
-#include "AliL3Merger.h"
-#endif
-
-#include "AliL3RootTypes.h"
-
-class AliL3GlobalMerger : public AliL3Merger{
-
- private:
-  Int_t fNSlices;
-  Int_t fFirst;
-  Int_t fLast;
-
-  Double_t CheckTracks(AliL3Track *innertrack,AliL3Track *outertrack,Int_t slice);
-  
- public:
-  AliL3GlobalMerger();
-  virtual ~AliL3GlobalMerger();
-  
-  void Setup(Int_t first,Int_t last);
-  void InitSlice(Int_t slice);
-  void SlowMerge(Char_t *path="./");
-  void Merge();  //Loop over tracks from different sectors
-
-  ClassDef(AliL3GlobalMerger,1) //Slice merger
-};
-
-#endif
diff --git a/HLT/src/AliL3Log.cxx b/HLT/src/AliL3Log.cxx
deleted file mode 100644
index 5af7e7eaf59..00000000000
--- a/HLT/src/AliL3Log.cxx
+++ /dev/null
@@ -1,10 +0,0 @@
-// $Id$
-
-#ifndef use_logging
-
-#include "AliL3StandardIncludes.h"
-#include "AliL3Logging.h"
-
-AliL3Log::TLogLevel AliL3Log::fgLevel=AliL3Log::kNone;
-
-#endif
diff --git a/HLT/src/AliL3Logging.h b/HLT/src/AliL3Logging.h
deleted file mode 100644
index d84534bdb94..00000000000
--- a/HLT/src/AliL3Logging.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// @(#) $Id$
-
-#ifndef ALIL3LOGGING_H
-#define ALIL3LOGGING_H
-
-#include "AliL3RootTypes.h"
-#include "AliL3StandardIncludes.h"
-
-#ifdef use_logging
-#include 
-#include 
-
-typedef MLUCLog AliL3Log;
-typedef MLUCLogServer AliL3LogServer;
-typedef MLUCDevNullLogServer AliL3DevNullLogServer;
-typedef MLUCStdoutLogServer AliL3StdoutLogServer;
-typedef MLUCStderrLogServer AliL3StderrLogServer;
-typedef MLUCStreamLogServer AliL3StreamLogServer;
-
-#else
-
-#include "AliL3Log.h"
-#endif /* use_logging */ 
-#endif /* ALIL3LOGGING_H */
diff --git a/HLT/src/AliL3Merger.h b/HLT/src/AliL3Merger.h
deleted file mode 100644
index 91ff0484a7f..00000000000
--- a/HLT/src/AliL3Merger.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// @(#) $Id$
-#ifndef ALIL3MERGER_H
-#define ALIL3MERGER_H
-//#define PI 3.14159265358979312
-
-#include "AliL3RootTypes.h"
-
-class AliL3Track;
-class AliL3TrackSegmentData;
-class AliL3Vertex;
-class AliL3TrackArray;
-
-class AliL3Merger {
- private:
-  Double_t fMaxY;    //maxy
-  Double_t fMaxZ;    //maxz
-  Double_t fMaxKappa;//maxkappa
-  Double_t fMaxPsi;  //maxpsi
-  Double_t fMaxTgl;  //maxtgl
-  Char_t fTrackType; //track type to merge
-  
-  AliL3TrackArray **fInTrack;//!
-  Int_t fNIn; //ntracks
-
-  AliL3TrackArray *fOutTrack;//!
-
-  void SetArray(Int_t nin);
-  void DeleteArray();
-
- protected:
-  Int_t fCurrentTracks; //current number
-  Int_t fSlice;         //slice
-  AliL3Vertex *fVertex; //!
-  Bool_t f2Global; //global
-  Bool_t Is2Global(Bool_t is){f2Global=is;return f2Global;}
-  void InitMerger(Int_t ntrackarrays,Char_t *tracktype="AliL3Track");
-  
- public:
-  AliL3Merger();
-  virtual ~AliL3Merger();
-
-  Int_t GetNIn() const {return fNIn;}
-  AliL3TrackArray *GetInTracks(Int_t in){return fInTrack[in];}
-  AliL3TrackArray *GetOutTracks(){return fOutTrack;}
-
-  Bool_t Is2Global() const {return f2Global;}
-  void SetVertex(AliL3Vertex *vertex){fVertex=vertex;}
-  void Reset();
-  void SetParameter(Double_t maxy=1., Double_t maxz=1., Double_t maxkappa=0.001, Double_t maxpsi=0.05, Double_t maxtgl=0.1);
-  void FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr); //Fill tracks in fTrackArray[fCurrentTracks] 
-  Double_t GetAngle(Double_t a1,Double_t a2);
-  void* GetNtuple() const;
-  void* GetNtuple(char *varlist) const;
-  Bool_t WriteNtuple(char *filename,void* nt) const;
-  void FillNtuple(void* nt,Float_t *data) const ;
-  void FillNtuple(void* nt,AliL3Track *innertrack,AliL3Track *outertrack);
-  void AddAllTracks();//Copy all Tracks to Output Array
-  void SortGlobalTracks(AliL3Track **tracks, Int_t ntrack);
-  virtual void SortTracks(AliL3Track **tracks, Int_t ntrack) const;
-  virtual void AddTrack(AliL3TrackArray *mergedtrack,AliL3Track *track);
-  virtual AliL3Track * MultiMerge(AliL3TrackArray *mergedtrack,AliL3Track **tracks, Int_t ntrack);
-  AliL3Track * MergeTracks(AliL3TrackArray *mergedtrack,AliL3Track *t0,AliL3Track *t1);
-  virtual Bool_t IsTrack(AliL3Track *innertrack,AliL3Track *outertrack);
-  Bool_t IsRTrack(AliL3Track *innertrack,AliL3Track *outertrack);
-  Double_t TrackDiff(AliL3Track *innertrack,AliL3Track *outertrack);
-  void Print();
-  void PrintDiff(AliL3Track *innertrack,AliL3Track *outertrack);
-  void PrintTrack(AliL3Track *track);
-  
-  ClassDef(AliL3Merger,1) //Merging base class
-};
-
-#endif
diff --git a/HLT/src/AliL3SrcLinkDef.h b/HLT/src/AliL3SrcLinkDef.h
deleted file mode 100644
index da705197fe7..00000000000
--- a/HLT/src/AliL3SrcLinkDef.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// @(#) $Id$
-
-#ifdef __CINT__
- 
-#pragma link off all globals;
-#pragma link off all classes;
-#pragma link off all functions;
-
-#pragma link C++ class AliL3Benchmark;
-#pragma link C++ class AliL3DigitRowData; 
-#pragma link C++ class AliL3DigitData;
-#pragma link C++ class AliL3SpacePointData;
-#pragma link C++ class AliL3ConfMapper;
-#pragma link C++ class AliL3ConfMapPoint;
-#pragma link C++ class AliL3Vertex;
-#pragma link C++ class AliL3VertexFinder;
-#pragma link C++ class AliL3VertexArray;
-#pragma link C++ class AliL3Track;
-#pragma link C++ class AliL3ConfMapTrack;
-#pragma link C++ class AliL3ConfMapFit;
-#pragma link C++ class AliL3Transform;
-#pragma link C++ class AliL3Merger;
-#pragma link C++ class AliL3TrackMerger;
-#pragma link C++ class AliL3GlobalMerger;
-#pragma link C++ class AliL3InterMerger;
-#pragma link C++ class AliLevel3;
-#pragma link C++ class AliL3TrackArray;
-#pragma link C++ class AliL3Logger;
-#pragma link C++ class AliL3MemHandler;
-#pragma link C++ class AliL3Display; 
-#pragma link C++ class AliL3ClustFinderNew;
-#pragma link C++ class AliL3Fitter;
-#pragma link C++ class AliL3RawDataFileHandler;
-#pragma link C++ class AliL3TPCBeamTestMemHandler;
-
-#ifdef use_aliroot
-#pragma link C++ class AliL3FileHandler;
-#pragma link C++ class AliL3Evaluate; 
-#ifdef use_reconstruction
-#pragma link C++ class AliHLTReconstructor;
-#pragma link C++ class AliL3TPCtracker;
-#endif
-#endif
-
-#endif
-
diff --git a/HLT/src/AliL3TrackArray.h b/HLT/src/AliL3TrackArray.h
deleted file mode 100644
index 293d74e311e..00000000000
--- a/HLT/src/AliL3TrackArray.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// @(#) $Id$
-
-#ifndef ALIL3TRACKARRAY_H
-#define ALIL3TRACKARRAY_H
-
-#include "AliL3RootTypes.h"
-
-class AliL3ConfMapTrack;
-class AliL3Track;
-class AliL3TrackSegmentData;
-
-class AliL3TrackArray {
-
- private:
-
-  Char_t fTrackType; //track type
-  Int_t fSize; //size of arra
-  Bool_t *fIsPresent;//!
-  Int_t fNAbsent; //ntracks absent
-
-  AliL3Track **fTrack;//!
-  Int_t fNTracks; //ntracks in
-
-  UInt_t WriteConfMapTracks(AliL3TrackSegmentData* tr); 
-  void DeleteArray();
-
- public:
-  AliL3TrackArray();
-  AliL3TrackArray(Int_t ntrack);
-  AliL3TrackArray(char* tracktype,Int_t ntrack);
-  AliL3TrackArray(char* tracktype);
-  virtual ~AliL3TrackArray();
-  Int_t GetTrackType(){return fTrackType;}
-  Int_t GetSize() const {return fSize;}
-  Bool_t SetSize(Int_t newsize=2000);
-
-  Int_t GetNPresent() const {return (fNTracks- fNAbsent);}
-  Int_t GetNTracks() const {return fNTracks;}
-  AliL3Track *NextTrack();
-  AliL3Track *GetCheckedTrack(Int_t t){if(fIsPresent[t]) return fTrack[t]; return 0;}
-  AliL3Track *GetTrack(Int_t t){return fTrack[t];}
-
-  void Remove(Int_t track); 
-  void RemoveLast() {fNTracks--;}
-  void Compress();
-  void Reset();
-  void QSort();
-  void QSort( AliL3Track **a, Int_t first, Int_t last);
-  Int_t TrackCompare(AliL3Track *a, AliL3Track *b) const;
-
-  void FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr,Int_t slice); //Fill tracks and transform
-  void FillTracks(Int_t ntracks, AliL3TrackSegmentData* tr); //Fill tracks
-  UInt_t WriteTracks(AliL3TrackSegmentData* tr); //Write tracks
-  UInt_t WriteTracks(UInt_t & ntracks,AliL3TrackSegmentData* tr); //Write tracks
-  UInt_t GetOutSize();
-  UInt_t GetOutCount(){return (UInt_t) GetNPresent();}
-  void AddTracks(AliL3TrackArray *newtrack,Bool_t remove_old=kTRUE,Int_t slice=-1);//add all Tracks to this 
-  void AddLast(AliL3Track *track);
-
-  ClassDef(AliL3TrackArray,1) //Track array class
-};
-
-#endif
diff --git a/HLT/src/AliLevel3.cxx b/HLT/src/AliLevel3.cxx
index d16cefbdb16..a26bf5a3216 100644
--- a/HLT/src/AliLevel3.cxx
+++ b/HLT/src/AliLevel3.cxx
@@ -3,7 +3,7 @@
 // Author: Anders Vestbo , Uli Frankenfeld 
 //*-- Copyright © ALICE HLT Group
 
-#include "AliL3StandardIncludes.h"
+#include "AliHLTStandardIncludes.h"
 
 #ifndef no_root
 #include 
@@ -17,31 +17,31 @@
 #include 
 #endif
 
-#include "AliL3Logging.h"
+#include "AliHLTLogging.h"
 #include "AliLevel3.h"
-#include "AliL3ConfMapper.h"
-#include "AliL3Vertex.h"
-#include "AliL3VertexFinder.h"
-#include "AliL3TrackMerger.h"
-#include "AliL3GlobalMerger.h"
-#include "AliL3InterMerger.h"
-#include "AliL3ConfMapPoint.h"
-#include "AliL3ConfMapTrack.h"
-#include "AliL3Transform.h"
-#include "AliL3ClustFinderNew.h"
-#include "AliL3DigitData.h"
-#include "AliL3TrackArray.h"
-#include "AliL3MemHandler.h"
-#include "AliL3Fitter.h"
+#include "AliHLTConfMapper.h"
+#include "AliHLTVertex.h"
+#include "AliHLTVertexFinder.h"
+#include "AliHLTTrackMerger.h"
+#include "AliHLTGlobalMerger.h"
+#include "AliHLTInterMerger.h"
+#include "AliHLTConfMapPoint.h"
+#include "AliHLTConfMapTrack.h"
+#include "AliHLTTransform.h"
+#include "AliHLTClustFinderNew.h"
+#include "AliHLTDigitData.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTMemHandler.h"
+#include "AliHLTFitter.h"
 #ifdef use_aliroot
-#include "AliL3FileHandler.h"
+#include "AliHLTFileHandler.h"
 #endif
-#include "AliL3Benchmark.h"
-#include "AliL3DigitData.h"
-#include "AliL3TrackSegmentData.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3VertexData.h"
-#include "AliL3DDLDataFileHandler.h"
+#include "AliHLTBenchmark.h"
+#include "AliHLTDigitData.h"
+#include "AliHLTTrackSegmentData.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTVertexData.h"
+#include "AliHLTDDLDataFileHandler.h"
 
 /** \class AliLevel3
 
@@ -120,7 +120,7 @@ void AliLevel3::Init(Char_t *path,EFileType filetype,Int_t npatches)
   //Init the whole standard tracker chain
 #ifndef use_newio
   if (filetype==kRunLoader){
-    LOG(AliL3Log::kError,"AliLevel3::Init","Files")
+    LOG(AliHLTLog::kError,"AliLevel3::Init","Files")
 	<<"You have not supplied the input rootfile; if you want "
 	<<"to run with RunLoader use -Duse_newio for compiling!"<SetAliInput(fInputFile);
   }else if(filetype==kRaw){
-    fFileHandler = new AliL3DDLDataFileHandler();
+    fFileHandler = new AliHLTDDLDataFileHandler();
     fFileHandler->SetReaderInput(fInputFile);
   }else if(filetype==kDate){
-    fFileHandler = new AliL3DDLDataFileHandler();
+    fFileHandler = new AliHLTDDLDataFileHandler();
     fFileHandler->SetReaderInput(fInputFile,-1);
   }
 #if use_newio
   else if(filetype==kRunLoader){
-    fFileHandler = new AliL3FileHandler(kTRUE); //static version
+    fFileHandler = new AliHLTFileHandler(kTRUE); //static version
     fFileHandler->SetAliInput(fRunLoader);
   }
 #endif
   else{
-    fFileHandler = new AliL3MemHandler();
+    fFileHandler = new AliHLTMemHandler();
   }
 #else
   if(filetype==kRaw){
-    fFileHandler = new AliL3DDLDataFileHandler();
+    fFileHandler = new AliHLTDDLDataFileHandler();
     fFileHandler->SetReaderInput(fInputFile);
   }else{
-    fFileHandler = new AliL3MemHandler();
+    fFileHandler = new AliHLTMemHandler();
   }
 #endif
-  fBenchmark = new AliL3Benchmark();
+  fBenchmark = new AliHLTBenchmark();
 }
 
 void AliLevel3::DoBench(char* name)
@@ -238,7 +238,7 @@ void AliLevel3::DoBench(char* name)
   //dobench
   fBenchmark->Analyze(name);
   delete fBenchmark;
-  fBenchmark = new AliL3Benchmark();
+  fBenchmark = new AliHLTBenchmark();
 }
 
 void AliLevel3::DoMc(char* file)
@@ -308,7 +308,7 @@ void AliLevel3::ProcessEvent(Int_t first,Int_t last,Int_t event)
 
   fGlobalMerger->Setup(first,last);
 #ifdef use_aliroot
-  if(fEvent!=event) AliL3FileHandler::CleanStaticIndex();
+  if(fEvent!=event) AliHLTFileHandler::CleanStaticIndex();
 #endif
   fEvent=event;
   for(Int_t i=first; i<=last; i++){
@@ -346,8 +346,8 @@ void AliLevel3::ProcessSlice(Int_t slice)
     UseCF = kFALSE;
 
   const Int_t kmaxpoints=120000;
-  const Int_t kpointsize = kmaxpoints * sizeof(AliL3SpacePointData);
-  AliL3MemHandler *memory = new AliL3MemHandler();
+  const Int_t kpointsize = kmaxpoints * sizeof(AliHLTSpacePointData);
+  AliHLTMemHandler *memory = new AliHLTMemHandler();
 
   fTrackMerger->Reset();
   fTrackMerger->SetRows(fRow[0]);
@@ -355,9 +355,9 @@ void AliLevel3::ProcessSlice(Int_t slice)
   for(Int_t patch=fNPatch-1;patch>=0;patch--){
     fFileHandler->Init(slice,patch,&fRow[patch][0]);
     UInt_t npoints=0;
-    AliL3SpacePointData *points =0;
+    AliHLTSpacePointData *points =0;
     UInt_t ndigits=0;
-    AliL3DigitRowData *digits =0;
+    AliHLTDigitRowData *digits =0;
     if(UseCF){
       if(fUseBinary){
         if(!fDoRoi){ 
@@ -370,11 +370,11 @@ void AliLevel3::ProcessSlice(Int_t slice)
 	    if(!fFileHandler->SetBinaryInput(name)) return;
 	    if(fPileUp)
 	      { //Read binary files which are not RLE
-		digits = (AliL3DigitRowData*)fFileHandler->Allocate();
+		digits = (AliHLTDigitRowData*)fFileHandler->Allocate();
 		fFileHandler->Binary2Memory(ndigits,digits); 
 	      }
 	    else //Read RLE binary files
-	      digits= (AliL3DigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
+	      digits= (AliHLTDigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
 
 	    fFileHandler->CloseBinaryInput(); 
           }
@@ -391,7 +391,7 @@ void AliLevel3::ProcessSlice(Int_t slice)
             memory->CompBinary2CompMemory(ndigits,comp);
             memory->CloseBinaryInput();
             UInt_t datasize=memory->GetMemorySize(ndigits,comp);
-            digits=(AliL3DigitRowData *)fFileHandler->Allocate(datasize);
+            digits=(AliHLTDigitRowData *)fFileHandler->Allocate(datasize);
             fBenchmark->Start("Unpacker"); 
             fFileHandler->CompMemory2Memory(ndigits,digits,comp); 
             fBenchmark->Stop("Unpacker");
@@ -414,7 +414,7 @@ void AliLevel3::ProcessSlice(Int_t slice)
             memory->CloseBinaryInput();
             UInt_t dsize=memory->GetMemorySize(ndigits,comp);
             UInt_t rsize=fFileHandler->GetRandomSize();       
-            digits=(AliL3DigitRowData*)fFileHandler->Allocate(dsize+rsize);
+            digits=(AliHLTDigitRowData*)fFileHandler->Allocate(dsize+rsize);
             fBenchmark->Start("Unpacker");
             fFileHandler->CompMemory2Memory(ndigits,digits,comp); 
             fBenchmark->Stop("Unpacker");
@@ -436,7 +436,7 @@ void AliLevel3::ProcessSlice(Int_t slice)
           memory->CompBinary2CompMemory(ndigits,comp);
           memory->CloseBinaryInput();
           UInt_t datasize=memory->GetMemorySize(ndigits,comp);
-          digits=(AliL3DigitRowData *)fFileHandler->Allocate(datasize);
+          digits=(AliHLTDigitRowData *)fFileHandler->Allocate(datasize);
           fBenchmark->Start("Unpacker"); 
           datasize = fFileHandler->CompMemory2Memory(ndigits,digits,comp); 
           fBenchmark->Stop("Unpacker"); 
@@ -459,7 +459,7 @@ void AliLevel3::ProcessSlice(Int_t slice)
         }
   
         if(1){   //Ali to Memory
-          digits=(AliL3DigitRowData *)fFileHandler->AliAltroDigits2Memory(ndigits,fEvent);
+          digits=(AliHLTDigitRowData *)fFileHandler->AliAltroDigits2Memory(ndigits,fEvent);
           if(0){ //Memory to Binary
             fFileHandler->SetBinaryOutput(name);
             fFileHandler->Memory2CompBinary(ndigits,digits);
@@ -469,8 +469,8 @@ void AliLevel3::ProcessSlice(Int_t slice)
 #endif
       }//end else UseBinary
 
-      points = (AliL3SpacePointData *) memory->Allocate(kpointsize);
-      fClusterFinder = new AliL3ClustFinderNew();
+      points = (AliHLTSpacePointData *) memory->Allocate(kpointsize);
+      fClusterFinder = new AliHLTClustFinderNew();
       fClusterFinder->InitSlice(slice,patch,fRow[patch][0],fRow[patch][1],kmaxpoints);
       fClusterFinder->SetDeconv(fClusterDeconv);
       fClusterFinder->SetXYError(fXYClusterError);
@@ -486,8 +486,8 @@ void AliLevel3::ProcessSlice(Int_t slice)
       delete fClusterFinder;
       fClusterFinder = 0;
       fFileHandler->Free();
-      LOG(AliL3Log::kInformational,"AliLevel3::ProcessSlice","Cluster Finder")
-        <SetBinaryInput(name)) return;
-        points = (AliL3SpacePointData *) memory->Allocate();
+        points = (AliHLTSpacePointData *) memory->Allocate();
         memory->Binary2Memory(npoints,points);
         memory->CloseBinaryInput();
-        LOG(AliL3Log::kInformational,"AliLevel3::ProcessSlice","Read Cluster")
-        <Stop("Vertex Finder Read"); 
         fBenchmark->Start("Vertex Finder");
         fVertexFinder->Analyze();
-        AliL3VertexData vertex[1];
+        AliHLTVertexData vertex[1];
         fVertexFinder->Write(vertex);
         fVertex->Read(vertex);
         fBenchmark->Stop("Vertex Finder"); 
@@ -562,8 +562,8 @@ void AliLevel3::ProcessSlice(Int_t slice)
       fFileHandler->Free();
 
     UInt_t ntracks0 =0;
-    AliL3TrackSegmentData *trackdata0  = 
-         (AliL3TrackSegmentData *) memory->Allocate(fTracker->GetTracks());
+    AliHLTTrackSegmentData *trackdata0  = 
+         (AliHLTTrackSegmentData *) memory->Allocate(fTracker->GetTracks());
     memory->TrackArray2Memory(ntracks0,trackdata0,fTracker->GetTracks());
 
     //write tracks
@@ -597,8 +597,8 @@ void AliLevel3::ProcessSlice(Int_t slice)
     memory->Free();
     
     UInt_t ntracks1 =0;
-    AliL3TrackSegmentData *trackdata1 =
-      (AliL3TrackSegmentData *) memory->Allocate(fInterMerger->GetInTracks(0));
+    AliHLTTrackSegmentData *trackdata1 =
+      (AliHLTTrackSegmentData *) memory->Allocate(fInterMerger->GetInTracks(0));
     memory->TrackArray2Memory(ntracks1,trackdata1,fInterMerger->GetInTracks(0));
 
     fTrackMerger->InitSector(slice,patch);
@@ -618,7 +618,7 @@ void AliLevel3::ProcessSlice(Int_t slice)
     WriteTracks(name,fTrackMerger,'o'); //write output of trackmerger
   }
   */
-  fTrackData = (AliL3TrackSegmentData *) 
+  fTrackData = (AliHLTTrackSegmentData *) 
                          fFileHandler->Allocate(fTrackMerger->GetOutTracks());
 
   fFileHandler->TrackArray2Memory(fNTrackData,fTrackData,
@@ -630,17 +630,17 @@ void AliLevel3::ProcessSlice(Int_t slice)
 void AliLevel3::FitGlobalTracks()
 { 
   //fit global tracks
-  AliL3Fitter *fitter = new AliL3Fitter(fVertex,AliLevel3::DoVertexFit());
+  AliHLTFitter *fitter = new AliHLTFitter(fVertex,AliLevel3::DoVertexFit());
   if(fNPatch==1)
     fitter->LoadClusters(fWriteOutPath,fEvent,kTRUE);
   else
     fitter->LoadClusters(fWriteOutPath,fEvent,kFALSE);
   
   fBenchmark->Start("Global track fitter");
-  AliL3TrackArray *tracks = fGlobalMerger->GetOutTracks();
+  AliHLTTrackArray *tracks = fGlobalMerger->GetOutTracks();
   for(Int_t i=0; iGetNTracks(); i++)
     {
-      AliL3Track *tr = tracks->GetCheckedTrack(i);
+      AliHLTTrack *tr = tracks->GetCheckedTrack(i);
       if(!tr) continue;
       fitter->FitHelix(tr);
       tr->UpdateToFirstPoint();
@@ -649,7 +649,7 @@ void AliLevel3::FitGlobalTracks()
   delete fitter;
 }
 
-void AliLevel3::WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
+void AliLevel3::WriteSpacePoints(UInt_t npoints,AliHLTSpacePointData *points,
 				 Int_t slice,Int_t patch) const
 { 
   //write space points
@@ -658,7 +658,7 @@ void AliLevel3::WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
     sprintf(name,"%s/points_%d_%d_%d.raw",fWriteOutPath,fEvent,slice,-1);
   else
     sprintf(name,"%s/points_%d_%d_%d.raw",fWriteOutPath,fEvent,slice,patch);
-  AliL3MemHandler * memory = new AliL3MemHandler();
+  AliHLTMemHandler * memory = new AliHLTMemHandler();
   memory->SetBinaryOutput(name);
   memory->Transform(npoints,points,slice);
   memory->Memory2Binary(npoints,points);
@@ -666,20 +666,20 @@ void AliLevel3::WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
   delete  memory;
 }
 
-Int_t AliLevel3::WriteTracks(char *filename,AliL3Merger *merger,char opt) const
+Int_t AliLevel3::WriteTracks(char *filename,AliHLTMerger *merger,char opt) const
 { 
   //write tracks
-  AliL3MemHandler *memory = new AliL3MemHandler();
+  AliHLTMemHandler *memory = new AliHLTMemHandler();
   memory->SetBinaryOutput(filename);
   if(opt=='a'||opt=='i'){  //add intracks
     for(Int_t i=0;iGetNIn();i++){
-      AliL3TrackArray *tr=merger->GetInTracks(i);
+      AliHLTTrackArray *tr=merger->GetInTracks(i);
       memory->TrackArray2Binary(tr);
     }
   }
 
   if(opt=='o'||opt=='a'){
-    AliL3TrackArray *tr=merger->GetOutTracks();
+    AliHLTTrackArray *tr=merger->GetOutTracks();
     memory->TrackArray2Binary(tr);
   }
 
diff --git a/HLT/src/AliLevel3.h b/HLT/src/AliLevel3.h
index 8873f17d546..450b7c5d221 100644
--- a/HLT/src/AliLevel3.h
+++ b/HLT/src/AliLevel3.h
@@ -12,27 +12,27 @@
 class AliRunLoader;
 #endif
 
-#include "AliL3DigitData.h"
-#include "AliL3RootTypes.h"
-
-class AliL3SpacePointData;
-class AliL3DigitRowData;
-class AliL3TrackSegmentData;
-class AliL3DigitData;
-class AliL3ConfMapper;
-class AliL3Vertex;
-class AliL3VertexFinder;
-class AliL3TrackMerger;
-class AliL3GlobalMerger;
+#include "AliHLTDigitData.h"
+#include "AliHLTRootTypes.h"
+
+class AliHLTSpacePointData;
+class AliHLTDigitRowData;
+class AliHLTTrackSegmentData;
+class AliHLTDigitData;
+class AliHLTConfMapper;
+class AliHLTVertex;
+class AliHLTVertexFinder;
+class AliHLTTrackMerger;
+class AliHLTGlobalMerger;
 #ifndef no_root
 class TDirectory;
 #endif
-class AliL3ClustFinderNew;
-class AliL3Merger;
-class AliL3InterMerger;
-class AliL3FileHandler;
-class AliL3MemHandler;
-class AliL3Benchmark;
+class AliHLTClustFinderNew;
+class AliHLTMerger;
+class AliHLTInterMerger;
+class AliHLTFileHandler;
+class AliHLTMemHandler;
+class AliHLTBenchmark;
 
 #ifdef no_root
 class AliLevel3 {
@@ -42,16 +42,16 @@ class AliLevel3 : public TObject {
 
  private:
   UInt_t fNTrackData; //count data
-  AliL3TrackSegmentData* fTrackData; //!
-  AliL3ConfMapper *fTracker; //!
-  AliL3Vertex *fVertex; //! 
-  AliL3VertexFinder *fVertexFinder; //!
-  AliL3TrackMerger *fTrackMerger; //!
-  AliL3GlobalMerger *fGlobalMerger; //!
-  AliL3InterMerger *fInterMerger; //!
-  AliL3ClustFinderNew *fClusterFinder; //! 
-  AliL3MemHandler *fFileHandler; //!
-  AliL3Benchmark *fBenchmark;//!
+  AliHLTTrackSegmentData* fTrackData; //!
+  AliHLTConfMapper *fTracker; //!
+  AliHLTVertex *fVertex; //! 
+  AliHLTVertexFinder *fVertexFinder; //!
+  AliHLTTrackMerger *fTrackMerger; //!
+  AliHLTGlobalMerger *fGlobalMerger; //!
+  AliHLTInterMerger *fInterMerger; //!
+  AliHLTClustFinderNew *fClusterFinder; //! 
+  AliHLTMemHandler *fFileHandler; //!
+  AliHLTBenchmark *fBenchmark;//!
 
   Int_t fEvent;    //event number
   Int_t fNPatch;   //number of patches
@@ -80,9 +80,9 @@ class AliLevel3 : public TObject {
   Float_t fXYClusterError; //Cluster error
   Float_t fZClusterError; //Cluster error
 
-  void WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
+  void WriteSpacePoints(UInt_t npoints,AliHLTSpacePointData *points,
                         Int_t slice,Int_t patch) const;
-  Int_t WriteTracks(char *filename,AliL3Merger *merger,char opt='o') const;  
+  Int_t WriteTracks(char *filename,AliHLTMerger *merger,char opt='o') const;  
   void WriteResults();
   void FitGlobalTracks();
   void SetPath(char *p){sprintf(fPath,"%s",p);}
diff --git a/HLT/src/Makefile b/HLT/src/Makefile
index 811f156b12a..c0b9e0fcd5c 100644
--- a/HLT/src/Makefile
+++ b/HLT/src/Makefile
@@ -6,7 +6,7 @@
 #         Constantin Loizides   #
 #################################
 
-MODNAME = AliL3Src
+MODNAME = AliHLTSrc
 
 ifndef ALIHLT_TOPDIR
 ALIHLT_TOPDIR = $(shell pwd)/..
@@ -14,33 +14,33 @@ endif
 
 include $(ALIHLT_TOPDIR)/Makefile.conf
 
-SRCS	= AliL3ConfMapper.cxx AliL3ConfMapPoint.cxx \
-          AliL3ConfMapTrack.cxx AliL3ConfMapFit.cxx AliL3Track.cxx\
-          AliL3Transform.cxx AliL3TrackMerger.cxx AliL3VertexArray.cxx \
-          AliL3Vertex.cxx AliL3VertexFinder.cxx \
-          AliL3Merger.cxx AliL3GlobalMerger.cxx AliL3ClustFinderNew.cxx \
-          AliL3TrackArray.cxx AliL3InterMerger.cxx AliL3Logger.cxx \
-          AliL3MemHandler.cxx AliLevel3.cxx AliL3Benchmark.cxx  \
-          AliL3Fitter.cxx AliL3RawDataFileHandler.cxx AliL3Log.cxx \
-          AliL3TPCBeamTestMemHandler.cxx
+SRCS	= AliHLTConfMapper.cxx AliHLTConfMapPoint.cxx \
+          AliHLTConfMapTrack.cxx AliHLTConfMapFit.cxx AliHLTTrack.cxx\
+          AliHLTTransform.cxx AliHLTTrackMerger.cxx AliHLTVertexArray.cxx \
+          AliHLTVertex.cxx AliHLTVertexFinder.cxx \
+          AliHLTMerger.cxx AliHLTGlobalMerger.cxx AliHLTClustFinderNew.cxx \
+          AliHLTTrackArray.cxx AliHLTInterMerger.cxx AliHLTLogger.cxx \
+          AliHLTMemHandler.cxx AliLevel3.cxx AliHLTBenchmark.cxx  \
+          AliHLTFitter.cxx AliHLTRawDataFileHandler.cxx AliHLTLog.cxx \
+          AliHLTTPCBeamTestMemHandler.cxx
 
 ifeq ($(ARCH),macosx)
-EXTRA_SRCS = AliL3HoughTrack.cxx AliL3ModelTrack.cxx \
-             AliL3DataCompressorHelper.cxx AliL3DataHandler.cxx \
-             AliL3TransBit.cxx  AliL3DDLDataFileHandler.cxx
+EXTRA_SRCS = AliHLTHoughTrack.cxx AliHLTModelTrack.cxx \
+             AliHLTDataCompressorHelper.cxx AliHLTDataHandler.cxx \
+             AliHLTTransBit.cxx  AliHLTDDLDataFileHandler.cxx
 endif
 
 SRCS += $(EXTRA_SRCS)
 
 ifeq ($(ALIHLT_USEPACKAGE),ROOT)
-SRCS += AliL3Display.cxx
-HDRS = $(SRCS:.cxx=.h) AliL3SpacePointData.h $(MODNAME)LinkDef.h
+SRCS += AliHLTDisplay.cxx
+HDRS = $(SRCS:.cxx=.h) AliHLTSpacePointData.h $(MODNAME)LinkDef.h
 OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(DICTO)
 endif
 
 ifeq ($(ALIHLT_USEPACKAGE),ALIROOT)
-SRCS += AliL3Display.cxx AliL3FileHandler.cxx AliL3Evaluate.cxx AliHLTReconstructor.cxx
-HDRS = $(SRCS:.cxx=.h) AliL3SpacePointData.h $(MODNAME)LinkDef.h
+SRCS += AliHLTDisplay.cxx AliHLTFileHandler.cxx AliHLTEvaluate.cxx AliHLTReconstructor.cxx
+HDRS = $(SRCS:.cxx=.h) AliHLTSpacePointData.h $(MODNAME)LinkDef.h
 OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(DICTO)
 endif
 
diff --git a/HLT/src/l3transform.config b/HLT/src/l3transform.config
index 6350cf24849..f20b57a6408 100755
--- a/HLT/src/l3transform.config
+++ b/HLT/src/l3transform.config
@@ -1,4 +1,4 @@
-void AliL3Transform::Init(){
+void AliHLTTransform::Init(){
   fVersion = 10;
   fBFieldFactor = 1.000;
   fSolenoidBField = 5.000;
diff --git a/HLT/trigger/AliD0Trigger.cxx b/HLT/trigger/AliD0Trigger.cxx
index 532935193ee..dbbe0d86a36 100644
--- a/HLT/trigger/AliD0Trigger.cxx
+++ b/HLT/trigger/AliD0Trigger.cxx
@@ -1,7 +1,7 @@
 #include "AliD0Trigger.h"
 #include 
 #include "AliITStrackV2.h"
-#include "AliL3Transform.h"
+#include "AliHLTTransform.h"
 #include 
 #include 
 
@@ -108,8 +108,8 @@ bool AliD0Trigger::FindV0(){
   Gxneg=negTrack->GetX()*cos(negTrack->GetAlpha())-negTrack->GetY()*sin(negTrack->GetAlpha());
   Gyneg=negTrack->GetX()*sin(negTrack->GetAlpha())+negTrack->GetY()*cos(negTrack->GetAlpha());
     
-  r1=fabs(1/(AliL3Transform::GetBFact()*Bfield*posTrack->Get1Pt()));
-  r2=fabs(1/(AliL3Transform::GetBFact()*Bfield*negTrack->Get1Pt()));
+  r1=fabs(1/(AliHLTTransform::GetBFact()*Bfield*posTrack->Get1Pt()));
+  r2=fabs(1/(AliHLTTransform::GetBFact()*Bfield*negTrack->Get1Pt()));
   
   a1=Gxpos-(r1*cos(posTrack->GetAlpha()+asin(posTrack->GetSnp())+TMath::PiOver2()));
   a2=Gxneg-(r2*cos(negTrack->GetAlpha()+asin(negTrack->GetSnp())-TMath::PiOver2()));
@@ -184,8 +184,8 @@ void AliD0Trigger::FindMomentaAtVertex(){
 
   //This method moves the momenta to the secondary vertex
 
-  double r1=fabs(1/(AliL3Transform::GetBFact()*Bfield*posTrack->Get1Pt()));
-  double r2=fabs(1/(AliL3Transform::GetBFact()*Bfield*negTrack->Get1Pt()));
+  double r1=fabs(1/(AliHLTTransform::GetBFact()*Bfield*posTrack->Get1Pt()));
+  double r2=fabs(1/(AliHLTTransform::GetBFact()*Bfield*negTrack->Get1Pt()));
   
   double Gx1=posTrack->GetX()*cos(posTrack->GetAlpha())-posTrack->GetY()*sin(posTrack->GetAlpha());
   double Gy1=posTrack->GetX()*sin(posTrack->GetAlpha())+posTrack->GetY()*cos(posTrack->GetAlpha());
diff --git a/HLT/trigger/AliD0Trigger.h b/HLT/trigger/AliD0Trigger.h
index ed5af693db7..c7000d84549 100644
--- a/HLT/trigger/AliD0Trigger.h
+++ b/HLT/trigger/AliD0Trigger.h
@@ -1,7 +1,7 @@
 #ifndef AliD0_Trigger
 #define AliD0_Trigger
 
-#include "AliL3RootTypes.h"
+#include "AliHLTRootTypes.h"
 #include 
 #include 
 #include 
diff --git a/HLT/trigger/AliL3Trigger.cxx b/HLT/trigger/AliHLTTrigger.cxx
similarity index 59%
rename from HLT/trigger/AliL3Trigger.cxx
rename to HLT/trigger/AliHLTTrigger.cxx
index 6213abae51c..7d4e23f106e 100644
--- a/HLT/trigger/AliL3Trigger.cxx
+++ b/HLT/trigger/AliHLTTrigger.cxx
@@ -1,17 +1,17 @@
 
-#include "AliL3Trigger.h"
-#include "AliL3TrackArray.h"
-#include "AliL3Transform.h"
-#include "AliL3Vertex.h"
-#include "AliL3Defs.h"
-#include "AliL3DigitData.h"
-#include "AliL3Logging.h"
-#include "AliL3Track.h"
-#include "AliL3MemHandler.h"
+#include "AliHLTTrigger.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTTransform.h"
+#include "AliHLTVertex.h"
+#include "AliHLTDefs.h"
+#include "AliHLTDigitData.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTrack.h"
+#include "AliHLTMemHandler.h"
 
-ClassImp(AliL3Trigger)
+ClassImp(AliHLTTrigger)
 
-AliL3Trigger::AliL3Trigger()
+AliHLTTrigger::AliHLTTrigger()
 {
   fDataSize=0;
   fTracks=0;
@@ -20,54 +20,54 @@ AliL3Trigger::AliL3Trigger()
   fVertex=0;
 }
 
-AliL3Trigger::~AliL3Trigger()
+AliHLTTrigger::~AliHLTTrigger()
 {
   if(fTracks)
     delete fTracks;
 }
 
-void AliL3Trigger::InitTrigger()
+void AliHLTTrigger::InitTrigger()
 {
   if(fTracks)
     delete fTracks;
-  fTracks = new AliL3TrackArray();
+  fTracks = new AliHLTTrackArray();
 }
 
-void AliL3Trigger::InitPatch(Int_t slice,Int_t patch)
+void AliHLTTrigger::InitPatch(Int_t slice,Int_t patch)
 {
   fSlice=slice;
   fPatch=patch;
   fTracks->Reset();
 }
 
-void AliL3Trigger::FillTracks(Int_t ntracks,AliL3TrackSegmentData *tr)
+void AliHLTTrigger::FillTracks(Int_t ntracks,AliHLTTrackSegmentData *tr)
 {
   fTracks->FillTracks(ntracks,tr);
 }
 
-void AliL3Trigger::FillData(AliL3DigitRowData *data)
+void AliHLTTrigger::FillData(AliHLTDigitRowData *data)
 {
   fDigitRowData = data;
 }
 
-void AliL3Trigger::SetParameters(Float_t zcut,Int_t timematch,Int_t padmatch)
+void AliHLTTrigger::SetParameters(Float_t zcut,Int_t timematch,Int_t padmatch)
 {
   fZcut=zcut;
   fTimeMatch=timematch;
   fPadMatch=padmatch;
 }
 
-void AliL3Trigger::SetOutputData(AliL3DigitRowData *ptr)
+void AliHLTTrigger::SetOutputData(AliHLTDigitRowData *ptr)
 {
   fOutput=ptr;
 }
 
-void AliL3Trigger::RemovePileupTracks()
+void AliHLTTrigger::RemovePileupTracks()
 {
   Double_t xc,yc,zc;
   for(Int_t i=0; iGetNTracks(); i++)
     {
-      AliL3Track *track = fTracks->GetCheckedTrack(i);
+      AliHLTTrack *track = fTracks->GetCheckedTrack(i);
       if(!track) continue;
       track->Rotate(fSlice,kTRUE);
       track->CalculateHelix();
@@ -81,7 +81,7 @@ void AliL3Trigger::RemovePileupTracks()
   fTracks->Compress();
 }
 
-void AliL3Trigger::RemovePileupData()
+void AliHLTTrigger::RemovePileupData()
 {
   Float_t hit[3];
   Int_t sector,row;
@@ -89,21 +89,21 @@ void AliL3Trigger::RemovePileupData()
   rowhit row_cross[(fTracks->GetNTracks())];
   Int_t digitcount[(NumRows[fPatch])];
   Int_t totalcount=0;
-  AliL3DigitRowData *rowPt = fDigitRowData;
+  AliHLTDigitRowData *rowPt = fDigitRowData;
   for(Int_t i=NRows[fPatch][0]; i<=NRows[fPatch][1]; i++)
     {
       digitcount[(i-NRows[fPatch][0])]=0;
       for(Int_t j=0; jGetNTracks(); j++)
 	{
-	  AliL3Track *track = fTracks->GetCheckedTrack(j);
+	  AliHLTTrack *track = fTracks->GetCheckedTrack(j);
 	  if(!track) continue;
 	  track->GetCrossingPoint(i,hit);
-	  AliL3Transform::Slice2Sector(fSlice,i,sector,row);
-	  AliL3Transform::Local2Raw(hit,sector,row);
+	  AliHLTTransform::Slice2Sector(fSlice,i,sector,row);
+	  AliHLTTransform::Local2Raw(hit,sector,row);
 	  row_cross[j].pad = (Int_t)rint(hit[1]);
 	  row_cross[j].time = (Int_t)rint(hit[2]);
 	}
-      AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData;
+      AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData;
       Bool_t mark;
       for(Int_t k=0; kfNDigit; k++)
 	{
@@ -122,16 +122,16 @@ void AliL3Trigger::RemovePileupData()
 	  if(mark==kTRUE)
 	    digPt[k].fCharge=0;
 	}
-      AliL3MemHandler::UpdateRowPointer(rowPt);
+      AliHLTMemHandler::UpdateRowPointer(rowPt);
     }
   
-  Int_t size = totalcount*sizeof(AliL3DigitData) + NumRows[fPatch]*sizeof(AliL3DigitRowData);
+  Int_t size = totalcount*sizeof(AliHLTDigitData) + NumRows[fPatch]*sizeof(AliHLTDigitRowData);
   fDataSize = size;
-  LOG(AliL3Log::kDebug,"AliL3Trigger::RemovePileupData","Memory")
+  LOG(AliHLTLog::kDebug,"AliHLTTrigger::RemovePileupData","Memory")
     <<"Allocating "<fRow = i;
       tempPt->fNDigit = digitcount[(i-NRows[fPatch][0])];
-      AliL3DigitData *digPt = (AliL3DigitData*)rowPt->fDigitData;
+      AliHLTDigitData *digPt = (AliHLTDigitData*)rowPt->fDigitData;
       localcount=0;
       for(Int_t j=0; jfNDigit; j++)
 	{
 	  if(digPt[j].fCharge==0) continue;
 	  if(localcount >= digitcount[(i-NRows[fPatch][0])])
 	    {
-	      LOG(AliL3Log::kFatal,"AliL§Trigger::RemovePileupData","Array")
+	      LOG(AliHLTLog::kFatal,"AliL§Trigger::RemovePileupData","Array")
 		<<"Mismatch in digitcount: "<
 #include 
 #include 
-#include 
-#include 
+#include 
+#include 
 #include 
 #include 
 #include "AliJetParticlesReaderHLT.h"
@@ -111,7 +111,7 @@ Int_t AliJetParticlesReaderHLT::ReadESD(AliESD* esd)
 
   fEventParticles->SetVertex(vertexpos[0],vertexpos[1],vertexpos[2]);
   //cout << vertexpos[0] << " " << vertexpos[1] << " " << vertexpos[2] << endl;
-  AliL3Vertex v;
+  AliHLTVertex v;
   v.SetX(vertexpos[0]);
   v.SetY(vertexpos[1]);
   v.SetZ(vertexpos[2]);
@@ -154,7 +154,7 @@ Int_t AliJetParticlesReaderHLT::ReadESD(AliESD* esd)
 	py=mom[1];
 	pz=mom[2];
 #else
-      AliL3Track l3;
+      AliHLTTrack l3;
       //if(!kesdtrack->ComesFromMainVertex()) continue;
       //cout << "Pos: " << kesdtrack->GetFirstPointX() << " " << kesdtrack->GetFirstPointY() << " " << kesdtrack->GetFirstPointZ() << endl;      
       l3.SetFirstPoint(kesdtrack->GetFirstPointX(),kesdtrack->GetFirstPointY(),kesdtrack->GetFirstPointZ());
diff --git a/JETAN/jetan2004/rootlogon.C b/JETAN/jetan2004/rootlogon.C
index ebf0b1c38eb..4883808c11d 100644
--- a/JETAN/jetan2004/rootlogon.C
+++ b/JETAN/jetan2004/rootlogon.C
@@ -8,7 +8,7 @@
   Int_t saveErrIgLevel=gErrorIgnoreLevel;
   gErrorIgnoreLevel=kFatal;
 
-  gSystem->Load("libAliL3ITS.so");
+  gSystem->Load("libAliHLTITS.so");
 
   gSystem->Load("libTkJetFinder.so");
   gSystem->Load("libJetFinder.so");
diff --git a/MONITOR/AliMonitorHLT.cxx b/MONITOR/AliMonitorHLT.cxx
index a58bf2b4b35..296e5a8422a 100644
--- a/MONITOR/AliMonitorHLT.cxx
+++ b/MONITOR/AliMonitorHLT.cxx
@@ -28,12 +28,12 @@
 #include "AliLog.h"
 #include 
 #include 
-#include "AliL3MemHandler.h"
-#include "AliL3SpacePointData.h"
-#include "AliL3TrackArray.h"
-#include "AliL3Track.h"
-#include "AliL3Transform.h"
-#include "AliL3Vertex.h"
+#include "AliHLTMemHandler.h"
+#include "AliHLTSpacePointData.h"
+#include "AliHLTTrackArray.h"
+#include "AliHLTTrack.h"
+#include "AliHLTTransform.h"
+#include "AliHLTVertex.h"
 
 //_____________________________________________________________________________
 AliMonitorHLT::AliMonitorHLT(AliTPCParam* param):
@@ -152,8 +152,8 @@ void AliMonitorHLT::FillHistos(AliRunLoader* /*runLoader*/,
 {
 // fill the HLT monitor histogrms
 
-  AliL3MemHandler clusterHandler[36];
-  AliL3SpacePointData *clusters[36];
+  AliHLTMemHandler clusterHandler[36];
+  AliHLTSpacePointData *clusters[36];
   for (Int_t iSector = 0; iSector < fParam->GetNInnerSector(); iSector++) {
     char fileName[256];
     sprintf(fileName, "hlt/points_%d_-1.raw", iSector);
@@ -161,12 +161,12 @@ void AliMonitorHLT::FillHistos(AliRunLoader* /*runLoader*/,
       AliWarning(Form("could not open file %s", fileName));
       continue;
     }
-    clusters[iSector] = (AliL3SpacePointData*) clusterHandler[iSector].Allocate();
+    clusters[iSector] = (AliHLTSpacePointData*) clusterHandler[iSector].Allocate();
     UInt_t nClusters = 0;
     clusterHandler[iSector].Binary2Memory(nClusters, clusters[iSector]);
 
     for (UInt_t iCluster = 0; iCluster < nClusters; iCluster++) {
-      AliL3SpacePointData& cluster = clusters[iSector][iCluster];
+      AliHLTSpacePointData& cluster = clusters[iSector][iCluster];
       fClustersCharge->Fill(cluster.fCharge);
       fNClustersVsRow->Fill(cluster.fPadRow);
       fNClustersVsSector->Fill(iSector);
@@ -177,19 +177,19 @@ void AliMonitorHLT::FillHistos(AliRunLoader* /*runLoader*/,
 
   fNClustersVsSector->ScaleErrorBy(10.);
 
-  AliL3MemHandler memHandler;
+  AliHLTMemHandler memHandler;
   if (!memHandler.SetBinaryInput("hlt/tracks.raw")) {
     AliWarning("could not open file hlt/tracks.raw");
     return;
   }
-  AliL3TrackArray* tracks = new AliL3TrackArray;
+  AliHLTTrackArray* tracks = new AliHLTTrackArray;
   memHandler.Binary2TrackArray(tracks);
   Double_t xc,yc,zc;
-  AliL3Vertex vertex;
+  AliHLTVertex vertex;
 
   fNTracks->Fill(tracks->GetNTracks());
   for (Int_t iTrack = 0; iTrack < tracks->GetNTracks(); iTrack++) {
-    AliL3Track* track = tracks->GetCheckedTrack(iTrack);
+    AliHLTTrack* track = tracks->GetCheckedTrack(iTrack);
     if(!track) continue;
     track->CalculateHelix();
     track->GetClosestPoint(&vertex,xc,yc,zc);
@@ -216,9 +216,9 @@ void AliMonitorHLT::FillHistos(AliRunLoader* /*runLoader*/,
       Int_t iSector = (hitID>>25) & 0x7f;
       UInt_t position = hitID&0x3fffff;
       UChar_t padrow = clusters[iSector][position].fPadRow;
-      Float_t pWidth = AliL3Transform::GetPadPitchWidthLow();
+      Float_t pWidth = AliHLTTransform::GetPadPitchWidthLow();
       if (padrow>63)
-	pWidth = AliL3Transform::GetPadPitchWidthUp(); 
+	pWidth = AliHLTTransform::GetPadPitchWidthUp(); 
       Float_t corr=1.; if (padrow>63) corr=0.67;
       sampleDEdx[iHit] = clusters[iSector][position].fCharge/pWidth*corr;
       Double_t crossingangle = track->GetCrossingAngle(padrow,iSector);
diff --git a/MONITOR/AliMonitorHLTHough.cxx b/MONITOR/AliMonitorHLTHough.cxx
index fc669bc35d1..5b95e358898 100644
--- a/MONITOR/AliMonitorHLTHough.cxx
+++ b/MONITOR/AliMonitorHLTHough.cxx
@@ -28,11 +28,11 @@
 #include "AliLog.h"
 #include 
 #include 
-#include 
-#include 
-#include 
-#include 
-#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 
 //_____________________________________________________________________________
 AliMonitorHLTHough::AliMonitorHLTHough(AliTPCParam* param):
@@ -130,8 +130,8 @@ void AliMonitorHLTHough::FillHistos(AliRunLoader* /*runLoader*/,
 {
 // fill the HLT Hough transform monitor histograms
 
-  AliL3MemHandler clusterHandler[36][6];
-  AliL3SpacePointData *clusters[36][6];
+  AliHLTMemHandler clusterHandler[36][6];
+  AliHLTSpacePointData *clusters[36][6];
   for (Int_t iSector = 0; iSector < fParam->GetNInnerSector(); iSector++) {
     for (Int_t iPatch = 0; iPatch < 6; iPatch++) {
       char fileName[256];
@@ -140,12 +140,12 @@ void AliMonitorHLTHough::FillHistos(AliRunLoader* /*runLoader*/,
 	AliWarning(Form("could not open file %s", fileName));
 	continue;
       }
-      clusters[iSector][iPatch] = (AliL3SpacePointData*) clusterHandler[iSector][iPatch].Allocate();
+      clusters[iSector][iPatch] = (AliHLTSpacePointData*) clusterHandler[iSector][iPatch].Allocate();
       UInt_t nClusters = 0;
       clusterHandler[iSector][iPatch].Binary2Memory(nClusters, clusters[iSector][iPatch]);
 
       for (UInt_t iCluster = 0; iCluster < nClusters; iCluster++) {
-	AliL3SpacePointData& cluster = clusters[iSector][iPatch][iCluster];
+	AliHLTSpacePointData& cluster = clusters[iSector][iPatch][iCluster];
 	fClustersCharge->Fill(cluster.fCharge);
 	fNClustersVsRow->Fill(cluster.fPadRow);
 	fNClustersVsSector->Fill(iSector);
@@ -158,7 +158,7 @@ void AliMonitorHLTHough::FillHistos(AliRunLoader* /*runLoader*/,
   fNClustersVsSector->ScaleErrorBy(10.);
 
 
-  AliL3MemHandler memHandler;
+  AliHLTMemHandler memHandler;
   Int_t nHoughTracks = 0;
 
   char fileName[256];
@@ -167,12 +167,12 @@ void AliMonitorHLTHough::FillHistos(AliRunLoader* /*runLoader*/,
     AliWarning("could not open file hlt/fitter/tracks.raw");
     return;
   }
-  AliL3TrackArray* tracks = new AliL3TrackArray;
+  AliHLTTrackArray* tracks = new AliHLTTrackArray;
   memHandler.Binary2TrackArray(tracks);
 
   nHoughTracks += tracks->GetNTracks();
   for (Int_t iTrack = 0; iTrack < tracks->GetNTracks(); iTrack++) {
-    AliL3HoughTrack *track = (AliL3HoughTrack*)tracks->GetCheckedTrack(iTrack);
+    AliHLTHoughTrack *track = (AliHLTHoughTrack*)tracks->GetCheckedTrack(iTrack);
     if(!track) continue;
 
     track->CalculateHelix();
@@ -197,9 +197,9 @@ void AliMonitorHLTHough::FillHistos(AliRunLoader* /*runLoader*/,
       Int_t iPatch = (hitID>>22) & 0x7;
       UInt_t position = hitID&0x3fffff;
       UChar_t padrow = clusters[iSector][iPatch][position].fPadRow;
-      Float_t pWidth = AliL3Transform::GetPadPitchWidthLow();
+      Float_t pWidth = AliHLTTransform::GetPadPitchWidthLow();
       if (padrow>63)
-	pWidth = AliL3Transform::GetPadPitchWidthUp(); 
+	pWidth = AliHLTTransform::GetPadPitchWidthUp(); 
       Float_t corr=1.; if (padrow>63) corr=0.67;
       sampleDEdx[iHit] = clusters[iSector][iPatch][position].fCharge/pWidth*corr;
       Double_t crossingangle = track->GetCrossingAngle(padrow,iSector);
diff --git a/MONITOR/AliMonitorProcess.cxx b/MONITOR/AliMonitorProcess.cxx
index 4f5e9bc939a..d1e43570793 100644
--- a/MONITOR/AliMonitorProcess.cxx
+++ b/MONITOR/AliMonitorProcess.cxx
@@ -52,17 +52,17 @@
 #include "AliTPCtrackerMI.h"
 #include "AliV0vertexer.h"
 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 #include 
 
 ClassImp(AliMonitorProcess)
@@ -144,7 +144,7 @@ AliMonitorProcess::AliMonitorProcess(
   if (!fITSgeom) AliFatal("could not load ITS geometry");
 
   // Init TPC parameters for HLT
-  Bool_t isinit=AliL3Transform::Init(const_cast(fileNameGalice),kTRUE);
+  Bool_t isinit=AliHLTTransform::Init(const_cast(fileNameGalice),kTRUE);
   if(!isinit){
     AliFatal("Could not create transform settings, please check log for error messages!");
   }
@@ -729,7 +729,7 @@ void AliMonitorProcess::CreateHLTHough(const char* fileName)
   char name[256];
   strcpy(name, fileName);
 
-  fHLTHough = new AliL3Hough();
+  fHLTHough = new AliHLTHough();
   fHLTHough->SetThreshold(4);
   fHLTHough->SetTransformerParams(140,150,0.5,-1);
   fHLTHough->SetPeakThreshold(9000,-1);// or 6000
@@ -792,7 +792,7 @@ Bool_t AliMonitorProcess::ReconstructHLTHough(Int_t iEvent)
   fHLTHough->WriteTracks("./hlt/hough");
 
   // Run cluster fitter
-  AliL3ClusterFitter *fitter = new AliL3ClusterFitter("./hlt");
+  AliHLTClusterFitter *fitter = new AliHLTClusterFitter("./hlt");
 
   // Set debug flag for the cluster fitter
   //  fitter->Debug();
@@ -805,7 +805,7 @@ Bool_t AliMonitorProcess::ReconstructHLTHough(Int_t iEvent)
   //fitter->SetChiSqMax(5,kFALSE); //isolated clusters
   fitter->SetChiSqMax(5,kTRUE);  //overlapping clusters
 
-  Int_t rowrange[2] = {0,AliL3Transform::GetNRows()-1};
+  Int_t rowrange[2] = {0,AliHLTTransform::GetNRows()-1};
 
   // Takes input from global hough tracks produced by HT
   fitter->LoadSeeds(rowrange,kFALSE,iEvent);
@@ -814,12 +814,12 @@ Bool_t AliMonitorProcess::ReconstructHLTHough(Int_t iEvent)
 
   for(Int_t islice = 0; islice <= 35; islice++)
     {
-      for(Int_t ipatch = 0; ipatch < AliL3Transform::GetNPatches(); ipatch++)
+      for(Int_t ipatch = 0; ipatch < AliHLTTransform::GetNPatches(); ipatch++)
 	{
 	  // Read digits
 	  fHLTHough->GetMemHandler(ipatch)->Free();
 	  fHLTHough->GetMemHandler(ipatch)->Init(islice,ipatch);
-	  AliL3DigitRowData *digits = (AliL3DigitRowData *)fHLTHough->GetMemHandler(ipatch)->AliAltroDigits2Memory(ndigits,iEvent);
+	  AliHLTDigitRowData *digits = (AliHLTDigitRowData *)fHLTHough->GetMemHandler(ipatch)->AliAltroDigits2Memory(ndigits,iEvent);
 
 	  fitter->Init(islice,ipatch);
 	  fitter->SetInputData(digits);
@@ -829,15 +829,15 @@ Bool_t AliMonitorProcess::ReconstructHLTHough(Int_t iEvent)
     }
 
   // Refit of the clusters
-  AliL3Vertex vertex;
+  AliHLTVertex vertex;
   //The seeds are the input tracks from circle HT
-  AliL3TrackArray *tracks = fitter->GetSeeds();
-  AliL3Fitter *ft = new AliL3Fitter(&vertex,1);
+  AliHLTTrackArray *tracks = fitter->GetSeeds();
+  AliHLTFitter *ft = new AliHLTFitter(&vertex,1);
 
   ft->LoadClusters("./hlt/fitter/",iEvent,kFALSE);
   for(Int_t i=0; iGetNTracks(); i++)
     {
-      AliL3Track *track = tracks->GetCheckedTrack(i);
+      AliHLTTrack *track = tracks->GetCheckedTrack(i);
       if(!track) continue;
       if(track->GetNHits() < 20) continue;
       ft->SortTrackClusters(track);
diff --git a/MONITOR/AliMonitorProcess.h b/MONITOR/AliMonitorProcess.h
index d10760544c1..b83389310a9 100644
--- a/MONITOR/AliMonitorProcess.h
+++ b/MONITOR/AliMonitorProcess.h
@@ -24,7 +24,7 @@ class AliRawReader;
 class AliRunLoader;
 class AliTPCParam;
 class AliLevel3;
-class AliL3Hough;
+class AliHLTHough;
 
 
 class AliMonitorProcess : public TObject {
@@ -102,7 +102,7 @@ private:
   TString          fLogicalFileName;    // logical AliEn file name
   TString          fFileName;           // physical file name
   AliLevel3*       fHLT;                // the HLT tracker
-  AliL3Hough*      fHLTHough;           // the HLT hough transformer
+  AliHLTHough*      fHLTHough;           // the HLT hough transformer
 
   UInt_t           fRunNumber;          // current run number
   UInt_t           fSubRunNumber;       // current part (=resets per run)
diff --git a/MONITOR/binmonitorCheck.pkg b/MONITOR/binmonitorCheck.pkg
index b4b9a36eca2..b2fcac8ae48 100644
--- a/MONITOR/binmonitorCheck.pkg
+++ b/MONITOR/binmonitorCheck.pkg
@@ -17,7 +17,7 @@ PACKBLIBS := $(ROOTCLIBS) $(SYSLIBS)
 ifdef DATE_ROOT
 
 ELIBSDIR:=${DATE_MONITOR_DIR}/${DATE_SYS}
-ELIBS:= ESD CDB STEER RAWDatabase RAWDatarec RAWDatasim monitor shift TPCbase TPCsim TPCrec ITSbase ITSsim ITSrec AliL3Src AliL3Comp AliL3Misc AliL3Hough AliL3ITS AliL3MUON MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
+ELIBS:= ESD CDB STEER RAWDatabase RAWDatarec RAWDatasim monitor shift TPCbase TPCsim TPCrec ITSbase ITSsim ITSrec AliHLTSrc AliHLTComp AliHLTMisc AliHLTHough AliHLTITS AliHLTMUON MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
 EINCLUDE+= ${DATE_COMMON_DEFS} ${DATE_MONITOR_DIR}
 
 endif
diff --git a/MONITOR/binmonitorGDC.pkg b/MONITOR/binmonitorGDC.pkg
index 86139276cdc..57012c1a8ce 100644
--- a/MONITOR/binmonitorGDC.pkg
+++ b/MONITOR/binmonitorGDC.pkg
@@ -17,7 +17,7 @@ PACKBLIBS := $(ROOTCLIBS) $(SYSLIBS)
 ifdef DATE_ROOT
 
 ELIBSDIR:=${DATE_MONITOR_DIR}/${DATE_SYS}
-ELIBS:=ESD CDB STEER RAWDatabase RAWDatarec RAWDatasim TPCbase TPCsim TPCrec AliL3Src AliL3Misc AliL3Hough AliL3Comp AliL3ITS AliL3MUON ITSbase ITSsim ITSrec monitor shift MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
+ELIBS:=ESD CDB STEER RAWDatabase RAWDatarec RAWDatasim TPCbase TPCsim TPCrec AliHLTSrc AliHLTMisc AliHLTHough AliHLTComp AliHLTITS AliHLTMUON ITSbase ITSsim ITSrec monitor shift MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
 EINCLUDE+= ${DATE_COMMON_DEFS} ${DATE_MONITOR_DIR}
 
 endif
diff --git a/MONITOR/client.C b/MONITOR/client.C
index 869158c6f06..eb6f6400b34 100644
--- a/MONITOR/client.C
+++ b/MONITOR/client.C
@@ -7,10 +7,10 @@ void client()
 {
   // load libraries
   if (!gROOT->GetClass("AliLevel3")) {
-    gSystem->Load("libAliL3Src.so");
-    gSystem->Load("libAliL3Misc.so");
-    gSystem->Load("libAliL3Hough.so");
-    gSystem->Load("libAliL3Comp.so");
+    gSystem->Load("libAliHLTSrc.so");
+    gSystem->Load("libAliHLTMisc.so");
+    gSystem->Load("libAliHLTHough.so");
+    gSystem->Load("libAliHLTComp.so");
   }
   if (!gROOT->GetClass("AliMonitorClient")) {
     gSystem->Load("libMONITOR.so");
diff --git a/MONITOR/monitor.C b/MONITOR/monitor.C
index a34ea79eba2..e41cd9c8944 100644
--- a/MONITOR/monitor.C
+++ b/MONITOR/monitor.C
@@ -14,10 +14,10 @@ void monitor(Bool_t batchMode = kFALSE,
 {
   // load libraries
   if (!gROOT->GetClass("AliLevel3")) {
-    gSystem->Load("libAliL3Src.so");
-    gSystem->Load("libAliL3Misc.so");
-    gSystem->Load("libAliL3Hough.so");
-    gSystem->Load("libAliL3Comp.so");
+    gSystem->Load("libAliHLTSrc.so");
+    gSystem->Load("libAliHLTMisc.so");
+    gSystem->Load("libAliHLTHough.so");
+    gSystem->Load("libAliHLTComp.so");
   }
   if (!gROOT->GetClass("AliMonitorProcess")) {
     gSystem->Load("libMONITOR.so");
diff --git a/MONITOR/monitorGDC.cxx b/MONITOR/monitorGDC.cxx
index d659165d87a..59118ccb20b 100644
--- a/MONITOR/monitorGDC.cxx
+++ b/MONITOR/monitorGDC.cxx
@@ -34,21 +34,21 @@
 #include "AliRawReaderDate.h"
 #include "event.h"
 #include "monitor.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 #include 
 #include "AliITSgeom.h"
 #include "AliMagF.h"
 #include "AliMagFMaps.h"
-#include 
-#include 
-#include 
+#include 
+#include 
+#include 
 #endif
 
 //_____________________________________________________________________________
@@ -100,18 +100,18 @@ int main(int argc, char** argv)
   if (status) ::Fatal("monitorDeclareMp", monitorDecodeError(status));
 
   // initialize HLT transformations
-  if (!AliL3Transform::Init("./", kFALSE)) {
-    ::Fatal("AliL3Transform::Init", "HLT initialization failed");
+  if (!AliHLTTransform::Init("./", kFALSE)) {
+    ::Fatal("AliHLTTransform::Init", "HLT initialization failed");
   }
   AliESD *esd = new AliESD;
   //  AliKalmanTrack::SetConvConst(
-  //     1000/0.299792458/AliL3Transform::GetSolenoidField()
+  //     1000/0.299792458/AliHLTTransform::GetSolenoidField()
   //  );
   AliITSgeom *geom = new AliITSgeom();
   geom->ReadNewFile("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymmFMD.det");
   if (!geom) return 1;
   Int_t sfield = 0;
-  switch ((Int_t)(AliL3Transform::GetSolenoidField()+0.5)) {
+  switch ((Int_t)(AliHLTTransform::GetSolenoidField()+0.5)) {
   case 2:
     sfield = AliMagFMaps::k2kG;
     break;
@@ -122,7 +122,7 @@ int main(int argc, char** argv)
     sfield = AliMagFMaps::k5kG;
     break;
   default:
-    ::Fatal("AliL3Transform::GetSolenoidField", "Incorrect magnetic field");
+    ::Fatal("AliHLTTransform::GetSolenoidField", "Incorrect magnetic field");
   }
   AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., sfield);
   AliTracker::SetFieldMap(field,kTRUE);
@@ -164,18 +164,18 @@ int main(int argc, char** argv)
 
       } else {
 
-	AliL3Benchmark *fBenchmark = new AliL3Benchmark();
+	AliHLTBenchmark *fBenchmark = new AliHLTBenchmark();
 	fBenchmark->Start("Overall timing");
 
 	// ITS clusterer and vertexer
 	fBenchmark->Start("ITS Clusterer");
-	AliL3ITSclusterer clusterer(geom);
+	AliHLTITSclusterer clusterer(geom);
 	AliRawReader *itsrawreader=new AliRawReaderDate(ptr);
 	TTree* treeClusters = new TTree("TreeL3ITSclusters"," "); //make a tree
 	clusterer.Digits2Clusters(itsrawreader,treeClusters);
 	fBenchmark->Stop("ITS Clusterer");
 	
-	AliL3ITSVertexerZ vertexer;
+	AliHLTITSVertexerZ vertexer;
 	AliESDVertex *vertex = vertexer.FindVertexForCurrentEvent(geom,treeClusters);
 	Double_t vtxPos[3];
 	Double_t vtxErr[3]={0.005,0.005,0.010};
@@ -184,12 +184,12 @@ int main(int argc, char** argv)
 	esd->SetVertex(vertex);
 
 	// TPC Hough reconstruction
-	Float_t ptmin = 0.1*AliL3Transform::GetSolenoidField();
+	Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField();
 	Float_t zvertex = vtxPos[2];
 
 	// Run the Hough Transformer
 	fBenchmark->Start("Init");
-	AliL3Hough *hough1 = new AliL3Hough();
+	AliHLTHough *hough1 = new AliHLTHough();
 
 	hough1->SetThreshold(4);
 	hough1->CalcTransformerParams(ptmin);
@@ -200,7 +200,7 @@ int main(int argc, char** argv)
 	fBenchmark->Stop("Init");
 
 	fBenchmark->Start("Init");
-	AliL3Hough *hough2 = new AliL3Hough();
+	AliHLTHough *hough2 = new AliHLTHough();
 
 	hough2->SetThreshold(4);
 	hough2->CalcTransformerParams(ptmin);
@@ -217,9 +217,9 @@ int main(int argc, char** argv)
 
 	//	gSystem->Sleep(20000);
 	if(hough1->WaitForThreadFinish())
-	  ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+	  ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
 	if(hough2->WaitForThreadFinish())
-	  ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+	  ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
 
 	gSystem->MakeDirectory("hough1");
 	hough1->WriteTracks("./hough1");
@@ -242,7 +242,7 @@ int main(int argc, char** argv)
 	  hough1->AddTracks();
 	  fBenchmark->Stop("AddTracks");
 
-	  //	  AliL3TrackArray* tracks = (AliL3TrackArray*)hough1->GetTracks(0);
+	  //	  AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough1->GetTracks(0);
 	  //	  nglobaltracks += tracks->GetNTracks();
 	}
 	for(int slice=18; slice<=35; slice++)
@@ -260,7 +260,7 @@ int main(int argc, char** argv)
 	  hough2->AddTracks();
 	  fBenchmark->Stop("AddTracks");
 
-	  //	  AliL3TrackArray* tracks = (AliL3TrackArray*)hough2->GetTracks(0);
+	  //	  AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough2->GetTracks(0);
 	  //	  nglobaltracks += tracks->GetNTracks();
 	}
 
@@ -268,7 +268,7 @@ int main(int argc, char** argv)
 	nglobaltracks += hough2->FillESD(esd);
 
 	// ITS tracker
-	AliL3ITStracker itsTracker(geom);
+	AliHLTITStracker itsTracker(geom);
 	itsTracker.SetVertex(vtxPos,vtxErr);
 
 	itsTracker.LoadClusters(treeClusters);
diff --git a/RAW/AliHoughFilter.cxx b/RAW/AliHoughFilter.cxx
index 80dc23b9ac7..ca9410dd409 100644
--- a/RAW/AliHoughFilter.cxx
+++ b/RAW/AliHoughFilter.cxx
@@ -23,14 +23,14 @@
 
 #include 
 
-#include "AliL3StandardIncludes.h"
-#include "AliL3Logging.h"
-#include "AliL3Transform.h"
-#include "AliL3Hough.h"
+#include "AliHLTStandardIncludes.h"
+#include "AliHLTLogging.h"
+#include "AliHLTTransform.h"
+#include "AliHLTHough.h"
 #include "AliLog.h"
-#include 
-#include 
-#include 
+#include 
+#include 
+#include 
 
 #include "AliHoughFilter.h"
 
@@ -50,23 +50,23 @@ fITSgeom(NULL)
 // default constructor
 
   // Init debug level
-  AliL3Log::fgLevel = AliL3Log::kError;
-  if (AliDebugLevel() > 0) AliL3Log::fgLevel = AliL3Log::kWarning;
-  if (AliDebugLevel() > 1) AliL3Log::fgLevel = AliL3Log::kInformational;
-  if (AliDebugLevel() > 2) AliL3Log::fgLevel = AliL3Log::kDebug;
+  AliHLTLog::fgLevel = AliHLTLog::kError;
+  if (AliDebugLevel() > 0) AliHLTLog::fgLevel = AliHLTLog::kWarning;
+  if (AliDebugLevel() > 1) AliHLTLog::fgLevel = AliHLTLog::kInformational;
+  if (AliDebugLevel() > 2) AliHLTLog::fgLevel = AliHLTLog::kDebug;
 
   // Init TPC HLT geometry
   const char *path = gSystem->Getenv("ALICE_ROOT");
   Char_t pathname[1024];
   strcpy(pathname,path);
   strcat(pathname,"/HLT/src");
-  if (!AliL3Transform::Init(pathname, kFALSE))
+  if (!AliHLTTransform::Init(pathname, kFALSE))
     AliError("HLT initialization failed!");
 
   // Init magnetic field
   AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG);
   AliTracker::SetFieldMap(field,kTRUE);
-  fPtmin = 0.1*AliL3Transform::GetSolenoidField();
+  fPtmin = 0.1*AliHLTTransform::GetSolenoidField();
 
   // Init ITS geometry
   fITSgeom = new AliITSgeom();
@@ -115,7 +115,7 @@ void AliHoughFilter::RunITSclusterer(AliRawEvent* event, TTree *treeClusters)
 
   if(!fITSgeom)
     AliError("ITS geometry not created!");
-  AliL3ITSclusterer clusterer(fITSgeom);
+  AliHLTITSclusterer clusterer(fITSgeom);
   AliRawReader *itsrawreader=new AliRawReaderRoot(event);
   clusterer.Digits2Clusters(itsrawreader,treeClusters);
   delete itsrawreader;
@@ -133,7 +133,7 @@ void AliHoughFilter::RunITSvertexer(AliESD* esd, TTree *treeClusters)
   TStopwatch timer;
   timer.Start();
 
-  AliL3ITSVertexerZ vertexer;
+  AliHLTITSVertexerZ vertexer;
   AliESDVertex *vertex = vertexer.FindVertexForCurrentEvent(fITSgeom,treeClusters);
   esd->SetVertex(vertex);
   AliInfo(Form("ITS vertexer has finished in %f seconds\n",timer.RealTime()));
@@ -152,7 +152,7 @@ void AliHoughFilter::RunTPCtracking(AliRawEvent* event, AliESD* esd)
   const AliESDVertex *vertex = esd->GetVertex();
   Float_t zvertex = vertex->GetZv();
 
-  AliL3Hough *hough1 = new AliL3Hough();
+  AliHLTHough *hough1 = new AliHLTHough();
     
   hough1->SetThreshold(4);
   hough1->CalcTransformerParams(fPtmin);
@@ -160,7 +160,7 @@ void AliHoughFilter::RunTPCtracking(AliRawEvent* event, AliESD* esd)
   hough1->Init(100,4,event,zvertex);
   hough1->SetAddHistograms();
 
-  AliL3Hough *hough2 = new AliL3Hough();
+  AliHLTHough *hough2 = new AliHLTHough();
   
   hough2->SetThreshold(4);
   hough2->CalcTransformerParams(fPtmin);
@@ -174,9 +174,9 @@ void AliHoughFilter::RunTPCtracking(AliRawEvent* event, AliESD* esd)
   hough2->StartProcessInThread(18,35);
 
   if(hough1->WaitForThreadFinish())
-    ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+    ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
   if(hough2->WaitForThreadFinish())
-    ::Fatal("AliL3Hough::WaitForThreadFinish"," Can not join the required thread! ");
+    ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
 
     /* In case we run HLT code in the main thread
     for(Int_t slice=0; slice<=17; slice++)
@@ -228,7 +228,7 @@ void AliHoughFilter::RunITStracking(AliESD* esd, TTree *treeClusters)
   const AliESDVertex *vertex = esd->GetVertex();
   vertex->GetXYZ(vtxPos);
 
-  AliL3ITStracker itsTracker(fITSgeom);
+  AliHLTITStracker itsTracker(fITSgeom);
   itsTracker.SetVertex(vtxPos,vtxErr);
 
   itsTracker.LoadClusters(treeClusters);
diff --git a/RAW/Makefile b/RAW/Makefile
index b21fd5c5400..c486b1caddf 100644
--- a/RAW/Makefile
+++ b/RAW/Makefile
@@ -50,7 +50,7 @@ endif
 ifneq ($(findstring hlt,$(MAKECMDGOALS)),)
 include ../HLT/hlt.conf
 CXXFLAGS += -DUSE_HLT ${HLTDEFS} -I${ALICE_ROOT}/include -I../HLT/src -I../HLT/hough -I../HLT/comp
-LIBS     += -lEG -lVMC -lGeom -lThread -L../lib/tgt_linuxDEBUG -lSTEER -lRAWData -lTPCbase -lTPCsim -lTPCrec -lCONTAINERS -lAliL3Src -lAliL3Misc -lAliL3Hough -lAliL3Comp
+LIBS     += -lEG -lVMC -lGeom -lThread -L../lib/tgt_linuxDEBUG -lSTEER -lRAWData -lTPCbase -lTPCsim -lTPCrec -lCONTAINERS -lAliHLTSrc -lAliHLTMisc -lAliHLTHough -lAliHLTComp
 endif
 
 ##### DATE #####
diff --git a/RAW/binalimdc.pkg b/RAW/binalimdc.pkg
index e5edf6698b2..bc48081eca8 100644
--- a/RAW/binalimdc.pkg
+++ b/RAW/binalimdc.pkg
@@ -14,7 +14,7 @@ EINCLUDE+= TPC ITS RAW HLT/src HLT/hough HLT/comp HLT/ITS
 
 PACKBLIBS := $(ROOTCLIBS) $(SYSLIBS)
 
-ELIBS:=ESD RAWDatabase RAWDatarec RAWDatasim MDC MDCFilter CDB STEER TPCbase TPCsim TPCrec AliL3Src AliL3Misc AliL3Hough AliL3Comp AliL3ITS AliL3MUON ITSbase ITSsim ITSrec MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
+ELIBS:=ESD RAWDatabase RAWDatarec RAWDatasim MDC MDCFilter CDB STEER TPCbase TPCsim TPCrec AliHLTSrc AliHLTMisc AliHLTHough AliHLTComp AliHLTITS AliHLTMUON ITSbase ITSsim ITSrec MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
 
 ifneq (,$(findstring macosx,$(ALICE_TARGET)))
 PACKLDFLAGS:=$(LDFLAGS) $(@PACKAGE@LIBSINIT:%=-Wl,-u,_G__cpp_setupG__%)
diff --git a/RAW/bindateStream.pkg b/RAW/bindateStream.pkg
index 236dd5dc2e1..8b819d4782d 100644
--- a/RAW/bindateStream.pkg
+++ b/RAW/bindateStream.pkg
@@ -13,7 +13,7 @@ EINCLUDE+= TPC ITS RAW HLT/src HLT/hough HLT/comp HLT/ITS
 
 PACKBLIBS := $(ROOTCLIBS) $(SYSLIBS)
 
-ELIBS:=ESD RAWDatabase RAWDatarec RAWDatasim MDC MDCFilter CDB STEER TPCbase TPCsim TPCrec AliL3Src AliL3Misc AliL3Hough AliL3Comp AliL3ITS AliL3MUON ITSbase ITSsim ITSrec MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
+ELIBS:=ESD RAWDatabase RAWDatarec RAWDatasim MDC MDCFilter CDB STEER TPCbase TPCsim TPCrec AliHLTSrc AliHLTMisc AliHLTHough AliHLTComp AliHLTITS AliHLTMUON ITSbase ITSsim ITSrec MUONsim MUONrec MUONbase MUONgeometry MUONraw MUONmapping
 
 ifneq (,$(findstring macosx,$(ALICE_TARGET)))
 PACKLDFLAGS:=$(LDFLAGS) $(@PACKAGE@LIBSINIT:%=-Wl,-u,_G__cpp_setupG__%)
diff --git a/STEER/AliReconstruction.cxx b/STEER/AliReconstruction.cxx
index 6de91a960cc..f8c7a34e4bb 100644
--- a/STEER/AliReconstruction.cxx
+++ b/STEER/AliReconstruction.cxx
@@ -1408,10 +1408,10 @@ AliReconstructor* AliReconstruction::GetReconstructor(Int_t iDet)
 
   if (detName == "HLT") {
     if (!gROOT->GetClass("AliLevel3")) {
-      gSystem->Load("libAliL3Src.so");
-      gSystem->Load("libAliL3Misc.so");
-      gSystem->Load("libAliL3Hough.so");
-      gSystem->Load("libAliL3Comp.so");
+      gSystem->Load("libAliHLTSrc.so");
+      gSystem->Load("libAliHLTMisc.so");
+      gSystem->Load("libAliHLTHough.so");
+      gSystem->Load("libAliHLTComp.so");
     }
   }
 
diff --git a/build/module.dep b/build/module.dep
index 6ca6ff9dad8..480cf17c307 100644
--- a/build/module.dep
+++ b/build/module.dep
@@ -12,7 +12,7 @@ HBTAN/module.mk:	 HBTAN/libHBTAN.pkg
 HBTP/module.mk:		 HBTP/libHBTP.pkg
 HERWIG/module.mk:        HERWIG/libherwig.pkg
 HIJING/module.mk:	 HIJING/libhijing.pkg
-HLT/module.mk:           HLT/libAliL3Src.pkg  HLT/libAliL3Hough.pkg  HLT/libAliL3Misc.pkg  HLT/libAliL3Comp.pkg HLT/libAliL3ITS.pkg HLT/libAliL3MUON.pkg
+HLT/module.mk:           HLT/libAliHLTSrc.pkg  HLT/libAliHLTHough.pkg  HLT/libAliHLTMisc.pkg  HLT/libAliHLTComp.pkg HLT/libAliHLTITS.pkg HLT/libAliHLTMUON.pkg
 ITS/module.mk:		 ITS/libITSbase.pkg ITS/libITSsim.pkg ITS/libITSrec.pkg
 JETAN/module.mk:	 JETAN/libJETAN.pkg
 MEVSIM/module.mk:	 MEVSIM/libmevsim.pkg
diff --git a/macros/loadlibs.C b/macros/loadlibs.C
index 48504362676..ff221746208 100644
--- a/macros/loadlibs.C
+++ b/macros/loadlibs.C
@@ -89,10 +89,10 @@ void loadlibs ()
   gSystem->Load("libTOFsim");
   gSystem->Load("libTOFrec");
 
-  gSystem->Load("libAliL3ITS");
-  gSystem->Load("libAliL3Src");
-  gSystem->Load("libAliL3Misc");
-  gSystem->Load("libAliL3Comp");
+  gSystem->Load("libAliHLTITS");
+  gSystem->Load("libAliHLTSrc");
+  gSystem->Load("libAliHLTMisc");
+  gSystem->Load("libAliHLTComp");
   gSystem->Load("libThread");
-  gSystem->Load("libAliL3Hough");
+  gSystem->Load("libAliHLTHough");
 }
diff --git a/macros/loadlibsrec.C b/macros/loadlibsrec.C
index 7905401ec0b..05c571f774f 100644
--- a/macros/loadlibsrec.C
+++ b/macros/loadlibsrec.C
@@ -71,10 +71,10 @@ void loadlibsrec ()
   gSystem->Load("libTOFsim");
   gSystem->Load("libTOFrec");
 
-  gSystem->Load("libAliL3ITS");
-  gSystem->Load("libAliL3Src");
-  gSystem->Load("libAliL3Misc");
-  gSystem->Load("libAliL3Comp");
+  gSystem->Load("libAliHLTITS");
+  gSystem->Load("libAliHLTSrc");
+  gSystem->Load("libAliHLTMisc");
+  gSystem->Load("libAliHLTComp");
   gSystem->Load("libThread");
-  gSystem->Load("libAliL3Hough");
+  gSystem->Load("libAliHLTHough");
 }
-- 
2.39.3