11 #ifndef ROOT_RCUTFLOWREPORT
12 #define ROOT_RCUTFLOWREPORT
31 friend class RCutFlowReport;
32 friend class ROOT::Detail::RDF::RFilterBase;
35 const std::string fName;
36 const ULong64_t fPass;
38 TCutInfo(
const std::string &name, ULong64_t pass, ULong64_t all) : fName(name), fPass(pass), fAll(all) {}
41 const std::string &GetName()
const {
return fName; }
42 ULong64_t GetAll()
const {
return fAll; }
43 ULong64_t GetPass()
const {
return fPass; }
44 float GetEff()
const {
return 100.f * (fPass / float(fAll)); }
47 class RCutFlowReport {
48 friend class ROOT::Detail::RDF::RFilterBase;
51 std::vector<TCutInfo> fCutInfos;
52 void AddCut(TCutInfo &&ci) { fCutInfos.emplace_back(std::move(ci)); };
55 using const_iterator =
typename std::vector<TCutInfo>::const_iterator;
57 const TCutInfo &operator[](std::string_view cutName);
58 const TCutInfo &At(std::string_view cutName) {
return operator[](cutName); }
59 const_iterator begin()
const {
return fCutInfos.begin(); }
60 const_iterator end()
const {
return fCutInfos.end(); }