5#ifndef dqutilsHanOutputFile_h
6#define dqutilsHanOutputFile_h
13#include <nlohmann/json.hpp>
40 typedef std::map<std::string, TDirectory*>
DirMap_t;
42 typedef std::map<std::string, std::string>
AssMap_t;
53 const std::string& objName);
59 static void printDQGroupJSON(
const nlohmann::json& j,
const std::string& location,
const char* path_to_file);
61 static std::string
getStringName(
const std::string& location,
int file_version);
62 static std::string
getInfo(
const std::string& location,
int file_version);
63 static std::string
getInfo(
const std::string& JSON_str);
66 static std::string
getIndentation(
const std::string& pathName,
const std::string& leadingSpace =
"");
74 virtual bool setFile(
const std::string& fileName);
97 virtual int saveAllHistograms(
const std::string& location,
bool drawRefs,
const std::string& run_min_LB,
113 const std::string& pathInJSON,
const std::string& jsonName,
const std::string& path_to_JSON);
115 virtual bool saveHistogramToFile(
const std::string& nameHis, std::string location, TDirectory* groupDir,
117 const std::string& run_min_LB,
const std::string& pathName,
int cnvsType = 1);
119 virtual std::pair<std::string, std::string>
getHistogram(
const std::string& nameHis, TDirectory* groupDir,
121 const std::string& run_min_LB,
const std::string& pathName,
125 const std::string& nameHis, TDirectory* groupDir,
bool drawRefs,
const std::string& run_min_LB,
126 const std::string& pathName);
129 const std::string& nameHis, TDirectory* groupDir,
bool drawRefs,
const std::string& run_min_LB,
130 const std::string& pathName);
133 TDirectory* groupDir1,
134 TDirectory* groupDir2,
bool drawRefs,
const std::string& run_min_LB,
135 const std::string& pathName,
int cnvsType = 1);
138 virtual bool drawH2(TCanvas* canv, TH2* hist, std::string& drawopt, std::string& display);
141 TCanvas* canv, TH1* hist, TH1*
reference, std::string& drawopt, std::string& display, std::string& AlgoName);
144 TCanvas* canv, TH1* hRef, TH1*
h, std::string& drawopt, std::string& display, std::string& AlgoName);
147 virtual void ratioplot(TCanvas* myC_main, TH1*
h, TH1* href, std::string
str);
149 virtual void ratioplot2D(TCanvas* canvas, TH2* h2, TH2* h2Ref, std::string display);
151 virtual void attachFits(TH1* hist, std::string& drawopt, std::string& display);
153 virtual void setupCanvas(std::string& drawopt, std::string& display);
159 virtual void formatTH1(TCanvas* c, TH1*
h)
const;
160 virtual void formatTH2(TCanvas* c, TH2*
h)
const;
164 virtual double getNEntries(std::string location, std::string histname);
169 int cnvsType, TCanvas* myC, std::string&
json, TImage** img = 0,
char**
x = 0,
int*
y = 0);
170 virtual void convertToGraphics(
int cnvsType, TCanvas* myC,
const std::string& namePNG,
const std::string& nameJSON);
173 int cnvsType,
const std::string& pngfName,
const std::string& pngContent,
const std::string& jsonfName,
174 const std::string& jsonfContent);
176 virtual bool writeToFile(
const std::string& fName,
const std::string& content);
Define macros for attributes used to control the static checker.
Header file for AthHistogramAlgorithm.
static void printDQGroupJSON(const nlohmann::json &j, const std::string &location, const char *path_to_file)
Print path - and name of Assessment, represented as JSON TObjString.
virtual void formatTEfficiency(TCanvas *c, TEfficiency *e) const
static std::optional< std::string > containsKeyInJSON(const std::string &pathInJSON, const std::string &jsonName, const std::string &path_to_JSON)
Checks JSON file for a key (by its path)
virtual bool writeToFile(const std::string &fName, const std::string &content)
virtual void printAllDQGroups()
virtual void polynomial(TCanvas *c, std::string str, TH1 *h)
virtual void streamHistoAssessments(std::ostream &o, bool streamAll)
virtual bool saveFile(int cnvsType, const std::string &pngfName, const std::string &pngContent, const std::string &jsonfName, const std::string &jsonfContent)
virtual bool setFile(const std::string &fileName)
Clears all previous data and opens the file with the given name for analysis, returning a boolean ind...
std::map< std::string, TObject * > DirStrMap_t
virtual void attachFits(TH1 *hist, std::string &drawopt, std::string &display)
virtual void ratioplot(TCanvas *myC_main, TH1 *h, TH1 *href, std::string str)
virtual double getNEntries(std::string location, std::string histname)
virtual void convertToGraphics(int cnvsType, TCanvas *myC, std::string &json, TImage **img=0, char **x=0, int *y=0)
virtual bool drawH2(TCanvas *canv, TH2 *hist, std::string &drawopt, std::string &display)
!!
virtual int getFileVersion()
static std::string processJSON_ingetInfo(const nlohmann::ordered_json &j)
virtual bool drawH1(TCanvas *canv, TH1 *hist, TH1 *reference, std::string &drawopt, std::string &display, std::string &AlgoName)
virtual std::string getHistogramPNG(const std::string &nameHis, TDirectory *groupDir, bool drawRefs, const std::string &run_min_LB, const std::string &pathName)
virtual void formatTH2(TCanvas *c, TH2 *h) const
virtual void displayExtra(TCanvas *c, const std::string &str)
virtual void streamAllDQAssessments(std::ostream &o, bool streamAll)
virtual void axisOption(std::string str, TH1 *h)
static std::string getIndentation(const std::string &pathName, const std::string &leadingSpace="")
DirStrMap_t m_indirstrMap
static const int GENERATE_JSON
static std::string getStringName(const std::string &location, int file_version)
virtual void ratioplot2D(TCanvas *canvas, TH2 *h2, TH2 *h2Ref, std::string display)
virtual std::string stringAllHistograms()
virtual std::string stringListSystemPaths(std::string location)
std::map< std::string, AssMap_t * > DirToAssMap_t
virtual std::string stringHistoAssessments()
std::map< std::string, std::string > AssMap_t
DirMap_t but For Version 2 files.
virtual std::pair< std::string, std::string > getHistogramJSON(const std::string &nameHis, TDirectory *groupDir, bool drawRefs, const std::string &run_min_LB, const std::string &pathName)
static void getAllGroupDirs_V2(DirStrMap_t &dirstrmap, TObject *obj, const std::string &objName)
Same as getAllGroupDirs, but works with Version 2.3 files.
virtual std::pair< std::string, std::string > getHistogram(const std::string &nameHis, TDirectory *groupDir, bool drawRefs, const std::string &run_min_LB, const std::string &pathName, int cnvsType=1)
virtual void printHistoAssessments()
virtual std::string stringAllDQAssessments()
static void getAllAssessments(AssMap_t &dirmap, TDirectory *dir)
virtual void setupCanvas(std::string &drawopt, std::string &display)
static bool containsDir(std::string dirname, std::string maindir)
virtual bool saveHistogramToFile(const std::string &nameHis, std::string location, TDirectory *groupDir, bool drawRefs, const std::string &run_min_LB, const std::string &pathName, int cnvsType=1)
std::map< std::string, TDirectory * > DirMap_t
virtual void streamAllHistograms(std::ostream &o, bool streamAll)
static void getAllGroupDirs(DirMap_t &dirmap, TDirectory *dir, const std::string &dirName)
virtual bool saveHistogramToFileSuperimposed(const std::string &nameHis, std::string location, TDirectory *groupDir1, TDirectory *groupDir2, bool drawRefs, const std::string &run_min_LB, const std::string &pathName, int cnvsType=1)
virtual void formatTGraph(TCanvas *c, TGraph *g) const
virtual void printAllDQAssessments()
static std::string getInfo(const std::string &location, int file_version)
virtual bool drawReference(TCanvas *canv, TH1 *hRef, TH1 *h, std::string &drawopt, std::string &display, std::string &AlgoName)
virtual int saveAllHistograms(const std::string &location, bool drawRefs, const std::string &run_min_LB, int cnvsType=1)
virtual void formatTH1(TCanvas *c, TH1 *h) const
static const int GENERATE_PNG
cnvsType: 1=pngOnly;2=jsonOnly;3=pngAndJson
DirToAssMap_t m_assessMap
Same Dim_indirMaprMap, but for files of version 2.
void getImageBuffer ATLAS_NOT_THREAD_SAFE(TImage **img, TCanvas *myC, char **x, int *y)
std::string dirname(std::string name)