#include <Efficiency1D.h>
Definition at line 19 of file Efficiency1D.h.
◆ Efficiency1D() [1/2]
Efficiency1D::Efficiency1D |
( |
TH1F * |
h, |
|
|
const std::string & |
n = "" |
|
) |
| |
|
inline |
◆ Efficiency1D() [2/2]
Efficiency1D::Efficiency1D |
( |
TH1F * |
hnum, |
|
|
TH1F * |
hden, |
|
|
const std::string & |
n, |
|
|
double |
scale = 100 |
|
) |
| |
|
inline |
◆ ~Efficiency1D()
Efficiency1D::~Efficiency1D |
( |
| ) |
|
|
inline |
◆ Bayes()
TGraphAsymmErrors* Efficiency1D::Bayes |
( |
double |
scale = 100 | ) |
|
|
inline |
evaluate the uncertainties correctly ...
Definition at line 49 of file Efficiency1D.h.
◆ 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 175 of file T_Efficiency.h.
186 for (
int i=1 ;
i<=hd->GetNbinsX() ;
i++ ) {
187 double y = hd->GetBinContent(
i);
188 if (
y==0 ) hd->SetBinContent(
i, 1
e-20);
191 TGraphAsymmErrors* tg =
new TGraphAsymmErrors( hn, hd,
"cl=0.683 b(1,1) mode" );
194 double*
x = tg->GetX();
195 double*
y = tg->GetY();
199 for (
int i=0 ;
i<
n ;
i++ ) {
203 double yeup = tg->GetErrorYhigh(
i);
204 double yedown = tg->GetErrorYlow(
i);
216 tg->SetPoint(
i,
x[
i],
y[
i] );
218 tg->SetPointEYhigh(
i, yeup );
219 tg->SetPointEYlow(
i, yedown );
221 tg->SetPointEXhigh(
i, 0 );
222 tg->SetPointEXlow(
i, 0 );
◆ 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 80 of file T_Efficiency.h.
83 for (
size_t i=0 ;
i<
m_ibin.size() ;
i++ ) {
◆ 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 140 of file T_Efficiency.h.
147 for (
size_t i=0 ;
i<
m_ibin.size() ;
i++ ) {
156 return n_tot / d_tot;
◆ 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: