Skip to content

Commit e1ceb28

Browse files
fgrosaalibuild
andauthored
PWGHF: unify data creators for B hadrons (#4891)
* PWGHF: unify data creators for B hadrons * Reorder init and remove unwanted columns in collision table for Ds resonances * Please consider the following formatting changes * Fix typo * Fix std vector copy --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 6fd9572 commit e1ceb28

8 files changed

Lines changed: 995 additions & 1245 deletions

PWGHF/D2H/DataModel/ReducedDataModel.h

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,13 @@ DECLARE_SOA_COLUMN(OriginalCollisionCount, originalCollisionCount, int); //! Siz
4242
} // namespace hf_reduced_collision
4343

4444
DECLARE_SOA_TABLE(HfRedCollisions, "AOD", "HFREDCOLLISION", //! Table with collision for reduced workflow
45-
soa::Index<>,
45+
o2::soa::Index<>,
4646
collision::PosX,
4747
collision::PosY,
4848
collision::PosZ,
49+
o2::soa::Marker<1>);
50+
51+
DECLARE_SOA_TABLE(HfRedCollExtras, "AOD", "HFREDCOLLEXTRA", //! Table with collision extras for reduced workflow
4952
collision::CovXX,
5053
collision::CovXY,
5154
collision::CovYY,
@@ -147,12 +150,15 @@ using HfRedTracks = HfRedTracksExt;
147150

148151
namespace hf_charm_cand_reduced
149152
{
150-
DECLARE_SOA_COLUMN(InvMass, invMass, float); //! Invariant mass of 2prong candidate in GeV/c2
151-
DECLARE_SOA_COLUMN(InvMassD0, invMassD0, float); //! Invariant mass of 2prong candidate in GeV/c2
152-
DECLARE_SOA_COLUMN(InvMassD0Bar, invMassD0Bar, float); //! Invariant mass of 2prong candidate in GeV/c2
153-
DECLARE_SOA_COLUMN(MlScoreBkg, mlScoreBkg, float); //! ML score for background class
154-
DECLARE_SOA_COLUMN(MlScorePrompt, mlScorePrompt, float); //! ML score for prompt class
155-
DECLARE_SOA_COLUMN(MlScoreNonprompt, mlScoreNonprompt, float); //! ML score for non-prompt class
153+
DECLARE_SOA_COLUMN(InvMass, invMass, float); //! Invariant mass of 2prong candidate in GeV/c2
154+
DECLARE_SOA_COLUMN(InvMassD0, invMassD0, float); //! Invariant mass of 2prong candidate in GeV/c2
155+
DECLARE_SOA_COLUMN(InvMassD0Bar, invMassD0Bar, float); //! Invariant mass of 2prong candidate in GeV/c2
156+
DECLARE_SOA_COLUMN(MlScoreBkgMassHypo0, mlScoreBkgMassHypo0, float); //! ML score for background class (mass hypothesis 0)
157+
DECLARE_SOA_COLUMN(MlScorePromptMassHypo0, mlScorePromptMassHypo0, float); //! ML score for prompt class (mass hypothesis 0)
158+
DECLARE_SOA_COLUMN(MlScoreNonpromptMassHypo0, mlScoreNonpromptMassHypo0, float); //! ML score for non-prompt class (mass hypothesis 0)
159+
DECLARE_SOA_COLUMN(MlScoreBkgMassHypo1, mlScoreBkgMassHypo1, float); //! ML score for background class (mass hypothesis 1)
160+
DECLARE_SOA_COLUMN(MlScorePromptMassHypo1, mlScorePromptMassHypo1, float); //! ML score for prompt class (mass hypothesis 1)
161+
DECLARE_SOA_COLUMN(MlScoreNonpromptMassHypo1, mlScoreNonpromptMassHypo1, float); //! ML score for non-prompt class (mass hypothesis 1)
156162
} // namespace hf_charm_cand_reduced
157163

158164
// CAREFUL: need to follow convention [Name = Description + 's'] in DECLARE_SOA_TABLE(Name, "AOD", Description)
@@ -174,9 +180,12 @@ DECLARE_SOA_TABLE(HfRed2ProngsCov, "AOD", "HFRED2PRONGSCOV", //! Table with 2pro
174180
o2::soa::Marker<1>);
175181

176182
DECLARE_SOA_TABLE(HfRed2ProngsMl, "AOD", "HFRED2PRONGML", //! Table with 2prong candidate ML scores
177-
hf_charm_cand_reduced::MlScoreBkg,
178-
hf_charm_cand_reduced::MlScorePrompt,
179-
hf_charm_cand_reduced::MlScoreNonprompt);
183+
hf_charm_cand_reduced::MlScoreBkgMassHypo0,
184+
hf_charm_cand_reduced::MlScorePromptMassHypo0,
185+
hf_charm_cand_reduced::MlScoreNonpromptMassHypo0,
186+
hf_charm_cand_reduced::MlScoreBkgMassHypo1,
187+
hf_charm_cand_reduced::MlScorePromptMassHypo1,
188+
hf_charm_cand_reduced::MlScoreNonpromptMassHypo1);
180189

