NAGASH 0.9.8
Next Generation Analysis System
Loading...
Searching...
No Matches
HistBase.h
Go to the documentation of this file.
1//***************************************************************************************
4//***************************************************************************************
5
10#pragma once
11
12#include "NAGASH/Global.h"
13#include "NAGASH/HistTool.h"
14#include "NAGASH/NAGASHFile.h"
15#include "NAGASH/Result.h"
16#include "NAGASH/TFileHelper.h"
17
18namespace NAGASH
19{
20 class PlotGroup;
21
26 class HistBase : public Result
27 {
28 friend class PlotGroup;
29
30 public:
32 enum class SystPolicy
33 {
34 Average,
35 Maximum,
36 Variance,
37 CTEQ,
38 Backup,
39 };
40
41 protected:
42 HistBase(std::shared_ptr<MSGTool> MSG, std::shared_ptr<ConfigTool> c, const TString &name, const TString &filename) : Result(MSG, c, name, filename) {}
43 virtual std::shared_ptr<HistBase> CloneVirtual(const TString &name) { return nullptr; }
44
45 public:
46 virtual bool BookSystematicVariation(const TString &name, double corr_factor = 0, SystPolicy policy = SystPolicy::Maximum) { return false; }
47 virtual bool BookSystematicVariation(const TString &name1, const TString &name2, double corr_factor = 0, SystPolicy policy = SystPolicy::Maximum) { return false; }
48 virtual bool BookSystematicVariation(const std::vector<TString> &names, double corr_factor = 0, SystPolicy policy = SystPolicy::Maximum) { return false; }
49 virtual void ClearLinkPlot() {}
50 virtual TH1 *GetNominalHistVirtual() { return nullptr; }
51 virtual size_t GetNVariations() { return 0; }
52 virtual double GetVariationCorrelationFactor(const TString &) { return 0; }
53 virtual TString GetVariationName(uint64_t) { return ""; }
54 virtual std::vector<std::tuple<std::vector<TString>, double, SystPolicy>> GetVariationTypes() { return std::vector<std::tuple<std::vector<TString>, double, SystPolicy>>(); }
55 virtual TH1 *GetVariationVirtual(uint64_t) { return nullptr; }
56 virtual TH1 *GetVariationVirtual(const TString &) { return nullptr; }
57 virtual bool IsBackupVariation(uint64_t) { return false; };
58 virtual bool IsBackupVariation(const TString &) { return false; };
59 virtual bool Process() { return false; }
60 virtual bool Recover() { return false; }
61 virtual bool Recover(TFile *file) { return false; }
62 virtual bool Recover(const TString &filename) { return false; }
63 virtual bool Recover(std::shared_ptr<TFileHelper>) { return false; }
64 virtual bool RegroupSystematicVariation(const std::vector<TString> &names, SystPolicy policy) { return false; }
65 virtual bool RemoveSystematicVariation(const TString &name) { return false; }
66 virtual bool RenameSystematicVariation(const TString &name_old, const TString &name_new) { return false; }
67 virtual void Reset() {}
68 virtual void Scale(double) {}
69 virtual void SetLinkPlot(uint64_t index, std::shared_ptr<HistBase> subplot) {}
70 virtual void SetLinkType(const TString &) {}
71 virtual void SetLinkType(std::function<double(const std::vector<double> &)>, std::function<double(const std::vector<double> &, const std::vector<double> &)>) {}
72 virtual void SetLinkType(std::function<void(const std::vector<TH1 *> &, TH1 *)>) {}
73 virtual bool SetSystematicVariation(uint64_t index) { return false; }
74 virtual bool SetSystematicVariation(const TString &name = "Nominal") { return false; }
75 virtual void SetUnprocessed() {}
76 virtual void Write() {}
77 virtual ~HistBase() = default;
78 };
79
80}
Some global definitions.
Virtual base class for histograms.
Definition HistBase.h:27
virtual TString GetVariationName(uint64_t)
Definition HistBase.h:53
virtual void ClearLinkPlot()
Definition HistBase.h:49
virtual void SetUnprocessed()
Definition HistBase.h:75
virtual size_t GetNVariations()
Definition HistBase.h:51
virtual bool RegroupSystematicVariation(const std::vector< TString > &names, SystPolicy policy)
Definition HistBase.h:64
virtual bool Recover(std::shared_ptr< TFileHelper >)
Definition HistBase.h:63
virtual bool BookSystematicVariation(const std::vector< TString > &names, double corr_factor=0, SystPolicy policy=SystPolicy::Maximum)
Definition HistBase.h:48
virtual void SetLinkType(std::function< double(const std::vector< double > &)>, std::function< double(const std::vector< double > &, const std::vector< double > &)>)
Definition HistBase.h:71
virtual void Reset()
Definition HistBase.h:67
virtual std::shared_ptr< HistBase > CloneVirtual(const TString &name)
Definition HistBase.h:43
virtual bool Recover(const TString &filename)
Definition HistBase.h:62
virtual std::vector< std::tuple< std::vector< TString >, double, SystPolicy > > GetVariationTypes()
Definition HistBase.h:54
virtual TH1 * GetNominalHistVirtual()
Definition HistBase.h:50
virtual bool SetSystematicVariation(const TString &name="Nominal")
Definition HistBase.h:74
virtual bool Process()
Definition HistBase.h:59
virtual void SetLinkType(const TString &)
Definition HistBase.h:70
virtual ~HistBase()=default
virtual bool BookSystematicVariation(const TString &name1, const TString &name2, double corr_factor=0, SystPolicy policy=SystPolicy::Maximum)
Definition HistBase.h:47
virtual TH1 * GetVariationVirtual(const TString &)
Definition HistBase.h:56
virtual bool Recover()
Definition HistBase.h:60
virtual bool IsBackupVariation(const TString &)
Definition HistBase.h:58
virtual void Scale(double)
Definition HistBase.h:68
HistBase(std::shared_ptr< MSGTool > MSG, std::shared_ptr< ConfigTool > c, const TString &name, const TString &filename)
Definition HistBase.h:42
virtual void SetLinkType(std::function< void(const std::vector< TH1 * > &, TH1 *)>)
Definition HistBase.h:72
SystPolicy
Policies of dealing with systematic uncertainties.
Definition HistBase.h:33
@ Backup
not add to total systematic uncertainties, just for future use.
@ Variance
the variance of the all systematic variations in the same group.
@ Maximum
take the maximum difference in the same group.
@ Average
take the average difference in the same group.
virtual double GetVariationCorrelationFactor(const TString &)
Definition HistBase.h:52
virtual bool IsBackupVariation(uint64_t)
Definition HistBase.h:57
virtual bool BookSystematicVariation(const TString &name, double corr_factor=0, SystPolicy policy=SystPolicy::Maximum)
Definition HistBase.h:46
virtual TH1 * GetVariationVirtual(uint64_t)
Definition HistBase.h:55
virtual bool Recover(TFile *file)
Definition HistBase.h:61
virtual void Write()
Definition HistBase.h:76
virtual void SetLinkPlot(uint64_t index, std::shared_ptr< HistBase > subplot)
Definition HistBase.h:69
virtual bool SetSystematicVariation(uint64_t index)
Definition HistBase.h:73
virtual bool RenameSystematicVariation(const TString &name_old, const TString &name_new)
Definition HistBase.h:66
virtual bool RemoveSystematicVariation(const TString &name)
Definition HistBase.h:65
Provide a base class for manipulating a group of histograms at the same time.
Definition PlotGroup.h:18
Provide virtual interface to manipulate all the results inside NAGASH.
Definition Result.h:68