Skip to content
Snippets Groups Projects
Commit 553a1de2 authored by Wouter Deconinck's avatar Wouter Deconinck
Browse files

From filter to lambda

parent 42204e91
No related branches found
No related tags found
1 merge request!131tcs_tests.cxx: plot theta in mrad for various FF detectors
This commit is part of merge request !131. Comments created here will be created in the context of that merge request.
......@@ -28,23 +28,34 @@ void tcs_tests(const char* fname = "rec_tcs.root"){
ROOT::EnableImplicitMT();
ROOT::RDataFrame df("events", fname);
auto ff_theta_mrad = [] (
const std::vector<eic::ReconstructedParticle>& v,
const size_t status
) {
std::vector<float> theta;
for (const auto& p: v) {
if (p.status == status) {
theta.push_back(1000. * p.direction.theta);
}
}
};
auto df0 = df.Define("n_parts", "ReconstructedParticles.size()")
.Define("isQ2gt1", "InclusiveKinematicsTruth.Q2 > 1.0")
.Define("n_Q2gt1", "isQ2gt1.size()")
.Define("theta_mrad", "1000. * ReconstructedFFParticles.direction.theta")
.Define("isFFB0", "ReconstructedFFParticles.status == 1")
.Define("isFFRP", "ReconstructedFFParticles.status == 2")
.Define("isFFOMD", "ReconstructedFFParticles.status == 3")
.Define("isFFZDC", "ReconstructedFFParticles.status == 4")
.Define("ff_theta_mrad_B0", ff_theta_mrad, {"ReconstructedFFParticles", "1"})
.Define("ff_theta_mrad_RP", ff_theta_mrad, {"ReconstructedFFParticles", "2"})
.Define("ff_theta_mrad_OMD", ff_theta_mrad, {"ReconstructedFFParticles", "3"})
.Define("ff_theta_mrad_ZDC", ff_theta_mrad, {"ReconstructedFFParticles", "4"})
;
auto h_n_parts = df0.Histo1D({"h_n_parts", "; h_n_parts n", 10, 0, 10}, "n_parts");
auto h_Q2 = df0.Histo1D({"h_Q2", "; Q^{2} [GeV^{2}/c^{2}]", 100, 0, 30}, "InclusiveKinematicsTruth.Q2");
auto h_FF = df0.Histo1D({"h_FF", "; FF status", 10, -0.5, 9.5}, "ReconstructedFFParticles.status");
auto h_FF_B0 = df0.Filter("isFFB0").Histo1D({"h_FF_B0", "; FF B0 Theta [mrad]", 10, 0.0, 25.0}, "theta_mrad");
auto h_FF_RP = df0.Filter("isFFRP").Histo1D({"h_FF_RP", "; FF RP Theta [mrad]", 10, 0.0, 25.0}, "theta_mrad");
auto h_FF_OMD = df0.Filter("isFFOMD").Histo1D({"h_FF_OMD", "; FF OMD Theta [mrad]", 10, 0.0, 25.0}, "theta_mrad");
auto h_FF_ZDC = df0.Filter("isFFZDC").Histo1D({"h_FF_ZDC", "; FF ZDC Theta [mrad]", 10, 0.0, 25.0}, "theta_mrad");
auto h_FF_B0 = df0.Histo1D({"h_FF_B0", "; FF B0 Theta [mrad]", 100, 0.0, 25.0}, "ff_theta_mrad_B0");
auto h_FF_RP = df0.Histo1D({"h_FF_RP", "; FF RP Theta [mrad]", 100, 0.0, 25.0}, "ff_theta_mrad_RP");
auto h_FF_OMD = df0.Histo1D({"h_FF_OMD", "; FF OMD Theta [mrad]", 100, 0.0, 25.0}, "ff_theta_mrad_OMD");
auto h_FF_ZDC = df0.Histo1D({"h_FF_ZDC", "; FF ZDC Theta [mrad]", 100, 0.0, 25.0}, "ff_theta_mrad_ZDC");
auto n_Q2gt1 = df0.Mean("n_Q2gt1");
auto n_parts = df0.Mean("n_parts");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment