diff --git a/PWGLF/DataModel/LFSigmaTables.h b/PWGLF/DataModel/LFSigmaTables.h index 1b5f3aba528..3a2b3150043 100644 --- a/PWGLF/DataModel/LFSigmaTables.h +++ b/PWGLF/DataModel/LFSigmaTables.h @@ -213,7 +213,7 @@ DECLARE_SOA_COLUMN(KShortMass, kshortMass, float); // Dynamic Columns -//KStar +// KStar DECLARE_SOA_DYNAMIC_COLUMN(Px, px, //! KStar px [](float photonPx, float kshortPx) -> float { return photonPx + kshortPx; }); DECLARE_SOA_DYNAMIC_COLUMN(Py, py, //! KStar py @@ -286,8 +286,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(PhotonY, photonY, //! Rapidity DECLARE_SOA_DYNAMIC_COLUMN(PhotonPhi, photonPhi, //! Phi in the range [0, 2pi) [](float photonPx, float photonPy) -> float { return RecoDecay::phi(photonPx, photonPy); }); - -// KShort +// KShort DECLARE_SOA_DYNAMIC_COLUMN(KShortPt, kshortPt, //! Transverse momentum in GeV/c [](float kshortPx, float kshortPy) -> float { return RecoDecay::sqrtSumOfSquares(kshortPx, kshortPy); @@ -311,14 +310,14 @@ DECLARE_SOA_DYNAMIC_COLUMN(KShortY, kshortY, //! Rapidity DECLARE_SOA_DYNAMIC_COLUMN(KShortPhi, kshortPhi, //! Phi in the range [0, 2pi) [](float kshortPx, float kshortPy) -> float { return RecoDecay::phi(kshortPx, kshortPy); }); -} +} // namespace kstarCore DECLARE_SOA_TABLE(KStarCores, "AOD", "KSTARCORES", kstarCore::X, kstarCore::Y, kstarCore::Z, kstarCore::DCADaughters, kstarCore::PhotonPx, kstarCore::PhotonPy, kstarCore::PhotonPz, kstarCore::PhotonMass, kstarCore::KShortPx, kstarCore::KShortPy, kstarCore::KShortPz, kstarCore::KShortMass, - //Dynamic columns + // Dynamic columns kstarCore::Px, kstarCore::Py, kstarCore::Pz, @@ -343,7 +342,6 @@ DECLARE_SOA_TABLE(KStarCores, "AOD", "KSTARCORES", kstarCore::KShortY, kstarCore::KShortPhi); - // For KStar extra info namespace kshortExtra { @@ -371,7 +369,7 @@ DECLARE_SOA_COLUMN(KShortNegITSChi2PerNcl, kshortNegChi2PerNcl, float); DECLARE_SOA_COLUMN(KShortPosTrackCode, kshortPosTrackCode, uint8_t); DECLARE_SOA_COLUMN(KShortNegTrackCode, kshortNegTrackCode, uint8_t); DECLARE_SOA_COLUMN(KShortV0Type, kshortV0Type, uint8_t); -} +} // namespace kshortExtra DECLARE_SOA_TABLE(KShortExtras, "AOD", "KSHORT", kshortExtra::KShortQt, @@ -397,8 +395,7 @@ DECLARE_SOA_TABLE(KShortExtras, "AOD", "KSHORT", kshortExtra::KShortNegITSChi2PerNcl, kshortExtra::KShortPosTrackCode, kshortExtra::KShortNegTrackCode, - kshortExtra::KShortV0Type -); + kshortExtra::KShortV0Type); // For KStar extra info namespace kstarPhotonExtra @@ -425,7 +422,7 @@ DECLARE_SOA_COLUMN(PhotonNegITSChi2PerNcl, photonNegITSChi2PerNcl, float); DECLARE_SOA_COLUMN(PhotonPosTrackCode, photonPosTrackCode, uint8_t); DECLARE_SOA_COLUMN(PhotonNegTrackCode, photonNegTrackCode, uint8_t); DECLARE_SOA_COLUMN(PhotonV0Type, photonV0Type, uint8_t); -} +} // namespace kstarPhotonExtra DECLARE_SOA_TABLE(KStarPhotonExtras, "AOD", "KSTARPHOTON", kstarPhotonExtra::PhotonQt, @@ -451,7 +448,6 @@ DECLARE_SOA_TABLE(KStarPhotonExtras, "AOD", "KSTARPHOTON", kstarPhotonExtra::PhotonNegTrackCode, kstarPhotonExtra::PhotonV0Type); - // For Photon extra info namespace sigma0PhotonExtra { @@ -858,7 +854,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(KShortMCY, kshortMCY, //! Rapidity DECLARE_SOA_DYNAMIC_COLUMN(KShortMCPhi, kshortMCPhi, //! Phi in the range [0, 2pi) [](float kshortMCPx, float kshortMCPy) -> float { return RecoDecay::phi(kshortMCPx, kshortMCPy); }); -} // namespace sigma0MCCore +} // namespace kstarMCCore DECLARE_SOA_TABLE(KStarMCCores, "AOD", "KSTARMCCORES", // Basic properties @@ -891,13 +887,11 @@ DECLARE_SOA_TABLE(KStarMCCores, "AOD", "KSTARMCCORES", kstarMCCore::PhotonMCPhi, kstarMCCore::KShortMCPt, - kstarMCCore::KShortMCP, + kstarMCCore::KShortMCP, kstarMCCore::KShortMCEta, kstarMCCore::KShortMCY, kstarMCCore::KShortMCPhi); - - namespace sigma0Gen { DECLARE_SOA_COLUMN(IsSigma0, isSigma0, bool); // true: sigma0, false: antisigma0 @@ -919,7 +913,7 @@ DECLARE_SOA_COLUMN(IsKStar, isKStar, bool); // true: sigma0, false: antisigma0 DECLARE_SOA_COLUMN(ProducedByGenerator, producedByGenerator, bool); DECLARE_SOA_COLUMN(KStarMCPt, kstarMCPt, float); // MC pT -} // namespace sigma0Gen +} // namespace kstarGen DECLARE_SOA_TABLE(KStarGens, "AOD", "KSTARGENS", kstarGen::IsKStar, @@ -929,7 +923,6 @@ DECLARE_SOA_TABLE(KStarGens, "AOD", "KSTARGENS", DECLARE_SOA_TABLE(SigmaCollRef, "AOD", "SIGMACOLLREF", //! optional table to refer back to a collision o2::soa::Index<>, v0data::StraCollisionId); - DECLARE_SOA_TABLE(SigmaIndices, "AOD", "SIGMAINDEX", //! index table when using AO2Ds o2::soa::Index<>, sigma0Core::PhotonV0Id, sigma0Core::LambdaV0Id, o2::soa::Marker<1>); @@ -939,12 +932,11 @@ DECLARE_SOA_TABLE(SigmaMCLabels, "AOD", "SIGMAMCLABEL", //! optional table to re DECLARE_SOA_TABLE(SigmaGenCollRef, "AOD", "SIGMAGENCOLLREF", //! optional table to refer back to a collision o2::soa::Index<>, v0data::StraMCCollisionId); +DECLARE_SOA_TABLE(KStarCollRef, "AOD", "KSTARCOLLREF", + o2::soa::Index<>, v0data::StraCollisionId); -DECLARE_SOA_TABLE(KStarCollRef, "AOD", "KSTARCOLLREF", - o2::soa::Index<>, v0data::StraCollisionId); - -DECLARE_SOA_TABLE(KStarGenCollRef, "AOD", "KSTARGENCOLLREF", - o2::soa::Index<>, v0data::StraMCCollisionId); +DECLARE_SOA_TABLE(KStarGenCollRef, "AOD", "KSTARGENCOLLREF", + o2::soa::Index<>, v0data::StraMCCollisionId); // ___________________________________________________________________________ // pi0 QA diff --git a/PWGLF/TableProducer/Strangeness/sigma0builder.cxx b/PWGLF/TableProducer/Strangeness/sigma0builder.cxx index 33ab75a3e02..0ef46b7507d 100644 --- a/PWGLF/TableProducer/Strangeness/sigma0builder.cxx +++ b/PWGLF/TableProducer/Strangeness/sigma0builder.cxx @@ -77,15 +77,14 @@ struct sigma0builder { //___________________________________________________ // KStar Specific - Produces kstarcores; // kstar candidates info for analysis - Produces kshortExtras; // lambdas from sigma0 candidates info + Produces kstarcores; // kstar candidates info for analysis + Produces kshortExtras; // lambdas from sigma0 candidates info Produces kstarPhotonExtras; // photons from kstar candidates info - Produces kstarCollRefs; // references collisions from kstarcores - Produces kstarmccores; // Reco sigma0 MC properties - Produces kstarGens; // Generated sigma0s + Produces kstarCollRefs; // references collisions from kstarcores + Produces kstarmccores; // Reco sigma0 MC properties + Produces kstarGens; // Generated sigma0s Produces kstarGenCollRefs; // references collisions from sigma0Gens - //__________________________________________________ // Sigma0 specific Produces sigmaIndices; // references V0Cores from sigma0Gens @@ -243,7 +242,7 @@ struct sigma0builder { Configurable K0ShortMaxv0radius{"K0SMaxv0radius", 60, "Max V0 radius (cm)"}; Configurable K0ShortWindow{"K0SWindow", 0.1, "Mass window around expected (in GeV/c2)"}; - // KStar criteria: + // KStar criteria: Configurable KStarWindow{"KStarWindow", 0.1, "Mass window around expected (in GeV/c2)"}; Configurable KStarMaxRap{"KStarMaxRap", 0.8, "Max kstar rapidity"}; @@ -378,7 +377,7 @@ struct sigma0builder { histos.get(HIST("KStarSel/hSelectionStatistics"))->GetXaxis()->SetBinLabel(1, "No Sel"); histos.get(HIST("KStarSel/hSelectionStatistics"))->GetXaxis()->SetBinLabel(2, "KStar Mass Window"); histos.get(HIST("KStarSel/hSelectionStatistics"))->GetXaxis()->SetBinLabel(3, "KStar Y Window"); - + histos.add("KStarSel/hKStarMassSelected", "hKStarMassSelected", kTH1F, {axisKStarMass}); for (const auto& histodir : DirList) { @@ -574,8 +573,6 @@ struct sigma0builder { h2DGenKStarTypeVsProducedByGen->GetXaxis()->SetBinLabel(2, "Non-Sterile"); h2DGenKStarTypeVsProducedByGen->GetYaxis()->SetBinLabel(1, "Generator"); h2DGenKStarTypeVsProducedByGen->GetYaxis()->SetBinLabel(2, "Transport"); - - } if (doprocessPhotonLambdaQA || doprocessPhotonLambdaMCQA) { @@ -1242,7 +1239,6 @@ struct sigma0builder { histos.fill(HIST("GenQA/h2dKStarNDaughtersVsPDG"), daughters.size(), daughter.pdgCode()); } - if (GenInfo.IsPi0 && genSelections.doQA) { histos.fill(HIST("GenQA/h2dPi0MCSourceVsPDGMother"), GenInfo.IsProducedByGenerator, GenInfo.PDGCodeMother); for (auto& daughter : daughters) // checking decay modes @@ -1281,7 +1277,6 @@ struct sigma0builder { histos.fill(HIST("GenQA/hGenSpecies"), 1); if (GenInfo.IsV0KShort && GenInfo.IsPrimary) histos.fill(HIST("GenQA/hGenSpeciesKStar"), 0); - // Checking decay mode if (GenInfo.IsSigma0 || GenInfo.IsAntiSigma0) { @@ -1320,7 +1315,6 @@ struct sigma0builder { } } - // Checking decay mode if (GenInfo.IsKStar) { histos.fill(HIST("GenQA/hKStarNDau"), GenInfo.NDaughters); @@ -1350,7 +1344,6 @@ struct sigma0builder { histos.fill(HIST("GenQA/hPrimaryKStars"), 1); } } - } // ______________________________________________________ @@ -1401,7 +1394,7 @@ struct sigma0builder { // KStar if (fillKStarTables && MCGenInfo.IsKStar) { kstarGens(MCGenInfo.IsKStar, MCGenInfo.IsProducedByGenerator, MCGenInfo.MCPt); - kstarGenCollRefs(MCGenInfo.MCCollId); // link to stramccollision table + kstarGenCollRefs(MCGenInfo.MCCollId); // link to stramccollision table } } } @@ -1656,14 +1649,13 @@ struct sigma0builder { return true; } - template bool processKShortCandidate(TV0Object const& kshort, TCollision const& collision) { if (kshort.v0Type() != 1) return false; - + float centrality = doPPAnalysis ? collision.centFT0M() : collision.centFT0C(); histos.fill(HIST("K0ShortSel/h3dK0ShortMass"), centrality, kshort.pt(), kshort.mK0Short()); @@ -1677,7 +1669,7 @@ struct sigma0builder { histos.fill(HIST("K0ShortSel/hK0ShortPosEta"), kshort.positiveeta()); histos.fill(HIST("K0ShortSel/hK0ShortY"), kshort.yK0Short()); histos.fill(HIST("K0ShortSel/hSelectionStatistics"), 2.); - + if ((TMath::Abs(kshort.yK0Short()) > V0Rapidity) || (TMath::Abs(kshort.negativeeta()) > K0ShortDauPseudoRap) || (TMath::Abs(kshort.positiveeta()) > K0ShortDauPseudoRap)) return false; histos.fill(HIST("K0ShortSel/hK0ShortDCANegToPV"), kshort.dcanegtopv()); @@ -1697,20 +1689,18 @@ struct sigma0builder { if (TMath::Abs(kshort.dcaV0daughters()) > K0ShortMaxDCAV0Dau) return false; histos.fill(HIST("K0ShortSel/hSelectionStatistics"), 6.); - // MC Processing (if available) + // MC Processing (if available) if constexpr (requires { kshort.motherMCPartId(); }) { if (kshort.has_v0MCCore()) { auto kshortMC = kshort.template v0MCCore_as>(); - // if (kshortMC.pdgCode() == 310) // Is K0Short - // histos.fill(HIST("MC/h2dPtVsCentrality_MCAssocKShort"), centrality, kshort.pt()); + // if (kshortMC.pdgCode() == 310) // Is K0Short + // histos.fill(HIST("MC/h2dPtVsCentrality_MCAssocKShort"), centrality, kshort.pt()); } } return true; - } - //_______________________________________________ // Build pi0 candidate for QA template @@ -1901,11 +1891,10 @@ struct sigma0builder { return true; } - //_______________________________________________ // Build kstar candidate - template - bool buildKStar(TV0Object const& kshort, TV0Object const& gamma, TCollision const & collision, TMCParticles const& mcparticles) + template + bool buildKStar(TV0Object const& kshort, TV0Object const& gamma, TCollision const& collision, TMCParticles const& mcparticles) { //_______________________________________________ @@ -1932,7 +1921,7 @@ struct sigma0builder { histos.fill(HIST("KStarSel/hSelectionStatistics"), 1.); if (TMath::Abs(kstarMass - o2::constants::physics::MassK0Star892) > KStarWindow) return false; - + histos.fill(HIST("KStarSel/hSelectionStatistics"), 2.); if (TMath::Abs(kstarY) > KStarMaxRap) return false; @@ -1943,18 +1932,17 @@ struct sigma0builder { auto kstarTopoInfo = propagateV0PairToDCA(gamma, kshort); kstarcores(kstarTopoInfo.X, kstarTopoInfo.Y, kstarTopoInfo.Z, kstarTopoInfo.DCADau, - gamma.px(), gamma.py(), gamma.pz(), gamma.mGamma(), kshort.px(), kshort.py(), kshort.pz(), kshort.mK0Short()); + gamma.px(), gamma.py(), gamma.pz(), gamma.mGamma(), kshort.px(), kshort.py(), kshort.pz(), kshort.mK0Short()); - // MC properties if constexpr (requires { gamma.motherMCPartId(); kshort.motherMCPartId(); }) { auto kstarMCInfo = getV0PairMCInfo(gamma, kshort, collision, mcparticles); kstarmccores(kstarMCInfo.V0PairMCRadius, kstarMCInfo.V0PairPDGCode, kstarMCInfo.V0PairPDGCodeMother, kstarMCInfo.V0PairMCProcess, kstarMCInfo.fV0PairProducedByGenerator, - kstarMCInfo.V01MCpx, kstarMCInfo.V01MCpy, kstarMCInfo.V01MCpz, - kstarMCInfo.fIsV01Primary, kstarMCInfo.V01PDGCode, kstarMCInfo.V01PDGCodeMother, kstarMCInfo.fIsV01CorrectlyAssign, - kstarMCInfo.V02MCpx, kstarMCInfo.V02MCpy, kstarMCInfo.V02MCpz, - kstarMCInfo.fIsV02Primary, kstarMCInfo.V02PDGCode, kstarMCInfo.V02PDGCodeMother, kstarMCInfo.fIsV02CorrectlyAssign); + kstarMCInfo.V01MCpx, kstarMCInfo.V01MCpy, kstarMCInfo.V01MCpz, + kstarMCInfo.fIsV01Primary, kstarMCInfo.V01PDGCode, kstarMCInfo.V01PDGCodeMother, kstarMCInfo.fIsV01CorrectlyAssign, + kstarMCInfo.V02MCpx, kstarMCInfo.V02MCpy, kstarMCInfo.V02MCpz, + kstarMCInfo.fIsV02Primary, kstarMCInfo.V02PDGCode, kstarMCInfo.V02PDGCodeMother, kstarMCInfo.fIsV02CorrectlyAssign); } // KStar -> stracollisions link @@ -1973,17 +1961,16 @@ struct sigma0builder { (uint8_t(posTrackGamma.hasTOF()) << hasTOF)); uint8_t fPhotonNegTrackCode = ((uint8_t(negTrackGamma.hasTPC()) << hasTPC) | - (uint8_t(negTrackGamma.hasITSTracker()) << hasITSTracker) | - (uint8_t(negTrackGamma.hasITSAfterburner()) << hasITSAfterburner) | - (uint8_t(negTrackGamma.hasTRD()) << hasTRD) | - (uint8_t(negTrackGamma.hasTOF()) << hasTOF)); + (uint8_t(negTrackGamma.hasITSTracker()) << hasITSTracker) | + (uint8_t(negTrackGamma.hasITSAfterburner()) << hasITSAfterburner) | + (uint8_t(negTrackGamma.hasTRD()) << hasTRD) | + (uint8_t(negTrackGamma.hasTOF()) << hasTOF)); kstarPhotonExtras(gamma.qtarm(), gamma.alpha(), gamma.v0cosPA(), gamma.dcaV0daughters(), gamma.dcanegtopv(), gamma.dcapostopv(), gamma.v0radius(), gamma.z(), posTrackGamma.tpcNSigmaEl(), negTrackGamma.tpcNSigmaEl(), posTrackGamma.tpcCrossedRows(), negTrackGamma.tpcCrossedRows(), gamma.positiveeta(), gamma.negativeeta(), gamma.psipair(), posTrackGamma.itsNCls(), negTrackGamma.itsNCls(), posTrackGamma.itsChi2PerNcl(), negTrackGamma.itsChi2PerNcl(), fPhotonPosTrackCode, fPhotonNegTrackCode, gamma.v0Type()); - //_______________________________________________ // KShort extra properties @@ -1997,10 +1984,10 @@ struct sigma0builder { (uint8_t(posTrackKShort.hasTOF()) << hasTOF)); uint8_t fKShortNegTrackCode = ((uint8_t(negTrackKShort.hasTPC()) << hasTPC) | - (uint8_t(negTrackKShort.hasITSTracker()) << hasITSTracker) | - (uint8_t(negTrackKShort.hasITSAfterburner()) << hasITSAfterburner) | - (uint8_t(negTrackKShort.hasTRD()) << hasTRD) | - (uint8_t(negTrackKShort.hasTOF()) << hasTOF)); + (uint8_t(negTrackKShort.hasITSTracker()) << hasITSTracker) | + (uint8_t(negTrackKShort.hasITSAfterburner()) << hasITSAfterburner) | + (uint8_t(negTrackKShort.hasTRD()) << hasTRD) | + (uint8_t(negTrackKShort.hasTOF()) << hasTOF)); float fKShortLifeTime = kshort.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassK0Short; float fKShortPiTOFNSigma = -999.f; @@ -2013,22 +2000,18 @@ struct sigma0builder { // postrackTofNSigmaPi = posTrackKShort.tofNSigmaPi(); // negtrackTofNSigmaPi = negTrackKShort.tofNSigmaPi(); fKShortPiTOFNSigma = kshort.tofNSigmaLaPi(); - } - + kshortExtras(kshort.qtarm(), kshort.alpha(), fKShortLifeTime, kshort.v0radius(), kshort.v0cosPA(), kshort.dcaV0daughters(), kshort.dcanegtopv(), kshort.dcapostopv(), - posTrackKShort.tpcNSigmaPi(), negTrackKShort.tpcNSigmaPi(), fKShortPiTOFNSigma, - posTrackKShort.tpcCrossedRows(), negTrackKShort.tpcCrossedRows(), - kshort.positiveeta(), kshort.negativeeta(), - posTrackKShort.itsNCls(), negTrackKShort.itsNCls(), posTrackKShort.itsChi2PerNcl(), negTrackKShort.itsChi2PerNcl(), - fKShortPosTrackCode, fKShortNegTrackCode, kshort.v0Type()); + posTrackKShort.tpcNSigmaPi(), negTrackKShort.tpcNSigmaPi(), fKShortPiTOFNSigma, + posTrackKShort.tpcCrossedRows(), negTrackKShort.tpcCrossedRows(), + kshort.positiveeta(), kshort.negativeeta(), + posTrackKShort.itsNCls(), negTrackKShort.itsNCls(), posTrackKShort.itsChi2PerNcl(), negTrackKShort.itsChi2PerNcl(), + fKShortPosTrackCode, fKShortNegTrackCode, kshort.v0Type()); return true; } - - - // Process photon and lambda candidates to build sigma0 candidates template void dataProcess(TCollision const& collisions, TV0s const& fullV0s, TMCParticles const& mcparticles) @@ -2090,7 +2073,6 @@ struct sigma0builder { if (processKShortCandidate(v0, coll)) // selecting kshorts bestKShortsArray.push_back(v0.globalIndex()); // Save indices of best kshort candidates - } //_______________________________________________ @@ -2120,7 +2102,7 @@ struct sigma0builder { } //_______________________________________________ - // KStar loop + // KStar loop if (fillKStarTables) { for (size_t j = 0; j < bestKShortsArray.size(); ++j) { auto kshort = fullV0s.rawIteratorAt(bestKShortsArray[j]); @@ -2131,7 +2113,6 @@ struct sigma0builder { } } - //_______________________________________________ // pi0 loop if (fillPi0Tables) { diff --git a/PWGLF/Tasks/Resonances/k892hadronphoton.cxx b/PWGLF/Tasks/Resonances/k892hadronphoton.cxx index 0ea1066fd36..fb1962c399c 100644 --- a/PWGLF/Tasks/Resonances/k892hadronphoton.cxx +++ b/PWGLF/Tasks/Resonances/k892hadronphoton.cxx @@ -351,7 +351,6 @@ struct k892hadronphoton { histos.add(histodir + "/KStar/h3dOPAngleVsMass", "h3dOPAngleVsMass", kTH3D, {{140, 0.0f, +7.0f}, axisPt, axisKStarMass}); histos.add(histodir + "/KStar/h2dOPAngleVsPt", "h2dOPAngleVsPt", kTH2D, {{140, 0.0f, +7.0f}, axisPt}); - if (doprocessMonteCarlo) { histos.add(histodir + "/MC/Photon/hV0ToCollAssoc", "hV0ToCollAssoc", kTH1D, {{2, 0.0f, 2.0f}}); @@ -385,7 +384,6 @@ struct k892hadronphoton { histos.add(histodir + "/MC/KStar/h2dRadiusVspT", "h2dRadiusVspT", kTH2D, {axisV0PairRadius, axisPt}); histos.add(histodir + "/MC/KStar/hDCAPairDauVsPt", "hDCAPairDauVsPt", kTH2D, {axisDCAdau, axisPt}); - // 1/pT Resolution: if (fillResoQAhistos && histodir == "BeforeSel") { @@ -447,7 +445,6 @@ struct k892hadronphoton { histos.add("Gen/h2dGenKStar", "h2dGenKStar", kTH2D, {axisCentrality, axisPt}); histos.add("Gen/h2dGenKStarVsMultMC_RecoedEvt", "h2dGenKStarVsMultMC_RecoedEvt", kTH2D, {axisNch, axisPt}); histos.add("Gen/h2dGenKStarVsMultMC", "h2dGenKStarVsMultMC", kTH2D, {axisNch, axisPt}); - } } @@ -766,7 +763,6 @@ struct k892hadronphoton { return TrkCode; } - template void getResolution(TKStarObject const& kstar) { @@ -840,7 +836,6 @@ struct k892hadronphoton { histos.fill(HIST(MainDir[mode]) + HIST("/MC/BkgStudy/h2dPtVsMassKStar_FakeDaughters"), kstarpT, kstarMass); } - template void fillHistos(TKStarObject const& kstar, TCollision const& collision) { @@ -917,12 +912,11 @@ struct k892hadronphoton { histos.fill(HIST(MainDir[mode]) + HIST("/KStar/hRadius"), kstar.radius()); histos.fill(HIST(MainDir[mode]) + HIST("/KStar/h2dRadiusVspT"), kstar.radius(), kstar.pt()); histos.fill(HIST(MainDir[mode]) + HIST("/KStar/hDCAPairDau"), kstar.dcadaughters()); - histos.fill(HIST(MainDir[mode]) + HIST("/KStar/hDCAPairDauVsPt"), kstar.dcadaughters(), kstar.pt()); + histos.fill(HIST(MainDir[mode]) + HIST("/KStar/hDCAPairDauVsPt"), kstar.dcadaughters(), kstar.pt()); histos.fill(HIST(MainDir[mode]) + HIST("/KStar/h3dMass"), centrality, kstar.pt(), kstar.kstarMass()); histos.fill(HIST(MainDir[mode]) + HIST("/KStar/h3dOPAngleVsMass"), kstar.opAngle(), kstar.pt(), kstar.kstarMass()); histos.fill(HIST(MainDir[mode]) + HIST("/KStar/h2dOPAngleVsPt"), kstar.opAngle(), kstar.pt()); - - } + } //_______________________________________ // MC specific if (doprocessMonteCarlo) { @@ -970,7 +964,6 @@ struct k892hadronphoton { histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/hMass"), kstar.kstarMass()); histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/h3dMass"), centrality, kstar.mcpt(), kstar.kstarMass()); - histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/hMCProcess"), kstar.mcprocess()); histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/hGenRadius"), kstar.mcradius()); @@ -979,8 +972,7 @@ struct k892hadronphoton { histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/h2dOPAngleVsPt"), kstar.opAngle(), kstar.pt()); histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/h2dRadiusVspT"), kstar.radius(), kstar.pt()); - histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/hDCAPairDauVsPt"), kstar.dcadaughters(), kstar.pt()); - + histos.fill(HIST(MainDir[mode]) + HIST("/MC/KStar/hDCAPairDauVsPt"), kstar.dcadaughters(), kstar.pt()); } // For background studies: @@ -1096,7 +1088,6 @@ struct k892hadronphoton { return true; } - // Apply specific selections for kshortrs template bool selectKShort(TV0Object const& cand) @@ -1129,7 +1120,7 @@ struct k892hadronphoton { return false; fillSelHistos<6>(cand, 310); - + // check minimum number of ITS clusters + reject ITS afterburner tracks if requested bool posIsFromAfterburner = cand.kshortPosChi2PerNcl() < 0; bool negIsFromAfterburner = cand.kshortNegChi2PerNcl() < 0; @@ -1168,7 +1159,6 @@ struct k892hadronphoton { return false; fillSelHistos<11>(cand, 310); - } return true; } @@ -1194,7 +1184,7 @@ struct k892hadronphoton { if (TMath::Abs(cand.kstarY()) > kstarSelections.KStarMaxRap) return false; } - + // V0Pair Radius if (cand.radius() > kstarSelections.KStarMaxRadius) return false; @@ -1210,7 +1200,6 @@ struct k892hadronphoton { return true; } - // Main analysis function template void analyzeRecoeKStars(TCollisions const& collisions, TKStars const& fullKStars) @@ -1277,7 +1266,6 @@ struct k892hadronphoton { PROCESS_SWITCH(k892hadronphoton, processGeneratedRun3, "process MC generated Run 3", false); }; - WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{adaptAnalysisTask(cfgc)};