From 6dfca762c6675779b8415e318bddd0f82003f20c Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 11 Oct 2022 23:35:12 +0200 Subject: [PATCH] Suppress the Bayesian PID for the time being --- .../Core/PIDSelectionFilterAndAnalysis.cxx | 7 ++++++ .../Core/PIDSelectionFilterAndAnalysis.h | 23 +++++++++++++++++++ .../TableProducer/skimmingconf.h | 4 +++- .../twoParticleCorrelationsFiltering.cxx | 6 +++++ .../twoParticleCorrelationsSkimming.cxx | 11 ++++++++- 5 files changed, 49 insertions(+), 2 deletions(-) diff --git a/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.cxx b/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.cxx index 1148268e836..9b147584a31 100644 --- a/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.cxx +++ b/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.cxx @@ -25,9 +25,14 @@ using namespace o2::framework::expressions; using namespace o2::analysis::PWGCF; using namespace boost; +#ifdef INCORPORATEBAYESIANPID PIDSelectionConfigurable::PIDSelectionConfigurable(std::vector pidtpcel, std::vector pidtpcmu, std::vector pidtpcpi, std::vector pidtpcka, std::vector pidtpcpr, std::vector pidtofel, std::vector pidtofmu, std::vector pidtofpi, std::vector pidtofka, std::vector pidtofpr, std::vector pidbayel, std::vector pidbaymu, std::vector pidbaypi, std::vector pidbayka, std::vector pidbaypr) +#else +PIDSelectionConfigurable::PIDSelectionConfigurable(std::vector pidtpcel, std::vector pidtpcmu, std::vector pidtpcpi, std::vector pidtpcka, std::vector pidtpcpr, + std::vector pidtofel, std::vector pidtofmu, std::vector pidtofpi, std::vector pidtofka, std::vector pidtofpr) +#endif : mPidTpcSel_el{}, mPidTpcSel_mu{}, mPidTpcSel_pi{}, @@ -84,11 +89,13 @@ PIDSelectionConfigurable::PIDSelectionConfigurable(std::vector pidt mPidTofSel_pi = storeCutString(pidtofpi, "tofpi"); mPidTofSel_ka = storeCutString(pidtofka, "tofka"); mPidTofSel_pr = storeCutString(pidtofpr, "tofpr"); +#ifdef INCORPORATEBAYESIANPID mPidBaySel_el = storeCutString(pidbayel, "bayel"); mPidBaySel_mu = storeCutString(pidbaymu, "baymu"); mPidBaySel_pi = storeCutString(pidbaypi, "baypi"); mPidBaySel_ka = storeCutString(pidbayka, "bayka"); mPidBaySel_pr = storeCutString(pidbaypr, "baypr"); +#endif } ClassImp(PIDSelectionFilterAndAnalysis); diff --git a/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.h b/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.h index 4ac7a29654f..1d8645b351c 100644 --- a/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.h +++ b/PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.h @@ -20,6 +20,8 @@ #include "SkimmingConfigurableCuts.h" #include "SelectionFilterAndAnalysis.h" +#undef INCORPORATEBAYESIANPID + namespace o2 { namespace analysis @@ -35,6 +37,7 @@ class PIDSelectionConfigurable friend class PIDSelectionFilterAndAnalysis; public: +#ifdef INCORPORATEBAYESIANPID PIDSelectionConfigurable(std::string pidtpcel = "", std::string pidtpcmu = "", std::string pidtpcpi = "", std::string pidtpcka = "", std::string pidtpcpr = "", std::string pidtofel = "", std::string pidtofmu = "", std::string pidtofpi = "", std::string pidtofka = "", std::string pidtofpr = "", std::string pidbayel = "", std::string pidbaymu = "", std::string pidbaypi = "", std::string pidbayka = "", std::string pidbaypr = "") @@ -44,6 +47,24 @@ class PIDSelectionConfigurable PIDSelectionConfigurable(std::vector pidtpcel, std::vector pidtpcmu, std::vector pidtpcpi, std::vector pidtpcka, std::vector pidtpcpr, std::vector pidtofel, std::vector pidtofmu, std::vector pidtofpi, std::vector pidtofka, std::vector pidtofpr, std::vector pidbayel, std::vector pidbaymu, std::vector pidbaypi, std::vector pidbayka, std::vector pidbaypr); +#else + PIDSelectionConfigurable(std::string pidtpcel = "", std::string pidtpcmu = "", std::string pidtpcpi = "", std::string pidtpcka = "", std::string pidtpcpr = "", + std::string pidtofel = "", std::string pidtofmu = "", std::string pidtofpi = "", std::string pidtofka = "", std::string pidtofpr = "") + : mPidTpcSel_el{pidtpcel}, + mPidTpcSel_mu{pidtpcmu}, + mPidTpcSel_pi{pidtpcpi}, + mPidTpcSel_ka{pidtpcka}, + mPidTpcSel_pr{pidtpcpr}, + mPidTofSel_el{pidtofel}, + mPidTofSel_mu{pidtofmu}, + mPidTofSel_pi{pidtofpi}, + mPidTofSel_ka{pidtofka}, + mPidTofSel_pr{pidtofpr} + { + } + PIDSelectionConfigurable(std::vector pidtpcel, std::vector pidtpcmu, std::vector pidtpcpi, std::vector pidtpcka, std::vector pidtpcpr, + std::vector pidtofel, std::vector pidtofmu, std::vector pidtofpi, std::vector pidtofka, std::vector pidtofpr); +#endif private: std::string mPidTpcSel_el = ""; @@ -152,11 +173,13 @@ inline uint64_t PIDSelectionFilterAndAnalysis::Filter(TrackToFilter const& track filterBrickValue(mCloseNsigmasTOF[kPion], track.tofNSigmaPi()); filterBrickValue(mCloseNsigmasTOF[kKaon], track.tofNSigmaKa()); filterBrickValue(mCloseNsigmasTOF[kProton], track.tofNSigmaPr()); +#ifdef INCORPORATEBAYESIANPID filterBrickValue(mBayesProbability[kElectron], track.bayesEl()); filterBrickValue(mBayesProbability[kMuon], track.bayesMu()); filterBrickValue(mBayesProbability[kPion], track.bayesPi()); filterBrickValue(mBayesProbability[kKaon], track.bayesKa()); filterBrickValue(mBayesProbability[kProton], track.bayesPr()); +#endif mSelectedMask = selectedMask; return mSelectedMask; diff --git a/PWGCF/TwoParticleCorrelations/TableProducer/skimmingconf.h b/PWGCF/TwoParticleCorrelations/TableProducer/skimmingconf.h index cad3f8b12fe..4ac9d40fbac 100644 --- a/PWGCF/TwoParticleCorrelations/TableProducer/skimmingconf.h +++ b/PWGCF/TwoParticleCorrelations/TableProducer/skimmingconf.h @@ -18,7 +18,7 @@ struct : o2::framework::ConfigurableGroup { o2::framework::Configurable> bfield{"evtflt_bfield", {"positive-yes", "negative-yes"}, "B filed polarity cut: both 'yes' default, anything else alternative"}; o2::framework::Configurable> zvtxsel{"evtflt_zvtx", {"rg{-7.0,7.0}-yes", "rg{-10.0,10.0}-no", "rg{-3.0,3.0}-no"}, "Z vertex cut: first, default value, next, alternatives"}; o2::framework::Configurable> centmultsel{"evtflt_centmult", {"mrg{V0M,0,5,10,20,30,40,50,60,70,80}-yes", "mrg{CL1,0,5,10,20,30,40,50,60,70,80}-no"}, "Centrality/Multiplicity cut: first, default, next, alternatives"}; - o2::framework::Configurable> pileuprej{"evtflt_pileuprej", {"fnrg{V0M_TPCOUT=-0.5+3.7*x-0.14*x*x, 0.5-3.7*x+0.14*x*x}-yes", "fnrg{V0M_TRKLETS=-0.5+3.7*x-0.14*x*x, 0.5-3.7*x+0.14*x*x}-no"}, "Advanced pile-up rejection cut: first, default, next, alternatives"}; + o2::framework::Configurable> pileuprej{"evtflt_pileuprej", {"fnrg{V0M_TPCOUT=-0.5+3.7*x-0.14*x*x,0.5-3.7*x+0.14*x*x}-yes", "fnrg{V0M_TRKLETS=-0.5+3.7*x-0.14*x*x,0.5-3.7*x+0.14*x*x}-no"}, "Advanced pile-up rejection cut: first, default, next, alternatives"}; } eventfilter; struct : o2::framework::ConfigurableGroup { @@ -50,6 +50,7 @@ struct : o2::framework::ConfigurableGroup { o2::framework::Configurable> tpcka{"pidflt_tof_ka", {"rg{-3.0,3.0}-yes", "rg{-2.0,2.0}-no", "rg{-3.0,5.0}-no"}, "nsigmas to the tof kaon line, below/above: first, default value, next, alternatives"}; o2::framework::Configurable> tpcpr{"pidflt_tof_pr", {"rg{-3.0,3.0}-yes", "rg{-2.0,2.0}-no", "rg{-3.0,5.0}-no"}, "nsigmas to the tof proton line, below/above: first, default value, next, alternatives"}; } pidtoffilter; +#ifdef INCORPORATEBAYESIANPID struct : ConfigurableGroup { o2::framework::Configurable> bayel{"pidflt_bayes_el", {"th{80}-yes", "th{70}-no", "th{90}-no"}, "Bayesian probability for electron (%%): first, default value, next, alternatives"}; o2::framework::Configurable> baymu{"pidflt_bayes_mu", {"th{80}-yes", "th{70}-no", "th{90}-no"}, "Bayesian probability for muon (%%): first, default value, next, alternatives"}; @@ -57,6 +58,7 @@ struct : o2::framework::ConfigurableGroup { o2::framework::Configurable> bayka{"pidflt_bayes_ka", {"th{80}-yes", "th{70}-no", "th{90}-no"}, "Bayesian probability for kaon (%%): first, default value, next, alternatives"}; o2::framework::Configurable> baypr{"pidflt_bayes_pr", {"th{80}-yes", "th{70}-no", "th{90}-no"}, "Bayesian probability for proton (%%): first, default value, next, alternatives"}; } pidbayesfilter; +#endif } pidfilter; #endif // O2_ANALYSIS_CFSKIMMINGCONF_H diff --git a/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsFiltering.cxx b/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsFiltering.cxx index ad23bc2af26..3182ff04d4f 100644 --- a/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsFiltering.cxx +++ b/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsFiltering.cxx @@ -12,6 +12,7 @@ #include "Framework/AnalysisTask.h" #include "PWGCF/TwoParticleCorrelations/Core/EventSelectionFilterAndAnalysis.h" #include "PWGCF/TwoParticleCorrelations/Core/TrackSelectionFilterAndAnalysis.h" +#include "PWGCF/TwoParticleCorrelations/Core/PIDSelectionFilterAndAnalysis.h" #include "PWGCF/TwoParticleCorrelations/DataModel/TwoParticleCorrelationsSkimmed.h" #include "PWGCF/TwoParticleCorrelations/DataModel/TwoParticleCorrelationsFiltered.h" #include "Framework/runDataProcessing.h" @@ -83,9 +84,14 @@ struct TwoParticleCorrelationsFilter { PWGCF::TrackSelectionConfigurable trksel(trackfilter.ttype, trackfilter.nclstpc, trackfilter.nxrtpc, trackfilter.nclsits, trackfilter.chi2clustpc, trackfilter.chi2clusits, trackfilter.xrofctpc, trackfilter.dcaxy, trackfilter.dcaz, trackfilter.ptrange, trackfilter.etarange); fTrackFilter = new PWGCF::TrackSelectionFilterAndAnalysis(trksel, PWGCF::SelectionFilterAndAnalysis::kAnalysis); +#ifdef INCORPORATEBAYESIANPID PWGCF::PIDSelectionConfigurable pidsel(pidfilter.pidtpcfilter.tpcel, pidfilter.pidtpcfilter.tpcmu, pidfilter.pidtpcfilter.tpcpi, pidfilter.pidtpcfilter.tpcka, pidfilter.pidtpcfilter.tpcpr, pidfilter.pidtoffilter.tpcel, pidfilter.pidtoffilter.tpcmu, pidfilter.pidtoffilter.tpcpi, pidfilter.pidtoffilter.tpcka, pidfilter.pidtoffilter.tpcpr, pidfilter.pidbayesfilter.bayel, pidfilter.pidbayesfilter.baymu, pidfilter.pidbayesfilter.baypi, pidfilter.pidbayesfilter.bayka, pidfilter.pidbayesfilter.baypr); +#else + PWGCF::PIDSelectionConfigurable pidsel(pidfilter.pidtpcfilter.tpcel, pidfilter.pidtpcfilter.tpcmu, pidfilter.pidtpcfilter.tpcpi, pidfilter.pidtpcfilter.tpcka, pidfilter.pidtpcfilter.tpcpr, + pidfilter.pidtoffilter.tpcel, pidfilter.pidtoffilter.tpcmu, pidfilter.pidtoffilter.tpcpi, pidfilter.pidtoffilter.tpcka, pidfilter.pidtoffilter.tpcpr); +#endif fPIDFilter = new PWGCF::PIDSelectionFilterAndAnalysis(pidsel, PWGCF::SelectionFilterAndAnalysis::kAnalysis); nReportedTracks = 0; diff --git a/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsSkimming.cxx b/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsSkimming.cxx index 3f8d40e8f90..5935fefe07c 100644 --- a/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsSkimming.cxx +++ b/PWGCF/TwoParticleCorrelations/TableProducer/twoParticleCorrelationsSkimming.cxx @@ -34,10 +34,14 @@ namespace o2::analysis::cfskim { #define LOGTRACKCOLLISIONS info #define LOGTRACKTRACKS info - +#ifdef INCORPORATEBAYESIANPID using pidTables = soa::Join; +#else +using pidTables = soa::Join; +#endif PWGCF::TrackSelectionFilterAndAnalysis* fTrackFilter = nullptr; PWGCF::EventSelectionFilterAndAnalysis* fEventFilter = nullptr; @@ -136,9 +140,14 @@ struct TwoParticleCorrelationsSkimming { PWGCF::TrackSelectionConfigurable trksel(trackfilter.ttype, trackfilter.nclstpc, trackfilter.nxrtpc, trackfilter.nclsits, trackfilter.chi2clustpc, trackfilter.chi2clusits, trackfilter.xrofctpc, trackfilter.dcaxy, trackfilter.dcaz, trackfilter.ptrange, trackfilter.etarange); fTrackFilter = new PWGCF::TrackSelectionFilterAndAnalysis(trksel, PWGCF::SelectionFilterAndAnalysis::kFilter); +#ifdef INCORPORATEBAYESIANPID PWGCF::PIDSelectionConfigurable pidsel(pidfilter.pidtpcfilter.tpcel, pidfilter.pidtpcfilter.tpcmu, pidfilter.pidtpcfilter.tpcpi, pidfilter.pidtpcfilter.tpcka, pidfilter.pidtpcfilter.tpcpr, pidfilter.pidtoffilter.tpcel, pidfilter.pidtoffilter.tpcmu, pidfilter.pidtoffilter.tpcpi, pidfilter.pidtoffilter.tpcka, pidfilter.pidtoffilter.tpcpr, pidfilter.pidbayesfilter.bayel, pidfilter.pidbayesfilter.baymu, pidfilter.pidbayesfilter.baypi, pidfilter.pidbayesfilter.bayka, pidfilter.pidbayesfilter.baypr); +#else + PWGCF::PIDSelectionConfigurable pidsel(pidfilter.pidtpcfilter.tpcel, pidfilter.pidtpcfilter.tpcmu, pidfilter.pidtpcfilter.tpcpi, pidfilter.pidtpcfilter.tpcka, pidfilter.pidtpcfilter.tpcpr, + pidfilter.pidtoffilter.tpcel, pidfilter.pidtoffilter.tpcmu, pidfilter.pidtoffilter.tpcpi, pidfilter.pidtoffilter.tpcka, pidfilter.pidtoffilter.tpcpr); +#endif fPIDFilter = new PWGCF::PIDSelectionFilterAndAnalysis(pidsel, PWGCF::SelectionFilterAndAnalysis::kFilter); nReportedTracks = 0;