19typedef std::vector<Direction> Directions;
51 Cut(std::string new_name);
64 virtual Cut*
clone(std::string new_name);
115 LambdaCut(std::string new_name, std::function<
bool()> new_evaluate_lambda);
124 LambdaCut(std::string new_name, std::function<
bool()> new_evaluate_lambda,
125 std::function<
double()> new_weight_lambda);
192 void recursivePrint(std::string tabs,
Cut* cut, Direction direction,
bool show_timing =
false);
201 void recursiveWrite(
Cut* cut, std::ofstream& ofstream, std::string output_cflow);
213 Utilities::CSVFiles csv_files);
285 void insert(std::string target_cut_name,
Cut* new_cut, Direction direction);
294 void insert(
Cut* target_cut,
Cut* new_cut, Direction direction);
302 void replace(std::string target_cut_name,
Cut* new_cut);
318 void remove(std::string target_cut_name);
340 bool run(
Cut* target_cut);
348 bool run(std::string target_cut_name);
356 std::vector<bool>
run(std::vector<Cut*> target_cuts);
364 std::vector<bool>
run(std::vector<std::string> target_cuts);
374 bool isProgeny(std::string parent_cut_name, std::string target_cut_name, Direction direction);
405 void print(
bool show_timing =
false);
412 void write(std::string output_dir =
"");
419 void writeCSV(std::string output_dir =
"");
427 void writeMermaid(std::string output_dir =
"", std::string orientation =
"TD");
int n_pass
Definition cutflow.h:36
double n_pass_weighted
Definition cutflow.h:40
Cut * right
Definition cutflow.h:32
Cut * left
Definition cutflow.h:34
virtual bool evaluate()
Definition cutflow.cc:43
virtual double weight()
Definition cutflow.cc:61
virtual Cut * clone(std::string new_name)
Definition cutflow.cc:18
Utilities::RunningStat runtimes
Definition cutflow.h:44
bool getResult()
Definition cutflow.cc:48
virtual ~Cut()
Definition cutflow.cc:16
void print()
Definition cutflow.cc:23
Cut * parent
Definition cutflow.h:30
std::string name
Definition cutflow.h:28
Cut(std::string new_name)
Definition cutflow.cc:3
double n_fail_weighted
Definition cutflow.h:42
double getWeight()
Definition cutflow.cc:66
int n_fail
Definition cutflow.h:38
Cut * findTerminus(std::string starting_cut_name)
Definition cutflow.cc:373
void print(bool show_timing=false)
Definition cutflow.cc:384
void setDebugLambda(std::function< void(Cut *)> new_debugger)
Definition cutflow.cc:653
Cutflow()
Definition cutflow.cc:116
Cut * getCut(std::string cut_name)
Definition cutflow.cc:434
void recursiveWriteMermaid(Cut *cut, std::ofstream &ofstream, std::string output_mmd)
Definition cutflow.cc:620
std::string name
Definition cutflow.h:240
void replace(std::string target_cut_name, Cut *new_cut)
Definition cutflow.cc:200
virtual bool recursiveEvaluate(Cut *cut)
Definition cutflow.cc:517
void recursiveWriteCSV(std::string output_dir, Cut *cut, Direction direction, int csv_idx, Utilities::CSVFiles csv_files)
Definition cutflow.cc:581
void write(std::string output_dir="")
Definition cutflow.cc:391
void writeCSV(std::string output_dir="")
Definition cutflow.cc:399
void recursivePrint(std::string tabs, Cut *cut, Direction direction, bool show_timing=false)
Definition cutflow.cc:469
void recursiveWrite(Cut *cut, std::ofstream &ofstream, std::string output_cflow)
Definition cutflow.cc:557
Cut * recursiveFindTerminus(Cut *cut)
Definition cutflow.cc:463
Utilities::Variables globals
Definition cutflow.h:242
std::map< std::string, Cut * > cut_record
Definition cutflow.h:156
void insert(std::string target_cut_name, Cut *new_cut, Direction direction)
Definition cutflow.cc:156
virtual bool run()
Definition cutflow.cc:292
Cut * root
Definition cutflow.h:154
bool isProgeny(std::string parent_cut_name, std::string target_cut_name, Direction direction)
Definition cutflow.cc:348
bool recursiveSearchProgeny(Cut *cut, Cut *target_cut)
Definition cutflow.cc:448
std::function< void(Cut *)> debugger
Definition cutflow.h:158
void writeMermaid(std::string output_dir="", std::string orientation="TD")
Definition cutflow.cc:416
void setRoot(Cut *new_root)
Definition cutflow.cc:142
void remove(std::string target_cut_name)
Definition cutflow.cc:243
~Cutflow()
Definition cutflow.cc:140
void recursiveDelete(Cut *cut)
Definition cutflow.cc:546
bool debugger_is_set
Definition cutflow.h:160
LambdaCut * clone(std::string new_name)
Definition cutflow.cc:101
std::function< bool()> evaluate_lambda
Definition cutflow.h:105
std::function< double()> weight_lambda
Definition cutflow.h:107
bool evaluate()
Definition cutflow.cc:106
double weight()
Definition cutflow.cc:111
LambdaCut(std::string new_name, std::function< bool()> new_evaluate_lambda)
Definition cutflow.cc:86
Definition utilities.h:21
Definition utilities.h:216