Iguana LATEST
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
Validator.h
1#pragma once
2
3#include <mutex>
4#include <optional>
5
6#include <hipo4/bank.h>
7
8#include "iguana/algorithms/Algorithm.h"
9#include "iguana/algorithms/AlgorithmSequence.h"
10
11#ifdef IGUANA_ROOT_FOUND
12#include <TStyle.h>
13#endif
14
15namespace iguana {
16
21 class Validator : public Algorithm
22 {
23
24 public:
25
27 Validator(std::string_view name = "validator")
28 : Algorithm(name)
29 , m_output_dir("")
30 {
31#ifdef IGUANA_ROOT_FOUND
32 // set styles for all validators' ROOT plots
33 gStyle->SetOptStat(0);
34 gStyle->SetPalette(55);
35#endif
36 }
37 virtual ~Validator() {}
38
41 void SetOutputDirectory(std::string_view output_dir);
42
45 std::optional<std::string> GetOutputDirectory();
46
47 protected:
48
50 std::unique_ptr<AlgorithmSequence> m_algo_seq;
51
53 mutable std::mutex m_mutex;
54
55 private:
56
57 // hooks are no-ops, since subclasses will implement
58 virtual void ConfigHook() {}
59 virtual void StartHook(hipo::banklist& banks) {}
60 virtual bool RunHook(hipo::banklist& banks) const { return true; }
61 virtual void StopHook() {}
62
64 std::string m_output_dir;
65 };
66}
Algorithm(std::string_view name)
Definition Algorithm.h:73
Base class for all algorithm validators to inherit from.
Definition Validator.h:22
void SetOutputDirectory(std::string_view output_dir)
Validator(std::string_view name="validator")
Definition Validator.h:27
std::mutex m_mutex
Mutex for locking procedures such as histogram filling in Validator::Run.
Definition Validator.h:53
std::optional< std::string > GetOutputDirectory()
std::unique_ptr< AlgorithmSequence > m_algo_seq
An iguana::AlgorithmSequence to be used for this validator.
Definition Validator.h:50