This tutorial shows how to get information about the efficiency of the filters applied.
using FourVectors = std::vector<FourVector>;
void fill_tree(const char *filename, const char *treeName)
{
TFile f(filename,
"RECREATE");
TTree t(treeName, treeName);
double b1;
int b2;
t.Branch("b1", &b1);
t.Branch("b2", &b2);
for (int i = 0; i < 50; ++i) {
b1 = i;
b2 = i * i;
t.Fill();
}
return;
}
{
auto fileName = "tdf004_cutFlowReport.root";
auto treeName = "myTree";
fill_tree(fileName, treeName);
auto cut1 = [](double b1) { return b1 > 25.; };
auto cut2 = [](int b2) { return 0 == b2 % 2; };
auto filtered1 = d.
Filter(cut1, {
"b1"},
"Cut1");
auto filtered2 = d.Filter(cut2, {"b2"}, "Cut2");
auto augmented1 = filtered2.Define("b3", [](double b1, int b2) { return b1 / b2; });
auto cut3 = [](
double x) {
return x < .5; };
auto filtered3 = augmented1.Filter(cut3, {"b3"}, "Cut3");
std::cout << "Cut3 stats:" << std::endl;
filtered3.Report();
std::cout << "All stats:" << std::endl;
d.Report();
}
{
return 0;
}
- Date
- December 2016
- Author
- Danilo Piparo
Definition in file tdf004_cutFlowReport.C.