BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
HistogramFactory.hh
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3University of London 2001 - 2023.
4
5This file is part of BDSIM.
6
7BDSIM is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published
9by the Free Software Foundation version 3 of the License.
10
11BDSIM is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef HISTOGRAMFACTORY_H
20#define HISTOGRAMFACTORY_H
21
22#include <string>
23
24#include "Rtypes.h" // for classdef
25
26class HistogramDef;
27class HistogramDef1D;
28class HistogramDef2D;
29class HistogramDef3D;
30class HistogramDef4D;
31
32class TH1;
33class TH1D;
34class TH2D;
35class TH3D;
36class BDSBH4DBase;
37
45{
46public:
48 virtual ~HistogramFactory();
49
52 TH1* CreateHistogram(const HistogramDef* definition,
53 const std::string& overRideName = "",
54 const std::string& overRideTitle = "");
55
57 void CheckNameAndTitle(std::string& name,
58 std::string& title,
59 const std::string& overRideName = "",
60 const std::string& overRideTitle = "");
61
63 TH1D* CreateHistogram1D(const HistogramDef1D* d,
64 const std::string& overRideName = "",
65 const std::string& overRideTitle = "");
66
68 TH2D* CreateHistogram2D(const HistogramDef2D* d,
69 const std::string& overRideName = "",
70 const std::string& overRideTitle = "");
71
73 TH3D* CreateHistogram3D(const HistogramDef3D* d,
74 const std::string& overRideName = "",
75 const std::string& overRideTitle = "");
76
79 const std::string& overRideName = "",
80 const std::string& overRideTitle = "");
81
82 ClassDef(HistogramFactory, 1);
83};
84
85#endif
Base class for the 4D histogram classes.
Definition: BDSBH4DBase.hh:37
Specification for 1D histogram.
Specification for 2D histogram.
Specification for 3D Histogram.
Specification for 4D Histogram.
Common specification for a histogram.
Definition: HistogramDef.hh:34
Class to manufacture histograms.
void CheckNameAndTitle(std::string &name, std::string &title, const std::string &overRideName="", const std::string &overRideTitle="")
Whether name is set or not.
TH3D * CreateHistogram3D(const HistogramDef3D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 3D histogram.
TH2D * CreateHistogram2D(const HistogramDef2D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 2D histogram.
BDSBH4DBase * CreateHistogram4D(const HistogramDef4D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 4D histogram.
TH1D * CreateHistogram1D(const HistogramDef1D *d, const std::string &overRideName="", const std::string &overRideTitle="")
Create 1D histogram.
TH1 * CreateHistogram(const HistogramDef *definition, const std::string &overRideName="", const std::string &overRideTitle="")