Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 deletions PWGCF/TableProducer/filterCorrelations.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@

if (cfgTransientTables)
outputCollRefs(collision.globalIndex());
for (auto& track : tracks) {

Check failure on line 280 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if ((std::abs(track.dcaXY()) > dcaxymax) || (std::abs(track.dcaZ()) > dcazmax)) {
continue;
}
Expand Down Expand Up @@ -316,9 +316,9 @@
/// event selections
/// \param tracks The collection of tracks, filtered by selection criteria
/// \param bcs The collection of bunch crossings with timestamps
template <typename T1>
template <typename C1, typename T1>
void processMCT(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities> const& allCollisions,
C1 const& allCollisions,
T1 const& tracks,
aod::BCsWithTimestamps const&)
{
Expand All @@ -332,7 +332,7 @@
}

// PASS 1 on collisions: check which particles are kept
for (auto& collision : allCollisions) {

Check failure on line 335 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
auto groupedTracks = tracks.sliceBy(perCollision, collision.globalIndex());
if (cfgVerbosity > 0) {
LOGF(info, "processMC: Tracks for collision %d: %d | Vertex: %.1f (%d) | INT7: %d", collision.globalIndex(), groupedTracks.size(), collision.posZ(), collision.flags(), collision.sel7());
Expand All @@ -342,14 +342,14 @@
continue;
}

for (auto& track : groupedTracks) {

Check failure on line 345 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (track.has_mcParticle()) {
mcReconstructedCache[track.mcParticleId()] = true;
}
}
}

for (auto& mcCollision : mcCollisions) {

Check failure on line 352 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
auto particles = allParticles.sliceBy(perMcCollision, mcCollision.globalIndex());

if (cfgVerbosity > 0) {
Expand All @@ -358,7 +358,7 @@

// Store selected MC particles and MC collisions
int multiplicity = 0;
for (auto& particle : particles) {

Check failure on line 361 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
int8_t sign = 0;
TParticlePDG* pdgparticle = pdg->GetParticle(particle.pdgCode());
if (pdgparticle != nullptr) {
Expand Down Expand Up @@ -393,7 +393,7 @@
}

// PASS 2 on collisions: store collisions and tracks
for (auto& collision : allCollisions) {

Check failure on line 396 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
auto groupedTracks = tracks.sliceBy(perCollision, collision.globalIndex());
if (cfgVerbosity > 0) {
LOGF(info, "processMC: Tracks for collision %d: %d | Vertex: %.1f (%d) | INT7: %d", collision.globalIndex(), groupedTracks.size(), collision.posZ(), collision.flags(), collision.sel7());
Expand All @@ -403,14 +403,28 @@
continue;
}

auto bc = collision.bc_as<aod::BCsWithTimestamps>();
auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
// NOTE works only when we store all MC collisions (as we do here)
outputCollisions(bc.runNumber(), collision.posZ(), collision.multiplicity(), bc.timestamp());
outputMcCollisionLabels(collision.mcCollisionId());

if constexpr (std::experimental::is_detected<HasMultTables, C1>::value) {
multiplicities.clear();
if (cfgEstimatorBitMask & aod::cfmultset::CentFT0C)
multiplicities.push_back(collision.centFT0C());
if (cfgEstimatorBitMask & aod::cfmultset::MultFV0A)
multiplicities.push_back(collision.multFV0A());
if (cfgEstimatorBitMask & aod::cfmultset::MultNTracksPV)
multiplicities.push_back(collision.multNTracksPV());
if (cfgEstimatorBitMask & aod::cfmultset::MultNTracksGlobal)
multiplicities.push_back(collision.multNTracksGlobal());
outputMultSets(multiplicities);
}

if (cfgTransientTables)
outputCollRefs(collision.globalIndex());

for (auto& track : groupedTracks) {

Check failure on line 427 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
int mcParticleId = track.mcParticleId();
if (mcParticleId >= 0) {
mcParticleId = mcParticleLabelsCache[track.mcParticleId()];
Expand Down Expand Up @@ -451,10 +465,20 @@
}
PROCESS_SWITCH(FilterCF, processMCPid, "Process MC with PID", false);

void processMCMults(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities, aod::CentFT0Cs, aod::PVMults, aod::FV0Mults, aod::MultsGlobal> const& allCollisions,
soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection>> const& tracks,
aod::BCsWithTimestamps const& bcs)
{
processMCT(mcCollisions, allParticles, allCollisions, tracks, bcs);
}

PROCESS_SWITCH(FilterCF, processMCMults, "Process MC with multiplicity sets", false);

void processMCGen(aod::McCollisions::iterator const& mcCollision, aod::McParticles const& particles)
{
float multiplicity = 0.0f;
for (auto& particle : particles) {

Check failure on line 481 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (!particle.isPhysicalPrimary() || std::abs(particle.eta()) > cfgCutMCEta || particle.pt() < cfgCutMCPt)
continue;
int8_t sign = 0;
Expand Down Expand Up @@ -521,7 +545,7 @@

void processFT0M(aod::CentFT0Ms const& centralities)
{
for (auto& c : centralities) {

Check failure on line 548 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
output(c.centFT0M());
}
}
Expand All @@ -529,7 +553,7 @@

void processFT0C(aod::CentFT0Cs const& centralities)
{
for (auto& c : centralities) {

Check failure on line 556 in PWGCF/TableProducer/filterCorrelations.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
output(c.centFT0C());
}
}
Expand Down
Loading