Skip to content

Commit 20b87ec

Browse files
committed
First round of replacement. Define base tables.
1 parent bbec5ea commit 20b87ec

File tree

2 files changed

+61
-60
lines changed

2 files changed

+61
-60
lines changed

PWGHF/DataModel/DerivedTables.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace o2::aod
3535
// D0 → K− π+
3636
// Λc → p K− π+
3737
// D+ → K− π+ π+
38-
// Ds+ → K− K+ π+ (todo)
38+
// Ds+ → K− K+ π+
3939

4040
// composite species
4141
// B0 → D− π+
@@ -306,6 +306,7 @@ DECLARE_SOA_COLUMN(FlagMcDecayChanGen, flagMcDecayChanGen, int8_t); //! resonant
306306
DECLARE_TABLES_2P(D0, "D0", d0, 2);
307307
DECLARE_TABLES_3P(Lc, "LC", lc, 3);
308308
DECLARE_TABLES_3P(Dplus, "DP", dplus, 4);
309+
DECLARE_TABLES_3P(Ds, "DS", ds, 9);
309310
DECLARE_TABLES_3P(Bplus, "BP", bplus, 5);
310311
DECLARE_TABLES_3P(Dstar, "DST", dstar, 6);
311312
// Workaround for the existing B0 macro in termios.h

PWGHF/TableProducer/derivedDataCreatorDsToKKPi.cxx

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12-
/// \file derivedDataCreatorDplusToPiKPi.cxx
13-
/// \brief Producer of derived tables of Dplus candidates, collisions and MC particles
14-
/// \note Based on derivedDataCreatorLcToPKPi.cxx
12+
/// \file derivedDataCreatorDsToKKPi.cxx
13+
/// \brief Producer of derived tables of Ds candidates, collisions and MC particles
14+
/// \note Based on derivedDataCreatorDplusToPiKPi.cxx
1515
///
1616
/// \author Vít Kučera <vit.kucera@cern.ch>, Inha University
1717

@@ -54,24 +54,24 @@ using namespace o2::framework::expressions;
5454
using namespace o2::analysis::hf_derived;
5555

