Skip to content

Commit a6896d2

Browse files
authored
Merge branch 'AliceO2Group:dev' into UpdateTRKA3
2 parents 80f6e4b + 7331b97 commit a6896d2

File tree

10 files changed

+122
-138
lines changed

10 files changed

+122
-138
lines changed

Detectors/AOD/include/AODProducerWorkflow/AODMcProducerHelpers.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,8 @@ uint32_t updateParticles(const ParticleCursor& cursor,
315315
bool background = false,
316316
uint32_t weightMask = 0xFFFFFFF0,
317317
uint32_t momentumMask = 0xFFFFFFF0,
318-
uint32_t positionMask = 0xFFFFFFF0);
318+
uint32_t positionMask = 0xFFFFFFF0,
319+
bool signalFilter = false);
319320
} // namespace o2::aodmchelpers
320321

321322
#endif /* O2_AODMCPRODUCER_HELPERS */

Detectors/AOD/src/AODMcProducerHelpers.cxx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,8 @@ uint32_t updateParticles(const ParticleCursor& cursor,
305305
bool background,
306306
uint32_t weightMask,
307307
uint32_t momentumMask,
308-
uint32_t positionMask)
308+
uint32_t positionMask,
309+
bool signalFilter)
309310
{
310311
using o2::mcutils::MCTrackNavigator;
311312
using namespace o2::aod::mcparticle::enums;
@@ -354,6 +355,9 @@ uint32_t updateParticles(const ParticleCursor& cursor,
354355
continue;
355356
}
356357
}
358+
if (background && signalFilter) {
359+
continue;
360+
}
357361

358362
// Store this particle. We mark that putting a 1 in the
359363
// `toStore` mapping. This will later on be updated with the

Detectors/AOD/src/AODProducerWorkflowSpec.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1063,7 +1063,8 @@ void AODProducerWorkflowDPL::fillMCParticlesTable(o2::steer::MCKinematicsReader&
10631063
source == 0, // background
10641064
mMcParticleW,
10651065
mMcParticleMom,
1066-
mMcParticlePos);
1066+
mMcParticlePos,
1067+
mUseSigFiltMC);
10671068

10681069
mcReader.releaseTracksForSourceAndEvent(source, event);
10691070
}

Detectors/Base/test/buildMatBudLUT.C

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <TStopwatch.h>
2424
#endif
2525

26-
#ifndef GPUCA_ALIGPUCODE // this part is unvisible on GPU version
26+
#ifndef GPUCA_ALIGPUCODE // this part is invisible on GPU version
2727

2828
o2::base::MatLayerCylSet mbLUT;
2929

@@ -249,7 +249,9 @@ void configLayers()
249249

250250
// air space between Middle and Outer Barrels
251251
zSpanH = 80.f;
252-
lrData.emplace_back(LrData(lrData.back().rMax, 33.5, zSpanH));
252+
zBin = 10.;
253+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
254+
lrData.emplace_back(LrData(lrData.back().rMax, 33.5, zSpanH, zBin, rphiBin));
253255

254256
//===================================================================================
255257
// ITS Outer barrel
@@ -259,29 +261,29 @@ void configLayers()
259261
zBin = 1.;
260262
do {
261263
auto rmean = lrData.back().rMax + drStep / 2;
262-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
264+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
263265
lrData.emplace_back(LrData(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin));
264266
} while (lrData.back().rMax < 36. - kToler);
265267

266268
drStep = 1.;
267269
do {
268270
auto rmean = lrData.back().rMax + drStep / 2;
269-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
271+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
270272
lrData.emplace_back(LrData(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin));
271273
} while (lrData.back().rMax < 38.5 - kToler);
272274

273275
nStave = mp.getNStavesOnLr(6); // Lr 6
274276
drStep = 0.25;
275277
do {
276278
auto rmean = lrData.back().rMax + drStep / 2;
277-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
279+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
278280
lrData.emplace_back(LrData(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin));
279281
} while (lrData.back().rMax < 41. - kToler);
280282

281283
drStep = 1.;
282284
do {
283285
auto rmean = lrData.back().rMax + drStep / 2;
284-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
286+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
285287
lrData.emplace_back(LrData(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin));
286288
} while (lrData.back().rMax < 44. - kToler);
287289

@@ -301,15 +303,20 @@ void configLayers()
301303
} while (lrData.back().rMax < 55. - kToler);
302304

303305
zSpanH = 120.f;
304-
lrData.emplace_back(LrData(lrData.back().rMax, 56.5, zSpanH));
305-
lrData.emplace_back(LrData(lrData.back().rMax, 60.5, zSpanH));
306-
lrData.emplace_back(LrData(lrData.back().rMax, 61.5, zSpanH));
306+
zBin = 10.;
307+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
308+
lrData.emplace_back(LrData(lrData.back().rMax, 56.5, zSpanH, zBin, rphiBin));
309+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
310+
lrData.emplace_back(LrData(lrData.back().rMax, 60.5, zSpanH, zBin, rphiBin));
311+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
312+
lrData.emplace_back(LrData(lrData.back().rMax, 61.5, zSpanH, zBin, rphiBin));
307313

308314
zSpanH = 150.f;
309315
drStep = 3.5;
310316
zBin = 15.;
311-
rphiBin = 10;
312317
do {
318+
auto rmean = lrData.back().rMax + drStep / 2;
319+
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 2);
313320
lrData.emplace_back(LrData(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin));
314321
} while (lrData.back().rMax < 68.5 - kToler);
315322

