Skip to content
Merged
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
30 changes: 30 additions & 0 deletions PWGHF/D2H/DataModel/ReducedDataModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,14 @@ DECLARE_SOA_COLUMN(TOFNSigmaKaProng2, tofNSigmaKaProng2, float); //! NsigmaTOFKa
DECLARE_SOA_COLUMN(TOFNSigmaPrProng0, tofNSigmaPrProng0, float); //! NsigmaTOFPr for prong0, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaPrProng1, tofNSigmaPrProng1, float); //! NsigmaTOFPr for prong1, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaPrProng2, tofNSigmaPrProng2, float); //! NsigmaTOFPr for prong2, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TPCNSigmaMuPos, tpcNSigmaMuPos, float); //! NsigmaTPCMu for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TPCNSigmaMuNeg, tpcNSigmaMuNeg, float); //! NsigmaTPCMu for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TPCNSigmaElPos, tpcNSigmaElPos, float); //! NsigmaTPCEl for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TPCNSigmaElNeg, tpcNSigmaElNeg, float); //! NsigmaTPCEl for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaMuPos, tofNSigmaMuPos, float); //! NsigmaTPCMu for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaMuNeg, tofNSigmaMuNeg, float); //! NsigmaTPCMu for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaElPos, tofNSigmaElPos, float); //! NsigmaTPCEl for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
DECLARE_SOA_COLUMN(TOFNSigmaElNeg, tofNSigmaElNeg, float); //! NsigmaTPCEl for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
// dynamic columns
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPi, tpcTofNSigmaPi, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaPi, float tofNSigmaPi) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPi, tofNSigmaPi); });
Expand All @@ -272,6 +280,14 @@ DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPrProng1, tpcTofNSigmaPrProng1, //! Combi
[](float tpcNSigmaPr, float tofNSigmaPr) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPr, tofNSigmaPr); });
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPrProng2, tpcTofNSigmaPrProng2, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaPr, float tofNSigmaPr) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPr, tofNSigmaPr); });
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaMuPos, tpcTofNSigmaMuPos, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaMu, float tofNSigmaMu) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaMu, tofNSigmaMu); });
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaMuNeg, tpcTofNSigmaMuNeg, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaMu, float tofNSigmaMu) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaMu, tofNSigmaMu); });
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaElPos, tpcTofNSigmaElPos, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaEl, float tofNSigmaEl) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaEl, tofNSigmaEl); });
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaElNeg, tpcTofNSigmaElNeg, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
[](float tpcNSigmaEl, float tofNSigmaEl) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaEl, tofNSigmaEl); });
} // namespace hf_track_pid_reduced

// CAREFUL: need to follow convention [Name = Description + 's'] in DECLARE_SOA_TABLE(Name, "AOD", Description)
Expand Down Expand Up @@ -668,6 +684,20 @@ DECLARE_SOA_TABLE(HfRedJpsiCov, "AOD", "HFREDJPSICOV", //! Table with J/Psi cand
hf_jpsi_cand_reduced::C1PtTglDauPos, hf_jpsi_cand_reduced::C1PtTglDauNeg,
hf_jpsi_cand_reduced::C1Pt21Pt2DauPos, hf_jpsi_cand_reduced::C1Pt21Pt2DauNeg);

DECLARE_SOA_TABLE(HfRedJpsiDauPid, "AOD", "HFREDJPSIDAUPID", //! Table with J/Psi daughter PID information (muon, electron) for reduced workflow
hf_track_pid_reduced::TPCNSigmaMuPos,
hf_track_pid_reduced::TPCNSigmaMuNeg,
hf_track_pid_reduced::TPCNSigmaElPos,
hf_track_pid_reduced::TPCNSigmaElNeg,
hf_track_pid_reduced::TOFNSigmaMuPos,
hf_track_pid_reduced::TOFNSigmaMuNeg,
hf_track_pid_reduced::TOFNSigmaElPos,
hf_track_pid_reduced::TOFNSigmaElNeg,
hf_track_pid_reduced::TPCTOFNSigmaMuPos<hf_track_pid_reduced::TPCNSigmaMuPos, hf_track_pid_reduced::TOFNSigmaMuPos>,
hf_track_pid_reduced::TPCTOFNSigmaMuNeg<hf_track_pid_reduced::TPCNSigmaMuNeg, hf_track_pid_reduced::TOFNSigmaMuNeg>,
hf_track_pid_reduced::TPCTOFNSigmaElPos<hf_track_pid_reduced::TPCNSigmaElPos, hf_track_pid_reduced::TOFNSigmaElPos>,
hf_track_pid_reduced::TPCTOFNSigmaElNeg<hf_track_pid_reduced::TPCNSigmaElNeg, hf_track_pid_reduced::TOFNSigmaElNeg>);

