Skip to content

Commit 1381de7

Browse files
authored
[PWGCF] Increase bit mask size for v0s and cascades in femto framework (#17324)
1 parent e6d8477 commit 1381de7

6 files changed

Lines changed: 115 additions & 18 deletions

File tree

PWGCF/Femto/Core/cascadeBuilder.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ class CascadeBuilder
524524
LOG(info) << "Initialize femto Xi builder...";
525525
mProduceLiteXis = utils::enableTable("FLiteXis_001", table.produceLiteXis.value, initContext);
526526
mProduceXis = utils::enableTable("FXis_001", table.produceXis.value, initContext);
527-
mProduceXiMasks = utils::enableTable("FXiMasks_001", table.produceXiMasks.value, initContext);
527+
mProduceXiMasks = utils::enableTable("FXiMasks_002", table.produceXiMasks.value, initContext);
528528
mProduceXiExtras = utils::enableTable("FXiExtras_001", table.produceXiExtras.value, initContext);
529529

530530
if (mProduceXis && mProduceLiteXis) {
@@ -547,7 +547,7 @@ class CascadeBuilder
547547
LOG(info) << "Initialize femto Omega builder...";
548548
mProduceOmegas = utils::enableTable("FOmegas_001", table.produceOmegas.value, initContext);
549549
mProduceLiteOmegas = utils::enableTable("FLiteOmegas_001", table.produceLiteOmegas.value, initContext);
550-
mProduceOmegaMasks = utils::enableTable("FOmegaMasks_001", table.produceOmegaMasks.value, initContext);
550+
mProduceOmegaMasks = utils::enableTable("FOmegaMasks_002", table.produceOmegaMasks.value, initContext);
551551
mProduceOmegaExtras = utils::enableTable("FOmegaExtras_001", table.produceOmegaExtras.value, initContext);
552552

553553
if (mProduceOmegas && mProduceLiteOmegas) {

PWGCF/Femto/Core/dataTypes.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ using TrackMaskType = uint64_t;
3131
using TrackType = uint16_t;
3232

3333
// datatypes for v0s
34-
using V0MaskType = uint16_t;
34+
using V0MaskType = uint32_t;
35+
using V0MaskType001 = uint16_t; // old data type, was too narrow
3536
using V0Type = uint16_t;
3637

3738
// datatypes for kinks
@@ -44,7 +45,8 @@ using TwoTrackResonanceMaskType = uint32_t;
4445
using TwoTrackResonanceType = uint16_t;
4546

4647
// datatypes for cascades
47-
using CascadeMaskType = uint16_t;
48+
using CascadeMaskType = uint32_t;
49+
using CascadeMaskType001 = uint16_t; // old data type, was too narrow
4850
using CascadeType = uint16_t;
4951

5052
// datatype for origin of mc particle

PWGCF/Femto/Core/v0Builder.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ class V0Builder
511511
}
512512
mProduceLambdas = utils::enableTable("FLambdas_001", table.produceLambdas.value, initContext);
513513
mProduceLiteLambdas = utils::enableTable("FLiteLambdas_001", table.produceLiteLambdas.value, initContext);
514-
mProduceLambdaMasks = utils::enableTable("FLambdaMasks_001", table.produceLambdaMasks.value, initContext);
514+
mProduceLambdaMasks = utils::enableTable("FLambdaMasks_002", table.produceLambdaMasks.value, initContext);
515515
mProduceLambdaExtras = utils::enableTable("FLambdaExtras_001", table.produceLambdaExtras.value, initContext);
516516

517517
if (mProduceLambdas && mProduceLiteLambdas) {
@@ -534,7 +534,7 @@ class V0Builder
534534
LOG(info) << "Initialize femto K0short builder...";
535535
mProduceK0shorts = utils::enableTable("FK0shorts_001", table.produceK0shorts.value, initContext);
536536
mProduceLiteK0shorts = utils::enableTable("FLiteK0shorts_001", table.produceLiteK0shorts.value, initContext);
537-
mProduceK0shortMasks = utils::enableTable("FK0shortMasks_001", table.produceK0shortMasks.value, initContext);
537+
mProduceK0shortMasks = utils::enableTable("FK0shortMasks_002", table.produceK0shortMasks.value, initContext);
538538
mProduceK0shortExtras = utils::enableTable("FK0shortExtras_001", table.produceK0shortExtras.value, initContext);
539539

540540
if (mProduceK0shorts && mProduceLiteK0shorts) {

PWGCF/Femto/DataModel/FemtoTables.h

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,11 @@ namespace femtov0s
550550
{
551551
// columns for bit masks
552552
DECLARE_SOA_COLUMN(Mask, mask, o2::analysis::femto::datatypes::V0MaskType); //! Bitmask for v0 selections
553+
//
554+
namespace legacy001
555+
{
556+
DECLARE_SOA_COLUMN(Mask, mask, o2::analysis::femto::datatypes::V0MaskType001); //! Bitmask for v0 selections
557+
}
553558

554559
// columns for debug information
555560
DECLARE_SOA_COLUMN(MassAnti, massAnti, float); //! mass of particle using antiparticle hypothesis (for Lambda/AntiLambda extra table)
@@ -649,10 +654,14 @@ using FLiteLambdas = FLiteLambdas_001;
649654
using FLiteLambda = FLiteLambdas::iterator;
650655
using StoredFLiteLambdas = StoredFLiteLambdas_001;
651656

652-
DECLARE_SOA_TABLE_STAGED_VERSIONED(FLambdaMasks_001, "FLAMBDAMASK", 1, //! lambda masks
657+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FLambdaMasks_001, "FLAMBDAMASK", 1, //! legacy lambda mask
658+
femtov0s::legacy001::Mask);
659+
660+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FLambdaMasks_002, "FLAMBDAMASK", 2, //! lambda mask
653661
femtov0s::Mask);
654-
using FLambdaMasks = FLambdaMasks_001;
655-
using StoredFLambdaMasks = StoredFLambdaMasks_001;
662+
663+
using FLambdaMasks = FLambdaMasks_002;
664+
using StoredFLambdaMasks = StoredFLambdaMasks_002;
656665

657666
DECLARE_SOA_TABLE_STAGED_VERSIONED(FLambdaExtras_001, "FLAMBDAEXTRA", 1, //! lambda extra information
658667
femtov0s::MassAnti, // put mass of antiparticle, i.e. antilambda mass for lambdas and vice versa
@@ -703,10 +712,13 @@ using FLiteK0shorts = FLiteK0shorts_001;
703712
using FLiteK0short = FLiteK0shorts::iterator;
704713
using StoredFLiteK0shorts = StoredFLiteK0shorts_001;
705714

706-
DECLARE_SOA_TABLE_STAGED_VERSIONED(FK0shortMasks_001, "FK0SHORTMASK", 1, //! k0short masks
715+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FK0shortMasks_001, "FK0SHORTMASK", 1, //! legacy k0short masks
716+
femtov0s::legacy001::Mask);
717+
718+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FK0shortMasks_002, "FK0SHORTMASK", 2, //! k0short masks
707719
femtov0s::Mask);
708-
using FK0shortMasks = FK0shortMasks_001;
709-
using StoredFK0shortMasks = StoredFK0shortMasks_001;
720+
using FK0shortMasks = FK0shortMasks_002;
721+
using StoredFK0shortMasks = StoredFK0shortMasks_002;
710722

711723
DECLARE_SOA_TABLE_STAGED_VERSIONED(FK0shortExtras_001, "FK0SHORTEXTRA", 1, //! k0short extra information
712724
femtov0s::MassLambda,
@@ -893,6 +905,11 @@ namespace femtocascades
893905
// columns for cascade bit masks
894906
DECLARE_SOA_COLUMN(Mask, mask, o2::analysis::femto::datatypes::CascadeMaskType); //! Bitmask for cascade selections
895907

908+
namespace legacy001
909+
{
910+
DECLARE_SOA_COLUMN(Mask, mask, o2::analysis::femto::datatypes::CascadeMaskType001); //! Bitmask for cascade selections
911+
}
912+
896913
// columns for cascad debug information
897914
DECLARE_SOA_COLUMN(MassXi, massXi, float); //! Mass of xi
898915
DECLARE_SOA_COLUMN(MassOmega, massOmega, float); //! Mass of omega
@@ -987,10 +1004,13 @@ using FLiteXis = FLiteXis_001;
9871004
using FLiteXi = FLiteXis::iterator;
9881005
using StoredFLiteXis = StoredFLiteXis_001;
9891006

990-
DECLARE_SOA_TABLE_STAGED_VERSIONED(FXiMasks_001, "FXIMASK", 1, //! xi masks
1007+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FXiMasks_001, "FXIMASK", 1, //! legacy xi masks
1008+
femtocascades::legacy001::Mask);
1009+
1010+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FXiMasks_002, "FXIMASK", 2, //! xi masks
9911011
femtocascades::Mask);
992-
using FXiMasks = FXiMasks_001;
993-
using StoredFXiMasks = StoredFXiMasks_001;
1012+
using FXiMasks = FXiMasks_002;
1013+
using StoredFXiMasks = StoredFXiMasks_002;
9941014

9951015
DECLARE_SOA_TABLE_STAGED_VERSIONED(FXiExtras_001, "FXIEXTRA", 1, //! xi extra information
9961016
femtocascades::MassOmega,
@@ -1046,10 +1066,13 @@ using FLiteOmegas = FLiteOmegas_001;
10461066
using FLiteOmega = FLiteOmegas::iterator;
10471067
using StoredFLiteOmegas = StoredFLiteOmegas_001;
10481068

1049-
DECLARE_SOA_TABLE_STAGED_VERSIONED(FOmegaMasks_001, "FOMEGAMASK", 1, //! omega masks
1069+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FOmegaMasks_001, "FOMEGAMASK", 1, //! legacy omega masks
1070+
femtocascades::legacy001::Mask);
1071+
1072+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FOmegaMasks_002, "FOMEGAMASK", 2, //! omega masks
10501073
femtocascades::Mask);
1051-
using FOmegaMasks = FOmegaMasks_001;
1052-
using StoredFOmegaMasks = StoredFOmegaMasks_001;
1074+
using FOmegaMasks = FOmegaMasks_002;
1075+
using StoredFOmegaMasks = StoredFOmegaMasks_002;
10531076

10541077
DECLARE_SOA_TABLE_STAGED_VERSIONED(FOmegaExtras_001, "FOMEGAEXTRA", 1, //! omega extra information
10551078
femtocascades::MassXi,

PWGCF/Femto/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ o2physics_add_dpl_workflow(femto-producer-kink-pt-converter
2929
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
3030
COMPONENT_NAME Analysis)
3131

32+
o2physics_add_dpl_workflow(femto-producer-mask-converter-001-to-002
33+
SOURCES ./femtoProducerMaskConverter001To002.cxx
34+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
35+
COMPONENT_NAME Analysis)
36+
3237
o2physics_add_dpl_workflow(femto-producer-resonances
3338
SOURCES ./femtoProducerResonances.cxx
3439
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
// Copyright 2019-2025 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
/// \file femtoProducerMaskConverter001To002.cxx
13+
/// \brief Task that converts *Masks_001 tables to *Masks_002
14+
/// \author Anton Riedel, TU München, anton.riedel@cern.ch
15+
16+
#include "PWGCF/Femto/Core/dataTypes.h"
17+
#include "PWGCF/Femto/DataModel/FemtoTables.h"
18+
19+
#include <Framework/AnalysisDataModel.h>
20+
#include <Framework/AnalysisHelpers.h>
21+
#include <Framework/AnalysisTask.h>
22+
#include <Framework/Configurable.h>
23+
#include <Framework/InitContext.h>
24+
#include <Framework/runDataProcessing.h>
25+
26+
using namespace o2::analysis::femto;
27+
28+
struct FemtoProducerMaskConverter001To002 {
29+
o2::framework::Produces<o2::aod::FLambdaMasks_002> producedLambdaMasks;
30+
o2::framework::Produces<o2::aod::FK0shortMasks_002> producedK0shortMasks;
31+
o2::framework::Produces<o2::aod::FXiMasks_002> producedXiMasks;
32+
o2::framework::Produces<o2::aod::FOmegaMasks_002> producedOmegaMasks;
33+
34+
void init(o2::framework::InitContext&)
35+
{
36+
}
37+
38+
void processLambdaMasks001(o2::aod::FLambdaMasks_001::iterator const& lambdaMaskOld)
39+
{
40+
producedLambdaMasks(static_cast<datatypes::V0MaskType>(lambdaMaskOld.mask()));
41+
}
42+
PROCESS_SWITCH(FemtoProducerMaskConverter001To002, processLambdaMasks001, "Convert LambdaMasks_001 to LambdaMasks_002", false);
43+
44+
void processK0shortMasks001(o2::aod::FK0shortMasks_001::iterator const& k0shortOld)
45+
{
46+
producedK0shortMasks(static_cast<datatypes::V0MaskType>(k0shortOld.mask()));
47+
}
48+
PROCESS_SWITCH(FemtoProducerMaskConverter001To002, processK0shortMasks001, "Convert K0shortMasks_001 to K0shortMasks_002", false);
49+
50+
void processXiMasks001(o2::aod::FXiMasks_001::iterator const& xiMaskOld)
51+
{
52+
producedXiMasks(static_cast<datatypes::CascadeMaskType>(xiMaskOld.mask()));
53+
}
54+
PROCESS_SWITCH(FemtoProducerMaskConverter001To002, processXiMasks001, "Convert XiMasks_001 to XiMasks_002", false);
55+
56+
void processOmegaMasks001(o2::aod::FOmegaMasks_001::iterator const& omegaMaskOld)
57+
{
58+
producedOmegaMasks(static_cast<datatypes::CascadeMaskType>(omegaMaskOld.mask()));
59+
}
60+
PROCESS_SWITCH(FemtoProducerMaskConverter001To002, processOmegaMasks001, "Convert OmegaMasks_001 to OmegaMasks_002", false);
61+
};
62+
63+
o2::framework::WorkflowSpec defineDataProcessing(o2::framework::ConfigContext const& context)
64+
{
65+
o2::framework::WorkflowSpec workflow{o2::framework::adaptAnalysisTask<FemtoProducerMaskConverter001To002>(context)};
66+
return workflow;
67+
}

0 commit comments

Comments
 (0)