本文整理汇总了C++中Analysis::GetDataSet方法的典型用法代码示例。如果您正苦于以下问题:C++ Analysis::GetDataSet方法的具体用法?C++ Analysis::GetDataSet怎么用?C++ Analysis::GetDataSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Analysis
的用法示例。
在下文中一共展示了Analysis::GetDataSet方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getDataAndFrac
RooDataSet * getDataAndFrac(TString name, TString q2name, TreeReader * mydata, TCut cut, RooRealVar * MM, double * frac, Str2VarMap jpsiPars, double *outnsig)
{
RooRealVar * cosThetaL = new RooRealVar("cosThetaL","cosThetaL",0.,-1.,1.);
RooRealVar * cosThetaB = new RooRealVar("cosThetaB","cosThetaB",0.,-1.,1.);
TCut massCut = "Lb_MassConsLambda > 5590 && Lb_MassConsLambda < 5650";
Analysis * ana = new Analysis(name+"_mass"+q2name,"Lb",mydata,&cut,MM);
ana->AddVariable("J_psi_1S_MM");
ana->AddVariable(cosThetaL);
ana->AddVariable(cosThetaB);
RooAbsPdf * mysig = stringToPdf("Gauss","sig",MM,jpsiPars);
RooAbsPdf * mybkg = stringToPdf("Exp","bkgM",MM);
RooRealVar * mynsig = new RooRealVar("mynsig","mynsig",50,0,100000);
RooRealVar * mynbkg = new RooRealVar("mynbkg","mynbkg",10,0,100000);
RooAbsPdf * Mmodel = new RooAddPdf("MassModel","MassModel",RooArgSet(*mysig,*mybkg),RooArgSet(*mynsig,*mynbkg));
ana->applyCuts(&cut);
RooDataSet * data = ana->GetDataSet("-recalc");
Mmodel->fitTo(*data,Extended(kTRUE));
double sigBkg = mybkg->createIntegral(*MM,NormSet(*MM),Range("Signal"))->getVal();
double sig = mysig->createIntegral(*MM,NormSet(*MM),Range("Signal"))->getVal();
double nsig = mynsig->getVal();
double nbkg = mynbkg->getVal();
if(frac)
{
frac[0] = nsig*sig/(nsig*sig+nbkg*sigBkg);
frac[1] = frac[0]*TMath::Sqrt( TMath::Power(mynsig->getError()/nsig,2) + TMath::Power(mynbkg->getError()/nbkg,2) );
}
TCut mycut = cut + massCut;
ana->applyCuts(&mycut);
TCanvas * cc = new TCanvas();
GetFrame(MM,Mmodel,data,"-nochi2-plotAllComp",30,NULL,0,"cos#theta_{#Lambda}")->Draw();
cc->Print("M_"+name+"_"+q2name+".pdf");
if(*outnsig) *outnsig = nsig;
return ana->GetDataSet("-recalc");
}
示例2: buildBkgPdfs
void buildBkgPdfs(double q2min, double q2max, TString name, TCut cut, RooAbsPdf ** bkg, RooAbsPdf ** bkgB, TString model = "Poly2")
{
RooRealVar * cosThetaL = new RooRealVar("cosThetaL","cosThetaL",0.,-1.,1.);
RooRealVar * cosThetaB = new RooRealVar("cosThetaB","cosThetaB",0.,-1.,1.);
TString q2name = ((TString)Form("_q2_%4.2f_%4.2f",q2min,q2max)).ReplaceAll(".","");
string datafile = "/afs/cern.ch/work/p/pluca/weighted/Lmumu/trainingSamples.root";
string treename = "bkgTestSample";
if(q2min == 8 && q2max == 11)
{
q2name = "_jpsi";
datafile = "/afs/cern.ch/work/p/pluca/weighted/Lmumu/Lb2Lmumu_CL_NBweighted.root";
treename = "tree";
}
Analysis * ana = new Analysis("data"+name+q2name,"Lb",treename,datafile);
ana->AddVariable(cosThetaL);
ana->AddVariable(cosThetaB);
ana->AddVariable("J_psi_1S_MM");
ana->AddVariable("Lb_MM");
TCut sideBand = "(Lb_MM > 5690 || Lb_MM < 5550) && weight > 0.8";
if(q2min == 8 && q2max == 11) sideBand = "Lb_MM > 6000 && weight > 0.8 && TMath::Abs(J_psi_1S_MM - 3096.916) < 92.9";
TCut q2cut = (TCut)Form("TMath::Power(J_psi_1S_MM/1000,2) > %e && TMath::Power(J_psi_1S_MM/1000,2) < %e",q2min,q2max);
TCut mycut = sideBand + q2cut + cut;
ana->applyCuts(&mycut);
RooDataSet * data = ana->GetDataSet("-recalc");
if(model=="RooKeyPdf")
{
(*bkg) = new RooKeysPdf("bkg"+name,"bkg"+name,*cosThetaL,*data,RooKeysPdf::MirrorBoth,1);
(*bkgB) = new RooKeysPdf("bkg"+name+"B","bkg"+name+"B",*cosThetaB,*data,RooKeysPdf::MirrorBoth,1);
}
else
{
(*bkg) = stringToPdf(model,"bkg"+name, cosThetaL);
(*bkg)->fitTo(*data,PrintLevel(-1));
fixParams((*bkg),cosThetaL);
(*bkgB) = stringToPdf(model,"bkg"+name+"B", cosThetaB);
(*bkgB)->fitTo(*data,PrintLevel(-1));
fixParams((*bkgB),cosThetaB);
}
}
示例3: main
//.........这里部分代码省略.........
afb->setVal(0);
afbB->setVal(0);
fL->setVal(0.7);
TString LLnorm = "1./( 1. + (2./3.)*afb*c1LL + (2./5.)*c2LL - (1./5.)*c2LL*fL )*"+effLLstr;
TString DDnorm = "1./( 1. + (2./3.)*afb*c1DD + (2./5.)*c2DD - (1./5.)*c2DD*fL )*"+effDDstr;
RooAbsPdf * corrPdfLL = new RooGenericPdf(Form("corrPdfLL_%i",i),LLnorm+"*"+afbLpdf,RooArgSet(*cosThetaL, *afb, *fL, *c1LL, *c2LL) );
RooAbsPdf * corrPdfDD = new RooGenericPdf(Form("corrPdfDD_%i",i),DDnorm+"*"+afbLpdf,RooArgSet(*cosThetaL, *afb, *fL, *c1DD, *c2DD) );
TString LLnormB = "1./( (2./3.)*( 2*afbB*cB1LL + cB2LL + 3.) )*"+effLLBstr;
TString DDnormB = "1./( (2./3.)*( 2*afbB*cB1DD + cB2DD + 3.) )*"+effDDBstr;
RooAbsPdf * corrPdfLLB = new RooGenericPdf(Form("corrPdfLLB_%i",i),LLnormB+"*"+afbBpdf,RooArgSet(*cosThetaB, *afbB, *cB1LL, *cB2LL) );
RooAbsPdf * corrPdfDDB = new RooGenericPdf(Form("corrPdfDDB_%i",i),DDnormB+"*"+afbBpdf,RooArgSet(*cosThetaB, *afbB, *cB1DD, *cB2DD) );
TCut cutLL = CutsDef::LLcut + (TCut)curq2cut;
TCut cutDD = CutsDef::DDcut + (TCut)curq2cut;
if(dodata=="genMC")
{
corrPdfLLB = new RooGenericPdf("corrPdfLL",afbBpdf,RooArgSet(*cosThetaB, *afbB, *cB1LL, *cB2LL) );
corrPdfDDB = new RooGenericPdf("corrPdfDD",afbBpdf,RooArgSet(*cosThetaB, *afbB, *cB1DD, *cB2DD) );
corrPdfLL = new RooGenericPdf("corrPdfLL",afbLpdf,RooArgSet(*cosThetaL, *afb, *fL, *c1LL, *c2LL) );
corrPdfDD = new RooGenericPdf("corrPdfDD",afbLpdf,RooArgSet(*cosThetaL, *afb, *fL, *c1DD, *c2DD) );
cutLL = (TCut)curq2cut;
cutDD = (TCut)curq2cut;
}
Analysis * anaLL = new Analysis(Form("LL_mass_%i",i),"Lb",data,&cutLL,MM);
anaLL->AddVariable(cosThetaL);
anaLL->AddVariable(cosThetaB);
anaLL->AddVariable("J_psi_1S_MM");
if(dodata!="data") anaLL->SetWeight(wstr);
RooDataSet * dataLL = anaLL->GetDataSet("-recalc-docuts");
Analysis * anaDD = new Analysis(Form("DD_mass_%i",i),"Lb",data,&cutDD,MM);
anaDD->AddVariable(cosThetaL);
anaDD->AddVariable(cosThetaB);
anaDD->AddVariable("J_psi_1S_MM");
if(dodata!="data") anaDD->SetWeight(wstr);
RooDataSet * dataDD = anaDD->GetDataSet("-recalc-docuts");
RooDataSet * sdataDD, * sdataLL;
if(dodata=="data")
{
sdataLL = anaLL->CalcSweight("",massModel.c_str(),"Exp");
if(printSw) {
GetFrame(MM,NULL,sdataLL,"-nochi2",30,NULL,0,"M(#Lambda#mu#mu) (MeV/c^{2})")->Draw();
ceff->Print("Mass_LL_sWeighted"+q2name+".pdf");
GetFrame(cosThetaL,NULL,sdataLL,"-nochi2",6,NULL,0,"cos#theta_{l}")->Draw();
ceff->Print("cosThetaL_LL_sWeighted"+q2name+".pdf");
GetFrame(cosThetaL,NULL,dataLL,"-nochi2",6,NULL,0,"cos#theta_{l}")->Draw();
ceff->Print("cosThetaL_LL_"+q2name+".pdf");
}
sdataDD = anaDD->CalcSweight("",massModel.c_str(),"Exp");
if(printSw) {
GetFrame(MM,NULL,sdataDD,"-nochi2",30,NULL,0,"M(#Lambda#mu#mu) (MeV/c^{2})")->Draw();
ceff->Print("Mass_DD_sWeighted"+q2name+".pdf");
GetFrame(cosThetaL,NULL,sdataDD,"-nochi2",10,NULL,0,"cos#theta_{l}")->Draw();
ceff->Print("cosThetaL_DD_sWeighted"+q2name+".pdf");
GetFrame(cosThetaL,NULL,dataDD,"-nochi2",10,NULL,0,"cos#theta_{l}")->Draw();
ceff->Print("cosThetaL_DD_"+q2name+".pdf");
示例4: main
//.........这里部分代码省略.........
cout << "Afb = " << afb->getVal() << " +/- " << afb->getError() << endl;
cout << "fL = " << fL->getVal() << " +/- " << fL->getError() << endl;
cout << endl;
cout << "lepton: " << res->edm() << " " << res->covQual() << endl;
cout << "baryon: " << resB->edm() << " " << resB->covQual() << endl;
cout << endl;
TH1F * fLsys = new TH1F(Form("fLsys_%i",i),"fLsys",40,-1,1);
TH1F * afbsys = new TH1F(Form("afbsys_%i",i),"afbsys",40,-1,1);
TH1F * afbBsys = new TH1F(Form("afbBsys_%i",i),"afbBsys",40,-1,1);
TH1F * fLsys_frac = new TH1F(Form("fLsys_frac%i",i),"fLsys",40,-1,1);
TH1F * afbsys_frac = new TH1F(Form("afbsys_frac%i",i),"afbsys",40,-1,1);
TH1F * afbBsys_frac = new TH1F(Form("afbBsys_frac%i",i),"afbBsys",40,-1,1);
RooAbsPdf * mybkgDD_2 = NULL, * mybkgDDB_2 = NULL;
buildBkgPdfs(q2min[i],q2max[i],"DD",CutsDef::DDcut,&mybkgDD_2,&mybkgDDB_2,"RooKeyPdf");
//cout << nevts << endl;
//TRandom3 r(0);
for(int e = 0; e < nexp; e++)
{
histFile->cd();
RooAbsPdf * toypdf = (RooAbsPdf *)modelDD->Clone();
Analysis * toy = new Analysis("toy",cosThetaL,modelDD,nevts);
RooAbsPdf * toypdfB = (RooAbsPdf *)modelDDB->Clone();
Analysis * toyB = new Analysis("toyB",cosThetaB,modelDDB,nevts);
afb->setVal(0);
afbB->setVal(-0.37);
fL->setVal(0.6);
safeFit(toypdf,toy->GetDataSet("-recalc"),params,&isInAllowedArea);
safeFit(toypdfB,toyB->GetDataSet("-recalc"),paramsB,&isInAllowedAreaB);
double def_afb = afb->getVal();
double def_fL = fL->getVal();
double def_afbB = afbB->getVal();
afb->setVal(0);
afbB->setVal(-0.37);
fL->setVal(0.6);
RooAbsPdf * modelDD_2 = new RooAddPdf("modelDD_2","modelDD",RooArgSet(*corrPdfDD,*mybkgDD_2),*fracDD);
RooAbsPdf * modelDDB_2 = new RooAddPdf("modelDDB_2","modelDDB",RooArgSet(*corrPdfDDB,*mybkgDDB_2),*fracDD);
safeFit(modelDD_2,toy->GetDataSet("-recalc"),params,&isInAllowedArea);
safeFit(modelDDB_2,toyB->GetDataSet("-recalc"),paramsB,&isInAllowedAreaB);
double oth_afb = afb->getVal();
double oth_fL = fL->getVal();
double oth_afbB = afbB->getVal();
fLsys->Fill(oth_fL-def_fL);
afbsys->Fill(oth_afb-def_afb);
afbBsys->Fill(oth_afbB-def_afbB);
afb->setVal(0.);
afbB->setVal(-0.37);
fL->setVal(0.6);
//double rdm_frac = r.Gaus(fracDDv[0],fracDDv[1]);
double rdm_frac = fracDDv[0] + fracDDv[1];
RooRealVar * fracDD_2 = new RooRealVar("fracDD_2","fracDD_2",rdm_frac);
RooAbsPdf * modelDD_3 = new RooAddPdf("modelDD_3","modelDD",RooArgSet(*corrPdfDD,*bkgDD),*fracDD_2);
RooAbsPdf * modelDDB_3 = new RooAddPdf("modelDDB_3","modelDDB",RooArgSet(*corrPdfDDB,*bkgDDB),*fracDD_2);
safeFit(modelDD_3,toy->GetDataSet("-recalc"),params,&isInAllowedArea);