本文整理汇总了C++中RooAbsReal::Print方法的典型用法代码示例。如果您正苦于以下问题:C++ RooAbsReal::Print方法的具体用法?C++ RooAbsReal::Print怎么用?C++ RooAbsReal::Print使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RooAbsReal
的用法示例。
在下文中一共展示了RooAbsReal::Print方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addFlatNuisances
//#include <typeinfo.h>
void addFlatNuisances(std::string fi){
gSystem->Load("libHiggsAnalysisCombinedLimit.so");
TFile *fin = TFile::Open(fi.c_str());
RooWorkspace *wspace = (RooWorkspace*)fin->Get("w_hmumu");
wspace->Print("");
RooStats::ModelConfig *mc = (RooStats::ModelConfig*)wspace->genobj("ModelConfig");
RooArgSet *nuis = (RooArgSet*) mc->GetNuisanceParameters();
std::cout << "Before...." << std::endl;
nuis->Print();
RooRealVar *mgg = (RooRealVar*)wspace->var("mmm");
// Get all of the "flat" nuisances to be added to the nusiances:
RooArgSet pdfs = (RooArgSet) wspace->allVars();
RooAbsReal *pdf;
TIterator *it_pdf = pdfs.createIterator();
while ( (pdf=(RooAbsReal*)it_pdf->Next()) ){
if (!(std::string(pdf->GetName()).find("zmod") != std::string::npos )) {
if (!(std::string(pdf->GetName()).find("__norm") != std::string::npos )) {
continue;
}
}
pdf->Print();
RooArgSet* pdfpars = (RooArgSet*)pdf->getParameters(RooArgSet(*mgg));
pdfpars->Print();
std::string newname_pdf = (std::string("unconst_")+std::string(pdf->GetName()));
wspace->import(*pdf,RooFit::RenameVariable(pdf->GetName(),newname_pdf.c_str()));
pdf->SetName(newname_pdf.c_str());
nuis->add(*pdf);
}
wspace->var("MH")->setVal(125.0);
std::cout << "After..." << std::endl;
nuis->Print();
mc->SetNuisanceParameters(*nuis);
//RooWorkspace *wspace_new = wspace->Clone();
//mc->SetWorkspace(*wspace_new);
//wspace_new->import(*mc,true);
TFile *finew = new TFile((std::string(fin->GetName())+std::string("_unconst.root")).c_str(),"RECREATE");
//wspace_new->SetName("w");
finew->WriteTObject(wspace);
finew->Close();
}
示例2: rf105_funcbinding
void rf105_funcbinding()
{
// B i n d T M a t h : : E r f C f u n c t i o n
// ---------------------------------------------------
// Bind one-dimensional TMath::Erf function as RooAbsReal function
RooRealVar x("x","x",-3,3) ;
RooAbsReal* errorFunc = bindFunction("erf",TMath::Erf,x) ;
// Print erf definition
errorFunc->Print() ;
// Plot erf on frame
RooPlot* frame1 = x.frame(Title("TMath::Erf bound as RooFit function")) ;
errorFunc->plotOn(frame1) ;
// B i n d R O O T : : M a t h : : b e t a _ p d f C f u n c t i o n
// -----------------------------------------------------------------------
// Bind pdf ROOT::Math::Beta with three variables as RooAbsPdf function
RooRealVar x2("x2","x2",0,0.999) ;
RooRealVar a("a","a",5,0,10) ;
RooRealVar b("b","b",2,0,10) ;
RooAbsPdf* beta = bindPdf("beta",ROOT::Math::beta_pdf,x2,a,b) ;
// Perf beta definition
beta->Print() ;
// Generate some events and fit
RooDataSet* data = beta->generate(x2,10000) ;
beta->fitTo(*data) ;
// Plot data and pdf on frame
RooPlot* frame2 = x2.frame(Title("ROOT::Math::Beta bound as RooFit pdf")) ;
data->plotOn(frame2) ;
beta->plotOn(frame2) ;
// B i n d R O O T T F 1 a s R o o F i t f u n c t i o n
// ---------------------------------------------------------------
// Create a ROOT TF1 function
TF1 *fa1 = new TF1("fa1","sin(x)/x",0,10);
// Create an observable
RooRealVar x3("x3","x3",0.01,20) ;
// Create binding of TF1 object to above observable
RooAbsReal* rfa1 = bindFunction(fa1,x3) ;
// Print rfa1 definition
rfa1->Print() ;
// Make plot frame in observable, plot TF1 binding function
RooPlot* frame3 = x3.frame(Title("TF1 bound as RooFit function")) ;
rfa1->plotOn(frame3) ;
TCanvas* c = new TCanvas("rf105_funcbinding","rf105_funcbinding",1200,400) ;
c->Divide(3) ;
c->cd(1) ; gPad->SetLeftMargin(0.15) ; frame1->GetYaxis()->SetTitleOffset(1.6) ; frame1->Draw() ;
c->cd(2) ; gPad->SetLeftMargin(0.15) ; frame2->GetYaxis()->SetTitleOffset(1.6) ; frame2->Draw() ;
c->cd(3) ; gPad->SetLeftMargin(0.15) ; frame3->GetYaxis()->SetTitleOffset(1.6) ; frame3->Draw() ;
}
示例3: rf506_msgservice
void rf506_msgservice()
{
// C r e a t e p d f
// --------------------
// Construct gauss(x,m,s)
RooRealVar x("x","x",-10,10) ;
RooRealVar m("m","m",0,-10,10) ;
RooRealVar s("s","s",1,-10,10) ;
RooGaussian gauss("g","g",x,m,s) ;
// Construct poly(x,p0)
RooRealVar p0("p0","p0",0.01,0.,1.) ;
RooPolynomial poly("p","p",x,p0) ;
// Construct model = f*gauss(x) + (1-f)*poly(x)
RooRealVar f("f","f",0.5,0.,1.) ;
RooAddPdf model("model","model",RooArgSet(gauss,poly),f) ;
RooDataSet* data = model.generate(x,10) ;
// P r i n t c o n f i g u r a t i o n o f m e s s a g e s e r v i c e
// ---------------------------------------------------------------------------
// Print streams configuration
RooMsgService::instance().Print() ;
cout << endl ;
// A d d i n g I n t e g r a t i o n t o p i c t o e x i s t i n g I N F O s t r e a m
// -----------------------------------------------------------------------------------------------
// Print streams configuration
RooMsgService::instance().Print() ;
cout << endl ;
// Add Integration topic to existing INFO stream
RooMsgService::instance().getStream(1).addTopic(Integration) ;
// Construct integral over gauss to demonstrate new message stream
RooAbsReal* igauss = gauss.createIntegral(x) ;
igauss->Print() ;
// Print streams configuration in verbose, which also shows inactive streams
cout << endl ;
RooMsgService::instance().Print() ;
cout << endl ;
// Remove stream
RooMsgService::instance().getStream(1).removeTopic(Integration) ;
// E x a m p l e s o f p d f v a l u e t r a c i n g s t r e a m
// -----------------------------------------------------------------------
// Show DEBUG level message on function tracing, trace RooGaussian only
RooMsgService::instance().addStream(DEBUG,Topic(Tracing),ClassName("RooGaussian")) ;
// Perform a fit to generate some tracing messages
model.fitTo(*data,Verbose(kTRUE)) ;
// Reset message service to default stream configuration
RooMsgService::instance().reset() ;
// Show DEBUG level message on function tracing on all objects, redirect output to file
RooMsgService::instance().addStream(DEBUG,Topic(Tracing),OutputFile("rf506_debug.log")) ;
// Perform a fit to generate some tracing messages
model.fitTo(*data,Verbose(kTRUE)) ;
// Reset message service to default stream configuration
RooMsgService::instance().reset() ;
// E x a m p l e o f a n o t h e r d e b u g g i n g s t r e a m
// ---------------------------------------------------------------------
// Show DEBUG level messages on client/server link state management
RooMsgService::instance().addStream(DEBUG,Topic(LinkStateMgmt)) ;
RooMsgService::instance().Print("v") ;
// Clone composite pdf g to trigger some link state management activity
RooAbsArg* gprime = gauss.cloneTree() ;
gprime->Print() ;
// Reset message service to default stream configuration
RooMsgService::instance().reset() ;
}
示例4: main
int main() {
// Construct gauss(x,m,s)
RooRealVar x("x","x",-10,10) ;
RooRealVar m("m","m",0,-10,10) ;
RooRealVar s("s","s",1,-10,10) ;
RooGaussian gauss("g","g",x,m,s) ;
// Construct poly(x,p0)
RooRealVar p0("p0","p0",0.01,0.,1.) ;
RooPolynomial poly("p","p",x,p0) ;
// Construct model = f*gauss(x) + (1-f)*poly(x)
RooRealVar f("f","f",0.5,0.,1.) ;
RooAddPdf model("model","model",RooArgSet(gauss,poly),f) ;
RooDataSet* data = model.generate(x,10);
// P r i n t c o n f i g u r a t i o n o f m e s s a g e s e r v i c e
// ---------------------------------------------------------------------------
// Print streams configuration
RooMsgService::instance().Print() ;
cout << endl ;
// A d d i n g I n t e g r a t i o n t o p i c t o e x i s t i n g I N F O s t r e a m
// -----------------------------------------------------------------------------------------------
// Print streams configuration
RooMsgService::instance().Print() ;
cout << endl ;
// Add Integration topic to existing INFO stream
RooMsgService::instance().getStream(1).addTopic(Integration) ;
// Construct integral over gauss to demonstrate new message stream
RooAbsReal* igauss = gauss.createIntegral(x) ;
igauss->Print() ;
// Print streams configuration in verbose, which also shows inactive streams
cout << endl ;
RooMsgService::instance().Print() ;
cout << endl ;
// Remove stream
RooMsgService::instance().getStream(1).removeTopic(Integration) ;
// E x a m p l e s o f p d f v a l u e t r a c i n g s t r e a m
// -----------------------------------------------------------------------
// Show DEBUG level message on function tracing, trace RooGaussian only
RooMsgService::instance().addStream(DEBUG,Topic(Tracing),ClassName("RooGaussian")) ;
// Perform a fit to generate some tracing messages
model.fitTo(*data,Verbose(kTRUE)) ;
TH1 *histo = model.createHistogram("histo");
return 0;
}
示例5: outputdir
void ws_constrained_profile3D( const char* wsfile = "rootfiles/ws-data-unblind.root",
const char* new_poi_name = "n_M234_H4_3b",
int npoiPoints = 20,
double poiMinVal = 0.,
double poiMaxVal = 20.,
double constraintWidth = 1.5,
double ymax = 10.,
int verbLevel=0 ) {
gStyle->SetOptStat(0) ;
//--- make output directory.
char command[10000] ;
sprintf( command, "basename %s", wsfile ) ;
TString wsfilenopath = gSystem->GetFromPipe( command ) ;
wsfilenopath.ReplaceAll(".root","") ;
char outputdirstr[1000] ;
sprintf( outputdirstr, "outputfiles/scans-%s", wsfilenopath.Data() ) ;
TString outputdir( outputdirstr ) ;
printf("\n\n Creating output directory: %s\n\n", outputdir.Data() ) ;
sprintf(command, "mkdir -p %s", outputdir.Data() ) ;
gSystem->Exec( command ) ;
//--- Tell RooFit to shut up about anything less important than an ERROR.
RooMsgService::instance().setGlobalKillBelow(RooFit::ERROR) ;
if ( verbLevel > 0 ) { printf("\n\n Verbose level : %d\n\n", verbLevel) ; }
TFile* wstf = new TFile( wsfile ) ;
RooWorkspace* ws = dynamic_cast<RooWorkspace*>( wstf->Get("ws") );
if ( verbLevel > 0 ) { ws->Print() ; }
RooDataSet* rds = (RooDataSet*) ws->obj( "ra2b_observed_rds" ) ;
if ( verbLevel > 0 ) {
printf("\n\n\n ===== RooDataSet ====================\n\n") ;
rds->Print() ;
rds->printMultiline(cout, 1, kTRUE, "") ;
}
ModelConfig* modelConfig = (ModelConfig*) ws->obj( "SbModel" ) ;
RooAbsPdf* likelihood = modelConfig->GetPdf() ;
RooRealVar* rrv_mu_susy_all0lep = ws->var("mu_susy_all0lep") ;
if ( rrv_mu_susy_all0lep == 0x0 ) {
printf("\n\n\n *** can't find mu_susy_all0lep in workspace. Quitting.\n\n\n") ;
return ;
}
//-- do BG only.
rrv_mu_susy_all0lep->setVal(0.) ;
rrv_mu_susy_all0lep->setConstant( kTRUE ) ;
//-- do a prefit.
printf("\n\n\n ====== Pre fit with unmodified nll var.\n\n") ;
RooFitResult* dataFitResultSusyFixed = likelihood->fitTo(*rds, Save(true),Hesse(false),Minos(false),Strategy(1),PrintLevel(verbLevel));
int dataSusyFixedFitCovQual = dataFitResultSusyFixed->covQual() ;
if ( dataSusyFixedFitCovQual < 2 ) { printf("\n\n\n *** Failed fit! Cov qual %d. Quitting.\n\n", dataSusyFixedFitCovQual ) ; return ; }
double dataFitSusyFixedNll = dataFitResultSusyFixed->minNll() ;
if ( verbLevel > 0 ) {
dataFitResultSusyFixed->Print("v") ;
}
printf("\n\n Nll value, from fit result : %.3f\n\n", dataFitSusyFixedNll ) ;
//.........这里部分代码省略.........