27double get_mean(
const std::vector<double>& m );
28double get_rms(
const std::vector<double>& m );
42TH1D*
smooth( TH1D* hin,
bool sym=
true );
61 double x = std::tan((
r.uniform()-0.5)*
M_PI);
95 for (
unsigned i=0 ; i<
m_y.size() ; i++ )
if (
y<=
m_y[i] )
return i;
101 if ( i==0 )
return 0;
136 experiment( TH1D*
h,
int Nexperiments=10,
int fevents=0 );
a Randomnumber generator with a data member TRandom3 so that we can either use a shared generator or ...
Header file for AthHistogramAlgorithm.
virtual double generate() const
double mean_error() const
experiment(const experiment &)=delete
experiment operator=(const experiment &)=delete
std::vector< double > m_mean
number of experiments
double m_global_mean_error
experiment(TH1D *h, int Nexperiments=10, int fevents=0)
given a distribution, gnerate some number of pseudo experiments to estimate the uncertainties in the ...
double m_hmean
rms from each experiment
double m_global_rms_error
double m_hrms
actual histogram mean95
double m_global_mean
actual histogram rms95
std::vector< double > m_rms
means from each experiment
base class for a "generator" class
virtual double generate() const =0
virtual ~generator_base()
double generate() const
actually generate a random number from the distribution
hist_generator(const hist_generator &)=delete
std::vector< double > m_y
std::vector< double > m_x
hist_generator operator=(const hist_generator &)=delete
std::vector< double > m_dy
hist_generator(TH1D *h, bool smooth_=true)
virtual ~hist_generator()
std::vector< double > m_dxdy
std::vector< double > m_dx
double invert(double y) const
int getbin(double y) const
TH1D * smooth(TH1D *hin, bool sym)
smooth a distribution about the maximum NB: maximum is not smoothed
TH1D * integrate(TH1D *hin)
generate an integrated distribution
void ScaleIntegral(TH1D *hin)
scale a distribution by the integral
TH1D * PDF(TH1D *hin)
generate a (normalised) pdf from a distribution
double get_rms(const std::vector< double > &m)
double get_mean(const std::vector< double > &m)
mean and rms