1+ #include < ROOT/RNTuple.hxx>
12#include < ROOT/RNTupleDS.hxx>
23#include < ROOT/RDataFrame.hxx>
34
@@ -22,7 +23,8 @@ double GetKE(double px, double py, double pz)
2223 return sqrt (p2 + kKaonMassMeV *kKaonMassMeV );
2324}
2425
25- auto Dataframe (ROOT::RDataFrame &frame)
26+ template <typename DF>
27+ auto Dataframe (DF &frame)
2628{
2729 auto fn_muon_cut = [](int is_muon) { return !is_muon; };
2830 auto fn_k_cut = [](double prob_k) { return prob_k > 0.5 ; };
@@ -48,21 +50,30 @@ auto Dataframe(ROOT::RDataFrame &frame)
4850 .Define (" K3_E" , GetKE, {" H3_PX" , " H3_PY" , " H3_PZ" })
4951 .Define (" B_E" , fn_sum, {" K1_E" , " K2_E" , " K3_E" })
5052 .Define (" B_m" , fn_mass, {" B_E" , " B_P2" });
51- auto hMass = df_mass.Histo1D <double >({" B_mass" , " " , 500 , 5050 , 5500 }, " B_m" );
53+ auto hMass = df_mass.template Histo1D <double >({" B_mass" , " " , 500 , 5050 , 5500 }, " B_m" );
5254
5355 return hMass;
5456}
5557} // namespace
5658
5759static void BM_RNTupleDS_LHCB (benchmark::State &state)
5860{
61+ auto model = ROOT::Experimental::RNTupleModel::Create ();
62+ auto ntuple =
63+ ROOT::Experimental::RNTupleReader::Open (std::move (model), " DecayTree" , RB::GetDataDir () + " /B2HHH~none.ntuple" );
64+ const Long64_t nEntries = ntuple->GetNEntries () * (state.range (0 ) / 100 .);
65+
5966 auto df = ROOT::Experimental::MakeNTupleDataFrame (" DecayTree" , RB::GetDataDir () + " /B2HHH~none.ntuple" );
60- auto h_ptr = Dataframe (df);
67+ auto df2 = df.Range (nEntries);
68+ auto h_ptr = Dataframe (df2);
6169 for (auto _ : state)
6270 *h_ptr;
63- RB::Ensure (int (h_ptr->GetMean ()) == 5262 );
64- RB::Ensure (int (h_ptr->GetEntries ()) == 23895 );
71+ if (state.range (0 ) == 100 ) {
72+ // some sanity checks
73+ RB::Ensure (int (h_ptr->GetMean ()) == 5262 );
74+ RB::Ensure (int (h_ptr->GetEntries ()) == 23895 );
75+ }
6576}
66- BENCHMARK (BM_RNTupleDS_LHCB)->Unit(benchmark::kMicrosecond )->Iterations(1 );
77+ BENCHMARK (BM_RNTupleDS_LHCB)->Unit(benchmark::kMicrosecond )->Iterations(1 )->Arg( 100 )->Arg( 50 )->Arg( 25 ) ;
6778
6879BENCHMARK_MAIN ();
0 commit comments