Skip to content

Commit 86793bc

Browse files
fgrosaalibuild
andauthored
[PWGHF] Add DCAFitter configs and PID/pt info for B->JPsi channels (#17955)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent eb21dd9 commit 86793bc

6 files changed

Lines changed: 182 additions & 20 deletions

File tree

PWGHF/D2H/DataModel/ReducedDataModel.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,14 @@ DECLARE_SOA_COLUMN(TOFNSigmaKaProng2, tofNSigmaKaProng2, float); //! NsigmaTOFKa
247247
DECLARE_SOA_COLUMN(TOFNSigmaPrProng0, tofNSigmaPrProng0, float); //! NsigmaTOFPr for prong0, o2-linter: disable=name/o2-column (written to disk)
248248
DECLARE_SOA_COLUMN(TOFNSigmaPrProng1, tofNSigmaPrProng1, float); //! NsigmaTOFPr for prong1, o2-linter: disable=name/o2-column (written to disk)
249249
DECLARE_SOA_COLUMN(TOFNSigmaPrProng2, tofNSigmaPrProng2, float); //! NsigmaTOFPr for prong2, o2-linter: disable=name/o2-column (written to disk)
250+
DECLARE_SOA_COLUMN(TPCNSigmaMuPos, tpcNSigmaMuPos, float); //! NsigmaTPCMu for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
251+
DECLARE_SOA_COLUMN(TPCNSigmaMuNeg, tpcNSigmaMuNeg, float); //! NsigmaTPCMu for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
252+
DECLARE_SOA_COLUMN(TPCNSigmaElPos, tpcNSigmaElPos, float); //! NsigmaTPCEl for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
253+
DECLARE_SOA_COLUMN(TPCNSigmaElNeg, tpcNSigmaElNeg, float); //! NsigmaTPCEl for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
254+
DECLARE_SOA_COLUMN(TOFNSigmaMuPos, tofNSigmaMuPos, float); //! NsigmaTPCMu for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
255+
DECLARE_SOA_COLUMN(TOFNSigmaMuNeg, tofNSigmaMuNeg, float); //! NsigmaTPCMu for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
256+
DECLARE_SOA_COLUMN(TOFNSigmaElPos, tofNSigmaElPos, float); //! NsigmaTPCEl for positive J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
257+
DECLARE_SOA_COLUMN(TOFNSigmaElNeg, tofNSigmaElNeg, float); //! NsigmaTPCEl for negative J/psi daughter, o2-linter: disable=name/o2-column (written to disk)
250258
// dynamic columns
251259
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPi, tpcTofNSigmaPi, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
252260
[](float tpcNSigmaPi, float tofNSigmaPi) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPi, tofNSigmaPi); });
@@ -272,6 +280,14 @@ DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPrProng1, tpcTofNSigmaPrProng1, //! Combi
272280
[](float tpcNSigmaPr, float tofNSigmaPr) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPr, tofNSigmaPr); });
273281
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaPrProng2, tpcTofNSigmaPrProng2, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
274282
[](float tpcNSigmaPr, float tofNSigmaPr) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPr, tofNSigmaPr); });
283+
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaMuPos, tpcTofNSigmaMuPos, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
284+
[](float tpcNSigmaMu, float tofNSigmaMu) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaMu, tofNSigmaMu); });
285+
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaMuNeg, tpcTofNSigmaMuNeg, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
286+
[](float tpcNSigmaMu, float tofNSigmaMu) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaMu, tofNSigmaMu); });
287+
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaElPos, tpcTofNSigmaElPos, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
288+
[](float tpcNSigmaEl, float tofNSigmaEl) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaEl, tofNSigmaEl); });
289+
DECLARE_SOA_DYNAMIC_COLUMN(TPCTOFNSigmaElNeg, tpcTofNSigmaElNeg, //! Combination of NsigmaTPC and NsigmaTOF, o2-linter: disable=name/o2-column (written to disk)
290+
[](float tpcNSigmaEl, float tofNSigmaEl) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaEl, tofNSigmaEl); });
275291
} // namespace hf_track_pid_reduced
276292

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