5656
/// Writes the full information in an output TTree
57-
struct HfDerivedDataCreatorDplusToPiKPi {
57+
struct HfDerivedDataCreatorDsToKKPi {
5858
HfProducesDerivedData<
59-
o2::aod::HfDplusBases,
60-
o2::aod::HfDplusCollBases,
61-
o2::aod::HfDplusCollIds,
62-
o2::aod::HfDplusMcCollBases,
63-
o2::aod::HfDplusMcCollIds,
64-
o2::aod::HfDplusMcRCollIds,
65-
o2::aod::HfDplusPBases,
66-
o2::aod::HfDplusPIds>
59+
o2::aod::HfDsBases,
60+
o2::aod::HfDsCollBases,
61+
o2::aod::HfDsCollIds,
62+
o2::aod::HfDsMcCollBases,
63+
o2::aod::HfDsMcCollIds,
64+
o2::aod::HfDsMcRCollIds,
65+
o2::aod::HfDsPBases,
66+
o2::aod::HfDsPIds>
6767
rowsCommon;
6868
// Candidates
69-
Produces<o2::aod::HfDplusPars> rowCandidatePar;
70-
Produces<o2::aod::HfDplusParEs> rowCandidateParE;
71-
Produces<o2::aod::HfDplusSels> rowCandidateSel;
72-
Produces<o2::aod::HfDplusMls> rowCandidateMl;
73-
Produces<o2::aod::HfDplusIds> rowCandidateId;
74-
Produces<o2::aod::HfDplusMcs> rowCandidateMc;
69+
Produces<o2::aod::HfDsPars> rowCandidatePar;
70+
Produces<o2::aod::HfDsParEs> rowCandidateParE;
71+
Produces<o2::aod::HfDsSels> rowCandidateSel;
72+
Produces<o2::aod::HfDsMls> rowCandidateMl;
73+
Produces<o2::aod::HfDsIds> rowCandidateId;
74+
Produces<o2::aod::HfDsMcs> rowCandidateMc;
7575

7676
// Switches for filling tables
7777
HfConfigurableDerivedData confDerData;
@@ -87,20 +87,20 @@ struct HfDerivedDataCreatorDplusToPiKPi {
8787

8888
HfHelper hfHelper;
8989
SliceCache cache;
90-
static constexpr double mass{o2::constants::physics::MassDPlus};
90+
static constexpr double Mass{o2::constants::physics::MassDS};
9191

9292
using CollisionsWCentMult = soa::Join<aod::Collisions, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
9393
using CollisionsWMcCentMult = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
9494
using TracksWPid = soa::Join<aod::Tracks, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa>;
95-
using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfSelDplusToPiKPi>>;
96-
using SelectedCandidatesMc = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfCand3ProngMcRec, aod::HfSelDplusToPiKPi>>;
97-
using SelectedCandidatesMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfSelDplusToPiKPi, aod::HfMlDplusToPiKPi>>;
98-
using SelectedCandidatesMcMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfCand3ProngMcRec, aod::HfSelDplusToPiKPi, aod::HfMlDplusToPiKPi>>;
95+
using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfSelDsToKKPi>>;
96+
using SelectedCandidatesMc = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfCand3ProngMcRec, aod::HfSelDsToKKPi>>;
97+
using SelectedCandidatesMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi>>;
98+
using SelectedCandidatesMcMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKa, aod::HfCand3ProngMcRec, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi>>;
9999
using MatchedGenCandidatesMc = soa::Filtered<soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>;
100100
using TypeMcCollisions = soa::Join<aod::McCollisions, aod::McCentFT0Ms>;
101101

102-
Filter filterSelectCandidates = (aod::hf_sel_candidate_dplus::isSelDplusToPiKPi & static_cast<int8_t>(BIT(aod::SelectionStep::RecoMl - 1))) != 0; // select candidates which passed all cuts at least up to RecoMl - 1
103-
Filter filterMcGenMatching = nabs(aod::hf_cand_3prong::flagMcMatchGen) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi);
102+
Filter filterSelectCandidates = (aod::hf_sel_candidate_ds::isSelDsToKKPi & static_cast<int8_t>(BIT(aod::SelectionStep::RecoMl - 1))) != 0; // select candidates which passed all cuts at least up to RecoMl - 1
103+
Filter filterMcGenMatching = nabs(aod::hf_cand_3prong::flagMcMatchGen) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK);
104104

105105
Preslice<SelectedCandidates> candidatesPerCollision = aod::hf_cand::collisionId;
106106
Preslice<SelectedCandidatesMc> candidatesMcPerCollision = aod::hf_cand::collisionId;
@@ -109,15 +109,15 @@ struct HfDerivedDataCreatorDplusToPiKPi {
109109
Preslice<MatchedGenCandidatesMc> mcParticlesPerMcCollision = aod::mcparticle::mcCollisionId;
110110

111111
// trivial partitions for all candidates to allow "->sliceByCached" inside processCandidates
112-
Partition<SelectedCandidates> candidatesAll = aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= 0;
113-
Partition<SelectedCandidatesMc> candidatesMcAll = aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= 0;
114-
Partition<SelectedCandidatesMl> candidatesMlAll = aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= 0;
115-
Partition<SelectedCandidatesMcMl> candidatesMcMlAll = aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= 0;
112+
Partition<SelectedCandidates> candidatesAll = aod::hf_sel_candidate_ds::isSelDsToKKPi >= 0;
113+
Partition<SelectedCandidatesMc> candidatesMcAll = aod::hf_sel_candidate_ds::isSelDsToKKPi >= 0;
114+
Partition<SelectedCandidatesMl> candidatesMlAll = aod::hf_sel_candidate_ds::isSelDsToKKPi >= 0;
115+
Partition<SelectedCandidatesMcMl> candidatesMcMlAll = aod::hf_sel_candidate_ds::isSelDsToKKPi >= 0;
116116
// partitions for signal and background
117-
Partition<SelectedCandidatesMc> candidatesMcSig = nabs(aod::hf_cand_3prong::flagMcMatchRec) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi);
118-
Partition<SelectedCandidatesMc> candidatesMcBkg = nabs(aod::hf_cand_3prong::flagMcMatchRec) != static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi);
119-
Partition<SelectedCandidatesMcMl> candidatesMcMlSig = nabs(aod::hf_cand_3prong::flagMcMatchRec) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi);
120-
Partition<SelectedCandidatesMcMl> candidatesMcMlBkg = nabs(aod::hf_cand_3prong::flagMcMatchRec) != static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi);
117+
Partition<SelectedCandidatesMc> candidatesMcSig = nabs(aod::hf_cand_3prong::flagMcMatchRec) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK);
118+
Partition<SelectedCandidatesMc> candidatesMcBkg = nabs(aod::hf_cand_3prong::flagMcMatchRec) != static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK);
119+
Partition<SelectedCandidatesMcMl> candidatesMcMlSig = nabs(aod::hf_cand_3prong::flagMcMatchRec) == static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK);
120+
Partition<SelectedCandidatesMcMl> candidatesMcMlBkg = nabs(aod::hf_cand_3prong::flagMcMatchRec) != static_cast<int8_t>(hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK);
121121

