From: sgorbuno Date: Thu, 27 Jun 2013 00:29:06 +0000 (+0000) Subject: - input of cluster compression component is changed to AliHLTTPCRawCluster format; X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=49bdc4660e6b95428c4c1fb9403fc17fad34dc9d;p=u%2Fmrichter%2FAliRoot.git - input of cluster compression component is changed to AliHLTTPCRawCluster format; - cluster merger is disabled in ClusterAccessHLTOUT, clusters are now merged in the HLT before the compression - HLT data flow is changed correspondingly --- diff --git a/HLT/TPCLib/AliHLTTPCAgent.cxx b/HLT/TPCLib/AliHLTTPCAgent.cxx index 92f6d40f29e..22f119277e0 100644 --- a/HLT/TPCLib/AliHLTTPCAgent.cxx +++ b/HLT/TPCLib/AliHLTTPCAgent.cxx @@ -62,6 +62,8 @@ AliHLTTPCAgent gAliHLTTPCAgent; #include "AliHLTTPCDataCompressionMonitorComponent.h" #include "AliHLTTPCDataCompressionFilterComponent.h" #include "AliHLTTPCDataPublisherComponent.h" +#include "AliHLTTPCHWClusterDecoderComponent.h" +#include "AliHLTTPCClusterTransformationComponent.h" /** ROOT macro for the implementation of ROOT specific class methods */ ClassImp(AliHLTTPCAgent) @@ -147,19 +149,32 @@ int AliHLTTPCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler, handler->CreateConfiguration(hwcfemu.Data(), "TPCHWClusterFinderEmulator", publisher.Data(), arg.Data()); if (hwclustOutput.Length()>0) hwclustOutput+=" "; hwclustOutput+=hwcfemu; - + TString hwcf; hwcf.Form("TPC-HWCF_%02d_%d", slice, part); handler->CreateConfiguration(hwcf.Data(), "TPCHWClusterTransform",hwcfemu.Data(), "-publish-raw"); - if (trackerInput.Length()>0) trackerInput+=" "; - trackerInput+=hwcf; - if (dEdXInput.Length()>0) dEdXInput+=" "; - dEdXInput+=hwcf; - if (sinkHWClusterInput.Length()>0) sinkHWClusterInput+=" "; - sinkHWClusterInput+=hwcf; + //if (trackerInput.Length()>0) trackerInput+=" "; + //trackerInput+=hwcf; + //if (dEdXInput.Length()>0) dEdXInput+=" "; + //dEdXInput+=hwcf; + //if (sinkHWClusterInput.Length()>0) sinkHWClusterInput+=" "; + //sinkHWClusterInput+=hwcf; } } + + TString hwcfDecoder = "TPC-HWCFDecoder"; + handler->CreateConfiguration(hwcfDecoder.Data(), "TPCHWClusterDecoder",hwclustOutput.Data(), ""); + + TString clusterTransformation = "TPC-ClusterTransformation"; + handler->CreateConfiguration(clusterTransformation.Data(), "TPCClusterTransformation",hwcfDecoder.Data(), ""); + + if (trackerInput.Length()>0) trackerInput+=" "; + trackerInput+=clusterTransformation; + if (dEdXInput.Length()>0) dEdXInput+=" "; + dEdXInput+=clusterTransformation; + if (sinkHWClusterInput.Length()>0) sinkHWClusterInput+=" "; + sinkHWClusterInput+=clusterTransformation; // tracker finder component // 2012-01-05 changing the configuration according to online setup @@ -185,7 +200,8 @@ int AliHLTTPCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler, // compression component if (compressorInput.Length()>0) compressorInput+=" "; - compressorInput+=hwclustOutput; + //compressorInput+=hwclustOutput; + compressorInput+=hwcfDecoder; // special configuration to run the emulation automatically if the compressed clusters // of a particular partition is missing. This configuration is announced for reconstruction @@ -351,6 +367,8 @@ int AliHLTTPCAgent::RegisterComponents(AliHLTComponentHandler* pHandler) const pHandler->AddComponent(new AliHLTTPCDataCompressionMonitorComponent); pHandler->AddComponent(new AliHLTTPCDataCompressionFilterComponent); pHandler->AddComponent(new AliHLTTPCDataPublisherComponent); + pHandler->AddComponent(new AliHLTTPCHWClusterDecoderComponent); + pHandler->AddComponent(new AliHLTTPCClusterTransformationComponent); return 0; } diff --git a/HLT/TPCLib/AliHLTTPCClusterAccessHLTOUT.cxx b/HLT/TPCLib/AliHLTTPCClusterAccessHLTOUT.cxx index b72eb8a8b9f..0490f9662c1 100644 --- a/HLT/TPCLib/AliHLTTPCClusterAccessHLTOUT.cxx +++ b/HLT/TPCLib/AliHLTTPCClusterAccessHLTOUT.cxx @@ -237,7 +237,7 @@ int AliHLTTPCClusterAccessHLTOUT::ProcessClusters(const char* params) AliHLTTPCDataCompressionDecoder& decoder=*fpDecoder; decoder.Clear(); decoder.SetVerbosity(fVerbosity); - decoder.EnableClusterMerger(); + //decoder.EnableClusterMerger(); bool bNextBlock=false; // add cluster id and mc information data blocks diff --git a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx index 095aa7e1de2..fbb41dfb76b 100644 --- a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx +++ b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx @@ -25,7 +25,7 @@ #include "AliHLTTPCDefinitions.h" #include "AliHLTTPCTrackGeometry.h" #include "AliHLTTPCSpacePointContainer.h" -#include "AliHLTTPCHWCFSpacePointContainer.h" +#include "AliHLTTPCRawSpacePointContainer.h" #include "AliHLTGlobalBarrelTrack.h" #include "AliHLTComponentBenchmark.h" #include "AliHLTDataDeflaterSimple.h" @@ -94,7 +94,7 @@ void AliHLTTPCDataCompressionComponent::GetInputDataTypes( AliHLTComponentDataTy { /// inherited from AliHLTComponent: list of data types in the vector reference tgtList.clear(); - tgtList.push_back(AliHLTTPCDefinitions::HWClustersDataType()); + tgtList.push_back(AliHLTTPCDefinitions::RawClustersDataType()); tgtList.push_back(AliHLTTPCDefinitions::ClustersDataType()); tgtList.push_back(kAliHLTDataTypeTrack|kAliHLTDataOriginTPC); } @@ -325,7 +325,7 @@ int AliHLTTPCDataCompressionComponent::DoEvent( const AliHLTComponentEventData& // loop over raw cluster blocks, assign to tracks and write // unassigned clusters - for (pDesc=GetFirstInputBlock(AliHLTTPCDefinitions::fgkHWClustersDataType); + for (pDesc=GetFirstInputBlock(AliHLTTPCDefinitions::fgkRawClustersDataType); pDesc!=NULL; pDesc=GetNextInputBlock()) { if (pDesc->fSize<=sizeof(AliRawDataHeader)) continue; if (GetBenchmarkInstance()) { @@ -798,13 +798,13 @@ int AliHLTTPCDataCompressionComponent::DoInit( int argc, const char** argv ) unsigned spacePointContainerMode=0; if (fMode==kCompressionModeV1TrackModel || fMode==kCompressionModeV2TrackModel) { // initialize map data for cluster access in the track association loop - spacePointContainerMode|=AliHLTTPCHWCFSpacePointContainer::kModeCreateMap; + spacePointContainerMode|=AliHLTTPCRawSpacePointContainer::kModeCreateMap; } if (fMode==kCompressionModeV2 || fMode==kCompressionModeV2TrackModel) { // optimized storage format: differential pad and time storage - spacePointContainerMode|=AliHLTTPCHWCFSpacePointContainer::kModeDifferentialPadTime; + spacePointContainerMode|=AliHLTTPCRawSpacePointContainer::kModeDifferentialPadTime; } - std::auto_ptr rawInputClusters(new AliHLTTPCHWCFSpacePointContainer(spacePointContainerMode)); + std::auto_ptr rawInputClusters(new AliHLTTPCRawSpacePointContainer(spacePointContainerMode)); std::auto_ptr inputClusters(new AliHLTTPCSpacePointContainer); std::auto_ptr histoCompFactor(new TH1F("CompressionFactor", @@ -828,7 +828,7 @@ int AliHLTTPCDataCompressionComponent::DoInit( int argc, const char** argv ) // track grid: 36 slices, each 6 partitions with max 33 rows fTrackGrid=new AliHLTTrackGeometry::AliHLTTrackGrid(36, 1, 6, 1, 33, 1, 20000); - fSpacePointGrid=AliHLTTPCHWCFSpacePointContainer::AllocateIndexGrid(); + fSpacePointGrid=AliHLTTPCRawSpacePointContainer::AllocateIndexGrid(); if (!rawInputClusters.get() || !inputClusters.get() ||