Skip to content

Commit ad20ca0

Browse files
authored
Merge branch 'AliceO2Group:master' into pjpsi_femto
2 parents 39a53e1 + 542ed5b commit ad20ca0

File tree

111 files changed

+10864
-5786
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+10864
-5786
lines changed

Common/CCDB/AnalysisCCDBLinkDef.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,20 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12+
/// \file AnalysisCCDBLinkDef.h
13+
/// \brief Dictionary definitions
14+
///
15+
/// \author Evgeny Kryshen <evgeny.kryshen@cern.ch>
16+
17+
#ifndef COMMON_CCDB_ANALYSISCCDBLINKDEF_H_
18+
#define COMMON_CCDB_ANALYSISCCDBLINKDEF_H_
19+
1220
#pragma link off all globals;
1321
#pragma link off all classes;
1422
#pragma link off all functions;
1523

1624
#pragma link C++ class EventSelectionParams + ;
1725
#pragma link C++ class TriggerAliases + ;
26+
#pragma link C++ class std::map < uint64_t, uint32_t> + ;
27+
28+
#endif // COMMON_CCDB_ANALYSISCCDBLINKDEF_H_

Common/Core/RecoDecay.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,14 +1111,14 @@ struct RecoDecay {
11111111
if (PDGParticleIMother < 9 || (PDGParticleIMother > 20 && PDGParticleIMother < 38)) {
11121112
// auto PDGPaticle = std::abs(particleMother.pdgCode());
11131113
if (
1114-
(PDGParticleIMother / 100 == 5 || // b mesons
1115-
PDGParticleIMother / 1000 == 5) // b baryons
1114+
(PDGParticle / 100 == 5 || // b mesons
1115+
PDGParticle / 1000 == 5) // b baryons
11161116
) {
11171117
return OriginType::NonPrompt; // beauty
11181118
}
11191119
if (
1120-
(PDGParticleIMother / 100 == 4 || // c mesons
1121-
PDGParticleIMother / 1000 == 4) // c baryons
1120+
(PDGParticle / 100 == 4 || // c mesons
1121+
PDGParticle / 1000 == 4) // c baryons
11221122
) {
11231123
return OriginType::Prompt; // charm
11241124
}

Common/DataModel/Centrality.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ DECLARE_SOA_COLUMN(CentRun2CL1, centRun2CL1, float); //! Run 2
2626
DECLARE_SOA_COLUMN(CentRun2RefMult5, centRun2RefMult5, float); //! Run 2 cent. from ref. mult. estimator, eta 0.5
2727
DECLARE_SOA_COLUMN(CentRun2RefMult8, centRun2RefMult8, float); //! Run 2 cent. from ref. mult. estimator, eta 0.8
2828

29-
DECLARE_SOA_COLUMN(CentFV0A, centFV0A, float); //! Run 3 cent. from FV0A multiplicities
30-
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float); //! Run 3 cent. from FT0A+FT0C multiplicities
31-
DECLARE_SOA_COLUMN(CentFT0A, centFT0A, float); //! Run 3 cent. from FT0A multiplicity
32-
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); //! Run 3 cent. from FT0C multiplicity
33-
DECLARE_SOA_COLUMN(CentFDDM, centFDDM, float); //! Run 3 cent. from FDDA+FDDC multiplicity
34-
DECLARE_SOA_COLUMN(CentNTPV, centNTPV, float); //! Run 3 cent. from the number of tracks contributing to the
35-
DECLARE_SOA_COLUMN(CentNGlobal, centNGlobal, float); //! Run 3 cent. from the number of tracks contributing to the PV
36-
DECLARE_SOA_COLUMN(CentMFT, centMFT, float); //! Run 3 cent. from the number of tracks in the MFT
29+
DECLARE_SOA_COLUMN(CentFV0A, centFV0A, float); //! Run 3 cent. from FV0A multiplicities
30+
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float); //! Run 3 cent. from FT0A+FT0C multiplicities
31+
DECLARE_SOA_COLUMN(CentFT0A, centFT0A, float); //! Run 3 cent. from FT0A multiplicity
32+
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); //! Run 3 cent. from FT0C multiplicity
33+
DECLARE_SOA_COLUMN(CentFT0CVariant1, centFT0CVariant1, float); //! Run 3 cent. from FT0C multiplicity
34+
DECLARE_SOA_COLUMN(CentFDDM, centFDDM, float); //! Run 3 cent. from FDDA+FDDC multiplicity
35+
DECLARE_SOA_COLUMN(CentNTPV, centNTPV, float); //! Run 3 cent. from the number of tracks contributing to the
36+
DECLARE_SOA_COLUMN(CentNGlobal, centNGlobal, float); //! Run 3 cent. from the number of tracks contributing to the PV
37+
DECLARE_SOA_COLUMN(CentMFT, centMFT, float); //! Run 3 cent. from the number of tracks in the MFT
3738
} // namespace cent
3839

3940
// Run 2 tables
@@ -56,6 +57,9 @@ DECLARE_SOA_TABLE(CentNTPVs, "AOD", "CENTNTPV", cent::CentNTPV); //! Ru
5657
DECLARE_SOA_TABLE(CentNGlobals, "AOD", "CENTNGLOBAL", cent::CentNGlobal); //! Run 3 NGlobal centrality table
5758
DECLARE_SOA_TABLE(CentMFTs, "AOD", "CENTMFT", cent::CentMFT); //! Run 3 MFT tracks centrality table
5859

60+
// Run 3 variant tables
61+
DECLARE_SOA_TABLE(CentFT0CVariant1s, "AOD", "CENTFT0Cvar1", cent::CentFT0CVariant1); //! Run 3 FT0C variant 1
62+
5963
using CentRun2V0M = CentRun2V0Ms::iterator;
6064
using CentRun2V0A = CentRun2V0As::iterator;
6165
using CentRun2SPDTrk = CentRun2SPDTrks::iterator;

Common/DataModel/EventSelection.h

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
// In applying this license CERN does not waive the privileges and immunities
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
11+
12+
/// \file EventSelection.h
13+
/// \brief Definitions of event selection tables
14+
///
15+
/// \author Evgeny Kryshen <evgeny.kryshen@cern.ch> and Igor Altsybeev <Igor.Altsybeev@cern.ch>
16+
1117
#ifndef COMMON_DATAMODEL_EVENTSELECTION_H_
1218
#define COMMON_DATAMODEL_EVENTSELECTION_H_
1319

@@ -47,6 +53,7 @@ namespace evsel
4753
{
4854
DECLARE_SOA_BITMAP_COLUMN(Alias, alias, 32); //! Bitmask of fired trigger aliases (see TriggerAliases.h for definitions)
4955
DECLARE_SOA_BITMAP_COLUMN(Selection, selection, 64); //! Bitmask of selection flags (see EventSelectionParams.h for definitions)
56+
DECLARE_SOA_BITMAP_COLUMN(Rct, rct, 32); //! Bitmask of RCT flags
5057
DECLARE_SOA_COLUMN(Sel7, sel7, bool); //! Event selection decision based on V0A & V0C
5158
DECLARE_SOA_COLUMN(Sel8, sel8, bool); //! Event selection decision based on TVX
5259
DECLARE_SOA_INDEX_COLUMN_FULL(FoundBC, foundBC, int, BCs, "_foundBC"); //! BC entry index in BCs table (-1 if doesn't exist)
@@ -55,19 +62,20 @@ DECLARE_SOA_INDEX_COLUMN_FULL(FoundFV0, foundFV0, int, FV0As, "_foundFV0"); //!
5562
DECLARE_SOA_INDEX_COLUMN_FULL(FoundFDD, foundFDD, int, FDDs, "_foundFDD"); //! FDD entry index in FDDs table (-1 if doesn't exist)
5663
DECLARE_SOA_INDEX_COLUMN_FULL(FoundZDC, foundZDC, int, Zdcs, "_foundZDC"); //! ZDC entry index in ZDCs table (-1 if doesn't exist)
5764
DECLARE_SOA_COLUMN(BcInTF, bcInTF, int); //! Position of a (found) bunch crossing inside a given timeframe
58-
DECLARE_SOA_COLUMN(NumTracksInTimeRange, trackOccupancyInTimeRange, int); //! Occupancy in specified time interval by a number of tracks from nearby collisions
59-
DECLARE_SOA_COLUMN(SumAmpFT0CInTimeRange, ft0cOccupancyInTimeRange, float); //! Occupancy in specified time interval by a sum of FT0C amplitudes from nearby collisions
65+
DECLARE_SOA_COLUMN(NumTracksInTimeRange, trackOccupancyInTimeRange, int); //! Occupancy in specified time interval by a number of tracks from nearby collisions // o2-linter: disable=name/o2-column
66+
DECLARE_SOA_COLUMN(SumAmpFT0CInTimeRange, ft0cOccupancyInTimeRange, float); //! Occupancy in specified time interval by a sum of FT0C amplitudes from nearby collisions // o2-linter: disable=name/o2-column
6067
} // namespace evsel
6168

