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) BDSIM Collaboration, 2001 - 2026.
3
4This file is part of BDSIM.
5
6BDSIM is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published
8by the Free Software Foundation version 3 of the License.
9
10BDSIM is distributed in the hope that it will be useful, but
11WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef HISTOGRAMFACTORY_H
19#define HISTOGRAMFACTORY_H
20
21#include <string>
22
23#include "Rtypes.h" // for classdef
24
25class HistogramDef;
26class HistogramDef1D;
27class HistogramDef2D;
28class HistogramDef3D;
29class HistogramDef4D;
30
31class TH1;
32class TH1D;
33class TH2D;
34class TH3D;
35class BDSBH4DBase;
36
44{
45public:
47 virtual ~HistogramFactory();
48
51 TH1* CreateHistogram(const HistogramDef* definition,
52 const std::string& overRideName = "",
53 const std::string& overRideTitle = "");
54
56 void CheckNameAndTitle(std::string& name,
57 std::string& title,
58 const std::string& overRideName = "",
59 const std::string& overRideTitle = "");
60
62 TH1D* CreateHistogram1D(const HistogramDef1D* d,
63 const std::string& overRideName = "",
64 const std::string& overRideTitle = "");
65
67 TH2D* CreateHistogram2D(const HistogramDef2D* d,
68 const std::string& overRideName = "",
69 const std::string& overRideTitle = "");
70
72 TH3D* CreateHistogram3D(const HistogramDef3D* d,
73 const std::string& overRideName = "",
74 const std::string& overRideTitle = "");
75
78 const std::string& overRideName = "",
79 const std::string& overRideTitle = "");
80
81 ClassDef(HistogramFactory, 1);
82};
83
84#endif
Base class for the 4D histogram classes.
Specification for 1D histogram.
Specification for 2D histogram.
Specification for 3D Histogram.
Specification for 4D Histogram.
Common specification for a histogram.
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="")