本文整理汇总了C++中RooRealVar::getMin方法的典型用法代码示例。如果您正苦于以下问题:C++ RooRealVar::getMin方法的具体用法?C++ RooRealVar::getMin怎么用?C++ RooRealVar::getMin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RooRealVar
的用法示例。
在下文中一共展示了RooRealVar::getMin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cosThetaL
RooFitResult * safeFit(RooAbsPdf * pdf, RooDataSet * data, Str2VarMap p, ISVALIDF_PTR isValid, string opt = "", int nfree = -1, RooArgSet * cons = NULL, RooAbsReal * nll = NULL)
{
RooFitResult * res = NULL;
RooRealVar cosThetaL("cosThetaL","cosThetaL",0.,-1.,1.);
RooRealVar cosThetaB("cosThetaB","cosThetaB",0.,-1.,1.);
RooArgSet obs(cosThetaL,cosThetaB);
//if(opt.find("-scan")==string::npos) res = pdf->fitTo(*data,PrintLevel(-1),Save(),Extended(true));
if(p.size()==1 && p.find("afb") != p.end()) p["fL"] = GetParam(pdf,"fL");
else if(p.size()==1 && p.find("fL") != p.end()) p["afb"] = GetParam(pdf,"afb");
RooArgSet * nuisances = NULL;
/*
bool afb_iscost = false, fL_iscost = false, afbB_iscost = false;
if (p.find("afb") != p.end()) { afb_iscost = ((RooRealVar*)p["afb"])->getAttribute("Constant"); ((RooRealVar*)p["afb"])->setConstant(); }
if (p.find("fL") != p.end()) { fL_iscost = ((RooRealVar*)p["fL"])->getAttribute("Constant"); ((RooRealVar*)p["fL"])->setConstant(); }
if (p.find("afbB") != p.end()) { afbB_iscost = ((RooRealVar*)p["afbB"])->getAttribute("Constant"); ((RooRealVar*)p["afbB"])->setConstant(); }
RooArgSet * nuisances = copyFreePars(pdf,obs);
if (p.find("afb") != p.end()) ((RooRealVar*)p["afb"])->setConstant(afb_iscost);
if (p.find("afbB") != p.end()) ((RooRealVar*)p["afbB"])->setConstant(afbB_iscost);
if (p.find("fL") != p.end()) ((RooRealVar*)p["fL"])->setConstant(fL_iscost);
*/
int np = 20;
if((!res || res->covQual()!=3 || res->edm() > 0.1) && opt.find("-noscan")==string::npos)
{
if(!nll) nll = pdf->createNLL(*data);
vector < double > mins, maxs, r;
Str2VarMap::iterator iter; int pp = 0;
for (iter = p.begin(); iter != p.end(); iter++)
{
RooRealVar * curp = (RooRealVar *)iter->second;
maxs.push_back(curp->getMax());
mins.push_back(curp->getMin());
r.push_back((maxs.back() - mins.back())/(double)np);
pp++;
}
findMin(pdf,data,nll,p,mins,maxs,np,isValid,nfree,opt+"-nofit",cons,nuisances);
double prec = 1e6;
while (prec > 0.001)
{
double maxr = 0;
maxs.clear(); mins.clear(); pp=0;
for (iter = p.begin(); iter != p.end(); iter++)
{
RooRealVar * curp = (RooRealVar *)iter->second;
if((curp->getVal() + r[pp]) < curp->getMax()) maxs.push_back(curp->getVal() + r[pp]);
else maxs.push_back(curp->getMax());
if((curp->getVal() - r[pp]) > curp->getMin()) mins.push_back(curp->getVal() - r[pp]);
else mins.push_back(curp->getMin());
r[pp] = (maxs.back() - mins.back())/(double)np;
if(r[pp] > maxr) maxr = r[pp];
pp++;
}
prec = maxr;
res = findMin(pdf,data,nll,p,mins,maxs,np,isValid,nfree,opt,cons,nuisances);
}
//if(!mynll) delete nll;
}
return res;
}