52void TestBinomial(
int nloop = 100,
int nevts = 100,
bool plot =
false,
bool debug =
false,
int seed = 111)
59 hbiasNorm.
Add(
new TH1D(
"h0Norm",
"Bias Histogram fit",100,-5,5));
60 hbiasNorm.
Add(
new TH1D(
"h1Norm",
"Bias Binomial fit",100,-5,5));
62 hbiasThreshold.
Add(
new TH1D(
"h0Threshold",
"Bias Histogram fit",100,-5,5));
63 hbiasThreshold.
Add(
new TH1D(
"h1Threshold",
"Bias Binomial fit",100,-5,5));
65 hbiasWidth.
Add(
new TH1D(
"h0Width",
"Bias Histogram fit",100,-5,5));
66 hbiasWidth.
Add(
new TH1D(
"h1Width",
"Bias Binomial fit",100,-5,5));
67 TH1D* hChisquared =
new TH1D(
"hChisquared",
68 "#chi^{2} probability (Baker-Cousins)", 200, 0.0, 1.0);
84 TH1D* hM2D =
new TH1D(
"hM2D",
"x^(-2) denominator distribution",
86 TH1D* hM2N =
new TH1D(
"hM2N",
"x^(-2) numerator distribution",
88 TH1D* hM2E =
new TH1D(
"hM2E",
"x^(-2) efficiency",
91 TF1* fM2D =
new TF1(
"fM2D",
"(1-[0]/(1+exp(([1]-x)/[2])))/(x*x)",
93 TF1* fM2N =
new TF1(
"fM2N",
"[0]/(1+exp(([1]-x)/[2]))/(x*x)",
95 TF1* fM2Fit =
new TF1(
"fM2Fit",
"[0]/(1+exp(([1]-x)/[2]))",
116 Double_t fracN = integralN/(integralN+integralD);
117 Int_t nevtsN = rb.Binomial(nevts, fracN);
118 Int_t nevtsD = nevts - nevtsN;
120 std::cout << nevtsN <<
" " << nevtsD << std::endl;
125 for (
int iloop = 0; iloop < nloop; ++iloop) {
136 hM2E->
Divide(hM2N, hM2D, 1, 1,
"b");
160 Form(
"plots for experiment %d", iloop),
169 for (
int fit = 0; fit < 2; ++fit) {
179 if (debug) optFit +=
TString(
"SV");
186 if (debug) res->
Print();
206 if (debug) optFit +=
TString(
"V");
210 std::cerr <<
"Error performing binomial efficiency fit, result = "
211 << status << std::endl;
219 bool confint = (status == 0);
238 if (status != 0)
break;
256 TH1D*
h =
dynamic_cast<TH1D*
>(hbiasNorm[fit]);
257 h->Fill((fnorm-normalization)/enorm);
258 h =
dynamic_cast<TH1D*
>(hbiasThreshold[fit]);
259 h->Fill((fthreshold-threshold)/ethreshold);
260 h =
dynamic_cast<TH1D*
>(hbiasWidth[fit]);
261 h->Fill((fwidth-
width)/ewidth);
267 "Efficiency fit biases",10,10,1000,800);
272 h0 =
dynamic_cast<TH1D*
>(hbiasNorm[0]);
274 h1 =
dynamic_cast<TH1D*
>(hbiasNorm[1]);
278 "plateau parameter",
"ndc");
286 h0 =
dynamic_cast<TH1D*
>(hbiasThreshold[0]);
288 h1 =
dynamic_cast<TH1D*
>(hbiasThreshold[1]);
292 "threshold parameter",
"ndc");
300 h0 =
dynamic_cast<TH1D*
>(hbiasWidth[0]);
302 h1 =
dynamic_cast<TH1D*
>(hbiasWidth[1]);
305 TLegend* l3 =
new TLegend(0.1, 0.75, 0.5, 0.9,
"width parameter",
"ndc");
313 hChisquared->
Draw(
"HIST");
include TDocParser_001 C image html pict1_TDocParser_001 png width
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsigned int stride2, const double *x, double *ci, double cl=0.95, bool norm=false) const
get confidence intervals for an array of n points x.
static void SetDefaultIntegrator(const char *name)
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Binomial fitter for the division of two histograms.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
virtual void SetParError(Int_t ipar, Double_t error)
Set error for parameter number ipar.
virtual TH1 * GetHistogram() const
Return a pointer to the histogram used to visualise the function.
virtual Double_t GetParError(Int_t ipar) const
Return value of parameter number ipar.
virtual Double_t GetProb() const
Return the fit probability.
virtual Double_t Integral(Double_t a, Double_t b, Double_t epsrel=1.e-12)
IntegralOneDim or analytical integral.
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
Set limits for parameter ipar.
virtual TF1 * DrawCopy(Option_t *option="") const
Draw a copy of this function with its current attributes.
virtual void SetParameter(Int_t param, Double_t value)
virtual Double_t GetParameter(Int_t ipar) const
Provides an indirection to the TFitResult class and with a semantics identical to a TFitResult pointe...
virtual void Print(Option_t *option="") const
Print result of the fit, by default chi2, parameter values and errors.
A TGraphErrors is a TGraph with error bars.
1-D histogram with a double per channel (see TH1 documentation)}
virtual void Reset(Option_t *option="")
Reset.
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
virtual Double_t GetMean(Int_t axis=1) const
For axis = 1,2 or 3 returns the mean value of the histogram along X,Y or Z axis.
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1 if errors are defined (see TH1::Sumw2),...
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Double_t GetRMS(Int_t axis=1) const
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
virtual void Draw(Option_t *option="")
Draw this histogram with options.
virtual Bool_t Divide(TF1 *f1, Double_t c1=1)
Performs the operation: this = this/(c1*f1) if errors are defined (see TH1::Sumw2),...
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
This class displays a legend box (TPaveText) containing several legend entries.
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
virtual void Draw(Option_t *option="")
Draw this legend with its current attributes.
virtual const char * GetName() const
Returns name of object.
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad...
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
Random number generator class based on M.
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...
static void SetDefaultFitter(const char *name="")
static: set name of default fitter
int main(int argc, char **argv)
void FillData(BinData &dv, const TH1 *hist, TF1 *func=0)
fill the data vector from a TH1.