From 68fce66c5e5afef5d126ec4db89acfa7521253ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20Kr=C3=BCger?= Date: Sat, 12 Dec 2020 15:17:03 +0100 Subject: [PATCH] Analysis: extend histogram registry example --- Analysis/Tutorials/src/histogramRegistry.cxx | 21 ++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Analysis/Tutorials/src/histogramRegistry.cxx b/Analysis/Tutorials/src/histogramRegistry.cxx index 8a68e9b93be6e..fa79c947733d6 100644 --- a/Analysis/Tutorials/src/histogramRegistry.cxx +++ b/Analysis/Tutorials/src/histogramRegistry.cxx @@ -162,8 +162,6 @@ struct DTask { spectra.add("before_cuts/hist1", "asdf", defaultParticleHist); spectra.add("before_cuts/hist2", "asdf", defaultParticleHist); spectra.add("before_cuts/hist3", "asdf", defaultParticleHist); - spectra.add("before_cuts/hist4", "asdf", defaultParticleHist); - spectra.add("before_cuts/hist5", "asdf", defaultParticleHist); // clone whole category / group spectra.addClone("before_cuts/", "after_cuts/"); @@ -173,6 +171,16 @@ struct DTask { spectra.addClone("neutral/pions", "strange/funny/particles"); } + template + void fillHistos(const T& track) + { + static constexpr std::string_view subDir[] = {"before_cuts/", "after_cuts/"}; + + spectra.fill(HIST(subDir[mode]) + HIST("hist1"), track.pt(), track.eta(), 50., 0.); + spectra.fill(HIST(subDir[mode]) + HIST("hist2"), track.pt(), track.eta(), 50., 0.); + spectra.fill(HIST(subDir[mode]) + HIST("hist3"), track.pt(), track.eta(), 50., 0.); + } + void process(aod::Tracks const& tracks) { using namespace aod::track; @@ -189,10 +197,11 @@ struct DTask { spectra.fill(HIST("sigmas"), track.pt(), track.eta(), 50., 0.); spectra.fill(HIST("lambdas"), track.pt(), track.eta(), 50., 0.); - spectra.fill(HIST("before_cuts/hist2"), track.pt(), track.eta(), 50., 0.); - spectra.fill(HIST("before_cuts/hist2"), track.pt(), track.eta(), 50., 0.); - - spectra.fill(HIST("after_cuts/hist2"), track.pt(), track.eta(), 50., 0.); + // fill histograms before and after cuts + fillHistos(track); + if (std::rand() > (RAND_MAX / 2)) { + fillHistos(track); + } spectra.fill(HIST("cascades"), track.pt(), track.eta(), 50., 0.); spectra.fill(HIST("strange/funny/particles"), track.pt(), track.eta(), 50., 0.);