12 using namespace ROOT::VecOps;
14 void vo006_IndexManipulation()
18 RVec<float> muon_pt = {20.0, 30.0, 10.0, 25.0};
19 RVec<float> muon_eta = {1.0, -2.0, 0.5, 2.5};
21 for (
size_t i = 0; i < muon_pt.size(); i++) {
22 std::cout <<
"Muon " << i + 1 <<
" (pt, eta): " << muon_pt[i] <<
", "
23 << muon_eta[i] << std::endl;
27 auto idx_select = Nonzero(muon_pt > 15 && abs(muon_eta) < 2.5);
30 auto idx_sort = Reverse(Argsort(muon_pt));
36 auto idx = Intersect(idx_sort, idx_select);
39 auto good_muon_pt = Take(muon_pt, idx);
40 auto good_muon_eta = Take(muon_eta, idx);
42 for (
size_t i = 0; i < idx.size(); i++) {
43 std::cout <<
"Selected muon " << i + 1 <<
" (pt, eta): " << good_muon_pt[i]
44 <<
", " << good_muon_eta[i] << std::endl;