122122
void init(InitContext const&)
123123
{
@@ -256,7 +256,7 @@ struct HfDerivedDataCreatorDplusToPiKPi {
256256
int8_t flagMcRec = 0, origin = 0, swapping = 0, flagDecayChanRec = 0;
257257
for (const auto& candidate : candidatesThisColl) {
258258
if constexpr (isMl) {
259-
if (!TESTBIT(candidate.isSelDplusToPiKPi(), aod::SelectionStep::RecoMl)) {
259+
if (!TESTBIT(candidate.isSelDsToKKPi(), aod::SelectionStep::RecoMl)) {
260260
continue;
261261
}
262262
}
@@ -266,7 +266,7 @@ struct HfDerivedDataCreatorDplusToPiKPi {
266266
swapping = candidate.isCandidateSwapped();
267267
flagDecayChanRec = candidate.flagMcDecayChanRec();
268268
if constexpr (onlyBkg) {
269-
if (std::abs(flagMcRec) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) {
269+
if (std::abs(flagMcRec) == hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK) {
270270
continue;
271271
}
272272
if (downSampleBkgFactor < 1.) {
@@ -277,19 +277,19 @@ struct HfDerivedDataCreatorDplusToPiKPi {
277277
}
278278
}
279279
if constexpr (onlySig) {
280-
if (std::abs(flagMcRec) != hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) {
280+
if (std::abs(flagMcRec) != hf_decay::hf_cand_3prong::DecayChannelMain::DsToPiKK) {
281281
continue;
282282
}
283283
}
284284
}
285-
double ct = hfHelper.ctDplus(candidate);
286-
double y = hfHelper.yDplus(candidate);
287-
float massDplusToPiKPi = hfHelper.invMassDplusToPiKPi(candidate);
288-
std::vector<float> mlScoresDplusToPiKPi;
285+
double ct = hfHelper.ctDs(candidate);
286+
double y = hfHelper.yDs(candidate);
287+
float massDsToKKPi = hfHelper.invMassDsToKKPi(candidate);
288+
std::vector<float> mlScoresDsToKKPi;
289289
if constexpr (isMl) {
290-
std::copy(candidate.mlProbDplusToPiKPi().begin(), candidate.mlProbDplusToPiKPi().end(), std::back_inserter(mlScoresDplusToPiKPi));
290+
std::copy(candidate.mlProbDsToKKPi().begin(), candidate.mlProbDsToKKPi().end(), std::back_inserter(mlScoresDsToKKPi));
291291
}
292-
fillTablesCandidate(candidate, 0, massDplusToPiKPi, ct, y, flagMcRec, origin, swapping, flagDecayChanRec, mlScoresDplusToPiKPi);
292+
fillTablesCandidate(candidate, 0, massDsToKKPi, ct, y, flagMcRec, origin, swapping, flagDecayChanRec, mlScoresDsToKKPi);
293293
}
294294
}
295295
}
@@ -301,7 +301,7 @@ struct HfDerivedDataCreatorDplusToPiKPi {
301301
{
302302
processCandidates<false, false, false, false>(collisions, candidatesAll, tracks, bcs);
303303
}
304-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processData, "Process data", true);
304+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processData, "Process data", true);
305305

306306
void processMcSig(CollisionsWMcCentMult const& collisions,
307307
SelectedCandidatesMc const&,
@@ -312,9 +312,9 @@ struct HfDerivedDataCreatorDplusToPiKPi {
312312
{
313313
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
314314
processCandidates<false, true, false, true>(collisions, candidatesMcSig, tracks, bcs);
315-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
315+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
316316
}
317-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcSig, "Process MC only for signals", false);
317+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcSig, "Process MC only for signals", false);
318318

319319
void processMcBkg(CollisionsWMcCentMult const& collisions,
320320
SelectedCandidatesMc const&,
@@ -325,9 +325,9 @@ struct HfDerivedDataCreatorDplusToPiKPi {
325325
{
326326
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
327327
processCandidates<false, true, true, false>(collisions, candidatesMcBkg, tracks, bcs);
328-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
328+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
329329
}
330-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcBkg, "Process MC only for background", false);
330+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcBkg, "Process MC only for background", false);
331331

332332
void processMcAll(CollisionsWMcCentMult const& collisions,
333333
SelectedCandidatesMc const&,
@@ -338,9 +338,9 @@ struct HfDerivedDataCreatorDplusToPiKPi {
338338
{
339339
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
340340
processCandidates<false, true, false, false>(collisions, candidatesMcAll, tracks, bcs);
341-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
341+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
342342
}
343-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcAll, "Process MC", false);
343+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcAll, "Process MC", false);
344344

345345
// ML versions
346346

@@ -351,7 +351,7 @@ struct HfDerivedDataCreatorDplusToPiKPi {
351351
{
352352
processCandidates<true, false, false, false>(collisions, candidatesMlAll, tracks, bcs);
353353
}
354-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processDataMl, "Process data with ML", false);
354+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processDataMl, "Process data with ML", false);
355355

356356
void processMcMlSig(CollisionsWMcCentMult const& collisions,
357357
SelectedCandidatesMcMl const&,
@@ -362,9 +362,9 @@ struct HfDerivedDataCreatorDplusToPiKPi {
362362
{
363363
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
364364
processCandidates<true, true, false, true>(collisions, candidatesMcMlSig, tracks, bcs);
365-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
365+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
366366
}
367-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcMlSig, "Process MC with ML only for signals", false);
367+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcMlSig, "Process MC with ML only for signals", false);
368368

369369
void processMcMlBkg(CollisionsWMcCentMult const& collisions,
370370
SelectedCandidatesMcMl const&,
@@ -375,9 +375,9 @@ struct HfDerivedDataCreatorDplusToPiKPi {
375375
{
376376
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
377377
processCandidates<true, true, true, false>(collisions, candidatesMcMlBkg, tracks, bcs);
378-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
378+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
379379
}
380-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcMlBkg, "Process MC with ML only for background", false);
380+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcMlBkg, "Process MC with ML only for background", false);
381381

382382
void processMcMlAll(CollisionsWMcCentMult const& collisions,
383383
SelectedCandidatesMcMl const&,
@@ -388,19 +388,19 @@ struct HfDerivedDataCreatorDplusToPiKPi {
388388
{
389389
rowsCommon.preProcessMcCollisions(mcCollisions, mcParticlesPerMcCollision, mcParticles);
390390
processCandidates<true, true, false, false>(collisions, candidatesMcMlAll, tracks, bcs);
391-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
391+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
392392
}
393-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcMlAll, "Process MC with ML", false);
393+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcMlAll, "Process MC with ML", false);
394394

395395
void processMcGenOnly(TypeMcCollisions const& mcCollisions,
396396
MatchedGenCandidatesMc const& mcParticles)
397397
{
398-
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, mass);
398+
rowsCommon.processMcParticles(mcCollisions, mcParticlesPerMcCollision, mcParticles, Mass);
399399
}
400-
PROCESS_SWITCH(HfDerivedDataCreatorDplusToPiKPi, processMcGenOnly, "Process MC gen. only", false);
400+
PROCESS_SWITCH(HfDerivedDataCreatorDsToKKPi, processMcGenOnly, "Process MC gen. only", false);
401401
};
402402

403403
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
404404
{
405-
return WorkflowSpec{adaptAnalysisTask<HfDerivedDataCreatorDplusToPiKPi>(cfgc)};
405+
return WorkflowSpec{adaptAnalysisTask<HfDerivedDataCreatorDsToKKPi>(cfgc)};
406406
}

0 commit comments

Comments
 (0)