Skip to content

Commit 9707fd7

Browse files
authored
Merge branch 'master' into master
2 parents f33eace + 8a65ceb commit 9707fd7

File tree

272 files changed

+26779
-10430
lines changed

Some content is hidden

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

272 files changed

+26779
-10430
lines changed

.github/labeler.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,7 @@ trigger:
8787
tutorial:
8888
- changed-files:
8989
- any-glob-to-any-file: ["Tutorials/**"]
90+
91+
photon:
92+
- changed-files:
93+
- any-glob-to-any-file: ["PWGEM/PhotonMeson/**", "*/PWGEM/PhotonMeson/**"]

.github/workflows/mega-linter.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
id: ml
3939
# You can override MegaLinter flavor used to have faster performances
4040
# More info at https://megalinter.io/flavors/
41-
uses: oxsecurity/megalinter@v9.3.0
41+
uses: oxsecurity/megalinter@v9.4.0
4242
env:
4343
# All available variables are described in documentation:
4444
# https://megalinter.io/configuration/
@@ -49,7 +49,7 @@ jobs:
4949

5050
# Upload MegaLinter artifacts
5151
- name: Archive production artifacts
52-
uses: actions/upload-artifact@v6
52+
uses: actions/upload-artifact@v7
5353
if: success() || failure()
5454
with:
5555
name: MegaLinter reports

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ repos:
77
- id: trailing-whitespace
88
- id: end-of-file-fixer
99
- repo: https://github.com/pre-commit/mirrors-clang-format
10-
rev: v21.1.8 # clang-format version
10+
rev: v20.1.3 # clang-format version (keep synced with https://github.com/alisw/ali-bot/blob/master/.github/workflows/c++-code-formatting.yml)
1111
hooks:
1212
- id: clang-format
1313
- repo: https://github.com/cpplint/cpplint

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -928,12 +928,12 @@ struct OnTheFlyTracker {
928928
const float timeResolutionUs = timeResolutionNs * nsToMus; // us
929929
const float time = (eventCollisionTimeNS + gRandom->Gaus(0., timeResolutionNs)) * nsToMus;
930930
static constexpr int kCascProngs = 3;
931-
std::vector<o2::track::TrackParCov> xiDaughterTrackParCovsPerfect(3);
932-
std::vector<o2::track::TrackParCov> xiDaughterTrackParCovsTracked(3);
933-
std::vector<bool> isReco(kCascProngs);
934-
std::vector<int> nHits(kCascProngs); // total
935-
std::vector<int> nSiliconHits(kCascProngs); // silicon type
936-
std::vector<int> nTPCHits(kCascProngs); // TPC type
931+
std::array<o2::track::TrackParCov, kCascProngs> xiDaughterTrackParCovsPerfect;
932+
std::array<o2::track::TrackParCov, kCascProngs> xiDaughterTrackParCovsTracked;
933+
std::array<bool, kCascProngs> isReco;
934+
std::array<int, kCascProngs> nHitsCascadeProngs; // total
935+
std::array<int, kCascProngs> nSiliconHitsCascadeProngs; // silicon type
936+
std::array<int, kCascProngs> nTPCHitsCascadeProngs; // TPC type
937937

938938
bool tryKinkReco = false;
939939
if (cascadeDecaySettings.decayXi && isCascade) {
@@ -951,19 +951,19 @@ struct OnTheFlyTracker {
951951

952952
for (int i = 0; i < kCascProngs; i++) {
953953
isReco[i] = false;
954-
nHits[i] = 0;
955-
nSiliconHits[i] = 0;
956-
nTPCHits[i] = 0;
954+
nHitsCascadeProngs[i] = 0;
955+
nSiliconHitsCascadeProngs[i] = 0;
956+
nTPCHitsCascadeProngs[i] = 0;
957957
if (enableSecondarySmearing) {
958-
nHits[i] = fastTracker[icfg]->FastTrack(xiDaughterTrackParCovsPerfect[i], xiDaughterTrackParCovsTracked[i], dNdEta);
959-
nSiliconHits[i] = fastTracker[icfg]->GetNSiliconPoints();
960-
nTPCHits[i] = fastTracker[icfg]->GetNGasPoints();
958+
nHitsCascadeProngs[i] = fastTracker[icfg]->FastTrack(xiDaughterTrackParCovsPerfect[i], xiDaughterTrackParCovsTracked[i], dNdEta);
959+
nSiliconHitsCascadeProngs[i] = fastTracker[icfg]->GetNSiliconPoints();
960+
nTPCHitsCascadeProngs[i] = fastTracker[icfg]->GetNGasPoints();
961961

962-
if (nHits[i] < 0 && cascadeDecaySettings.doXiQA) { // QA
963-
getHist(TH1, histPath + "hFastTrackerQA")->Fill(o2::math_utils::abs(nHits[i]));
962+
if (nHitsCascadeProngs[i] < 0 && cascadeDecaySettings.doXiQA) { // QA
963+
getHist(TH1, histPath + "hFastTrackerQA")->Fill(o2::math_utils::abs(nHitsCascadeProngs[i]));
964964
}
965965

966-
if (nSiliconHits[i] >= fastTrackerSettings.minSiliconHits || (nSiliconHits[i] >= fastTrackerSettings.minSiliconHitsIfTPCUsed && nTPCHits[i] >= fastTrackerSettings.minTPCClusters)) {
966+
if (nSiliconHitsCascadeProngs[i] >= fastTrackerSettings.minSiliconHits || (nSiliconHitsCascadeProngs[i] >= fastTrackerSettings.minSiliconHitsIfTPCUsed && nTPCHitsCascadeProngs[i] >= fastTrackerSettings.minTPCClusters)) {
967967
isReco[i] = true;
968968
} else {
969969
continue; // extra sure
@@ -982,7 +982,7 @@ struct OnTheFlyTracker {
982982
histos.fill(HIST("hNaNBookkeeping"), i + 1, 1.0f);
983983
}
984984
if (isReco[i]) {
985-
tracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2, nSiliconHits[i], nTPCHits[i]});
985+
tracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2, nSiliconHitsCascadeProngs[i], nTPCHitsCascadeProngs[i]});
986986
} else {
987987
ghostTracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2});
988988
}
@@ -1379,7 +1379,7 @@ struct OnTheFlyTracker {
13791379
// histos.fill(HIST("hNaNBookkeeping"), i + 1, 1.0f);
13801380
// }
13811381
if (isReco[i]) {
1382-
tracksAlice3.push_back(TrackAlice3{v0DaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2, nSiliconHits[i], nTPCHits[i]});
1382+
tracksAlice3.push_back(TrackAlice3{v0DaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2, nSiliconHitsCascadeProngs[i], nTPCHitsCascadeProngs[i]});
13831383
} else {
13841384
ghostTracksAlice3.push_back(TrackAlice3{v0DaughterTrackParCovsTracked[i], mcParticle.globalIndex(), time, timeResolutionUs, true, true, i + 2});
13851385
}
@@ -1525,14 +1525,16 @@ struct OnTheFlyTracker {
15251525
}
15261526

15271527
bool reconstructed = true;
1528+
int nTrkHits = 0;
15281529
if (enablePrimarySmearing && !fastPrimaryTrackerSettings.fastTrackPrimaries) {
15291530
reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta);
1531+
nTrkHits = fastTrackerSettings.minSiliconHits;
15301532
} else if (fastPrimaryTrackerSettings.fastTrackPrimaries) {
15311533
o2::track::TrackParCov o2Track;
15321534
o2::upgrade::convertMCParticleToO2Track(mcParticle, o2Track, pdgDB);
15331535
o2Track.setPID(pdgCodeToPID(mcParticle.pdgCode()));
1534-
const int nHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta);
1535-
if (nHits < fastPrimaryTrackerSettings.minSiliconHits) {
1536+
nTrkHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta);
1537+
if (nTrkHits < fastPrimaryTrackerSettings.minSiliconHits) {
15361538
reconstructed = false;
15371539
}
15381540
}
@@ -1567,7 +1569,7 @@ struct OnTheFlyTracker {
15671569

15681570
// populate vector with track if we reco-ed it
15691571
if (reconstructed) {
1570-
tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter});
1572+
tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nTrkHits});
15711573
} else {
15721574
ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter});
15731575
}
@@ -1927,15 +1929,17 @@ struct OnTheFlyTracker {
19271929
const float time = (eventCollisionTimeNS + gRandom->Gaus(0., timeResolutionNs)) * nsToMus;
19281930

19291931
bool reconstructed = false;
1932+
int nTrkHits = 0;
19301933
if (enablePrimarySmearing && mcParticle.isPrimary()) {
19311934
o2::upgrade::convertMCParticleToO2Track(mcParticle, trackParCov, pdgDB);
19321935
reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta);
1936+
nTrkHits = fastTrackerSettings.minSiliconHits;
19331937
} else if (enableSecondarySmearing) {
19341938
o2::track::TrackParCov perfectTrackParCov;
19351939
o2::upgrade::convertMCParticleToO2Track(mcParticle, perfectTrackParCov, pdgDB);
19361940
perfectTrackParCov.setPID(pdgCodeToPID(mcParticle.pdgCode()));
1937-
const int nHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta);
1938-
if (nHits < fastTrackerSettings.minSiliconHits) {
1941+
nTrkHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta);
1942+
if (nTrkHits < fastTrackerSettings.minSiliconHits) {
19391943
reconstructed = false;
19401944
} else {
19411945
reconstructed = true;
@@ -1965,7 +1969,7 @@ struct OnTheFlyTracker {
19651969
}
19661970

19671971
if (reconstructed) {
1968-
tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter});
1972+
tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nTrkHits});
19691973
} else {
19701974
ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter});
19711975
}

ALICE3/TableProducer/OTF/onTheFlyTrackerPid.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,12 +433,13 @@ struct OnTheFlyTrackerPid {
433433
float mMagneticField = 0.0f;
434434
void init(o2::framework::InitContext& initContext)
435435
{
436-
mGeoContainer.init(initContext);
437-
mMagneticField = mGeoContainer.getFloatValue(0, "global", "magneticfield");
438-
439436
ccdb->setURL("http://alice-ccdb.cern.ch");
440437
ccdb->setTimestamp(-1);
441438

439+
mGeoContainer.setCcdbManager(ccdb.operator->());
440+
mGeoContainer.init(initContext);
441+
mMagneticField = mGeoContainer.getFloatValue(0, "global", "magneticfield");
442+
442443
if (static_cast<size_t>(maxBarrelLayers.value) > kTrackerRadii.size()) {
443444
LOG(fatal) << "Configured maxBarrelLayers (" << maxBarrelLayers.value
444445
<< ") exceeds the size of kTrackerRadii (" << kTrackerRadii.size()

CODEOWNERS

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,24 @@
3131
/EventFiltering/PWGJE @alibuild @fkrizek @nzardosh @raymondEhlers @mpuccio @lietava @fgrosa @ariedel-cern
3232
/EventFiltering/PWGEM @alibuild @dsekihat @nstrangm @mpuccio @lietava @fgrosa @ariedel-cern
3333

34-
/PWGCF @alibuild @victor-gonzalez @zchochul @lgraczykCern @prchakra @lauraser @ariedel-cern @EmilGorm @otonvd @shouqiye @glromane
35-
/PWGCF/Core @alibuild @jgrosseo @victor-gonzalez @zchochul @lgraczykCern @prchakra @lauraser @ariedel-cern @EmilGorm @otonvd @shouqiye @glromane
36-
/PWGCF/DataModel @alibuild @jgrosseo @victor-gonzalez @zchochul @lgraczykCern @prchakra @lauraser @ariedel-cern @EmilGorm @otonvd @shouqiye @glromane
37-
/PWGCF/TableProducer @alibuild @jgrosseo @victor-gonzalez @zchochul @lgraczykCern @prchakra @lauraser @ariedel-cern @EmilGorm @otonvd @shouqiye @glromane
38-
/PWGCF/Tasks @alibuild @jgrosseo @victor-gonzalez @zchochul @lgraczykCern @prchakra @lauraser @ariedel-cern @EmilGorm @otonvd @shouqiye @glromane
34+
/PWGCF @alibuild @victor-gonzalez @otonvd @shouqiye
35+
/PWGCF/Core @alibuild @jgrosseo
36+
/PWGCF/DataModel @alibuild @jgrosseo @jaelpark @victor-gonzalez @otonvd @shouqiye
37+
/PWGCF/TableProducer @alibuild @jgrosseo @jaelpark @victor-gonzalez @otonvd @shouqiye
38+
/PWGCF/Tasks @alibuild @jgrosseo @jaelpark @victor-gonzalez @otonvd @shouqiye
39+
/PWGCF/EbyEFluctuations @alibuild @SwatiSaha-1997 @isputows @victor-gonzalez @otonvd @shouqiye
40+
/PWGCF/Femto @alibuild @lauraser @ariedel-cern @dimihayl @victor-gonzalez @otonvd @shouqiye
41+
/PWGCF/FemtoDream @alibuild @lauraser @ariedel-cern @dimihayl @victor-gonzalez @otonvd @shouqiye
42+
/PWGCF/Femto3D @alibuild @glromane @sofiatomassini @lauraser @dimihayl @victor-gonzalez @otonvd @shouqiye
43+
/PWGCF/FemtoUniverse @alibuild @prchakra @lgraczykCern @majanik @lauraser @dimihayl @victor-gonzalez @otonvd @shouqiye
44+
/PWGCF/FemtoWorld @alibuild @prchakra @lgraczykCern @majanik @lauraser @dimihayl @victor-gonzalez @otonvd @shouqiye
45+
/PWGCF/Flow @alibuild @majanik @EmilGorm @jaelpark @wenyaCern @victor-gonzalez @otonvd @shouqiye
46+
/PWGCF/GenericFramework @alibuild @EmilGorm @jaelpark @wenyaCern @victor-gonzalez @otonvd @shouqiye
47+
/PWGCF/MultiparticleCorrelations @alibuild @abilandz @jaelpark @wenyaCern @victor-gonzalez @otonvd @shouqiye
48+
/PWGCF/JCorran @alibuild @jaelpark @wenyaCern @victor-gonzalez @otonvd @shouqiye
49+
/PWGCF/TwoParticleCorrelations @alibuild @Luzhiyongg @jaelpark @wenyaCern @victor-gonzalez @otonvd @shouqiye
50+
/PWGCF/Tutorial @alibuild @ariedel-cern @victor-gonzalez @otonvd @shouqiye
51+
3952
/PWGDQ @alibuild @iarsene @mcoquet642 @lucamicheletti93 @XiaozhiBai
4053
/PWGEM @alibuild @feisenhu @dsekihat @ivorobye @jokonig
4154
/PWGEM/Dilepton @alibuild @mikesas @rbailhac @dsekihat @ivorobye @feisenhu @hscheid @jokonig

Common/TableProducer/fwdtrackextension.cxx

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct FwdTrackExtension {
5050
Configurable<std::string> geoPath{"geoPath", "GLO/Config/GeometryAligned", "Path of the geometry file"};
5151
Configurable<std::string> grpmagPath{"grpmagPath", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object"};
5252
Configurable<std::string> configCcdbUrl{"configCcdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
53-
Configurable<bool> refitGlobalMuon{"refitGlobalMuon", true, "Recompute parameters of global muons"};
53+
Configurable<bool> refitGlobalMuon{"refitGlobalMuon", false, "Recompute parameters of global muons"};
5454

5555
Service<o2::ccdb::BasicCCDBManager> fCCDB;
5656
o2::parameters::GRPMagField* grpmag = nullptr; // for run 3, we access GRPMagField from GLO/Config/GRPMagField
@@ -69,35 +69,41 @@ struct FwdTrackExtension {
6969
}
7070
}
7171

72-
void process(aod::Collisions::iterator const& collision, o2::aod::BCsWithTimestamps const& /*...*/, MuonsWithCov const& tracks, aod::MFTTracks const& /*...*/)
72+
void process(MuonsWithCov const& tracks, aod::MFTTracks const& /*...*/, o2::aod::BCsWithTimestamps const& /*...*/, aod::Collisions const& /*...*/)
7373
{
74-
auto bc = collision.template bc_as<o2::aod::BCsWithTimestamps>();
75-
if (fCurrentRun != bc.runNumber()) {
76-
grpmag = fCCDB->getForTimeStamp<o2::parameters::GRPMagField>(grpmagPath, bc.timestamp());
77-
if (grpmag != nullptr) {
78-
LOGF(info, "Init field from GRP");
79-
o2::base::Propagator::initFieldFromGRP(grpmag);
80-
}
81-
LOGF(info, "Set field for muons");
82-
o2::mch::TrackExtrap::setField();
83-
fCurrentRun = bc.runNumber();
84-
}
85-
const float zField = grpmag->getNominalL3Field();
8674
for (const auto& track : tracks) {
8775
const auto trackType = track.trackType();
88-
o2::dataformats::GlobalFwdTrack fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwd(track, track);
89-
if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
90-
auto muontrack = track.template matchMCHTrack_as<MuonsWithCov>();
91-
auto mfttrack = track.template matchMFTTrack_as<aod::MFTTracks>();
92-
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, 0.f, zField);
93-
SMatrix5 tpars(mfttrack.x(), mfttrack.y(), mfttrack.phi(), mfttrack.tgl(), mfttrack.signed1Pt());
94-
SMatrix55 tcovs{};
95-
o2::track::TrackParCovFwd mft{mfttrack.z(), tpars, tcovs, mfttrack.chi2()};
96-
fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov(propmuon, mft);
76+
float dcaX = -999;
77+
float dcaY = -999;
78+
if (track.has_collision()) {
79+
auto const& collision = track.collision();
80+
auto bc = collision.template bc_as<o2::aod::BCsWithTimestamps>();
81+
if (fCurrentRun != bc.runNumber()) {
82+
grpmag = fCCDB->getForTimeStamp<o2::parameters::GRPMagField>(grpmagPath, bc.timestamp());
83+
if (grpmag != nullptr) {
84+
LOGF(info, "Init field from GRP");
85+
o2::base::Propagator::initFieldFromGRP(grpmag);
86+
}
87+
LOGF(info, "Set field for muons");
88+
o2::mch::TrackExtrap::setField();
89+
fCurrentRun = bc.runNumber();
90+
}
91+
const float zField = grpmag->getNominalL3Field();
92+
93+
o2::track::TrackParCovFwd fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwdShift(track, 0.0);
94+
if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
95+
auto muontrack = track.template matchMCHTrack_as<MuonsWithCov>();
96+
auto mfttrack = track.template matchMFTTrack_as<aod::MFTTracks>();
97+
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, 0.f, zField);
98+
SMatrix5 tpars(mfttrack.x(), mfttrack.y(), mfttrack.phi(), mfttrack.tgl(), mfttrack.signed1Pt());
99+
SMatrix55 tcovs{};
100+
o2::track::TrackParCovFwd mft{mfttrack.z(), tpars, tcovs, mfttrack.chi2()};
101+
fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov(propmuon, mft);
102+
}
103+
auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd(fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, 0.f, zField);
104+
dcaX = (proptrack.getX() - collision.posX());
105+
dcaY = (proptrack.getY() - collision.posY());
97106
}
98-
const auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd(fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, 0.f, zField);
99-
const float dcaX = (proptrack.getX() - collision.posX());
100-
const float dcaY = (proptrack.getY() - collision.posY());
101107
fwdDCA(dcaX, dcaY);
102108
}
103109
}

Common/Tasks/integrationTestCCDB.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ struct integrationTestCCDB {
103103
lut = 0x0;
104104
const AxisSpec axis{1, 0.0f, 1.0f, ""};
105105
histos.add<TH1>("hDFs", "hDFs", HistType::kTH1F, {axis});
106+
107+
mRunNumber = 0;
106108
}
107109

108110
void process(aod::BCsWithTimestamps const& bcs)
109111
{
110-
mRunNumber = 0;
111-
112112
auto bc = bcs.begin(); // first element
113113
histos.fill(HIST("hDFs"), 0.5f);
114114

Common/Tools/EventSelectionModule.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1514,10 +1514,14 @@ class EventSelectionModule
15141514
// apply int7-like selections
15151515
bool sel7 = 0;
15161516

1517-
// TODO apply other cuts for sel8
1518-
// TODO introduce sel1 etc?
1517+
// Combination of bits for Run 3 event selection decisions
1518+
// TODO apply other cuts for sel8?
15191519
// TODO introduce array of sel[0]... sel[8] or similar?
1520-
bool sel8 = bitcheck64(bcselEntry.selection, aod::evsel::kIsTriggerTVX) && bitcheck64(bcselEntry.selection, aod::evsel::kNoTimeFrameBorder) && bitcheck64(bcselEntry.selection, aod::evsel::kNoITSROFrameBorder);
1520+
bool sel8 = false;
1521+
if (lastRun < 568873) // pre-2026 data & MC: require all three bits: TVX, TF and ROF border cuts
1522+
sel8 = bitcheck64(bcselEntry.selection, aod::evsel::kIsTriggerTVX) && bitcheck64(bcselEntry.selection, aod::evsel::kNoTimeFrameBorder) && bitcheck64(bcselEntry.selection, aod::evsel::kNoITSROFrameBorder);
1523+
else // for pp 2026: sel8 without kNoITSROFrameBorder bit, because the cross-ROF reconstruction for ITS will be On (the switch by a runNumber is a temporary solution)
1524+
sel8 = bitcheck64(bcselEntry.selection, aod::evsel::kIsTriggerTVX) && bitcheck64(bcselEntry.selection, aod::evsel::kNoTimeFrameBorder);
15211525

15221526
// fill counters
15231527
histos.template get<TH1>(HIST("eventselection/hColCounterAll"))->Fill(Form("%d", bc.runNumber()), 1);

0 commit comments

Comments
 (0)