Project
Loading...
Searching...
No Matches
HistoManager.h
Go to the documentation of this file.
1// Copyright 2019-2026 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef _O2_HISTOMANAGER_H_
13#define _O2_HISTOMANAGER_H_
14
15#include <string>
16#include <Rtypes.h>
17#include "TObjArray.h"
18
19class TH1;
20class TH2;
21class TH1F;
22class TH2F;
23class TProfile;
24class TGraph;
25class TFile;
26
27namespace o2
28{
29
30class HistoManager : public TObjArray
31{
32 public:
33 HistoManager(const std::string& dirname = "", const std::string& fname = "histoman.root", bool load = kFALSE, const std::string& prefix = "");
34 ~HistoManager() override { Delete(); }
35
36 HistoManager* createClone(const std::string& prefix) const;
37 void addPrefix(const std::string& pref = "");
38
39 int getNHistos() const { return mNHistos; }
40 TGraph* getGraph(int id) const;
41 TH1* getHisto(int id) const;
42 TH1* getHisto(const std::string& name) const;
43 TH1F* getHisto1F(int id) const;
44 TH2F* getHisto2F(int id) const;
45 TProfile* getHistoP(int id) const;
46
47 int addHisto(TH1* histo, int at = -1);
48 int addGraph(TGraph* gr, int at = -1);
49 void delHisto(int at);
50
51 void setFile(TFile* file);
52 void setFileName(const std::string& fname);
53 const std::string& getFileName() const { return mDefName; }
54 void setDirName(const std::string& name) { mDirName = name; }
55 const std::string& getDirName() const { return mDirName; }
56
57 void reset();
58 void write(TFile* file = nullptr);
59 int write(const std::string& flname)
60 {
61 setFileName(flname);
62 write();
63 return 0;
64 }
65
66 void addHistos(const HistoManager* hm, Double_t c1 = 1.);
67 void divideHistos(const HistoManager* hm);
68 void multiplyHistos(const HistoManager* hm);
69 void scaleHistos(Double_t c1 = 1.);
70 void setColor(int tcolor = 1);
71 void setMarkerStyle(Style_t mstyle = 1, Size_t msize = 1);
72 void setMarkerSize(Size_t msize = 1);
73 void sumw2();
74 int load(const std::string& fname, const std::string& dirname = "");
75
76 void purify(bool emptyToo = kFALSE);
77
78 void Print(Option_t* option = "") const override;
79 void Clear(Option_t* option = "") override;
80 void Delete(Option_t* option = "") override;
81 void Compress() override;
82
83 private:
84 int mNHistos{0};
85 std::string mDefName{};
86 std::string mDirName{};
87
88 ClassDefOverride(HistoManager, 0);
89};
90
91} // namespace o2
92
93#endif // _O2_HISTOMANAGER_H_
void purify(bool emptyToo=kFALSE)
void delHisto(int at)
TH1F * getHisto1F(int id) const
int addHisto(TH1 *histo, int at=-1)
void Compress() override
HistoManager * createClone(const std::string &prefix) const
void scaleHistos(Double_t c1=1.)
void addPrefix(const std::string &pref="")
void setMarkerStyle(Style_t mstyle=1, Size_t msize=1)
int load(const std::string &fname, const std::string &dirname="")
void setDirName(const std::string &name)
TProfile * getHistoP(int id) const
void addHistos(const HistoManager *hm, Double_t c1=1.)
void Delete(Option_t *option="") override
const std::string & getFileName() const
void setColor(int tcolor=1)
void divideHistos(const HistoManager *hm)
const std::string & getDirName() const
void Clear(Option_t *option="") override
TGraph * getGraph(int id) const
void Print(Option_t *option="") const override
~HistoManager() override
int getNHistos() const
int write(const std::string &flname)
TH2F * getHisto2F(int id) const
void setMarkerSize(Size_t msize=1)
void write(TFile *file=nullptr)
TH1 * getHisto(int id) const
int addGraph(TGraph *gr, int at=-1)
void setFile(TFile *file)
void setFileName(const std::string &fname)
void multiplyHistos(const HistoManager *hm)
GLuint const GLchar * name
Definition glcorearb.h:781
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...