DECLARE_SOA_TABLE(HfRedPidDau0s_000, "AOD", "HFREDPIDDAU0", //!
hf_track_pid_reduced::TPCNSigmaPiProng0,
hf_track_pid_reduced::TOFNSigmaPiProng0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,16 @@ struct HfCandidateCreatorBToJpsiReduced {
Configurable<double> maxDZIni{"maxDZIni", 4., "reject (if>0) PCA candidate if tracks DZ exceeds threshold"};
Configurable<double> minParamChange{"minParamChange", 1.e-3, "stop iterations if largest change of any B+ is smaller than this"};
Configurable<double> minRelChi2Change{"minRelChi2Change", 0.9, "stop iterations is chi2/chi2old > this"};
Configurable<double> maxChi2JPsiVtx{"maxChi2JPsiVtx", 1e9, "maximum value of chi2 for JPsi vertex computed with DCAFitter"};
Configurable<double> maxChi2BhadVtx{"maxChi2BhadVtx", 0.9, "maximum value of chi2 for B-hadron vertex computed with DCAFitter"};

// selection
Configurable<double> invMassWindowJpsiHadTolerance{"invMassWindowJpsiHadTolerance", 0.01, "invariant-mass window tolerance for J/Psi K pair preselections (GeV/c2)"};

float myInvMassWindowJpsiK{1.}, myInvMassWindowJpsiK0Star{1.}, myInvMassWindowJpsiPhi{1.}; // variable that will store the value of invMassWindowJpsiK (defined in dataCreatorJpsiKReduced.cxx)
double massBplus{o2::constants::physics::MassBPlus}, massB0{o2::constants::physics::MassB0}, massBs{o2::constants::physics::MassBS};
double bz{0.};
o2::vertexing::DCAFitterN<2> df2; // fitter for B vertex (2-prong vertex fitter)
o2::vertexing::DCAFitterN<2> df2; // fitter for JPsi vertex (2-prong vertex fitter)
o2::vertexing::DCAFitterN<3> df3; // fitter for B vertex (3-prong vertex fitter)
o2::vertexing::DCAFitterN<4> df4; // fitter for B vertex (4-prong vertex fitter)

Expand All @@ -104,6 +106,7 @@ struct HfCandidateCreatorBToJpsiReduced {
df2.setMaxDZIni(maxDZIni);
df2.setMinParamChange(minParamChange);
df2.setMinRelChi2Change(minRelChi2Change);
df2.setMaxChi2(maxChi2JPsiVtx);
df2.setUseAbsDCA(useAbsDCA);
df2.setWeightedFinalPCA(useWeightedFinalPCA);
df2.setMatCorrType(noMatCorr);
Expand All @@ -114,6 +117,7 @@ struct HfCandidateCreatorBToJpsiReduced {
df3.setMaxDZIni(maxDZIni);
df3.setMinParamChange(minParamChange);
df3.setMinRelChi2Change(minRelChi2Change);
df3.setMaxChi2(maxChi2BhadVtx);
df3.setUseAbsDCA(useAbsDCA);
df3.setWeightedFinalPCA(useWeightedFinalPCA);
df3.setMatCorrType(noMatCorr);
Expand All @@ -123,6 +127,7 @@ struct HfCandidateCreatorBToJpsiReduced {
df4.setMaxDZIni(maxDZIni);
df4.setMinParamChange(minParamChange);
df4.setMinRelChi2Change(minRelChi2Change);
df3.setMaxChi2(maxChi2BhadVtx);
df4.setUseAbsDCA(useAbsDCA);
df4.setWeightedFinalPCA(useWeightedFinalPCA);
df4.setMatCorrType(noMatCorr);
Expand Down
12 changes: 11 additions & 1 deletion PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ struct HfDataCreatorJpsiHadReduced {
// J/Psi related tables
Produces<aod::HfRedJpsis> hfJpsi;
Produces<aod::HfRedJpsiCov> hfRedJpsiCov;
Produces<aod::HfRedJpsiDauPid> hfRedJpsiDauPid;
// Ka bachelor related tables
Produces<aod::HfRedBach0Bases> hfTrackLfDau0;
Produces<aod::HfRedBach0Cov> hfTrackCovLfDau0;
Expand All @@ -155,6 +156,8 @@ struct HfDataCreatorJpsiHadReduced {
Configurable<double> maxDZIni{"maxDZIni", 4., "reject (if>0) PCA candidate if tracks DZ exceeds threshold"};
Configurable<double> minParamChange{"minParamChange", 1.e-3, "stop iterations if largest change of any B0 is smaller than this"};
Configurable<double> minRelChi2Change{"minRelChi2Change", 0.9, "stop iterations is chi2/chi2old > this"};
Configurable<double> maxChi2JPsiVtx{"maxChi2JPsiVtx", 1e9, "maximum value of chi2 for JPsi vertex computed with DCAFitter"};
Configurable<double> maxChi2BhadVtx{"maxChi2BhadVtx", 0.9, "maximum value of chi2 for B-hadron vertex computed with DCAFitter"};

struct : o2::framework::ConfigurableGroup {
// TPC PID
Expand Down Expand Up @@ -191,7 +194,7 @@ struct HfDataCreatorJpsiHadReduced {
// O2DatabasePDG service
Service<o2::framework::O2DatabasePDG> pdg{};

using TracksPid = soa::Join<aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr, aod::pidTPCFullEl, aod::pidTOFFullEl>;
using TracksPid = soa::Join<aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr, aod::pidTPCFullEl, aod::pidTOFFullEl, aod::pidTPCFullMu, aod::pidTOFFullMu>;
using TracksPidWithSel = soa::Join<aod::TracksWCovDcaExtra, TracksPid, aod::TrackSelection>;
using TracksPidWithSelAndMc = soa::Join<TracksPidWithSel, aod::McTrackLabels>;
using CollisionsWCMcLabels = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::PVMults>;
Expand Down Expand Up @@ -298,6 +301,7 @@ struct HfDataCreatorJpsiHadReduced {
df2.setMaxDZIni(maxDZIni);
df2.setMinParamChange(minParamChange);
df2.setMinRelChi2Change(minRelChi2Change);
df2.setMaxChi2(maxChi2JPsiVtx);
df2.setUseAbsDCA(useAbsDCA);
df2.setWeightedFinalPCA(useWeightedFinalPCA);
df2.setMatCorrType(noMatCorr);
Expand All @@ -308,6 +312,7 @@ struct HfDataCreatorJpsiHadReduced {
df3.setMaxDZIni(maxDZIni);
df3.setMinParamChange(minParamChange);
df3.setMinRelChi2Change(minRelChi2Change);
df3.setMaxChi2(maxChi2BhadVtx);
df3.setUseAbsDCA(useAbsDCA);
df3.setWeightedFinalPCA(useWeightedFinalPCA);
df3.setMatCorrType(noMatCorr);
Expand All @@ -317,6 +322,7 @@ struct HfDataCreatorJpsiHadReduced {
df4.setMaxDZIni(maxDZIni);
df4.setMinParamChange(minParamChange);
df4.setMinRelChi2Change(minRelChi2Change);
df4.setMaxChi2(maxChi2BhadVtx);
df4.setUseAbsDCA(useAbsDCA);
df4.setWeightedFinalPCA(useWeightedFinalPCA);
df4.setMatCorrType(noMatCorr);
Expand Down Expand Up @@ -1458,6 +1464,10 @@ struct HfDataCreatorJpsiHadReduced {
trackPosParCov.getSigma1PtSnp(), trackNegParCov.getSigma1PtSnp(),
trackPosParCov.getSigma1PtTgl(), trackNegParCov.getSigma1PtTgl(),
trackPosParCov.getSigma1Pt2(), trackNegParCov.getSigma1Pt2());
hfRedJpsiDauPid(trackPos.tpcNSigmaMu(), trackNeg.tpcNSigmaMu(),
trackPos.tpcNSigmaEl(), trackNeg.tpcNSigmaEl(),
trackPos.tofNSigmaMu(), trackNeg.tofNSigmaMu(),
trackPos.tofNSigmaEl(), trackNeg.tofNSigmaEl());
fillHfReducedCollision = true;
}
} // candsJpsi loop
Expand Down
Loading
Loading