@@ -31,16 +31,16 @@ namespace tag
31
31
struct Muon_mass {};
32
32
}
33
33
34
- using Event = llama::DS <
35
- llama::DE <tag::Muons_end, ROOT::Experimental::ClusterSize_t>
34
+ using Event = llama::Record <
35
+ llama::Field <tag::Muons_end, ROOT::Experimental::ClusterSize_t>
36
36
>;
37
37
38
- using Muon = llama::DS <
39
- llama::DE <tag::Muon_charge, std::int32_t >,
40
- llama::DE <tag::Muon_phi, float >,
41
- llama::DE <tag::Muon_pt, float >,
42
- llama::DE <tag::Muon_eta, float >,
43
- llama::DE <tag::Muon_mass, float >
38
+ using Muon = llama::Record <
39
+ llama::Field <tag::Muon_charge, std::int32_t >,
40
+ llama::Field <tag::Muon_phi, float >,
41
+ llama::Field <tag::Muon_pt, float >,
42
+ llama::Field <tag::Muon_eta, float >,
43
+ llama::Field <tag::Muon_mass, float >
44
44
>;
45
45
// clang-format on
46
46
@@ -97,7 +97,8 @@ auto buildRNTupleFileModel(const std::string& path)
97
97
// we cannot copy the offsets stored in the RNTuple directly, because they are local to the cluster they reside in.
98
98
// To correctly interpret this information, we would need access to the ClusterInfo stored in the RPage, which is
99
99
// not reachable via RNTupleReader.
100
- auto copyOffsets = [](ROOT::Experimental::RNTupleViewCollection& view, std::vector<Page>& dstPages) {
100
+ auto copyOffsets = [](ROOT::Experimental::RNTupleViewCollection& view, std::vector<Page>& dstPages)
101
+ {
101
102
using FieldType = ROOT::Experimental::ClusterSize_t;
102
103
FieldType* dst = nullptr ;
103
104
auto offset = FieldType{0 };
@@ -118,7 +119,8 @@ auto buildRNTupleFileModel(const std::string& path)
118
119
}
119
120
};
120
121
121
- auto copy = []<typename FieldType>(ROOT::Experimental::RNTupleView<FieldType>& view, std::vector<Page>& dstPages) {
122
+ auto copy = []<typename FieldType>(ROOT::Experimental::RNTupleView<FieldType>& view, std::vector<Page>& dstPages)
123
+ {
122
124
FieldType* dst = nullptr ;
123
125
std::size_t written = 0 ;
124
126
for (auto i : view.GetFieldRange ())
@@ -173,14 +175,16 @@ int main(int argc, const char* argv[])
173
175
auto & Muon_massPages = rntuple.at (" Muon_mass" );
174
176
175
177
start = std::chrono::steady_clock::now ();
176
- auto viewEventPage = [&](std::size_t i) {
178
+ auto viewEventPage = [&](std::size_t i)
179
+ {
177
180
return llama::View{
178
- llama::mapping::SoA<llama::ArrayDomain <1 >, Event, std::true_type >{llama::ArrayDomain {elementsPerPage}},
181
+ llama::mapping::SoA<llama::ArrayDims <1 >, Event, true >{llama::ArrayDims {elementsPerPage}},
179
182
llama::Array<std::byte*, 1 >{Muons_endPages.at (i).data ()}};
180
183
};
181
- auto viewMuonPage = [&](std::size_t i) {
184
+ auto viewMuonPage = [&](std::size_t i)
185
+ {
182
186
return llama::View{
183
- llama::mapping::SoA<llama::ArrayDomain <1 >, Muon, std::true_type >{llama::ArrayDomain {elementsPerPage}},
187
+ llama::mapping::SoA<llama::ArrayDims <1 >, Muon, true >{llama::ArrayDims {elementsPerPage}},
184
188
llama::Array<std::byte*, 5 >{
185
189
Muon_chargePages.at (i).data (),
186
190
Muon_phiPages.at (i).data (),
@@ -202,7 +206,8 @@ int main(int argc, const char* argv[])
202
206
const auto eventsOnThisPage = std::min (elementsPerPage, entries - ep * elementsPerPage);
203
207
for (std::size_t e = 0 ; e < eventsOnThisPage; e++)
204
208
{
205
- const auto muonOffset = [&]() {
209
+ const auto muonOffset = [&]()
210
+ {
206
211
if (e == 0 )
207
212
{
208
213
if (ep == 0 )
@@ -222,7 +227,8 @@ int main(int argc, const char* argv[])
222
227
const auto muonPageInnerIndex = muonOffset % elementsPerPage;
223
228
auto muonView = viewMuonPage (muonPageIndex);
224
229
225
- auto processDimuons = [&](auto dimuonView) {
230
+ auto processDimuons = [&](auto dimuonView)
231
+ {
226
232
if (dimuonView (0u )(tag::Muon_charge{}) == dimuonView (1u )(tag::Muon_charge{}))
227
233
return ;
228
234
@@ -250,7 +256,7 @@ int main(int argc, const char* argv[])
250
256
processDimuons (llama::VirtualView{muonView, {muonPageInnerIndex}, {2 }});
251
257
else
252
258
{
253
- constexpr auto mapping = llama::mapping::SoA<llama::ArrayDomain <1 >, Muon>{{2 }};
259
+ constexpr auto mapping = llama::mapping::SoA<llama::ArrayDims <1 >, Muon>{{2 }};
254
260
auto dimuonView = llama::allocView (mapping, llama::bloballoc::Stack<mapping.blobSize (0 )>{});
255
261
dimuonView (0u ) = muonView (muonPageInnerIndex);
256
262
dimuonView (1u ) = viewMuonPage (muonPageIndex + 1 )(0u );
0 commit comments