#include <Efficiency2D.h>
|
| Efficiency2D (TH2F *h, const std::string &n="") |
|
| Efficiency2D (TH2F *hnum, TH2F *hden, const std::string &n, double scale=100) |
|
| ~Efficiency2D () |
|
void | Fill (double x, double y, double w=1) |
| fill methods ... More...
|
|
void | FillDenom (double x, double y, float w=1) |
|
TGraphAsymmErrors * | BayesX (int slice, double scale=100) |
| evaluate the uncertainties correctly ... More...
|
|
TGraphAsymmErrors * | BayesY (int slice, double scale=100) |
|
TH1D * | sliceX (int i) |
|
TH1D * | sliceY (int i) |
|
int | slicesX () const |
|
int | slicesY () const |
|
const std::string & | name () const |
|
TH2F * | Hist () |
|
void | finalise (double scale=100) |
| actually calculate the efficiencies More...
|
|
double | findTotalEfficiency () |
| these 1D and 2D Fill versionms should never be called directly in fact, are they even needed at all ?
More...
|
|
void | Write () |
|
Definition at line 19 of file Efficiency2D.h.
◆ Efficiency2D() [1/2]
Efficiency2D::Efficiency2D |
( |
TH2F * |
h, |
|
|
const std::string & |
n = "" |
|
) |
| |
|
inline |
◆ Efficiency2D() [2/2]
Efficiency2D::Efficiency2D |
( |
TH2F * |
hnum, |
|
|
TH2F * |
hden, |
|
|
const std::string & |
n, |
|
|
double |
scale = 100 |
|
) |
| |
|
inline |
◆ ~Efficiency2D()
Efficiency2D::~Efficiency2D |
( |
| ) |
|
|
inline |
◆ BayesInternal()
TGraphAsymmErrors* T_Efficiency< TH2F >::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.
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);
182 TGraphAsymmErrors* tg =
new TGraphAsymmErrors( hn, hd,
"cl=0.683 b(1,1) mode" );
185 double*
x = tg->GetX();
186 double*
y = tg->GetY();
190 for (
int i=0 ;
i<
n ;
i++ ) {
194 double yeup = tg->GetErrorYhigh(
i);
195 double yedown = tg->GetErrorYlow(
i);
207 tg->SetPoint(
i,
x[
i],
y[
i] );
209 tg->SetPointEYhigh(
i, yeup );
210 tg->SetPointEYlow(
i, yedown );
212 tg->SetPointEXhigh(
i, 0 );
213 tg->SetPointEXlow(
i, 0 );
◆ BayesX()
TGraphAsymmErrors* Efficiency2D::BayesX |
( |
int |
slice, |
|
|
double |
scale = 100 |
|
) |
| |
|
inline |
evaluate the uncertainties correctly ...
Definition at line 49 of file Efficiency2D.h.
51 if ( slice<0 || slice>=
slicesX() )
return 0;
◆ BayesY()
TGraphAsymmErrors* Efficiency2D::BayesY |
( |
int |
slice, |
|
|
double |
scale = 100 |
|
) |
| |
|
inline |
◆ Fill()
void Efficiency2D::Fill |
( |
double |
x, |
|
|
double |
y, |
|
|
double |
w = 1 |
|
) |
| |
|
inline |
◆ FillDenom()
void Efficiency2D::FillDenom |
( |
double |
x, |
|
|
double |
y, |
|
|
float |
w = 1 |
|
) |
| |
|
inline |
◆ finalise()
actually calculate the efficiencies
Definition at line 71 of file T_Efficiency.h.
74 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 131 of file T_Efficiency.h.
138 for (
size_t i=0 ;
i<
m_ibin.size() ;
i++ ) {
147 return n_tot / d_tot;
◆ getibinvec()
virtual void Efficiency2D::getibinvec |
( |
bool |
force = false | ) |
|
|
inlineprotectedvirtual |
◆ Hist()
◆ name()
◆ slicename()
std::string Efficiency2D::slicename |
( |
const std::string & |
s, |
|
|
int |
i |
|
) |
| const |
|
inlineprotected |
◆ slicesX()
int Efficiency2D::slicesX |
( |
| ) |
const |
|
inline |
◆ slicesY()
int Efficiency2D::slicesY |
( |
| ) |
const |
|
inline |
◆ sliceX()
TH1D* Efficiency2D::sliceX |
( |
int |
i | ) |
|
|
inline |
◆ sliceY()
TH1D* Efficiency2D::sliceY |
( |
int |
i | ) |
|
|
inline |
◆ Write()
◆ m_hdenom
◆ m_heff
◆ m_hmissed
◆ m_hnumer
◆ m_ibin
◆ m_name
The documentation for this class was generated from the following file: