@@ -66,7 +66,9 @@ class RRDFCardinalityField : public ROOT::Experimental::Detail::RFieldBase {
66
66
public:
67
67
static std::string TypeName () { return " std::size_t" ; }
68
68
RRDFCardinalityField ()
69
- : ROOT::Experimental::Detail::RFieldBase(" " , TypeName(), ENTupleStructure::kLeaf , false /* isSimple */ ) {}
69
+ : ROOT::Experimental::Detail::RFieldBase(" " , TypeName(), ENTupleStructure::kLeaf , false /* isSimple */ )
70
+ {
71
+ }
70
72
RRDFCardinalityField (RRDFCardinalityField &&other) = default ;
71
73
RRDFCardinalityField &operator =(RRDFCardinalityField &&other) = default ;
72
74
~RRDFCardinalityField () = default ;
@@ -151,7 +153,10 @@ class RNTupleColumnReader : public ROOT::Detail::RDF::RColumnReaderBase {
151
153
152
154
} // namespace Internal
153
155
154
- RNTupleDS::~RNTupleDS () = default ;
156
+ RNTupleDS::~RNTupleDS ()
157
+ {
158
+ fMetrics .Print (std::cout);
159
+ }
155
160
156
161
void RNTupleDS::AddField (const RNTupleDescriptor &desc, std::string_view colName, DescriptorId_t fieldId,
157
162
std::vector<DescriptorId_t> skeinIDs)
@@ -202,8 +207,8 @@ void RNTupleDS::AddField(const RNTupleDescriptor &desc, std::string_view colName
202
207
cardinalityField->SetOnDiskId (fieldId);
203
208
fColumnNames .emplace_back (" R_rdf_sizeof_" + std::string (colName));
204
209
fColumnTypes .emplace_back (cardinalityField->GetType ());
205
- auto cardColReader = std::make_unique<ROOT::Experimental::Internal::RNTupleColumnReader>(
206
- std::move (cardinalityField));
210
+ auto cardColReader =
211
+ std::make_unique<ROOT::Experimental::Internal::RNTupleColumnReader>( std:: move (cardinalityField));
207
212
fColumnReaderPrototypes .emplace_back (std::move (cardColReader));
208
213
209
214
for (const auto &f : desc.GetFieldIterable (fieldDesc.GetId ())) {
@@ -255,8 +260,8 @@ void RNTupleDS::AddField(const RNTupleDescriptor &desc, std::string_view colName
255
260
if (cardinalityField) {
256
261
fColumnNames .emplace_back (" R_rdf_sizeof_" + std::string (colName));
257
262
fColumnTypes .emplace_back (cardinalityField->GetType ());
258
- auto cardColReader = std::make_unique<ROOT::Experimental::Internal::RNTupleColumnReader>(
259
- std::move (cardinalityField));
263
+ auto cardColReader =
264
+ std::make_unique<ROOT::Experimental::Internal::RNTupleColumnReader>( std:: move (cardinalityField));
260
265
fColumnReaderPrototypes .emplace_back (std::move (cardColReader));
261
266
}
262
267
@@ -267,9 +272,11 @@ void RNTupleDS::AddField(const RNTupleDescriptor &desc, std::string_view colName
267
272
fColumnReaderPrototypes .emplace_back (std::move (valColReader));
268
273
}
269
274
270
- RNTupleDS::RNTupleDS (std::unique_ptr<Detail::RPageSource> pageSource)
275
+ RNTupleDS::RNTupleDS (std::unique_ptr<Detail::RPageSource> pageSource) : fMetrics ( " RDF " )
271
276
{
272
277
pageSource->Attach ();
278
+ fMetrics .ObserveMetrics (pageSource->GetMetrics ());
279
+ fMetrics .Enable ();
273
280
auto descriptorGuard = pageSource->GetSharedDescriptorGuard ();
274
281
fSources .emplace_back (std::move (pageSource));
275
282
@@ -355,6 +362,7 @@ void RNTupleDS::SetNSlots(unsigned int nSlots)
355
362
} // namespace ROOT
356
363
357
364
ROOT::RDataFrame ROOT::RDF::Experimental::FromRNTuple (std::string_view ntupleName, std::string_view fileName)
365
+
358
366
{
359
367
auto pageSource = ROOT::Experimental::Detail::RPageSource::Create (ntupleName, fileName);
360
368
ROOT::RDataFrame rdf (std::make_unique<ROOT::Experimental::RNTupleDS>(std::move (pageSource)));
0 commit comments