6269
// bc-joinable event selection decisions
6370
DECLARE_SOA_TABLE(BcSels, "AOD", "BCSEL", //!
64-
evsel::Alias, evsel::Selection, evsel::FoundFT0Id, evsel::FoundFV0Id, evsel::FoundFDDId, evsel::FoundZDCId);
71+
evsel::Alias, evsel::Selection, evsel::Rct, evsel::FoundFT0Id, evsel::FoundFV0Id, evsel::FoundFDDId, evsel::FoundZDCId);
6572
using BcSel = BcSels::iterator;
6673

6774
// collision-joinable event selection decisions
6875
DECLARE_SOA_TABLE(EvSels, "AOD", "EVSEL", //!
6976
evsel::Alias,
7077
evsel::Selection,
78+
evsel::Rct,
7179
evsel::Sel7,
7280
evsel::Sel8,
7381
evsel::FoundBCId,

Common/TableProducer/centralityTable.cxx

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ static constexpr int kCentFV0As = 6;
4242
static constexpr int kCentFT0Ms = 7;
4343
static constexpr int kCentFT0As = 8;
4444
static constexpr int kCentFT0Cs = 9;
45-
static constexpr int kCentFDDMs = 10;
46-
static constexpr int kCentNTPVs = 11;
47-
static constexpr int kCentNGlobals = 12;
48-
static constexpr int kCentMFTs = 13;
49-
static constexpr int nTables = 14;
45+
static constexpr int kCentFT0CVariant1s = 10;
46+
static constexpr int kCentFDDMs = 11;
47+
static constexpr int kCentNTPVs = 12;
48+
static constexpr int kCentNGlobals = 13;
49+
static constexpr int kCentMFTs = 14;
50+
static constexpr int nTables = 15;
5051
static constexpr int nParameters = 1;
5152
static const std::vector<std::string> tableNames{"CentRun2V0Ms",
5253
"CentRun2V0As",
@@ -58,12 +59,13 @@ static const std::vector<std::string> tableNames{"CentRun2V0Ms",
5859
"CentFT0Ms",
5960
"CentFT0As",
6061
"CentFT0Cs",
62+
"CentFT0CVariant1s",
6163
"CentFDDMs",
6264
"CentNTPVs",
6365
"CentNGlobals",
6466
"CentMFTs"};
6567
static const std::vector<std::string> parameterNames{"Enable"};
66-
static const int defaultParameters[nTables][nParameters]{{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}};
68+
static const int defaultParameters[nTables][nParameters]{{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}};
6769

6870
struct CentralityTable {
6971
Produces<aod::CentRun2V0Ms> centRun2V0M;
@@ -76,6 +78,7 @@ struct CentralityTable {
7678
Produces<aod::CentFT0Ms> centFT0M;
7779
Produces<aod::CentFT0As> centFT0A;
7880
Produces<aod::CentFT0Cs> centFT0C;
81+
Produces<aod::CentFT0CVariant1s> centFT0CVariant1;
7982
Produces<aod::CentFDDMs> centFDDM;
8083
Produces<aod::CentNTPVs> centNTPV;
8184
Produces<aod::CentNGlobals> centNGlobals;
@@ -166,6 +169,7 @@ struct CentralityTable {
166169
calibrationInfo FT0MInfo = calibrationInfo("FT0");
167170
calibrationInfo FT0AInfo = calibrationInfo("FT0A");
168171
calibrationInfo FT0CInfo = calibrationInfo("FT0C");
172+
calibrationInfo FT0CVariant1Info = calibrationInfo("FT0Cvar1");
169173
calibrationInfo FDDMInfo = calibrationInfo("FDD");
170174
calibrationInfo NTPVInfo = calibrationInfo("NTracksPV");
171175
calibrationInfo NGlobalInfo = calibrationInfo("NGlobal");
@@ -183,8 +187,8 @@ struct CentralityTable {
183187
if (doprocessRun3FT0 == true) {
184188
LOG(fatal) << "FT0 only mode is automatically enabled in Run3 mode. Please disable it and enable processRun3.";
185189
}
186-
if (doprocessRun2 == false && doprocessRun3 == false) {
187-
LOGF(fatal, "Neither processRun2 nor processRun3 enabled. Please choose one.");
190+
if (doprocessRun2 == false && doprocessRun3 == false && doprocessRun3Complete == false) {
191+
LOGF(fatal, "Neither processRun2 nor processRun3 nor processRun3Complete enabled. Please choose one.");
188192
}
189193
if (doprocessRun2 == true && doprocessRun3 == true) {
190194
LOGF(fatal, "Cannot enable processRun2 and processRun3 at the same time. Please choose one.");
@@ -197,11 +201,11 @@ struct CentralityTable {
197201
if (f == 1) {
198202
if (tableNames[i].find("Run2") != std::string::npos) {
199203
if (doprocessRun3) {
200-
LOGF(fatal, "Cannot enable Run2 tables in Run3 mode. Please check and disable them.");
204+
LOG(fatal) << "Cannot enable Run2 table `" << tableNames[i] << "` while running in Run3 mode. Please check and disable them.";
201205
}
202206
} else {
203207
if (doprocessRun2) {
204-
LOGF(fatal, "Cannot enable Run3 tables in Run2 mode. Please check and disable them.");
208+
LOG(fatal) << "Cannot enable Run3 table `" << tableNames[i] << "` while running in Run2 mode. Please check and disable them.";
205209
}
206210
}
207211
isTableEnabled[i] = true;
@@ -466,6 +470,9 @@ struct CentralityTable {
466470
case kCentFT0Cs:
467471
centFT0C.reserve(collisions.size());
468472
break;
473+
case kCentFT0CVariant1s:
474+
centFT0CVariant1.reserve(collisions.size());
475+
break;
469476
case kCentFDDMs:
470477
centFDDM.reserve(collisions.size());
471478
break;
@@ -519,6 +526,7 @@ struct CentralityTable {
519526
FT0MInfo.mCalibrationStored = false;
520527
FT0AInfo.mCalibrationStored = false;
521528
FT0CInfo.mCalibrationStored = false;
529+
FT0CVariant1Info.mCalibrationStored = false;
522530
FDDMInfo.mCalibrationStored = false;
523531
NTPVInfo.mCalibrationStored = false;
524532
NGlobalInfo.mCalibrationStored = false;
@@ -564,6 +572,9 @@ struct CentralityTable {
564572
case kCentFT0Cs:
565573
getccdb(FT0CInfo, ccdbConfig.genName);
566574
break;
575+
case kCentFT0CVariant1s:
576+
getccdb(FT0CVariant1Info, ccdbConfig.genName);
577+
break;
567578
case kCentFDDMs:
568579
getccdb(FDDMInfo, ccdbConfig.genName);
569580
break;
@@ -672,6 +683,11 @@ struct CentralityTable {
672683
}
673684
}
674685
break;
686+
case kCentFT0CVariant1s:
687+
if constexpr (enableCentFT0) {
688+
populateTable(centFT0CVariant1, FT0CVariant1Info, collision.multZeqFT0C());
689+
}
690+
break;
675691
case kCentFDDMs:
676692
if constexpr (enableCentFDD) {
677693
populateTable(centFDDM, FDDMInfo, collision.multZeqFDDA() + collision.multZeqFDDC());
@@ -720,6 +736,7 @@ struct CentralityTable {
720736

721737
// Process switches
722738
PROCESS_SWITCH(CentralityTable, processRun2, "Provide Run2 calibrated centrality/multiplicity percentiles tables", true);
739+
PROCESS_SWITCH(CentralityTable, processRun3Complete, "Provide Run3 calibrated centrality/multiplicity percentiles tables using MFT and global tracks (requires extra subscriptions)", false);
723740
PROCESS_SWITCH(CentralityTable, processRun3, "Provide Run3 calibrated centrality/multiplicity percentiles tables", false);
724741
PROCESS_SWITCH(CentralityTable, processRun3FT0, "Provide Run3 calibrated centrality/multiplicity percentiles tables for FT0 only", false);
725742
};

Common/TableProducer/eventSelection.cxx

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include <vector>
1818
#include <map>
19+
#include <string>
1920

2021
#include "Framework/ConfigParamSpec.h"
2122
#include "Framework/runDataProcessing.h"
@@ -80,13 +81,13 @@ struct BcSelectionTask {
8081
bool isPP = 1; // default value
8182
TriggerAliases* aliases = nullptr;
8283
EventSelectionParams* par = nullptr;
84+
std::map<uint64_t, uint32_t>* mapRCT = nullptr;
8385
std::map<int64_t, std::vector<int16_t>> mapInactiveChips; // number of inactive chips vs orbit per layer
8486
int64_t prevOrbitForInactiveChips = 0; // cached next stored orbit in the inactive chip map
8587
int64_t nextOrbitForInactiveChips = 0; // cached previous stored orbit in the inactive chip map
8688
bool isGoodITSLayer3 = true; // default value
8789
bool isGoodITSLayer0123 = true; // default value
8890
bool isGoodITSLayersAll = true; // default value
89-
9091
void init(InitContext&)
9192
{
9293
if (metadataInfo.isFullyDefined() && !doprocessRun2 && !doprocessRun3) { // Check if the metadata is initialized (only if not forced from the workflow configuration)
@@ -242,8 +243,9 @@ struct BcSelectionTask {
242243
histos.get<TH1>(HIST("hCounterTVX"))->Fill(Form("%d", bc.runNumber()), 1);
243244
}
244245

246+
uint32_t rct = 0;
245247
// Fill bc selection columns
246-
bcsel(alias, selection, foundFT0, foundFV0, foundFDD, foundZDC);
248+
bcsel(alias, selection, rct, foundFT0, foundFV0, foundFDD, foundZDC);
247249
}
248250
}
249251
PROCESS_SWITCH(BcSelectionTask, processRun2, "Process Run2 event selection", true);
@@ -311,6 +313,18 @@ struct BcSelectionTask {
311313
}
312314
} // loop over vector of inactive chip ids
313315
} // loop over orbits
316+
317+
// QC info
318+
std::map<std::string, std::string> metadata;
319+
metadata["run"] = Form("%d", run);
320+
ccdb->setFatalWhenNull(0);
321+
mapRCT = ccdb->getSpecific<std::map<uint64_t, uint32_t>>("Users/j/jian/RCT", ts, metadata);
322+
ccdb->setFatalWhenNull(1);
323+
if (mapRCT == nullptr) {
324+
LOGP(info, "rct object missing... inserting dummy rct flags");
325+
mapRCT = new std::map<uint64_t, uint32_t>;
326+
mapRCT->insert(std::pair<uint64_t, uint32_t>(sorTimestamp, 0));
327+
}
314328
}
315329

316330
// map from GlobalBC to BcId needed to find triggerBc
@@ -326,6 +340,13 @@ struct BcSelectionTask {
326340

327341
// bc loop
328342
for (auto bc : bcs) { // o2-linter: disable=const-ref-in-for-loop
343+
// store rct flags
344+
auto itrct = mapRCT->upper_bound(bc.timestamp());
345+
if (itrct != mapRCT->begin())
346+
itrct--;
347+
uint32_t rct = itrct->second;
348+
LOGP(debug, "sor={} eor={} ts={} rct={}", sorTimestamp, eorTimestamp, bc.timestamp(), rct);
349+
329350
uint32_t alias{0};
330351
// workaround for pp2022 (trigger info is shifted by -294 bcs)
331352
int32_t triggerBcId = mapGlobalBCtoBcId[bc.globalBC() + triggerBcShift];
@@ -424,7 +445,7 @@ struct BcSelectionTask {
424445
LOGP(debug, "prev inactive chips: {} {} {} {} {} {} {}", vPrevInactiveChips[0], vPrevInactiveChips[1], vPrevInactiveChips[2], vPrevInactiveChips[3], vPrevInactiveChips[4], vPrevInactiveChips[5], vPrevInactiveChips[6]);
425446
isGoodITSLayer3 = vPrevInactiveChips[3] <= maxInactiveChipsPerLayer->at(3) && vNextInactiveChips[3] <= maxInactiveChipsPerLayer->at(3);
426447
isGoodITSLayer0123 = true;
427-
for (int i = 0; i < 3; i++) {
448+
for (int i = 0; i < 4; i++) {
428449
isGoodITSLayer0123 &= vPrevInactiveChips[i] <= maxInactiveChipsPerLayer->at(i) && vNextInactiveChips[i] <= maxInactiveChipsPerLayer->at(i);
429450
}
430451
isGoodITSLayersAll = true;
@@ -506,7 +527,7 @@ struct BcSelectionTask {
506527
}
507528

508529
// Fill bc selection columns
509-
bcsel(alias, selection, foundFT0, foundFV0, foundFDD, foundZDC);
530+
bcsel(alias, selection, rct, foundFT0, foundFV0, foundFDD, foundZDC);
510531
}
511532
}
512533
PROCESS_SWITCH(BcSelectionTask, processRun3, "Process Run3 event selection", false);
@@ -677,6 +698,9 @@ struct EventSelectionTask {
677698
selection |= (spdClusters < par->fSPDClsVsTklA + nTkl * par->fSPDClsVsTklB) ? BIT(kNoSPDClsVsTklBG) : 0;
678699
selection |= !(nTkl < 6 && multV0C012 > par->fV0C012vsTklA + nTkl * par->fV0C012vsTklB) ? BIT(kNoV0C012vsTklBG) : 0;
679700

701+
// copy rct flags from bcsel table
702+
uint32_t rct = bc.rct_raw();
703+
680704
// apply int7-like selections
681705
bool sel7 = 1;
682706
for (int i = 0; i < kNsel; i++) {
@@ -702,7 +726,7 @@ struct EventSelectionTask {
702726
}
703727
}
704728

705-
evsel(alias, selection, sel7, sel8, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, 0, 0, 0);
729+
evsel(alias, selection, rct, sel7, sel8, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, 0, 0, 0);
706730
}
707731
PROCESS_SWITCH(EventSelectionTask, processRun2, "Process Run2 event selection", true);
708732

@@ -757,7 +781,8 @@ struct EventSelectionTask {
757781
int32_t foundFDD = bc.foundFDDId();
758782
int32_t foundZDC = bc.foundZDCId();
759783
int bcInTF = (bc.globalBC() - bcSOR) % nBCsPerTF;
760-
evsel(bc.alias_raw(), bc.selection_raw(), kFALSE, kFALSE, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, bcInTF, -1, -1);
784+
uint32_t rct = 0;
785+
evsel(bc.alias_raw(), bc.selection_raw(), rct, kFALSE, kFALSE, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, bcInTF, -1, -1);
761786
}
762787
return;
763788
}
@@ -1171,6 +1196,9 @@ struct EventSelectionTask {
11711196
selection |= (vNoCollInSameRofStandard[colIndex] && vNoCollInSameRofWithCloseVz[colIndex]) ? BIT(kNoCollInRofStandard) : 0;
11721197
selection |= vNoHighMultCollInPrevRof[colIndex] ? BIT(kNoHighMultCollInPrevRof) : 0;
11731198

1199+
// copy rct flags from bcsel table
1200+
uint32_t rct = bc.rct_raw();
1201+
11741202
// apply int7-like selections
11751203
bool sel7 = 0;
11761204

@@ -1190,7 +1218,7 @@ struct EventSelectionTask {
11901218

11911219
int bcInTF = (bc.globalBC() - bcSOR) % nBCsPerTF;
11921220

1193-
evsel(alias, selection, sel7, sel8, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, bcInTF,
1221+
evsel(alias, selection, rct, sel7, sel8, foundBC, foundFT0, foundFV0, foundFDD, foundZDC, bcInTF,
11941222
vNumTracksITS567inFullTimeWin[colIndex], vSumAmpFT0CinFullTimeWin[colIndex]);
11951223
}
11961224
}

0 commit comments

Comments
 (0)