4040#include " GPUReconstruction.h"
4141#include " GPUReconstructionIncludes.h"
4242#include " GPUROOTDumpCore.h"
43+ #include " GPUConfigDump.h"
44+ #include " GPUChainTracking.h"
4345
4446#include " GPUMemoryResource.h"
4547#include " GPUChain.h"
@@ -212,18 +214,30 @@ int GPUReconstruction::Init()
212214
213215int GPUReconstruction::InitPhaseBeforeDevice ()
214216{
217+ if (mProcessingSettings .printSettings ) {
218+ if (mSlaves .size () || mMaster ) {
219+ printf (" \n Config Dump %s\n " , mMaster ? " Slave" : " Master" );
220+ }
221+ const GPUChainTracking* chTrk;
222+ for (unsigned int i = 0 ; i < mChains .size (); i++) {
223+ if ((chTrk = dynamic_cast <GPUChainTracking*>(mChains [i].get ()))) {
224+ break ;
225+ }
226+ }
227+ GPUConfigDump::dumpConfig (¶m ().rec , &mProcessingSettings , chTrk ? chTrk->GetQAConfig () : nullptr , chTrk ? chTrk->GetEventDisplayConfig () : nullptr , &mDeviceBackendSettings , &mRecoSteps );
228+ }
215229#ifndef GPUCA_HAVE_O2HEADERS
216- mRecoSteps .setBits (RecoStep::ITSTracking, false );
217- mRecoSteps .setBits (RecoStep::TRDTracking, false );
218- mRecoSteps .setBits (RecoStep::TPCConversion, false );
219- mRecoSteps .setBits (RecoStep::TPCCompression, false );
220- mRecoSteps .setBits (RecoStep::TPCdEdx, false );
230+ mRecoSteps .steps . setBits (RecoStep::ITSTracking, false );
231+ mRecoSteps .steps . setBits (RecoStep::TRDTracking, false );
232+ mRecoSteps .steps . setBits (RecoStep::TPCConversion, false );
233+ mRecoSteps .steps . setBits (RecoStep::TPCCompression, false );
234+ mRecoSteps .steps . setBits (RecoStep::TPCdEdx, false );
221235 mProcessingSettings .createO2Output = false ;
222236#endif
223- mRecoStepsGPU &= mRecoSteps ;
224- mRecoStepsGPU &= AvailableRecoSteps ();
237+ mRecoSteps . stepsGPUMask &= mRecoSteps . steps ;
238+ mRecoSteps . stepsGPUMask &= AvailableGPURecoSteps ();
225239 if (!IsGPU ()) {
226- mRecoStepsGPU .set ((unsigned char )0 );
240+ mRecoSteps . stepsGPUMask .set ((unsigned char )0 );
227241 }
228242
229243 if (mProcessingSettings .forceMemoryPoolSize >= 1024 || mProcessingSettings .forceHostMemoryPoolSize >= 1024 ) {
@@ -286,7 +300,7 @@ int GPUReconstruction::InitPhaseBeforeDevice()
286300 if (!mProcessingSettings .createO2Output || !IsGPU ()) {
287301 mProcessingSettings .clearO2OutputFromGPU = false ;
288302 }
289- if (!(mRecoStepsGPU & GPUDataTypes::RecoStep::TPCMerging)) {
303+ if (!(mRecoSteps . stepsGPUMask & GPUDataTypes::RecoStep::TPCMerging)) {
290304 mProcessingSettings .mergerSortTracks = false ;
291305 }
292306 if (!IsGPU ()) {
@@ -296,7 +310,7 @@ int GPUReconstruction::InitPhaseBeforeDevice()
296310 if (param ().rec .nonConsecutiveIDs ) {
297311 param ().rec .tpc .disableRefitAttachment = 0xFF ;
298312 }
299- if (!(mRecoStepsGPU & RecoStep::TPCMerging) || !param ().rec .tpc .mergerReadFromTrackerDirectly ) {
313+ if (!(mRecoSteps . stepsGPUMask & RecoStep::TPCMerging) || !param ().rec .tpc .mergerReadFromTrackerDirectly ) {
300314 mProcessingSettings .fullMergerOnGPU = false ;
301315 }
302316 if (mProcessingSettings .debugLevel > 3 || !mProcessingSettings .fullMergerOnGPU || mProcessingSettings .deterministicGPUReconstruction ) {
@@ -1113,7 +1127,7 @@ void GPUReconstruction::UpdateSettings(const GPUSettingsGRP* g, const GPUSetting
11131127 mProcessingSettings .debugLevel = p->debugLevel ;
11141128 mProcessingSettings .resetTimers = p->resetTimers ;
11151129 }
1116- GPURecoStepConfiguration w = { mRecoSteps , mRecoStepsGPU , mRecoStepsInputs , mRecoStepsOutputs } ;
1130+ GPURecoStepConfiguration w = mRecoSteps ;
11171131 param ().UpdateSettings (g, p, &w);
11181132 if (mInitialized ) {
11191133 WriteConstantParams ();
@@ -1161,10 +1175,10 @@ void GPUReconstruction::SetSettings(const GPUSettingsGRP* grp, const GPUSettings
11611175 mProcessingSettings = *proc;
11621176 }
11631177 if (workflow) {
1164- mRecoSteps = workflow->steps ;
1165- mRecoStepsGPU &= workflow->stepsGPUMask ;
1166- mRecoStepsInputs = workflow->inputs ;
1167- mRecoStepsOutputs = workflow->outputs ;
1178+ mRecoSteps . steps = workflow->steps ;
1179+ mRecoSteps . stepsGPUMask &= workflow->stepsGPUMask ;
1180+ mRecoSteps . inputs = workflow->inputs ;
1181+ mRecoSteps . outputs = workflow->outputs ;
11681182 }
11691183 param ().SetDefaults (&mGRPSettings , rec, proc, workflow);
11701184}
0 commit comments