Logo ROOT   6.12/06
Reference Guide
TDFHistoModels.cxx
Go to the documentation of this file.
1 // Author: Enrico Guiraud, Danilo Piparo CERN 09/2017
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2017, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 
11 #include <ROOT/TSeq.hxx>
12 #include <ROOT/TDFHistoModels.hxx>
13 
14 #include <TH1D.h>
15 #include <TH2D.h>
16 #include <TH3D.h>
17 #include <TProfile.h>
18 #include <TProfile2D.h>
19 
20 /**
21 * \class ROOT::Experimental::TDF::TH1DModel
22 * \ingroup dataframe
23 * \brief A struct which stores the parameters of a TH1D
24 *
25 * \class ROOT::Experimental::TDF::TH2DModel
26 * \ingroup dataframe
27 * \brief A struct which stores the parameters of a TH2D
28 *
29 * \class ROOT::Experimental::TDF::TH3DModel
30 * \ingroup dataframe
31 * \brief A struct which stores the parameters of a TH3D
32 *
33 * \class ROOT::Experimental::TDF::TProfile1DModel
34 * \ingroup dataframe
35 * \brief A struct which stores the parameters of a TProfile
36 *
37 * \class ROOT::Experimental::TDF::TProfile2DModel
38 * \ingroup dataframe
39 * \brief A struct which stores the parameters of a TProfile2D
40 */
41 
42 namespace ROOT {
43 namespace Experimental {
44 namespace TDF {
45 
47  : fName(h.GetName()), fTitle(h.GetTitle()), fNbinsX(h.GetNbinsX()), fXLow(h.GetXaxis()->GetXmin()),
48  fXUp(h.GetXaxis()->GetXmax())
49 {
50 }
51 TH1DModel::TH1DModel(const char *name, const char *title, int nbinsx, double xlow, double xup)
52  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup)
53 {
54 }
55 TH1DModel::TH1DModel(const char *name, const char *title, int nbinsx, const float *xbins)
56  : fName(name), fTitle(title), fNbinsX(nbinsx)
57 {
58  fBinXEdges.reserve(nbinsx);
59  for (auto i : ROOT::TSeq<int>(nbinsx))
60  fBinXEdges.push_back(xbins[i]);
61 }
62 TH1DModel::TH1DModel(const char *name, const char *title, int nbinsx, const double *xbins)
63  : fName(name), fTitle(title), fNbinsX(nbinsx)
64 {
65  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
66 }
68 {
69 }
70 
72  : fName(h.GetName()), fTitle(h.GetTitle()), fNbinsX(h.GetNbinsX()), fXLow(h.GetXaxis()->GetXmin()),
73  fXUp(h.GetXaxis()->GetXmax()), fNbinsY(h.GetNbinsY()), fYLow(h.GetYaxis()->GetXmin()),
74  fYUp(h.GetYaxis()->GetXmax())
75 {
76 }
77 TH2DModel::TH2DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy, double ylow,
78  double yup)
79  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup)
80 {
81 }
82 TH2DModel::TH2DModel(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy, double ylow,
83  double yup)
84  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup)
85 {
86  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
87 }
88 TH2DModel::TH2DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy,
89  const double *ybins)
90  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy)
91 {
92  fBinYEdges.assign(ybins, ybins + (size_t)nbinsy);
93 }
94 TH2DModel::TH2DModel(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy,
95  const double *ybins)
96  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy)
97 {
98  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
99  fBinYEdges.assign(ybins, ybins + (size_t)nbinsy);
100 }
101 TH2DModel::TH2DModel(const char *name, const char *title, int nbinsx, const float *xbins, int nbinsy,
102  const float *ybins)
103  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy)
104 {
105  fBinXEdges.reserve(nbinsx);
106  for (auto i : ROOT::TSeq<int>(nbinsx))
107  fBinXEdges.push_back(xbins[i]);
108  fBinYEdges.reserve(nbinsy);
109  for (auto i : ROOT::TSeq<int>(nbinsy))
110  fBinXEdges.push_back(ybins[i]);
111 }
112 
114 {
115 }
116 
118  : fName(h.GetName()), fTitle(h.GetTitle()), fNbinsX(h.GetNbinsX()), fXLow(h.GetXaxis()->GetXmin()),
119  fXUp(h.GetXaxis()->GetXmax()), fNbinsY(h.GetNbinsY()), fYLow(h.GetYaxis()->GetXmin()),
120  fYUp(h.GetYaxis()->GetXmax()), fNbinsZ(h.GetNbinsZ()), fZLow(h.GetZaxis()->GetXmin()),
121  fZUp(h.GetZaxis()->GetXmax())
122 {
123 }
124 TH3DModel::TH3DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy, double ylow,
125  double yup, int nbinsz, double zlow, double zup)
126  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup),
127  fNbinsZ(nbinsz), fZLow(zlow), fZUp(zup)
128 {
129 }
130 TH3DModel::TH3DModel(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy,
131  const double *ybins, int nbinsz, const double *zbins)
132  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy), fNbinsZ(nbinsz)
133 {
134  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
135  fBinYEdges.assign(ybins, ybins + (size_t)nbinsy);
136  fBinZEdges.assign(zbins, zbins + (size_t)nbinsz);
137 }
138 TH3DModel::TH3DModel(const char *name, const char *title, int nbinsx, const float *xbins, int nbinsy,
139  const float *ybins, int nbinsz, const float *zbins)
140  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy), fNbinsZ(nbinsz)
141 {
142  fBinXEdges.reserve(nbinsx);
143  for (auto i : ROOT::TSeq<int>(nbinsx))
144  fBinXEdges.push_back(xbins[i]);
145  fBinYEdges.reserve(nbinsy);
146  for (auto i : ROOT::TSeq<int>(nbinsy))
147  fBinXEdges.push_back(ybins[i]);
148  fBinZEdges.reserve(nbinsz);
149  for (auto i : ROOT::TSeq<int>(nbinsz))
150  fBinZEdges.push_back(zbins[i]);
151 }
152 
154 {
155 }
156 
157 // Profiles
158 
160  : fName(h.GetName()), fTitle(h.GetTitle()), fNbinsX(h.GetNbinsX()), fXLow(h.GetXaxis()->GetXmin()),
161  fXUp(h.GetXaxis()->GetXmax()), fYLow(h.GetYmin()), fYUp(h.GetYmax()), fOption(h.GetErrorOption())
162 {
163 }
164 TProfile1DModel::TProfile1DModel(const char *name, const char *title, int nbinsx, double xlow, double xup,
165  const char *option)
166  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fOption(option)
167 {
168 }
169 
170 TProfile1DModel::TProfile1DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, double ylow,
171  double yup, const char *option)
172  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fYLow(ylow), fYUp(yup), fOption(option)
173 {
174 }
175 
176 TProfile1DModel::TProfile1DModel(const char *name, const char *title, int nbinsx, const float *xbins,
177  const char *option)
178  : fName(name), fTitle(title), fNbinsX(nbinsx), fOption(option)
179 {
180  fBinXEdges.reserve(nbinsx);
181  for (auto i : ROOT::TSeq<int>(nbinsx))
182  fBinXEdges.push_back(xbins[i]);
183 }
184 TProfile1DModel::TProfile1DModel(const char *name, const char *title, int nbinsx, const double *xbins,
185  const char *option)
186  : fName(name), fTitle(title), fNbinsX(nbinsx), fOption(option)
187 {
188  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
189 }
190 TProfile1DModel::TProfile1DModel(const char *name, const char *title, int nbinsx, const double *xbins, double ylow,
191  double yup, const char *option)
192  : fName(name), fTitle(title), fNbinsX(nbinsx), fYLow(ylow), fYUp(yup), fOption(option)
193 {
194  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
195 }
196 
198 {
199 }
200 
202  : fName(h.GetName()), fTitle(h.GetTitle()), fNbinsX(h.GetNbinsX()), fXLow(h.GetXaxis()->GetXmin()),
203  fXUp(h.GetXaxis()->GetXmax()), fNbinsY(h.GetNbinsY()), fYLow(h.GetYaxis()->GetXmin()),
204  fYUp(h.GetYaxis()->GetXmax()), fZLow(h.GetZmin()), fZUp(h.GetZmax()), fOption(h.GetErrorOption())
205 {
206 }
207 TProfile2DModel::TProfile2DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy,
208  double ylow, double yup, const char *option)
209  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup),
210  fOption(option)
211 {
212 }
213 
214 TProfile2DModel::TProfile2DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy,
215  double ylow, double yup, double zlow, double zup, const char *option)
216  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup),
217  fZLow(zlow), fZUp(zup), fOption(option)
218 {
219 }
220 
221 TProfile2DModel::TProfile2DModel(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy,
222  double ylow, double yup, const char *option)
223  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy), fYLow(ylow), fYUp(yup), fOption(option)
224 {
225  fBinXEdges.assign(xbins, xbins + (size_t)nbinsx);
226 }
227 
228 TProfile2DModel::TProfile2DModel(const char *name, const char *title, int nbinsx, double xlow, double xup, int nbinsy,
229  const double *ybins, const char *option)
230  : fName(name), fTitle(title), fNbinsX(nbinsx), fXLow(xlow), fXUp(xup), fNbinsY(nbinsy), fOption(option)
231 {
232  fBinYEdges.assign(ybins, ybins + (size_t)nbinsy);
233 }
234 
235 TProfile2DModel::TProfile2DModel(const char *name, const char *title, int nbinsx, const double *xbins, int nbinsy,
236  const double *ybins, const char *option)
237  : fName(name), fTitle(title), fNbinsX(nbinsx), fNbinsY(nbinsy), fOption(option)
238 {
239  fBinYEdges.assign(xbins, xbins + (size_t)nbinsx);
240  fBinYEdges.assign(ybins, ybins + (size_t)nbinsy);
241 }
242 
244 {
245 }
246 
247 } // ns TDF
248 } // ns Experimental
249 } // ns ROOT
std::string GetName(const std::string &scope_name)
Definition: Cppyy.cxx:145
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
TH1 * h
Definition: legend2.C:5
THist< 3, double, THistStatContent, THistStatUncertainty > TH3D
Definition: THist.hxx:296
A pseudo container class which is a generator of indices.
Definition: TSeq.hxx:66
THist< 2, double, THistStatContent, THistStatUncertainty > TH2D
Definition: THist.hxx:290
THist< 1, double, THistStatContent, THistStatUncertainty > TH1D
Definition: THist.hxx:284
char name[80]
Definition: TGX11.cxx:109