#include <T_Efficiency.h>
template<typename T>
class T_Efficiency< T >
Definition at line 24 of file T_Efficiency.h.
◆ T_Efficiency() [1/2]
◆ T_Efficiency() [2/2]
can't call finialise here - need to call it in the derived class this->finalise(scale);
Definition at line 45 of file T_Efficiency.h.
◆ ~T_Efficiency()
◆ BayesInternal()
template<typename T >
TGraphAsymmErrors* T_Efficiency< T >::BayesInternal |
( |
TH1 * |
hn, |
|
|
TH1 * |
hd, |
|
|
double |
scale = 100 |
|
) |
| const |
|
inlineprotected |
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 );
◆ 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()
template<typename T >
virtual void T_Efficiency< T >::getibinvec |
( |
bool |
force = false | ) |
|
|
protectedpure virtual |
◆ 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: