13 using namespace ROOT::VecOps;
15 void vo003_LogicalOperations()
19 RVec<double> v1{1., 2., 3.};
20 RVec<double> v2{3., 2., 1.};
24 auto v1_gr_v2 = v1 > v2;
25 std::cout << v1 <<
" > " << v2 <<
" = " << v1_gr_v2 << std::endl;
28 auto v1_noteq_v2 = v1 != v2;
29 std::cout << v1 <<
" != " << v2 <<
" = " << v1_noteq_v2 << std::endl;
33 auto all_true = v1 > .5 * v2;
34 std::cout << std::boolalpha;
35 std::cout <<
"All( " << v1 <<
" > .5 * " << v2 <<
" ) = " << All(all_true) << std::endl;
36 std::cout <<
"Any( " << v1 <<
" > " << v2 <<
" ) = " << Any(v1_noteq_v2) << std::endl;
41 RVec<double> v{1., 2., 3., 4., 5.};
42 auto v_filtered = v[v > 3.];
43 std::cout <<
"v = " << v <<
". v[ v > 3. ] = " << v_filtered << std::endl;
47 RVec<double> mu_pt{15., 12., 10.6, 2.3, 4., 3.};
48 RVec<double> mu_eta{1.2, -0.2, 4.2, -5.3, 0.4, -2.};
51 auto good_mu_pt = mu_pt[mu_pt > 10 && abs(mu_eta) < 2.1];
52 std::cout <<
"mu_pt = " << mu_pt <<
" mu_pt[ mu_pt > 10 && abs(mu_eta) < 2.1] = " << good_mu_pt << std::endl;
55 auto masked_mu_pt = Where(abs(mu_eta) < 2., mu_pt, -999.);
56 std::cout <<
"mu_pt if abs(mu_eta) < 2 else -999 = " << masked_mu_pt << std::endl;