181190
// CAREFUL: need to follow convention [Name = Description + 's'] in DECLARE_SOA_TABLE(Name, "AOD", Description)
182191
// to call DECLARE_SOA_INDEX_COLUMN_FULL later on
@@ -197,10 +206,9 @@ DECLARE_SOA_TABLE(HfRed3ProngsCov, "AOD", "HFRED3PRONGSCOV", //! Table with 3pro
197206
o2::soa::Marker<2>);
198207

199208
DECLARE_SOA_TABLE(HfRed3ProngsMl, "AOD", "HFRED3PRONGML", //! Table with 3prong candidate ML scores
200-
hf_charm_cand_reduced::MlScoreBkg,
201-
hf_charm_cand_reduced::MlScorePrompt,
202-
hf_charm_cand_reduced::MlScoreNonprompt,
203-
o2::soa::Marker<1>);
209+
hf_charm_cand_reduced::MlScoreBkgMassHypo0,
210+
hf_charm_cand_reduced::MlScorePromptMassHypo0,
211+
hf_charm_cand_reduced::MlScoreNonpromptMassHypo0);
204212

205213
// Beauty candidates prongs
206214
namespace hf_cand_b0_reduced

PWGHF/D2H/TableProducer/CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,8 @@ o2physics_add_dpl_workflow(candidate-selector-bplus-to-d0-pi-reduced
3535

3636
# Data creators
3737

38-
o2physics_add_dpl_workflow(data-creator-d0-pi-reduced
39-
SOURCES dataCreatorD0PiReduced.cxx
40-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter
41-
COMPONENT_NAME Analysis)
42-
43-
o2physics_add_dpl_workflow(data-creator-dplus-pi-reduced
44-
SOURCES dataCreatorDplusPiReduced.cxx
38+
o2physics_add_dpl_workflow(data-creator-charm-had-pi-reduced
39+
SOURCES dataCreatorCharmHadPiReduced.cxx
4540
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter
4641
COMPONENT_NAME Analysis)
4742

PWGHF/D2H/TableProducer/candidateCreatorB0Reduced.cxx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ struct HfCandidateCreatorB0Reduced {
5858

5959
o2::vertexing::DCAFitterN<2> df2; // fitter for B vertex (2-prong vertex fitter)
6060

61+
using HfRedCollisionsWithExtras = soa::Join<aod::HfRedCollisions, aod::HfRedCollExtras>;
62+
6163
Preslice<soa::Join<aod::HfRed3Prongs, aod::HfRed3ProngsCov>> candsDPerCollision = hf_track_index_reduced::hfRedCollisionId;
6264
Preslice<soa::Join<aod::HfRed3Prongs, aod::HfRed3ProngsCov, aod::HfRed3ProngsMl>> candsDWithMlPerCollision = hf_track_index_reduced::hfRedCollisionId;
6365
Preslice<soa::Join<aod::HfRedTrackBases, aod::HfRedTracksCov>> tracksPionPerCollision = hf_track_index_reduced::hfRedCollisionId;
@@ -99,8 +101,8 @@ struct HfCandidateCreatorB0Reduced {
99101
/// \param tracksPionThisCollision pion tracks in this collision
100102
/// \param invMass2DPiMin minimum B0 invariant-mass
101103
/// \param invMass2DPiMax maximum B0 invariant-mass
102-
template <bool withDmesMl, typename Cands, typename Pions>
103-
void runCandidateCreation(aod::HfRedCollisions::iterator const& collision,
104+
template <bool withDmesMl, typename Cands, typename Pions, typename Coll>
105+
void runCandidateCreation(Coll const& collision,
104106
Cands const& candsDThisColl,
105107
Pions const& tracksPionThisCollision,
106108
const float& invMass2DPiMin,
@@ -181,13 +183,13 @@ struct HfCandidateCreatorB0Reduced {
181183
rowCandidateProngs(candD.globalIndex(), trackPion.globalIndex());
182184

183185
if constexpr (withDmesMl) {
184-
rowCandidateDmesMlScores(candD.mlScoreBkg(), candD.mlScorePrompt(), candD.mlScoreNonprompt());
186+
rowCandidateDmesMlScores(candD.mlScoreBkgMassHypo0(), candD.mlScorePromptMassHypo0(), candD.mlScoreNonpromptMassHypo0());
185187
}
186188
} // pi loop
187189
} // D loop
188190
}
189191

190-
void processData(aod::HfRedCollisions const& collisions,
192+
void processData(HfRedCollisionsWithExtras const& collisions,
191193
soa::Join<aod::HfRed3Prongs, aod::HfRed3ProngsCov> const& candsD,
192194
soa::Join<aod::HfRedTrackBases, aod::HfRedTracksCov> const& tracksPion,
193195
aod::HfOrigColCounts const& collisionsCounter,
@@ -221,7 +223,7 @@ struct HfCandidateCreatorB0Reduced {
221223

222224
PROCESS_SWITCH(HfCandidateCreatorB0Reduced, processData, "Process data without any ML score", true);
223225

224-
void processDataWithDmesMl(aod::HfRedCollisions const& collisions,
226+
void processDataWithDmesMl(HfRedCollisionsWithExtras const& collisions,
225227
soa::Join<aod::HfRed3Prongs, aod::HfRed3ProngsCov, aod::HfRed3ProngsMl> const& candsD,
226228
soa::Join<aod::HfRedTrackBases, aod::HfRedTracksCov> const& tracksPion,
227229
aod::HfOrigColCounts const& collisionsCounter,

PWGHF/D2H/TableProducer/candidateCreatorBplusReduced.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ struct HfCandidateCreatorBplusReduced {
5656
double bz{0.};
5757
o2::vertexing::DCAFitterN<2> df2; // fitter for B vertex (2-prong vertex fitter)
5858

59+
using HfRedCollisionsWithExtras = soa::Join<aod::HfRedCollisions, aod::HfRedCollExtras>;
60+
5961
Preslice<soa::Join<aod::HfRed2Prongs, aod::HfRed2ProngsCov>> candsDPerCollision = hf_track_index_reduced::hfRedCollisionId;
6062
Preslice<soa::Join<aod::HfRedTracks, aod::HfRedTracksCov>> tracksPionPerCollision = hf_track_index_reduced::hfRedCollisionId;
6163

@@ -84,7 +86,7 @@ struct HfCandidateCreatorBplusReduced {
8486
registry.add("hEvents", "Events;;entries", HistType::kTH1F, {{1, 0.5, 1.5}});
8587
}
8688

87-
void process(aod::HfRedCollisions const& collisions,
89+
void process(HfRedCollisionsWithExtras const& collisions,
8890
soa::Join<aod::HfRed2Prongs, aod::HfRed2ProngsCov> const& candsD,
8991
soa::Join<aod::HfRedTrackBases, aod::HfRedTracksCov> const& tracksPion,
9092
aod::HfOrigColCounts const& collisionsCounter,

0 commit comments

Comments
 (0)