@@ -144,6 +144,25 @@ void addEventHistograms(HistogramRegistry* fRegistry)
144144 fRegistry ->addClone (" Event/before/" , " Event/after/" );
145145}
146146
147+ void addEventHistogramsBootstrap (HistogramRegistry* fRegistry , int nsamples = 1 )
148+ {
149+ fRegistry ->add (" Event/bootstrap/hPoissonWeights" , " Poisson Weights per sample;sample;weight" , kTH2D , {{nsamples, 0.5 , nsamples + 0.5 }, {210 , -1 , 20 }}, false );
150+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0MQ2BPos_CentFT0C_bootstrap" , " Q_{2}^{FT0M} #upoint Q_{2}^{BPos};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0M} #upoint Q_{2}^{BPos}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
151+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0MQ2BNeg_CentFT0C_bootstrap" , " Q_{2}^{FT0M} #upoint Q_{2}^{BNeg};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0M} #upoint Q_{2}^{BNeg}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
152+ fRegistry ->add (" Event/bootstrap/hPrfQ2BPosQ2BNeg_CentFT0C_bootstrap" , " Q_{2}^{BPos} #upoint Q_{2}^{BNeg};centrality FT0C (%);bootstrap sample;Q_{2}^{BPos} #upoint Q_{2}^{BNeg}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
153+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0CQ2BPos_CentFT0C_bootstrap" , " Q_{2}^{FT0C} #upoint Q_{2}^{BPos};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0C} #upoint Q_{2}^{BPos}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
154+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0CQ2BNeg_CentFT0C_bootstrap" , " Q_{2}^{FT0C} #upoint Q_{2}^{BNeg};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0C} #upoint Q_{2}^{BNeg}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
155+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0CQ2BTot_CentFT0C_bootstrap" , " Q_{2}^{FT0C} #upoint Q_{2}^{BTot};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0C} #upoint Q_{2}^{BTot}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
156+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0AQ2BPos_CentFT0C_bootstrap" , " Q_{2}^{FT0A} #upoint Q_{2}^{BPos};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0A} #upoint Q_{2}^{BPos}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
157+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0AQ2BNeg_CentFT0C_bootstrap" , " Q_{2}^{FT0A} #upoint Q_{2}^{BNeg};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0A} #upoint Q_{2}^{BNeg}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
158+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0AQ2BTot_CentFT0C_bootstrap" , " Q_{2}^{FT0A} #upoint Q_{2}^{BTot};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0A} #upoint Q_{2}^{BTot}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
159+ fRegistry ->add (" Event/bootstrap/hPrfQ2FT0AQ2FT0C_CentFT0C_bootstrap" , " Q_{2}^{FT0A} #upoint Q_{2}^{FT0C};centrality FT0C (%);bootstrap sample;Q_{2}^{FT0A} #upoint Q_{2}^{FT0C}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
160+ fRegistry ->add (" Event/bootstrap/hPrfQ2FV0AQ2BPos_CentFT0C_bootstrap" , " Q_{2}^{FV0A} #upoint Q_{2}^{BPos};centrality FT0C (%);bootstrap sample;Q_{2}^{FV0A} #upoint Q_{2}^{BPos}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
161+ fRegistry ->add (" Event/bootstrap/hPrfQ2FV0AQ2BNeg_CentFT0C_bootstrap" , " Q_{2}^{FV0A} #upoint Q_{2}^{BNeg};centrality FT0C (%);bootstrap sample;Q_{2}^{FV0A} #upoint Q_{2}^{BNeg}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
162+ fRegistry ->add (" Event/bootstrap/hPrfQ2FV0AQ2BTot_CentFT0C_bootstrap" , " Q_{2}^{FV0A} #upoint Q_{2}^{BTot};centrality FT0C (%);bootstrap sample;Q_{2}^{FV0A} #upoint Q_{2}^{BTot}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
163+ fRegistry ->add (" Event/bootstrap/hPrfQ2FV0AQ2FT0C_CentFT0C_bootstrap" , " Q_{2}^{FV0A} #upoint Q_{2}^{FT0C};centrality FT0C (%);bootstrap sample;Q_{2}^{FV0A} #upoint Q_{2}^{FT0C}" , kTProfile2D , {{100 , 0 , 100 }, {nsamples, 0.5 , nsamples + 0.5 }}, false );
164+ }
165+
147166template <const int ev_id, const int nmod = -1 , typename TCollision>
148167void fillEventInfo (HistogramRegistry* fRegistry , TCollision const & collision, const float /* weight*/ = 1 .f)
149168{
@@ -311,5 +330,32 @@ void fillEventInfo(HistogramRegistry* fRegistry, TCollision const& collision, co
311330 fRegistry ->fill (HIST (" Event/" ) + HIST (event_types[ev_id]) + HIST (" hPrfQ3FV0AQ3BTot_CentFT0C" ), collision.centFT0C (), RecoDecay::dotProd (q3fv0a, q3btot));
312331 }
313332}
333+ template <typename TCollision>
334+ void fillEventInfoBootstrap (HistogramRegistry* fRegistry , TCollision const & collision, const int sample, const float weight)
335+ {
336+ std::array<float , 2 > q2ft0m = {collision.q2xft0m (), collision.q2yft0m ()};
337+ std::array<float , 2 > q2ft0a = {collision.q2xft0a (), collision.q2yft0a ()};
338+ std::array<float , 2 > q2ft0c = {collision.q2xft0c (), collision.q2yft0c ()};
339+ std::array<float , 2 > q2fv0a = {collision.q2xfv0a (), collision.q2yfv0a ()};
340+ std::array<float , 2 > q2bpos = {collision.q2xbpos (), collision.q2ybpos ()};
341+ std::array<float , 2 > q2bneg = {collision.q2xbneg (), collision.q2ybneg ()};
342+ std::array<float , 2 > q2btot = {collision.q2xbtot (), collision.q2ybtot ()};
343+
344+ fRegistry ->fill (HIST (" Event/bootstrap/hPoissonWeights" ), sample + 0.5 , weight);
345+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0MQ2BPos_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0m, q2bpos), weight);
346+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0MQ2BNeg_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0m, q2bneg), weight);
347+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2BPosQ2BNeg_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2bpos, q2bneg), weight);
348+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0CQ2BPos_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0c, q2bpos), weight);
349+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0CQ2BNeg_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0c, q2bneg), weight);
350+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0CQ2BTot_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0c, q2btot), weight);
351+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0AQ2BPos_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0a, q2bpos), weight);
352+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0AQ2BNeg_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0a, q2bneg), weight);
353+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0AQ2BTot_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0a, q2btot), weight);
354+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FT0AQ2FT0C_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2ft0a, q2ft0c), weight);
355+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FV0AQ2BPos_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2fv0a, q2bpos), weight);
356+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FV0AQ2BNeg_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2fv0a, q2bneg), weight);
357+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FV0AQ2BTot_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2fv0a, q2btot), weight);
358+ fRegistry ->fill (HIST (" Event/bootstrap/hPrfQ2FV0AQ2FT0C_CentFT0C_bootstrap" ), collision.centFT0C (), sample + 0.5 , RecoDecay::dotProd (q2fv0a, q2ft0c), weight);
359+ }
314360} // namespace o2::aod::pwgem::dilepton::utils::eventhistogram
315361#endif // PWGEM_DILEPTON_UTILS_EVENTHISTOGRAMS_H_
0 commit comments