Skip to content
Open
Show file tree
Hide file tree
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
10 changes: 10 additions & 0 deletions PWGCF/DataModel/CorrelationsDerived.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,19 @@
mccollision::PosZ, cfmccollision::Multiplicity);
using CFMcCollision = CFMcCollisions::iterator;

namespace cfmccollisionextra
{
DECLARE_SOA_COLUMN(NMPI, nMPI, int); //! Number of multi-parton interactions from HepMC
} // namespace cfmccollisionextra
DECLARE_SOA_TABLE(CFMcCollisionExtras, "AOD", "CFMCCOLLEXTRA", //! Row-aligned extension of CFMcCollisions
cfmccollisionextra::NMPI);
using CFMcCollisionExtra = CFMcCollisionExtras::iterator;
using CFMcCollisionsWithExtra = soa::Join<CFMcCollisions, CFMcCollisionExtras>;
using CFMcCollisionWithExtra = CFMcCollisionsWithExtra::iterator;

namespace cfmcparticle
{
DECLARE_SOA_INDEX_COLUMN(CFMcCollision, cfMcCollision); //! Index to reduced MC collision

Check failure on line 43 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(Pt, pt, float); //! pT (GeV/c)
DECLARE_SOA_COLUMN(Eta, eta, float); //! Pseudorapidity
DECLARE_SOA_COLUMN(Phi, phi, float); //! Phi angle
Expand All @@ -55,7 +65,7 @@

namespace cfcollision
{
DECLARE_SOA_INDEX_COLUMN(CFMcCollision, cfMcCollision); //! Index to reduced MC collision

Check failure on line 68 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(Multiplicity, multiplicity, float); //! Centrality/multiplicity value
} // namespace cfcollision
DECLARE_SOA_TABLE(CFCollisions, "AOD", "CFCOLLISION", //! Reduced collision table
Expand All @@ -71,8 +81,8 @@

namespace cftrack
{
DECLARE_SOA_INDEX_COLUMN(CFCollision, cfCollision); //! Index to collision

Check failure on line 84 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_INDEX_COLUMN(CFMcParticle, cfMCParticle); //! Index to MC particle

Check failure on line 85 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(Pt, pt, float); //! pT (GeV/c)
DECLARE_SOA_COLUMN(Eta, eta, float); //! Pseudorapidity
DECLARE_SOA_COLUMN(Phi, phi, float); //! Phi angle
Expand Down Expand Up @@ -137,8 +147,8 @@

namespace cf2prongtrack
{
DECLARE_SOA_INDEX_COLUMN_FULL(CFTrackProng0, cfTrackProng0, int, CFTracks, "_0"); //! Index to prong 1 CFTrack

Check failure on line 150 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_INDEX_COLUMN_FULL(CFTrackProng1, cfTrackProng1, int, CFTracks, "_1"); //! Index to prong 2 CFTrack

Check failure on line 151 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(Pt, pt, float); //! pT (GeV/c)
DECLARE_SOA_COLUMN(Eta, eta, float); //! Pseudorapidity
DECLARE_SOA_COLUMN(Phi, phi, float); //! Phi angle
Expand Down Expand Up @@ -191,8 +201,8 @@

namespace cf2prongmcpart
{
DECLARE_SOA_INDEX_COLUMN_FULL(CFParticleDaugh0, cfParticleDaugh0, int, CFMcParticles, "_0"); //! Index to prong 1 CFMcParticle

Check failure on line 204 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_INDEX_COLUMN_FULL(CFParticleDaugh1, cfParticleDaugh1, int, CFMcParticles, "_1"); //! Index to prong 2 CFMcParticle

Check failure on line 205 in PWGCF/DataModel/CorrelationsDerived.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(Decay, decay, uint8_t); //! Particle decay and flags
DECLARE_SOA_DYNAMIC_COLUMN(McDecay, mcDecay, [](uint8_t decay) -> uint8_t { return decay & 0x3f; }); //! MC particle decay
enum ParticleDecayFlags {
Expand Down
2 changes: 0 additions & 2 deletions PWGCF/GenericFramework/Tasks/flowGenericFramework.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,8 @@ struct FlowGenericFramework {
Configurable<LabeledArray<int>> resonanceSwitches{"resonanceSwitches", {LongArrayInt.front().data(), 8, 3, {"UseParticle", "UseCosPA", "NMassBins", "UseDCAxDaughters", "UseProperLifetime", "UseV0Radius", "UseArmPodCut", "UseCompetingMassRejection"}, {"K0", "Lambda", "Phi"}}, "Labeled array (int) for various cuts on resonances"};

struct : ConfigurableGroup {
O2_DEFINE_CONFIGURABLE(cfgUseLsPhi, bool, true, "Use LikeSign for Phi v2")
O2_DEFINE_CONFIGURABLE(cfgUseOnlyTPC, bool, true, "Use only TPC PID for daughter selection")
O2_DEFINE_CONFIGURABLE(cfgDaughterPIDRejection, bool, true, "Reject daughters if not consistent with expected K0/Lambda decay products")
O2_DEFINE_CONFIGURABLE(cfgFakeKaonCut, float, 0.1f, "Maximum difference in measured momentum and TPC inner ring momentum of particle")
O2_DEFINE_CONFIGURABLE(cfgUseAsymmetricPID, bool, false, "Use asymmetric PID cuts")
O2_DEFINE_CONFIGURABLE(cfgTPCNsigmaCut, float, 3.0f, "TPC N-sigma cut for pions, kaons, protons")
O2_DEFINE_CONFIGURABLE(cfgUseStrictPID, bool, true, "Use strict PID cuts for TPC")
Expand Down
16 changes: 10 additions & 6 deletions PWGCF/TableProducer/filterCorrelations.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@
Produces<aod::CFTrackLabels> outputTrackLabels;

Produces<aod::CFMcCollisions> outputMcCollisions;
Produces<aod::CFMcCollisionExtras> outputMcCollisionExtras;
Produces<aod::CFMcParticles> outputMcParticles;

Produces<aod::CFCollRefs> outputCollRefs;
Expand Down Expand Up @@ -316,7 +317,7 @@

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

Check failure on line 320 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.
float maxDCAxy = getMaxDCAxy(track.pt());
if ((std::abs(track.dcaXY()) > maxDCAxy) || (std::abs(track.dcaZ()) > dcazmax)) {
continue;
Expand Down Expand Up @@ -385,8 +386,8 @@
/// event selections
/// \param tracks The collection of tracks, filtered by selection criteria
/// \param bcs The collection of bunch crossings with timestamps
template <typename C1, typename T1>
void processMCT(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
template <typename MCs, typename C1, typename T1>
void processMCT(MCs const& mcCollisions, aod::McParticles const& allParticles,
C1 const& allCollisions,
T1 const& tracks,
aod::BCsWithTimestamps const&)
Expand All @@ -401,7 +402,7 @@
}

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

Check failure on line 405 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 Down Expand Up @@ -459,6 +460,7 @@
}
}
outputMcCollisions(mcCollision.posZ(), multiplicity);
outputMcCollisionExtras(mcCollision.nMPI());
}

// PASS 2 on collisions: store collisions and tracks
Expand Down Expand Up @@ -517,7 +519,8 @@
// NOTE not filtering collisions here because in that case there can be tracks referring to MC particles which are not part of the selected MC collisions
Preslice<aod::McParticles> perMcCollision = aod::mcparticle::mcCollisionId;
Preslice<aod::Tracks> perCollision = aod::track::collisionId;
void processMC(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
using McCollisionsWithHepMC = soa::Join<aod::McCollisions, aod::HepMCXSections>;
void processMC(McCollisionsWithHepMC const& mcCollisions, aod::McParticles const& allParticles,
soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities> const& allCollisions,
soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection>> const& tracks,
aod::BCsWithTimestamps const& bcs)
Expand All @@ -527,7 +530,7 @@
PROCESS_SWITCH(FilterCF, processMC, "Process MC", false);

// NOTE not filtering collisions here because in that case there can be tracks referring to MC particles which are not part of the selected MC collisions
void processMCPid(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
void processMCPid(McCollisionsWithHepMC const& mcCollisions, aod::McParticles const& allParticles,
soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities> const& allCollisions,
soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection, aod::pidTPCPr, aod::pidTOFPr, aod::TracksDCA>> const& tracks,
aod::BCsWithTimestamps const& bcs)
Expand All @@ -536,7 +539,7 @@
}
PROCESS_SWITCH(FilterCF, processMCPid, "Process MC with PID", false);

void processMCMults(aod::McCollisions const& mcCollisions, aod::McParticles const& allParticles,
void processMCMults(McCollisionsWithHepMC 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)
Expand All @@ -546,7 +549,7 @@

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

void processMCGen(aod::McCollisions::iterator const& mcCollision, aod::McParticles const& particles)
void processMCGen(McCollisionsWithHepMC::iterator const& mcCollision, aod::McParticles const& particles)
{
float multiplicity = 0.0f;
for (auto& particle : particles) {
Expand All @@ -562,6 +565,7 @@
sign, particle.pdgCode(), particle.flags());
}
outputMcCollisions(mcCollision.posZ(), multiplicity);
outputMcCollisionExtras(mcCollision.nMPI());
}
PROCESS_SWITCH(FilterCF, processMCGen, "Process MCGen", false);
};
Expand Down
Loading
Loading