#include <Efficiency1D.h>
|
| | Efficiency1D (TH1F *h, const std::string &n="") |
| | Efficiency1D (TH1F *hnum, TH1F *hden, const std::string &n, double scale=100) |
| | ~Efficiency1D () |
| virtual void | Fill (double x, double w=1) |
| virtual void | FillDenom (double x, float w=1) |
| TGraphAsymmErrors * | Bayes (double scale=100) |
| | evaluate the uncertainties correctly ...
|
| const std::string & | name () const |
| TH1F * | Hist () |
| void | finalise (double scale=100) |
| | actually calculate the efficiencies
|
| double | findTotalEfficiency () |
| | these 1D and 2D Fill versionms should never be called directly in fact, are they even needed at all ?
|
| void | Write () |
|
| virtual void | getibinvec (bool force=false) |
| TGraphAsymmErrors * | BayesInternal (TH1 *hn, TH1 *hd, double scale=100) const |
Definition at line 19 of file Efficiency1D.h.
◆ Efficiency1D() [1/2]
| Efficiency1D::Efficiency1D |
( |
TH1F * | h, |
|
|
const std::string & | n = "" ) |
|
inline |
Definition at line 23 of file Efficiency1D.h.
23 :
T_Efficiency(TH1F *h, const std::string &n)
◆ Efficiency1D() [2/2]
| Efficiency1D::Efficiency1D |
( |
TH1F * | hnum, |
|
|
TH1F * | hden, |
|
|
const std::string & | n, |
|
|
double | scale = 100 ) |
|
inline |
Definition at line 26 of file Efficiency1D.h.
26 :
30 }
virtual void getibinvec(bool force=false)
void finalise(double scale=100)
◆ ~Efficiency1D()
| Efficiency1D::~Efficiency1D |
( |
| ) |
|
|
inline |
◆ Bayes()
| TGraphAsymmErrors * Efficiency1D::Bayes |
( |
double | scale = 100 | ) |
|
|
inline |
evaluate the uncertainties correctly ...
Definition at line 49 of file Efficiency1D.h.
49 {
51 }
TGraphAsymmErrors * BayesInternal(TH1 *hn, TH1 *hd, double scale=100) const
◆ BayesInternal()
| TGraphAsymmErrors * T_Efficiency< TH1F >::BayesInternal |
( |
TH1 * | hn, |
|
|
TH1 * | hd, |
|
|
double | scale = 100 ) const |
|
inlineprotectedinherited |
stupid root, told to divide, it skips bins where the nukber of entries is 0 (ok) but then complains that "number of points is not the same as the number of
bins" now that would be ok, if these were user input values, but is stupid if this is some root policy. : root decides to do X and then prints a warning so instead, set the bin contents, for these bins to something really, really, really tiny ...
root is just such a pain - can't just get/set specific y values I mean - why some functions to get an x or y value and others only get all the x values, but the functions to return the errors only get ONE AT A TIME ? why isn't there a simple ScaleX() function? All this functionality no one cares about, and basic functionality missing
Definition at line 166 of file T_Efficiency.h.
166 {
167
176
177 for (
int i=1 ;
i<=
hd->GetNbinsX() ;
i++ ) {
178 double y =
hd->GetBinContent(
i);
179 if (
y==0 )
hd->SetBinContent(
i, 1
e-20);
180 }
181
183
184
185 double*
x =
tg->GetX();
186 double*
y =
tg->GetY();
187
189
190 for (
int i=0 ;
i<
n ;
i++ ) {
191
193
194 double yeup =
tg->GetErrorYhigh(
i);
196
199
206
208
211
212 tg->SetPointEXhigh(
i, 0 );
213 tg->SetPointEXlow(
i, 0 );
214
215 }
216
218
219 }
◆ Fill()
| virtual void Efficiency1D::Fill |
( |
double | x, |
|
|
double | w = 1 ) |
|
inlinevirtual |
◆ FillDenom()
| virtual void Efficiency1D::FillDenom |
( |
double | x, |
|
|
float | w = 1 ) |
|
inlinevirtual |
◆ finalise()
actually calculate the efficiencies
Definition at line 71 of file T_Efficiency.h.
71 {
74 for (
size_t i=0 ;
i<
m_ibin.size() ;
i++ ) {
77
83 }
84
85
88
89 }
90 }
virtual void getibinvec(bool force=false)=0
std::vector< int > m_ibin
◆ findTotalEfficiency()
these 1D and 2D Fill versionms should never be called directly in fact, are they even needed at all ?
calculate the efficiencies ...
Definition at line 131 of file T_Efficiency.h.
131 {
132
134
137
138 for (
size_t i=0 ;
i<
m_ibin.size() ;
i++ ) {
141
144 }
145
148 }
149
150 return 0.;
151 }
◆ getibinvec()
| virtual void Efficiency1D::getibinvec |
( |
bool | force = false | ) |
|
|
inlineprotectedvirtual |
◆ Hist()
◆ name()
◆ Write()
◆ m_hdenom
◆ m_heff
◆ m_hmissed
◆ m_hnumer
◆ m_ibin
◆ m_name
The documentation for this class was generated from the following file: