diff --git a/PWGLF/TableProducer/LFResonanceInitializer.cxx b/PWGLF/TableProducer/LFResonanceInitializer.cxx index 8e8343be5d7..872314f3375 100644 --- a/PWGLF/TableProducer/LFResonanceInitializer.cxx +++ b/PWGLF/TableProducer/LFResonanceInitializer.cxx @@ -303,16 +303,16 @@ struct reso2initializer { { float returnValue = -999.0; switch (multEstimator) { - case 0: - returnValue = ResoEvents.centFT0M(); - case 1: - returnValue = ResoEvents.centFT0C(); - case 2: - returnValue = ResoEvents.centFT0A(); - case 99: - returnValue = ResoEvents.centFV0A(); - default: - returnValue = ResoEvents.centFT0M(); + case 0: + returnValue = ResoEvents.centFT0M(); + case 1: + returnValue = ResoEvents.centFT0C(); + case 2: + returnValue = ResoEvents.centFT0A(); + case 99: + returnValue = ResoEvents.centFV0A(); + default: + returnValue = ResoEvents.centFT0M(); } return returnValue; } @@ -323,16 +323,16 @@ struct reso2initializer { { float returnValue = -999.0; switch (multEstimator) { - case 0: - returnValue = ResoEvents.multFT0M(); - case 1: - returnValue = ResoEvents.multFT0C(); - case 2: - returnValue = ResoEvents.multFT0A(); - case 99: - returnValue = ResoEvents.multFV0A(); - default: - returnValue = ResoEvents.multFT0M(); + case 0: + returnValue = ResoEvents.multFT0M(); + case 1: + returnValue = ResoEvents.multFT0C(); + case 2: + returnValue = ResoEvents.multFT0A(); + case 99: + returnValue = ResoEvents.multFV0A(); + default: + returnValue = ResoEvents.multFT0M(); } return returnValue; } @@ -342,70 +342,69 @@ struct reso2initializer { void fillTracks(CollisionType const& collision, TrackType const& tracks) { // Loop over tracks - for (auto& track : tracks) - { - if (!IsTrackSelected(collision, track)) - continue; - // Add PID selection criteria here - uint8_t tpcPIDselections = 0; - uint8_t tofPIDselections = 0; - // TPC PID - if (std::abs(track.tpcNSigmaPi()) < pidnSigmaPreSelectionCut) - tpcPIDselections |= aod::resodaughter::PDGtype::kPion; - if (std::abs(track.tpcNSigmaKa()) < pidnSigmaPreSelectionCut) - tpcPIDselections |= aod::resodaughter::PDGtype::kKaon; - if (std::abs(track.tpcNSigmaPr()) < pidnSigmaPreSelectionCut) - tpcPIDselections |= aod::resodaughter::PDGtype::kProton; - // TOF PID - if (track.hasTOF()) { - tofPIDselections |= aod::resodaughter::PDGtype::kHasTOF; - if (std::abs(track.tofNSigmaPi()) < pidnSigmaPreSelectionCut) - tofPIDselections |= aod::resodaughter::PDGtype::kPion; - if (std::abs(track.tofNSigmaKa()) < pidnSigmaPreSelectionCut) - tofPIDselections |= aod::resodaughter::PDGtype::kKaon; - if (std::abs(track.tofNSigmaPr()) < pidnSigmaPreSelectionCut) - tofPIDselections |= aod::resodaughter::PDGtype::kProton; - } - reso2trks(resoCollisions.lastIndex(), - track.pt(), - track.px(), - track.py(), - track.pz(), - track.eta(), - track.phi(), - track.sign(), - (uint8_t)track.tpcNClsCrossedRows(), - track.dcaXY(), - track.dcaZ(), - track.x(), - track.alpha(), - tpcPIDselections, - tofPIDselections, - track.tpcNSigmaPi(), - track.tpcNSigmaKa(), - track.tpcNSigmaPr(), - track.tofNSigmaPi(), - track.tofNSigmaKa(), - track.tofNSigmaPr(), - track.tpcSignal(), - track.passedITSRefit(), - track.passedTPCRefit(), - track.isGlobalTrackWoDCA(), - track.isPrimaryTrack(), - track.isPVContributor(), - track.tpcCrossedRowsOverFindableCls(), - track.itsChi2NCl(), - track.tpcChi2NCl()); - if constexpr (isMC) { - fillMCTrack(track); - } + for (auto& track : tracks) { + if (!IsTrackSelected(collision, track)) + continue; + // Add PID selection criteria here + uint8_t tpcPIDselections = 0; + uint8_t tofPIDselections = 0; + // TPC PID + if (std::abs(track.tpcNSigmaPi()) < pidnSigmaPreSelectionCut) + tpcPIDselections |= aod::resodaughter::PDGtype::kPion; + if (std::abs(track.tpcNSigmaKa()) < pidnSigmaPreSelectionCut) + tpcPIDselections |= aod::resodaughter::PDGtype::kKaon; + if (std::abs(track.tpcNSigmaPr()) < pidnSigmaPreSelectionCut) + tpcPIDselections |= aod::resodaughter::PDGtype::kProton; + // TOF PID + if (track.hasTOF()) { + tofPIDselections |= aod::resodaughter::PDGtype::kHasTOF; + if (std::abs(track.tofNSigmaPi()) < pidnSigmaPreSelectionCut) + tofPIDselections |= aod::resodaughter::PDGtype::kPion; + if (std::abs(track.tofNSigmaKa()) < pidnSigmaPreSelectionCut) + tofPIDselections |= aod::resodaughter::PDGtype::kKaon; + if (std::abs(track.tofNSigmaPr()) < pidnSigmaPreSelectionCut) + tofPIDselections |= aod::resodaughter::PDGtype::kProton; + } + reso2trks(resoCollisions.lastIndex(), + track.pt(), + track.px(), + track.py(), + track.pz(), + track.eta(), + track.phi(), + track.sign(), + (uint8_t)track.tpcNClsCrossedRows(), + track.dcaXY(), + track.dcaZ(), + track.x(), + track.alpha(), + tpcPIDselections, + tofPIDselections, + track.tpcNSigmaPi(), + track.tpcNSigmaKa(), + track.tpcNSigmaPr(), + track.tofNSigmaPi(), + track.tofNSigmaKa(), + track.tofNSigmaPr(), + track.tpcSignal(), + track.passedITSRefit(), + track.passedTPCRefit(), + track.isGlobalTrackWoDCA(), + track.isPrimaryTrack(), + track.isPVContributor(), + track.tpcCrossedRowsOverFindableCls(), + track.itsChi2NCl(), + track.tpcChi2NCl()); + if constexpr (isMC) { + fillMCTrack(track); } } + } - // Filter for all V0s - template - void fillV0s(CollisionType const& collision, V0Type const& v0s, TrackType const& tracks) - { + // Filter for all V0s + template + void fillV0s(CollisionType const& collision, V0Type const& v0s, TrackType const& tracks) + { int childIDs[2] = {0, 0}; // these IDs are necessary to keep track of the children for (auto& v0 : v0s) { if (!IsV0Selected(collision, v0, tracks)) @@ -427,12 +426,12 @@ struct reso2initializer { fillMCV0(v0); } } - } + } - // Filter for all Cascades - template - void fillCascades(CollisionType const& collision, CascType const& cascades, TrackType const& tracks) - { + // Filter for all Cascades + template + void fillCascades(CollisionType const& collision, CascType const& cascades, TrackType const& tracks) + { int childIDs[2] = {0, 0}; // these IDs are necessary to keep track of the children for (auto& casc : cascades) { if (!IsCascSelected(collision, casc, tracks)) @@ -455,11 +454,11 @@ struct reso2initializer { fillMCCascade(casc); } } - } + } - template - void fillMCTrack(TrackType const& track) - { + template + void fillMCTrack(TrackType const& track) + { // ------ Temporal lambda function to prevent error in build auto getMothersIndeces = [&](auto const& theMcParticle) { std::vector lMothersIndeces{}; @@ -527,11 +526,11 @@ struct reso2initializer { 0, 0); } - } - // Additonoal information for MC V0s - template - void fillMCV0(V0Type const& v0) - { + } + // Additonoal information for MC V0s + template + void fillMCV0(V0Type const& v0) + { // ------ Temporal lambda function to prevent error in build auto getMothersIndeces = [&](auto const& theMcParticle) { std::vector lMothersIndeces{}; @@ -613,11 +612,11 @@ struct reso2initializer { 0, 0); } - } - // Additonoal information for MC Cascades - template - void fillMCCascade(CascType const& casc) - { + } + // Additonoal information for MC Cascades + template + void fillMCCascade(CascType const& casc) + { // ------ Temporal lambda function to prevent error in build auto getMothersIndeces = [&](auto const& theMcParticle) { std::vector lMothersIndeces{}; @@ -699,11 +698,11 @@ struct reso2initializer { 0, 0); } - } - // Additonoal information for MC Cascades - template - void fillMCParticles(SelectedMCPartType const& mcParts, TotalMCParts const& mcParticles) - { + } + // Additonoal information for MC Cascades + template + void fillMCParticles(SelectedMCPartType const& mcParts, TotalMCParts const& mcParticles) + { for (auto& mcPart : mcParts) { std::vector daughterPDGs; if (mcPart.has_daughters()) { @@ -728,10 +727,10 @@ struct reso2initializer { mcPart.y()); daughterPDGs.clear(); } - } + } - void init(InitContext&) - { + void init(InitContext&) + { mRunNumber = 0; d_bz = 0; // Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 99: FV0A) @@ -768,10 +767,10 @@ struct reso2initializer { qaRegistry.add("hGoodCascIndices", "hGoodCascIndices", kTH1F, {idxAxis}); qaRegistry.add("hGoodMCCascIndices", "hGoodMCCascIndices", kTH1F, {idxAxis}); } - } + } - void initCCDB(aod::BCsWithTimestamps::iterator const& bc) // Simple copy from LambdaKzeroFinder.cxx - { + void initCCDB(aod::BCsWithTimestamps::iterator const& bc) // Simple copy from LambdaKzeroFinder.cxx + { if (ConfBypassCCDB) return; if (mRunNumber == bc.runNumber()) { @@ -812,12 +811,12 @@ struct reso2initializer { mRunNumber = bc.runNumber(); // Set magnetic field value once known LOGF(info, "Bz set to %f for run: ", d_bz, mRunNumber); - } + } - void processTrackData(soa::Filtered::iterator const& collision, - soa::Filtered const& tracks, - aod::BCsWithTimestamps const&) - { + void processTrackData(soa::Filtered::iterator const& collision, + soa::Filtered const& tracks, + aod::BCsWithTimestamps const&) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); // Default event selection @@ -832,14 +831,14 @@ struct reso2initializer { } fillTracks(collision, tracks); - } - PROCESS_SWITCH(reso2initializer, processTrackData, "Process for data", true); + } + PROCESS_SWITCH(reso2initializer, processTrackData, "Process for data", true); - void processTrackV0Data(soa::Filtered::iterator const& collision, - soa::Filtered const& tracks, - ResoV0s const& V0s, - aod::BCsWithTimestamps const&) - { + void processTrackV0Data(soa::Filtered::iterator const& collision, + soa::Filtered const& tracks, + ResoV0s const& V0s, + aod::BCsWithTimestamps const&) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); // Default event selection @@ -855,15 +854,15 @@ struct reso2initializer { fillTracks(collision, tracks); fillV0s(collision, V0s, tracks); - } - PROCESS_SWITCH(reso2initializer, processTrackV0Data, "Process for data", false); - - void processTrackV0CascData(soa::Filtered::iterator const& collision, - soa::Filtered const& tracks, - ResoV0s const& V0s, - ResoCascades const& Cascades, - aod::BCsWithTimestamps const&) - { + } + PROCESS_SWITCH(reso2initializer, processTrackV0Data, "Process for data", false); + + void processTrackV0CascData(soa::Filtered::iterator const& collision, + soa::Filtered const& tracks, + ResoV0s const& V0s, + ResoCascades const& Cascades, + aod::BCsWithTimestamps const&) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); // Default event selection @@ -880,14 +879,14 @@ struct reso2initializer { fillTracks(collision, tracks); fillV0s(collision, V0s, tracks); fillCascades(collision, Cascades, tracks); - } - PROCESS_SWITCH(reso2initializer, processTrackV0CascData, "Process for data", false); + } + PROCESS_SWITCH(reso2initializer, processTrackV0CascData, "Process for data", false); - Preslice perMcCollision = aod::mcparticle::mcCollisionId; - void processTrackMC(soa::Filtered>::iterator const& collision, - aod::McCollisions const& mcCols, soa::Filtered const& tracks, - aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) - { + Preslice perMcCollision = aod::mcparticle::mcCollisionId; + void processTrackMC(soa::Filtered>::iterator const& collision, + aod::McCollisions const& mcCols, soa::Filtered const& tracks, + aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); if (!colCuts.isSelected(collision)) @@ -906,14 +905,14 @@ struct reso2initializer { // Loop over all MC particles auto mcParts = selectedMCParticles->sliceBy(perMcCollision, collision.mcCollision().globalIndex()); fillMCParticles(mcParts, mcParticles); - } - PROCESS_SWITCH(reso2initializer, processTrackMC, "Process for MC", false); + } + PROCESS_SWITCH(reso2initializer, processTrackMC, "Process for MC", false); - void processTrackV0MC(soa::Filtered>::iterator const& collision, - aod::McCollisions const& mcCols, soa::Filtered const& tracks, - ResoV0sMC const& V0s, - aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) - { + void processTrackV0MC(soa::Filtered>::iterator const& collision, + aod::McCollisions const& mcCols, soa::Filtered const& tracks, + ResoV0sMC const& V0s, + aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); if (!colCuts.isSelected(collision)) @@ -933,15 +932,15 @@ struct reso2initializer { // Loop over all MC particles auto mcParts = selectedMCParticles->sliceBy(perMcCollision, collision.mcCollision().globalIndex()); fillMCParticles(mcParts, mcParticles); - } - PROCESS_SWITCH(reso2initializer, processTrackV0MC, "Process for MC", false); - - void processTrackV0CascMC(soa::Filtered>::iterator const& collision, - aod::McCollisions const& mcCols, soa::Filtered const& tracks, - ResoV0sMC const& V0s, - ResoCascadesMC const& Cascades, - aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) - { + } + PROCESS_SWITCH(reso2initializer, processTrackV0MC, "Process for MC", false); + + void processTrackV0CascMC(soa::Filtered>::iterator const& collision, + aod::McCollisions const& mcCols, soa::Filtered const& tracks, + ResoV0sMC const& V0s, + ResoCascadesMC const& Cascades, + aod::McParticles const& mcParticles, aod::BCsWithTimestamps const& bcs) + { auto bc = collision.bc_as(); /// adding timestamp to access magnetic field later initCCDB(bc); if (!colCuts.isSelected(collision)) @@ -963,8 +962,8 @@ struct reso2initializer { // Loop over all MC particles auto mcParts = selectedMCParticles->sliceBy(perMcCollision, collision.mcCollision().globalIndex()); fillMCParticles(mcParts, mcParticles); - } - PROCESS_SWITCH(reso2initializer, processTrackV0CascMC, "Process for MC", false); + } + PROCESS_SWITCH(reso2initializer, processTrackV0CascMC, "Process for MC", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)