本文整理汇总了C++中RooRealVar::setError方法的典型用法代码示例。如果您正苦于以下问题:C++ RooRealVar::setError方法的具体用法?C++ RooRealVar::setError怎么用?C++ RooRealVar::setError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RooRealVar
的用法示例。
在下文中一共展示了RooRealVar::setError方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: storeErrorsInObs
///
/// Store the errors as RooFit error into the observables
/// to have them easily available for the pull computation.
///
void PDF_Abs::storeErrorsInObs()
{
if ( covMatrix==0 )
{
cout << "PDF_Abs::storeErrorsInObs() : ERROR : covMatrix not initialized." << endl;
return;
}
for ( int i=0; i<nObs; i++ )
{
RooRealVar* pObs = (RooRealVar*)((RooArgList*)observables)->at(i);
pObs->setError(sqrt(covMatrix[i][i]));
}
}
示例2: fitbkgdataCard
//.........这里部分代码省略.........
for (int jcat=0; jcat<(catnames.size()-1); ++jcat) {
RooRealVar *rvar = dynamic_cast<RooRealVar*>(normu_vec.at(jcat));
if (rvar) rvar->setVal(fitcurves.at(jcat)->interpolate(center));
RooExtendPdf *ecpdf = new RooExtendPdf(TString::Format("ecpdf%s",catnames.at(jcat).Data()),"",*pdfShape_vec.at(jcat),*normu_vec.at(jcat),"errRange");
static_cast<RooSimultaneous*>(extLimPdf)->addPdf(*ecpdf,catnames.at(jcat));
}
} else
extLimPdf = new RooExtendPdf("extLimPdf","",*thisPdf,*nlim,"errRange");
RooAbsReal *nll = extLimPdf->createNLL(*datanorm,Extended(),NumCPU(1));
RooMinimizer minim(*nll);
minim.setStrategy(0);
double clone = 1.0 - 2.0*RooStats::SignificanceToPValue(1.0);
double cltwo = 1.0 - 2.0*RooStats::SignificanceToPValue(2.0);
if (iscombcat) minim.setStrategy(2);
minim.migrad();
if (!iscombcat) {
minim.minos(*nlim);
}
else {
minim.hesse();
nlim->removeAsymError();
}
if( verbose )
printf("errlo = %5f, errhi = %5f\n",nlim->getErrorLo(),nlim->getErrorHi());
onesigma->SetPoint(i-1,center,nombkg);
onesigma->SetPointError(i-1,0.,0.,-nlim->getErrorLo(),nlim->getErrorHi());
// to get the 2-sigma bands...
minim.setErrorLevel(0.5*pow(ROOT::Math::normal_quantile(1-0.5*(1-cltwo),1.0), 2)); // the 0.5 is because qmu is -2*NLL
// eventually if cl = 0.95 this is the usual 1.92!
if (!iscombcat) {
minim.migrad();
minim.minos(*nlim);
}
else {
nlim->setError(2.0*nlim->getError());
nlim->removeAsymError();
}
twosigma->SetPoint(i-1,center,nombkg);
twosigma->SetPointError(i-1,0.,0.,-nlim->getErrorLo(),nlim->getErrorHi());
// for memory clean-up
delete nll;
delete extLimPdf;
}
hmass->setRange("errRange",massmin,massmax);
if( verbose )
onesigma->Print("V");
// plot[icat] the error bands
twosigma->SetLineColor(kGreen);
twosigma->SetFillColor(kGreen);
twosigma->SetMarkerColor(kGreen);
twosigma->Draw("L3 SAME");
onesigma->SetLineColor(kYellow);
onesigma->SetFillColor(kYellow);
onesigma->SetMarkerColor(kYellow);
onesigma->Draw("L3 SAME");
plot[icat]->Draw("SAME");
// and add the error bands to the legend
legmc->AddEntry(onesigma,"#pm1 #sigma","F");
legmc->AddEntry(twosigma,"#pm2 #sigma","F");
}
std::cout<<" trying ***2 to plot #"<<icat<<std::endl;
// rest of the legend ....
legmc->SetBorderSize(0);
legmc->SetFillStyle(0);
legmc->Draw();
lat[icat] = new TLatex(103.0,0.9*plot[icat]->GetMaximum(),TString::Format("#scale[0.7]{#splitline{CMS preliminary}{#sqrt{s} = %.1f TeV L = %.2f fb^{-1}}}",theCMenergy,intLumi->getVal()));
lat2[icat] = new TLatex(103.0,0.75*plot[icat]->GetMaximum(),catdesc.at(icat));
lat[icat] ->Draw();
lat2[icat]->Draw();
// -------------------------------------------------------
// save canvas in different formats
canbkg[icat]->SaveAs(TString("databkg") + catname + TString(".pdf"));
canbkg[icat]->SaveAs(TString("databkg") + catname + TString(".eps"));
canbkg[icat]->SaveAs(TString("databkg") + catname + TString(".root"));
}
return;
}
示例3: fitpeaks
//.........这里部分代码省略.........
RooRealVar *f23vs1S = new RooRealVar("N_{2S+3S}/N_{1S}","f23vs1S",0.45,-0.1,1);
RooFormulaVar *nsig2f = new RooFormulaVar("nsig2S","@0*@1", RooArgList(*nsig1f,*f2Svs1S));
//RooFormulaVar *nsig3f = new RooFormulaVar("nsig3S","@0*@1", RooArgList(*nsig1f,*f3Svs1S));
RooFormulaVar *nsig3f = new RooFormulaVar("nsig3S","@0*@[email protected]*@1", RooArgList(*nsig1f,*f2Svs1S,*f23vs1S));
//f3Svs1S->setConstant(kTRUE);
//force the ratio to the pp value
f2Svs1S_pp->setConstant(kTRUE);
f3Svs1S_pp->setConstant(kTRUE);
RooFormulaVar *nsig2f_ = new RooFormulaVar("nsig2S_pp","@0*@1", RooArgList(*nsig1f,*f2Svs1S_pp));
RooFormulaVar *nsig3f_ = new RooFormulaVar("nsig3S_pp","@0*@1", RooArgList(*nsig1f,*f3Svs1S_pp));
//only sideband region pdf, using RooPolynomial instead of RooChebychev for multiple ranges fit
RooAbsPdf *SB_pdf = new RooAddPdf ("SB_pdf","sideband background pdf",
RooArgList(*SB_bkgPdf),
RooArgList(*SB_nbkgd));
//only signal region pdf, using RooPolynomial instead of RooChebychev for multiple ranges fit
RooAbsPdf *S_pdf = new RooAddPdf ("S_pdf","total signal+background pdf",
RooArgList(*gauss1S2,*sig2S,*sig3S,*SB_bkgPdf),
RooArgList(*nsig1f,*nsig2f,*nsig3f,*SB_nbkgd));
//parameters for likesign
RooRealVar m0shift("turnOn","turnOn",8.6,0,20.) ;
RooRealVar width("width","width",2.36,0,20.) ;
RooRealVar par3("decay","decay",6.8, 0, 20.) ;
RooGaussian* m0shift_constr;
RooGaussian* width_constr;
RooGaussian* par3_constr;
RooRealVar *nLikesignbkgd = new RooRealVar("NLikesign_{bkg}","nlikesignbkgd",nt*0.75,0,10*nt);
if (TRKROT) {
nLikesignbkgd->setVal(TrkRotData->sumEntries());
nLikesignbkgd->setError(sqrt(TrkRotData->sumEntries()));
}
else {
nLikesignbkgd->setVal(likesignData->sumEntries());
nLikesignbkgd->setError(sqrt(likesignData->sumEntries()));
}
if (LS_constrain) {
RooGaussian* nLikesignbkgd_constr = new RooGaussian("nLikesignbkgd_constr","nLikesignbkgd_constr",*nLikesignbkgd,RooConst(nLikesignbkgd->getVal()),RooConst(nLikesignbkgd->getError()));
}
else nLikesignbkgd->setConstant(kTRUE);
RooFormulaVar *nResidualbkgd = new RooFormulaVar("NResidual_{bkg}","@[email protected]",RooArgList(*nbkgd,*nLikesignbkgd));
switch (bkgdModel) {
case 1 : //use error function to fit the like-sign, then fix the shape and normailization,
RooGenericPdf *LikeSignPdf = new RooGenericPdf("Like-sign","likesign","exp([email protected]/decay)*(TMath::Erf((@0-turnOn)/width)+1)",RooArgList(*mass,m0shift,width,par3));
if (TRKROT) RooFitResult* fit_1st = LikeSignPdf->fitTo(*TrkRotData,Save()) ;
else RooFitResult* fit_1st = LikeSignPdf->fitTo(*likesignData,Save()) ; // likesign data
//LikeSignPdf.fitTo(*data) ; // unlikesign data
//fit_1st->Print();
if (LS_constrain) {
m0shift_constr = new RooGaussian("m0shift_constr","m0shift_constr",m0shift,RooConst(m0shift.getVal()),RooConst(m0shift.getError()));
width_constr = new RooGaussian("width_constr","width_constr",width,RooConst(width.getVal()),RooConst(width.getError()));
par3_constr = new RooGaussian("par3_constr","par3_constr",par3,RooConst(par3.getVal()),RooConst(par3.getError()));
//m0shift_constr = new RooGaussian("m0shift_constr","m0shift_constr",m0shift,RooConst(7.9),RooConst(0.34*2));
//width_constr = new RooGaussian("width_constr","width_constr",width,RooConst(2.77),RooConst(0.38*2));
//par3_constr = new RooGaussian("par3_constr","par3_constr",par3,RooConst(6.3),RooConst(1.0*2));
}
else {
m0shift.setConstant(kTRUE);
width.setConstant(kTRUE);
par3.setConstant(kTRUE);