I think the problem is that you are not listing columns to fill your histo2d with, but rather expressions, e.g. fabs(lep_eta).
I think you should go through a Define first, e.g. Define("abs_lep_eta_0","fabs(lep_eta)") and then fill the Histo2D accordingly.
With current RDF, df.Histo1D("vec") is written df.Define("vec0", "vec").Histo1D("vec0").
The reason you can write "vec" in Filter and Define is that they take an expression as argument (either as a string or as a C++ callable), while Histo1D just takes column names. It is in principle possible to add a df.Histo1D("vec") shortcut (PRs are welcome ) but as I discuss in the discussion linked above it’s not completely trivial.