@@ -335,7 +342,7 @@ void configLayers()
335342
zBin = 2;
336343
{
337344
auto rmean = (lrData.back().rMax + 78.5) / 2;
338-
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 12);
345+
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 24);
339346
lrData.emplace_back(LrData(lrData.back().rMax, 84.5, zSpanH, zBin, rphiBin));
340347
}
341348

GPU/GPUTracking/Definitions/GPUDefParametersDefaults.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@
491491

492492
#define GPUCA_LB_GPUTPCNNClusterizerKernels_runCfClusterizer GPUCA_LB_GPUTPCNNClusterizerKernels
493493
#define GPUCA_LB_GPUTPCNNClusterizerKernels_fillInputNNCPU GPUCA_LB_GPUTPCNNClusterizerKernels
494-
#define GPUCA_LB_GPUTPCNNClusterizerKernels_fillInputNNGPU GPUCA_LB_GPUTPCNNClusterizerKernels
494+
#define GPUCA_LB_GPUTPCNNClusterizerKernels_fillInputNNGPU 1024
495495
#define GPUCA_LB_GPUTPCNNClusterizerKernels_determineClass1Labels GPUCA_LB_GPUTPCNNClusterizerKernels
496496
#define GPUCA_LB_GPUTPCNNClusterizerKernels_determineClass2Labels GPUCA_LB_GPUTPCNNClusterizerKernels
497497
#define GPUCA_LB_GPUTPCNNClusterizerKernels_publishClass1Regression GPUCA_LB_GPUTPCNNClusterizerKernels

GPU/GPUTracking/Global/GPUChainTrackingClusterizer.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ int32_t GPUChainTracking::RunTPCClusterizer(bool synchronizeOutput)
10311031
// Filling the data
10321032
if (mRec->IsGPU() || GetProcessingSettings().nn.nnClusterizerForceGpuInputFill) {
10331033
// Fills element by element of each input matrix -> better parallelizability, but worse on CPU due to unnecessary computations
1034-
runKernel<GPUTPCNNClusterizerKernels, GPUTPCNNClusterizerKernels::fillInputNNGPU>({GetGrid(iSize * clustererNNShadow.mNnClusterizerRowTimeSizeFull, lane), krnlRunRangeNone}, iSector, clustererNNShadow.mNnInferenceInputDType, propagateMCLabels, batchStart);
1034+
runKernel<GPUTPCNNClusterizerKernels, GPUTPCNNClusterizerKernels::fillInputNNGPU>({GetGrid(iSize * clustererNNShadow.mNnClusterizerRowTimeSizeThreads , lane), krnlRunRangeNone}, iSector, clustererNNShadow.mNnInferenceInputDType, propagateMCLabels, batchStart);
10351035
} else {
10361036
// Fills the whole input matrix at once -> better performance on CPU, but worse parallelizability
10371037
runKernel<GPUTPCNNClusterizerKernels, GPUTPCNNClusterizerKernels::fillInputNNCPU>({GetGrid(iSize, lane), krnlRunRangeNone}, iSector, clustererNNShadow.mNnInferenceInputDType, propagateMCLabels, batchStart);

GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class GPUTPCNNClusterizer : public GPUProcessor
7171
uint32_t mNnClusterizerPadTimeSize = 0;
7272
uint32_t mNnClusterizerRowTimeSize = 0;
7373
uint32_t mNnClusterizerRowTimeSizeFull = 0;
74+
uint32_t mNnClusterizerRowTimeSizeThreads = 0;
7475

7576
// Boundary lookup table
7677
// int32_t mBoundaryMapSizeRow = 0;

GPU/GPUTracking/TPCClusterFinder/GPUTPCNNClusterizerHost.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ void GPUTPCNNClusterizerHost::initClusterizer(const GPUSettingsProcessingNNclust
9898
clustererNN.mNnClusterizerPadTimeSize = clustererNN.mNnClusterizerFullPadSize * clustererNN.mNnClusterizerFullTimeSize;
9999
clustererNN.mNnClusterizerRowTimeSize = clustererNN.mNnClusterizerFullRowSize * clustererNN.mNnClusterizerFullTimeSize;
100100
clustererNN.mNnClusterizerRowTimeSizeFull = clustererNN.mNnClusterizerRowTimeSize + (settings.nnClusterizerAddIndexData ? 3 : 0);
101+
clustererNN.mNnClusterizerRowTimeSizeThreads = clustererNN.mNnClusterizerRowTimeSize + (settings.nnClusterizerAddIndexData ? 1 : 0);
101102
clustererNN.mNnClusterizerElementSize = clustererNN.mNnClusterizerChargeArraySize + (settings.nnClusterizerAddIndexData ? 3 : 0);
102103
// clustererNN.mBoundaryMapSizeRow = 3 * clustererNN.mNnClusterizerSizeInputRow + o2::tpc::constants::MAXGLOBALPADROW;
103104
// clustererNN.mBoundaryPadding = 11; // padding on each side to account for pad_offset. N=11 since then mIsBoundary = 24320 ~< (1.5 x 2^14 = 24576) && N must be bigger than (NPads[row(end_iroc + 1)] - NPads[row(end_iroc)])/2 (=6) for pad_offset to work

0 commit comments

Comments
 (0)