687+
DECLARE_SOA_TABLE(HfRedJpsiDauPid, "AOD", "HFREDJPSIDAUPID", //! Table with J/Psi daughter PID information (muon, electron) for reduced workflow
688+
hf_track_pid_reduced::TPCNSigmaMuPos,
689+
hf_track_pid_reduced::TPCNSigmaMuNeg,
690+
hf_track_pid_reduced::TPCNSigmaElPos,
691+
hf_track_pid_reduced::TPCNSigmaElNeg,
692+
hf_track_pid_reduced::TOFNSigmaMuPos,
693+
hf_track_pid_reduced::TOFNSigmaMuNeg,
694+
hf_track_pid_reduced::TOFNSigmaElPos,
695+
hf_track_pid_reduced::TOFNSigmaElNeg,
696+
hf_track_pid_reduced::TPCTOFNSigmaMuPos<hf_track_pid_reduced::TPCNSigmaMuPos, hf_track_pid_reduced::TOFNSigmaMuPos>,
697+
hf_track_pid_reduced::TPCTOFNSigmaMuNeg<hf_track_pid_reduced::TPCNSigmaMuNeg, hf_track_pid_reduced::TOFNSigmaMuNeg>,
698+
hf_track_pid_reduced::TPCTOFNSigmaElPos<hf_track_pid_reduced::TPCNSigmaElPos, hf_track_pid_reduced::TOFNSigmaElPos>,
699+
hf_track_pid_reduced::TPCTOFNSigmaElNeg<hf_track_pid_reduced::TPCNSigmaElNeg, hf_track_pid_reduced::TOFNSigmaElNeg>);
700+
671701
DECLARE_SOA_TABLE(HfRedPidDau0s_000, "AOD", "HFREDPIDDAU0", //!
672702
hf_track_pid_reduced::TPCNSigmaPiProng0,
673703
hf_track_pid_reduced::TOFNSigmaPiProng0,

PWGHF/D2H/TableProducer/candidateCreatorBToJpsiReduced.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,16 @@ struct HfCandidateCreatorBToJpsiReduced {
7575
Configurable<double> maxDZIni{"maxDZIni", 4., "reject (if>0) PCA candidate if tracks DZ exceeds threshold"};
7676
Configurable<double> minParamChange{"minParamChange", 1.e-3, "stop iterations if largest change of any B+ is smaller than this"};
7777
Configurable<double> minRelChi2Change{"minRelChi2Change", 0.9, "stop iterations is chi2/chi2old > this"};
78+
Configurable<double> maxChi2JPsiVtx{"maxChi2JPsiVtx", 1e9, "maximum value of chi2 for JPsi vertex computed with DCAFitter"};
79+
Configurable<double> maxChi2BhadVtx{"maxChi2BhadVtx", 0.9, "maximum value of chi2 for B-hadron vertex computed with DCAFitter"};
7880

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

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

@@ -104,6 +106,7 @@ struct HfCandidateCreatorBToJpsiReduced {
104106
df2.setMaxDZIni(maxDZIni);
105107
df2.setMinParamChange(minParamChange);
106108
df2.setMinRelChi2Change(minRelChi2Change);
109+
df2.setMaxChi2(maxChi2JPsiVtx);
107110
df2.setUseAbsDCA(useAbsDCA);
108111
df2.setWeightedFinalPCA(useWeightedFinalPCA);
109112
df2.setMatCorrType(noMatCorr);
@@ -114,6 +117,7 @@ struct HfCandidateCreatorBToJpsiReduced {
114117
df3.setMaxDZIni(maxDZIni);
115118
df3.setMinParamChange(minParamChange);
116119
df3.setMinRelChi2Change(minRelChi2Change);
120+
df3.setMaxChi2(maxChi2BhadVtx);
117121
df3.setUseAbsDCA(useAbsDCA);
118122
df3.setWeightedFinalPCA(useWeightedFinalPCA);
119123
df3.setMatCorrType(noMatCorr);
@@ -123,6 +127,7 @@ struct HfCandidateCreatorBToJpsiReduced {
123127
df4.setMaxDZIni(maxDZIni);
124128
df4.setMinParamChange(minParamChange);
125129
df4.setMinRelChi2Change(minRelChi2Change);
130+
df3.setMaxChi2(maxChi2BhadVtx);
126131
df4.setUseAbsDCA(useAbsDCA);
127132
df4.setWeightedFinalPCA(useWeightedFinalPCA);
128133
df4.setMatCorrType(noMatCorr);

PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ struct HfDataCreatorJpsiHadReduced {
130130
// J/Psi related tables
131131
Produces<aod::HfRedJpsis> hfJpsi;
132132
Produces<aod::HfRedJpsiCov> hfRedJpsiCov;
133+
Produces<aod::HfRedJpsiDauPid> hfRedJpsiDauPid;
133134
// Ka bachelor related tables
134135
Produces<aod::HfRedBach0Bases> hfTrackLfDau0;
135136
Produces<aod::HfRedBach0Cov> hfTrackCovLfDau0;
@@ -155,6 +156,8 @@ struct HfDataCreatorJpsiHadReduced {
155156
Configurable<double> maxDZIni{"maxDZIni", 4., "reject (if>0) PCA candidate if tracks DZ exceeds threshold"};
156157
Configurable<double> minParamChange{"minParamChange", 1.e-3, "stop iterations if largest change of any B0 is smaller than this"};
157158
Configurable<double> minRelChi2Change{"minRelChi2Change", 0.9, "stop iterations is chi2/chi2old > this"};
159+
Configurable<double> maxChi2JPsiVtx{"maxChi2JPsiVtx", 1e9, "maximum value of chi2 for JPsi vertex computed with DCAFitter"};
160+
Configurable<double> maxChi2BhadVtx{"maxChi2BhadVtx", 0.9, "maximum value of chi2 for B-hadron vertex computed with DCAFitter"};
158161

159162
struct : o2::framework::ConfigurableGroup {
160163
// TPC PID
@@ -191,7 +194,7 @@ struct HfDataCreatorJpsiHadReduced {
191194
// O2DatabasePDG service
192195
Service<o2::framework::O2DatabasePDG> pdg{};
193196

194-
using TracksPid = soa::Join<aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr, aod::pidTPCFullEl, aod::pidTOFFullEl>;
197+
using TracksPid = soa::Join<aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr, aod::pidTPCFullEl, aod::pidTOFFullEl, aod::pidTPCFullMu, aod::pidTOFFullMu>;
195198
using TracksPidWithSel = soa::Join<aod::TracksWCovDcaExtra, TracksPid, aod::TrackSelection>;
196199
using TracksPidWithSelAndMc = soa::Join<TracksPidWithSel, aod::McTrackLabels>;
197200
using CollisionsWCMcLabels = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::PVMults>;
@@ -298,6 +301,7 @@ struct HfDataCreatorJpsiHadReduced {
298301
df2.setMaxDZIni(maxDZIni);
299302
df2.setMinParamChange(minParamChange);
300303
df2.setMinRelChi2Change(minRelChi2Change);
304+
df2.setMaxChi2(maxChi2JPsiVtx);
301305
df2.setUseAbsDCA(useAbsDCA);
302306
df2.setWeightedFinalPCA(useWeightedFinalPCA);
303307
df2.setMatCorrType(noMatCorr);
@@ -308,6 +312,7 @@ struct HfDataCreatorJpsiHadReduced {
308312
df3.setMaxDZIni(maxDZIni);
309313
df3.setMinParamChange(minParamChange);
310314
df3.setMinRelChi2Change(minRelChi2Change);
315+
df3.setMaxChi2(maxChi2BhadVtx);
311316
df3.setUseAbsDCA(useAbsDCA);
312317
df3.setWeightedFinalPCA(useWeightedFinalPCA);
313318
df3.setMatCorrType(noMatCorr);
@@ -317,6 +322,7 @@ struct HfDataCreatorJpsiHadReduced {
317322
df4.setMaxDZIni(maxDZIni);
318323
df4.setMinParamChange(minParamChange);
319324
df4.setMinRelChi2Change(minRelChi2Change);
325+
df4.setMaxChi2(maxChi2BhadVtx);
320326
df4.setUseAbsDCA(useAbsDCA);
321327
df4.setWeightedFinalPCA(useWeightedFinalPCA);
322328
df4.setMatCorrType(noMatCorr);
@@ -1458,6 +1464,10 @@ struct HfDataCreatorJpsiHadReduced {
14581464
trackPosParCov.getSigma1PtSnp(), trackNegParCov.getSigma1PtSnp(),
14591465
trackPosParCov.getSigma1PtTgl(), trackNegParCov.getSigma1PtTgl(),
14601466
trackPosParCov.getSigma1Pt2(), trackNegParCov.getSigma1Pt2());
1467+
hfRedJpsiDauPid(trackPos.tpcNSigmaMu(), trackNeg.tpcNSigmaMu(),
1468+
trackPos.tpcNSigmaEl(), trackNeg.tpcNSigmaEl(),
1469+
trackPos.tofNSigmaMu(), trackNeg.tofNSigmaMu(),
1470+
trackPos.tofNSigmaEl(), trackNeg.tofNSigmaEl());
14611471
fillHfReducedCollision = true;
14621472
}
14631473
} // candsJpsi loop

0 commit comments

Comments
 (0)