From 035cce5c033c2aeb530baac12c67bd497f47cbcf Mon Sep 17 00:00:00 2001 From: mcoquet642 <74600025+mcoquet642@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:01:18 +0100 Subject: [PATCH 1/3] [PWGDQ] Adding flow variables to dilepton flat tables and propagation of MCH-MID tracks in table-maker (#4091) * Add function to propagate muon tracks through absorber to PV * Format * Fix * Fix * Fix typo * Fixing libraries * Clang format * Missing array definition * Retrieving geometry from ccdb * Clang format * Fixing retrieving of ccdb object * Calng format * Fixing covariance name * PWGDQ: Adding propagation for MCH-MID tracks and filling flow variables in dilepton flat table * Clang format * Bug fixes * Clang format --- PWGDQ/Core/VarManager.h | 42 ++++++++++++++++++++++++----- PWGDQ/DataModel/ReducedInfoTables.h | 6 ++++- PWGDQ/Tasks/dqEfficiency.cxx | 2 +- PWGDQ/Tasks/tableReader.cxx | 17 ++++++------ 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 9d4fc0e4f04..9e78af9ed48 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -38,6 +38,8 @@ #include "Framework/DataTypes.h" // #include "MCHTracking/TrackExtrap.h" +#include "TGeoGlobalMagField.h" +#include "Field/MagneticField.h" #include "ReconstructionDataFormats/Track.h" #include "ReconstructionDataFormats/Vertex.h" #include "DCAFitter/DCAFitterN.h" @@ -802,7 +804,6 @@ void VarManager::FillPropagateMuon(const T& muon, const C& collision, float* val values = fgValues; } if constexpr ((fillMap & MuonCov) > 0) { - o2::mch::TrackExtrap::setField(); double chi2 = muon.chi2(); SMatrix5 tpars(muon.x(), muon.y(), muon.phi(), muon.tgl(), muon.signed1Pt()); std::vector v1{muon.cXX(), muon.cXY(), muon.cYY(), muon.cPhiX(), muon.cPhiY(), @@ -810,11 +811,31 @@ void VarManager::FillPropagateMuon(const T& muon, const C& collision, float* val muon.c1PtX(), muon.c1PtY(), muon.c1PtPhi(), muon.c1PtTgl(), muon.c1Pt21Pt2()}; SMatrix55 tcovs(v1.begin(), v1.end()); o2::track::TrackParCovFwd fwdtrack{muon.z(), tpars, tcovs, chi2}; - o2::dataformats::GlobalFwdTrack track(fwdtrack); - auto mchTrack = mMatching.FwdtoMCH(track); - o2::mch::TrackExtrap::extrapToVertex(mchTrack, collision.posX(), collision.posY(), collision.posZ(), collision.covXX(), collision.covYY()); - auto propmuon = mMatching.MCHtoFwd(mchTrack); - + o2::dataformats::GlobalFwdTrack propmuon; + if (static_cast(muon.trackType()) > 2) { + o2::mch::TrackExtrap::setField(); + o2::dataformats::GlobalFwdTrack track; + track.setParameters(tpars); + track.setZ(fwdtrack.getZ()); + track.setCovariances(tcovs); + auto mchTrack = mMatching.FwdtoMCH(track); + o2::mch::TrackExtrap::extrapToVertex(mchTrack, collision.posX(), collision.posY(), collision.posZ(), collision.covXX(), collision.covYY()); + auto proptrack = mMatching.MCHtoFwd(mchTrack); + propmuon.setParameters(proptrack.getParameters()); + propmuon.setZ(proptrack.getZ()); + propmuon.setCovariances(proptrack.getCovariances()); + + } else if (static_cast(muon.trackType()) < 2) { + double centerMFT[3] = {0, 0, -61.4}; + o2::field::MagneticField* field = static_cast(TGeoGlobalMagField::Instance()->GetField()); + auto Bz = field->getBz(centerMFT); // Get field at centre of MFT + auto geoMan = o2::base::GeometryManager::meanMaterialBudget(muon.x(), muon.y(), muon.z(), collision.posX(), collision.posY(), collision.posZ()); + auto x2x0 = static_cast(geoMan.meanX2X0); + fwdtrack.propagateToVtxhelixWithMCS(collision.posZ(), {collision.posX(), collision.posY()}, {collision.covXX(), collision.covYY()}, Bz, x2x0); + propmuon.setParameters(fwdtrack.getParameters()); + propmuon.setZ(fwdtrack.getZ()); + propmuon.setCovariances(fwdtrack.getCovariances()); + } values[kPt] = propmuon.getPt(); values[kX] = propmuon.getX(); values[kY] = propmuon.getY(); @@ -2022,6 +2043,15 @@ void VarManager::FillPairVertexing(C const& collision, T const& t1, T const& t2, v1 = {pars1.getPt(), pars1.getEta(), pars1.getPhi(), m1}; v2 = {pars2.getPt(), pars2.getEta(), pars2.getPhi(), m2}; v12 = v1 + v2; + values[kMass] = v12.M(); + values[kPt] = v12.Pt(); + values[kEta] = v12.Eta(); + values[kPhi] = v12.Phi(); + values[kRap] = -v12.Rapidity(); + values[kVertexingTauxy] = KFGeoTwoProng.GetPseudoProperDecayTime(KFPV, v12.M()) / (o2::constants::physics::LightSpeedCm2NS); + values[kVertexingTauz] = dzPair2PV * v12.M() / (TMath::Abs(v12.Pz()) * o2::constants::physics::LightSpeedCm2NS); + values[kVertexingTauxyErr] = values[kVertexingLxyErr] * v12.M() / (v12.Pt() * o2::constants::physics::LightSpeedCm2NS); + values[kVertexingTauzErr] = values[kVertexingLzErr] * v12.M() / (TMath::Abs(v12.Pz()) * o2::constants::physics::LightSpeedCm2NS); values[kPt1] = pars1.getPt(); values[kEta1] = pars1.getEta(); diff --git a/PWGDQ/DataModel/ReducedInfoTables.h b/PWGDQ/DataModel/ReducedInfoTables.h index 7146ed9810c..613aff6e800 100644 --- a/PWGDQ/DataModel/ReducedInfoTables.h +++ b/PWGDQ/DataModel/ReducedInfoTables.h @@ -514,7 +514,11 @@ DECLARE_SOA_TABLE(DimuonsAll, "AOD", "RTDIMUONALL", //! dilepton_track_index::PtMC2, dilepton_track_index::EtaMC2, dilepton_track_index::PhiMC2, dilepton_track_index::EMC2, dilepton_track_index::Vx1, dilepton_track_index::Vy1, dilepton_track_index::Vz1, dilepton_track_index::Vt1, dilepton_track_index::Vx2, dilepton_track_index::Vy2, dilepton_track_index::Vz2, dilepton_track_index::Vt2, - dilepton_track_index::IsAmbig1, dilepton_track_index::IsAmbig2); + dilepton_track_index::IsAmbig1, dilepton_track_index::IsAmbig2, + reducedpair::U2Q2, + reducedpair::U3Q3, + reducedpair::Cos2DeltaPhi, + reducedpair::Cos3DeltaPhi); using Dilepton = Dileptons::iterator; using DileptonExtra = DileptonsExtra::iterator; diff --git a/PWGDQ/Tasks/dqEfficiency.cxx b/PWGDQ/Tasks/dqEfficiency.cxx index 00d9a08cb5c..61eae0a79b1 100644 --- a/PWGDQ/Tasks/dqEfficiency.cxx +++ b/PWGDQ/Tasks/dqEfficiency.cxx @@ -797,7 +797,7 @@ struct AnalysisSameEventPairing { t2.reducedMCTrack().pt(), t2.reducedMCTrack().eta(), t2.reducedMCTrack().phi(), t2.reducedMCTrack().e(), t1.reducedMCTrack().vx(), t1.reducedMCTrack().vy(), t1.reducedMCTrack().vz(), t1.reducedMCTrack().vt(), t2.reducedMCTrack().vx(), t2.reducedMCTrack().vy(), t2.reducedMCTrack().vz(), t2.reducedMCTrack().vt(), - t1.isAmbiguous(), t2.isAmbiguous()); + t1.isAmbiguous(), t2.isAmbiguous(), -999., -999., -999., -999.); } } diff --git a/PWGDQ/Tasks/tableReader.cxx b/PWGDQ/Tasks/tableReader.cxx index c939c1ac66f..0ed46426cfd 100644 --- a/PWGDQ/Tasks/tableReader.cxx +++ b/PWGDQ/Tasks/tableReader.cxx @@ -796,7 +796,7 @@ struct AnalysisSameEventPairing { if (fNoCorr) { VarManager::SetupFwdDCAFitterNoCorr(); - } else if (fCorrFullGeo) { + } else if (fCorrFullGeo || (fConfigUseKFVertexing && fPropToPCA)) { if (!o2::base::GeometryManager::isGeometryLoaded()) { ccdb->get(geoPath); } @@ -944,15 +944,15 @@ struct AnalysisSameEventPairing { if (fConfigUseKFVertexing.value) { VarManager::SetupTwoProngKFParticle(mMagField); } else { - VarManager::SetupTwoProngDCAFitter(mMagField, fPropToPCA.value, 200.0f, 4.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); // TODO: get these parameters from Configurables - VarManager::SetupTwoProngFwdDCAFitter(mMagField, fPropToPCA.value, 200.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); + VarManager::SetupTwoProngDCAFitter(mMagField, true, 200.0f, 4.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); // TODO: get these parameters from Configurables + VarManager::SetupTwoProngFwdDCAFitter(mMagField, true, 200.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); } } else { if (fConfigUseKFVertexing.value) { VarManager::SetupTwoProngKFParticle(fConfigMagField.value); } else { - VarManager::SetupTwoProngDCAFitter(fConfigMagField.value, fPropToPCA.value, 200.0f, 4.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); // TODO: get these parameters from Configurables - VarManager::SetupTwoProngFwdDCAFitter(fConfigMagField.value, fPropToPCA.value, 200.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); + VarManager::SetupTwoProngDCAFitter(fConfigMagField.value, true, 200.0f, 4.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); // TODO: get these parameters from Configurables + VarManager::SetupTwoProngFwdDCAFitter(fConfigMagField.value, true, 200.0f, 1.0e-3f, 0.9f, fUseAbsDCA.value); } } fCurrentRun = event.runNumber(); @@ -1016,8 +1016,7 @@ struct AnalysisSameEventPairing { if constexpr ((TPairType == pairTypeEE) && trackHasCov) { dileptonExtraList(t1.globalIndex(), t2.globalIndex(), VarManager::fgValues[VarManager::kVertexingTauz], VarManager::fgValues[VarManager::kVertexingLz], VarManager::fgValues[VarManager::kVertexingLxy]); } - constexpr bool muonHasCov = ((TTrackFillMap & VarManager::ObjTypes::MuonCov) > 0 || (TTrackFillMap & VarManager::ObjTypes::ReducedMuonCov) > 0); - if constexpr ((TPairType == pairTypeMuMu) && muonHasCov) { + if constexpr (TPairType == pairTypeMuMu) { // LOGP(info, "mu1 collId = {}, mu2 collId = {}", t1.collisionId(), t2.collisionId()); dileptonExtraList(t1.globalIndex(), t2.globalIndex(), VarManager::fgValues[VarManager::kVertexingTauz], VarManager::fgValues[VarManager::kVertexingLz], VarManager::fgValues[VarManager::kVertexingLxy]); if (fConfigFlatTables.value) { @@ -1040,7 +1039,9 @@ struct AnalysisSameEventPairing { -999., -999., -999., -999., -999., -999., -999., -999., -999., -999., -999., -999., - t1.isAmbiguous(), t2.isAmbiguous()); + t1.isAmbiguous(), t2.isAmbiguous(), + VarManager::fgValues[VarManager::kU2Q2], VarManager::fgValues[VarManager::kU3Q3], + VarManager::fgValues[VarManager::kCos2DeltaPhi], VarManager::fgValues[VarManager::kCos3DeltaPhi]); } } From 4c439a91b282cab1bcb282df9184e03a2a3423df Mon Sep 17 00:00:00 2001 From: vfeuilla <71069003+vfeuilla@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:21:39 +0100 Subject: [PATCH 2/3] Small changes to some cuts (ren-labelling, adjustement of variables...) (#4128) Cleanup of unused cuts --- PWGDQ/Core/CutsLibrary.cxx | 179 +++++++++++++++---------------------- 1 file changed, 74 insertions(+), 105 deletions(-) diff --git a/PWGDQ/Core/CutsLibrary.cxx b/PWGDQ/Core/CutsLibrary.cxx index 3a32a1127f7..2188aa916f7 100644 --- a/PWGDQ/Core/CutsLibrary.cxx +++ b/PWGDQ/Core/CutsLibrary.cxx @@ -28,27 +28,53 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName) // These are the Cuts used in the CEFP Task // // to select tracks in the event selection // // /////////////////////////////////////////////// - if (!nameStr.compare("Electron")) { + if (!nameStr.compare("Electron2022")) { cut->AddCut(GetAnalysisCut("jpsiStandardKine")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); cut->AddCut(GetAnalysisCut("jpsi_TPCPID_debug5")); return cut; } - if (!nameStr.compare("ElectronTight")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine3")); + if (!nameStr.compare("Electron2023")) { + cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_debug1")); + cut->AddCut(GetAnalysisCut("pidCut_lowP_Corr")); + + AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP_Corr")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP_Corr")); + cut->AddCut(pidCut_highP); + return cut; + } + if (!nameStr.compare("Electron2023_Tight")) { + cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); + cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); + cut->AddCut(GetAnalysisCut("pidCut_lowP_Corr")); + + AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP2_Corr")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP_Corr")); + cut->AddCut(pidCut_highP); return cut; } - if (!nameStr.compare("MuonLow")) { + if (!nameStr.compare("MuonLow2022")) { + cut->AddCut(GetAnalysisCut("muonLowPt2")); + cut->AddCut(GetAnalysisCut("muonQualityCuts")); + return cut; + } + if (!nameStr.compare("MuonLow2023")) { cut->AddCut(GetAnalysisCut("muonLowPt2")); cut->AddCut(GetAnalysisCut("muonQualityCuts")); cut->AddCut(GetAnalysisCut("MCHMID")); return cut; } - if (!nameStr.compare("MuonHigh")) { + if (!nameStr.compare("MuonHigh2022")) { cut->AddCut(GetAnalysisCut("muonHighPt2")); cut->AddCut(GetAnalysisCut("muonQualityCuts")); + return cut; + } + if (!nameStr.compare("MuonHigh2023")) { + cut->AddCut(GetAnalysisCut("muonHighPt6")); + cut->AddCut(GetAnalysisCut("muonQualityCuts")); cut->AddCut(GetAnalysisCut("MCHMID")); return cut; } @@ -214,95 +240,53 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName) cut->AddCut(GetAnalysisCut("electronPIDnsigmaVeryLoose")); // with 3 sigma El TOF return cut; } - // - // New cuts to test for jpsi2ee electron selection (potentially not useful) - // - // With pT > 1.0 GeV/c as primary cut - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_1")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_1")); // Loose pion rejection at high p with no correction maps - - return cut; - } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_1_Corr")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_1_Corr")); // Loose pion rejection at high p with correction maps - - return cut; - } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_2")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_2")); // No pion rejection at high p and asymmetrical e selection with no correction maps - - return cut; - } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_2_Corr")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_2_Corr")); // No pion rejection at high p and asymmetrical e selection with correction maps - return cut; - } - - // With p > 1.5 GeV/c as primary cut - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_3")) { + if (!nameStr.compare("jpsiO2MCdebugCuts_Pdependent_Corr")) { cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_1")); // Loose pion rejection at high p with no correction maps + cut->AddCut(GetAnalysisCut("pidCut_lowP_Corr")); + AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP_Corr")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP_Corr")); + cut->AddCut(pidCut_highP); return cut; } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_3_Corr")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_1_Corr")); // Loose pion rejection at high p with correction maps - return cut; - } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_4")) { + if (!nameStr.compare("jpsiO2MCdebugCuts_Pdependent")) { cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_2")); // No pion rejection at high p and asymmetrical e selection with no correction maps + cut->AddCut(GetAnalysisCut("pidCut_lowP")); + AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP")); + cut->AddCut(pidCut_highP); return cut; } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_4_Corr")) { + if (!nameStr.compare("jpsiO2MCdebugCuts_Pdependent2_Corr")) { cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("jpsi_TPCPID_TEST_2_Corr")); // No pion rejection at high p and asymmetrical e selection with correction maps - - return cut; - } - - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_6_Corr")) { - cut->AddCut(GetAnalysisCut("jpsiStandardKine")); - cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); - cut->AddCut(GetAnalysisCut("pidCut_lowP")); + cut->AddCut(GetAnalysisCut("pidCut_lowP_Corr")); AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); - pidCut_highP->AddCut(GetAnalysisCut("MySpecial_EleInclusion")); - pidCut_highP->AddCut(GetAnalysisCut("MySpecial_PionExclusion")); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP2_Corr")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP_Corr")); cut->AddCut(pidCut_highP); return cut; } - if (!nameStr.compare("jpsiO2MCdebugCuts_TEST_5_Corr")) { + if (!nameStr.compare("jpsiO2MCdebugCuts_Pdependent2")) { cut->AddCut(GetAnalysisCut("jpsiStandardKine4")); cut->AddCut(GetAnalysisCut("electronStandardQualityForO2MCdebug")); cut->AddCut(GetAnalysisCut("pidCut_lowP")); AnalysisCompositeCut* pidCut_highP = new AnalysisCompositeCut("pidCut_highP", "pidCut_highP", kFALSE); - pidCut_highP->AddCut(GetAnalysisCut("MySpecial_EleInclusion")); - pidCut_highP->AddCut(GetAnalysisCut("MySpecial_PionExclusion")); + pidCut_highP->AddCut(GetAnalysisCut("EleInclusion_highP2")); + pidCut_highP->AddCut(GetAnalysisCut("PionExclusion_highP")); cut->AddCut(pidCut_highP); return cut; } - // - // end new test cuts - // if (!nameStr.compare("JpsiPWGSkimmedCuts1")) { // please do not remove or modify, this is used for the common Skimmed tree production, (Xiaozhi Bai) cut->AddCut(GetAnalysisCut("jpsiKineSkimmed")); @@ -2921,60 +2905,45 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName) cut->AddCut(VarManager::kTPCnSigmaPr, 3.5, 999); return cut; } - // - // New test for jpsi2ee PID selection - // - if (!nameStr.compare("jpsi_TPCPID_TEST_1_Corr")) { - cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -3.0, 3.0); - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 2.0, 999, false, VarManager::kP, 4.0, 999); - cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 2.0, 999, false, VarManager::kP, 4.0, 999); + + if (!nameStr.compare("pidCut_lowP_Corr")) { + cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -3.0, 3.0, false, VarManager::kP, 0.0, 5.0); + cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 3.0, 999, false, VarManager::kP, 0.0, 5.0); + cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 2.5, 999, false, VarManager::kP, 0.0, 5.0); return cut; } - if (!nameStr.compare("jpsi_TPCPID_TEST_1")) { - cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0); - cut->AddCut(VarManager::kTPCnSigmaPi, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 999, false, VarManager::kP, 4.0, 999); - cut->AddCut(VarManager::kTPCnSigmaPr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPr, 2.0, 999, false, VarManager::kP, 4.0, 999); + + if (!nameStr.compare("EleInclusion_highP_Corr")) { + cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -1.0, 4.0, false, VarManager::kP, 5.0, 999.0); return cut; } - if (!nameStr.compare("jpsi_TPCPID_TEST_2_Corr")) { - cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -3.0, 3.0, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -1.0, 4.0, false, VarManager::kP, 4.0, 999); - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 2.0, 999, false, VarManager::kP, 4.0, 999); - cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 2.0, 999, false, VarManager::kP, 4.0, 999); + if (!nameStr.compare("EleInclusion_highP2_Corr")) { + cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -0.5, 4.0, false, VarManager::kP, 5.0, 999.0); return cut; } - if (!nameStr.compare("jpsi_TPCPID_TEST_2")) { - cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaEl, -1.0, 4.0, false, VarManager::kP, 4.0, 999.0); - cut->AddCut(VarManager::kTPCnSigmaPi, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPi, 0, 999, false, VarManager::kP, 4.0, 999); - cut->AddCut(VarManager::kTPCnSigmaPr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPr, 0, 999, false, VarManager::kP, 4.0, 999); + if (!nameStr.compare("PionExclusion_highP_Corr")) { + cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 2.0, 999, false, VarManager::kP, 5.0, 999.0); return cut; } - if (!nameStr.compare("pidCut_lowP")) { - cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -3.0, 3.0, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); - cut->AddCut(VarManager::kTPCnSigmaPr_Corr, 3.0, 999, false, VarManager::kP, 0.0, 4.0); + cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0, false, VarManager::kP, 0.0, 5.0); + cut->AddCut(VarManager::kTPCnSigmaPi, 3.0, 999, false, VarManager::kP, 0.0, 5.0); + cut->AddCut(VarManager::kTPCnSigmaPr, 2.5, 999, false, VarManager::kP, 0.0, 5.0); return cut; } - if (!nameStr.compare("MySpecial_EleInclusion")) { - cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -1.0, 4.0, false, VarManager::kP, 4.0, 999.0); + if (!nameStr.compare("EleInclusion_highP")) { + cut->AddCut(VarManager::kTPCnSigmaEl, -1.0, 4.0, false, VarManager::kP, 5.0, 999.0); + return cut; + } + if (!nameStr.compare("EleInclusion_highP2")) { + cut->AddCut(VarManager::kTPCnSigmaEl, -0.5, 4.0, false, VarManager::kP, 5.0, 999.0); return cut; } - if (!nameStr.compare("MySpecial_PionExclusion")) { - cut->AddCut(VarManager::kTPCnSigmaPi_Corr, 2.0, 999, false, VarManager::kP, 4.0, 999.0); + if (!nameStr.compare("PionExclusion_highP")) { + cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 999, false, VarManager::kP, 5.0, 999.0); return cut; } - // end of new tests cuts if (!nameStr.compare("lmee_TPCPID_debug1")) { cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -5.0, 5.0); From 7be5cff8b2894fc3e0b0eb2ab645230e58834998 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 11 Dec 2023 15:59:16 +0000 Subject: [PATCH 3/3] MegaLinter fixes --- PWGHF/TableProducer/candidateCreatorToXiPi.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/TableProducer/candidateCreatorToXiPi.cxx b/PWGHF/TableProducer/candidateCreatorToXiPi.cxx index e75ddb2882f..bebed1e15af 100644 --- a/PWGHF/TableProducer/candidateCreatorToXiPi.cxx +++ b/PWGHF/TableProducer/candidateCreatorToXiPi.cxx @@ -151,7 +151,7 @@ struct HfCandidateCreatorToXiPi { auto casc = cascAodElement.cascData_as(); auto trackXiDauCharged = casc.bachelor_as(); // pion <- xi track auto v0AodElement = casc.v0_as(); - auto v0 = v0AodElement.v0Data_as(); // V0 <-- xi + auto v0 = v0AodElement.v0Data_as(); // V0 <-- xi auto trackV0Dau0 = v0.posTrack_as(); // V0 positive daughter track auto trackV0Dau1 = v0.negTrack_as(); // V0 negative daughter track