本文整理汇总了C++中RooDataSet::tree方法的典型用法代码示例。如果您正苦于以下问题:C++ RooDataSet::tree方法的具体用法?C++ RooDataSet::tree怎么用?C++ RooDataSet::tree使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RooDataSet
的用法示例。
在下文中一共展示了RooDataSet::tree方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createWorkspace
void createWorkspace(const std::string &infilename, int nState, bool correctCtau, bool drawRapPt2D) {
gROOT->SetStyle("Plain");
gStyle->SetTitleBorderSize(0);
delete gRandom;
gRandom = new TRandom3(23101987);
// Set some strings
const std::string workspacename = "ws_masslifetime",
treename = "selectedData";
// Get the tree from the data file
TFile *f = TFile::Open(infilename.c_str());
TTree *tree = (TTree*)f->Get(treename.c_str());
// Set branch addresses in tree to be able to import tree to roofit
TLorentzVector* chic = new TLorentzVector;
tree->SetBranchAddress("chic",&chic);
TLorentzVector* chic_rf = new TLorentzVector;
tree->SetBranchAddress("chic_rf",&chic_rf);
TLorentzVector* jpsi = new TLorentzVector;
tree->SetBranchAddress("jpsi",&jpsi);
double lifetime = 0;
tree->SetBranchAddress("Jpsict",&lifetime);
double lifetimeErr = 0;
tree->SetBranchAddress("JpsictErr",&lifetimeErr);
char lifetimeTitle[200];
sprintf(lifetimeTitle,"l^{#psi} [mm]");
if(correctCtau) sprintf(lifetimeTitle,"l^{#chi} [mm]");
// define variables necessary for J/Psi(Psi(2S)) mass,lifetime fit
RooRealVar* JpsiMass =
new RooRealVar("JpsiMass", "M^{#psi} [GeV]", onia::massMin, onia::massMax);
RooRealVar* JpsiPt =
new RooRealVar("JpsiPt", "p^{#psi}_{T} [GeV]", 0. ,1000.);
RooRealVar* JpsiRap =
new RooRealVar("JpsiRap", "y^{#psi}", -2., 2.);
RooRealVar* chicMass =
new RooRealVar("chicMass", "M^{#chi} [GeV]", onia::chimassMin, onia::chimassMax);
RooRealVar* chicRap =
new RooRealVar("chicRap", "y^{#chi}", -onia::chirap, onia::chirap);
RooRealVar* chicPt =
new RooRealVar("chicPt", "p^{#chi}_{T} [GeV]", 0. ,100.);
RooRealVar* Jpsict =
new RooRealVar("Jpsict", lifetimeTitle, onia::ctVarMin, onia::ctVarMax);
RooRealVar* JpsictErr =
new RooRealVar("JpsictErr", Form("Error on %s",lifetimeTitle), 0.0001, 1.);
// Set bins
Jpsict->setBins(10000,"cache");
JpsiMass->setBins(10000,"cache");
JpsiPt->setBins(100);
JpsiRap->setBins(10000,"cache");
chicMass->setBins(10000,"cache");
//JpsictErr->setBins(100);
JpsictErr->setBins(10000,"cache");
// The list of data variables
RooArgList dataVars(*JpsiMass,*JpsiPt,*JpsiRap,*chicMass,*chicRap,*chicPt,*Jpsict,*JpsictErr);
// construct dataset to contain events
RooDataSet* fullData = new RooDataSet("fullData","The Full Data From the Input ROOT Trees",dataVars);
int entries = tree->GetEntries();
cout << "entries " << entries << endl;
int numEntriesTotal=0;
int numEntriesInAnalysis=0;
int numEntriesNotInAnalysis=0;
/*
/// Read in 2011 data ctauErr-histos
char saveDir[200];
char PlotID[200];
char savename[200];
sprintf(saveDir,"/afs/hephy.at/scratch/k/knuenz/ChicPol/macros/polFit/Figures/CtauErrModel");
gSystem->mkdir(saveDir);
sprintf(PlotID,"2014May26_MoreLbins");
sprintf(saveDir,"%s/%s",saveDir,PlotID);
gSystem->mkdir(saveDir);
sprintf(savename,"%s/CtauErrModel_histograms.root",saveDir);
TFile *infile = new TFile(savename,"READ");
cout<<"opened file"<<endl;
const int nPT=5;
const int nRAP=2;
const int nL=15;
const double bordersPT[nPT+1] = {0., 12., 16., 20., 30., 100.};
const double bordersRAP[nRAP+1] = {0., 0.6, 2.};
const double bordersL[nL+1] = {onia::ctVarMin, -0.05, -0.03, -0.02, -0.015, -0.01, -0.005, 0., 0.005, 0.01, 0.015, 0.02, 0.03, 0.05, 0.1, onia::ctVarMax};
TH1D* h_ctauerr_2011[nRAP+1][nPT+1][nL+1];
TH1D* h_ctauerr_2012[nRAP+1][nPT+1][nL+1];
//.........这里部分代码省略.........
示例2: createWorkspace
void createWorkspace(const std::string &infilename, int nState, bool correctCtau, bool drawRapPt2D, bool drawPtCPM2D){
gROOT->SetStyle("Plain");
gStyle->SetTitleBorderSize(0);
// Set some strings
const std::string workspacename = "ws_masslifetime",
treename = "selectedData";
// Get the tree from the data file
TFile *f = TFile::Open(infilename.c_str());
TTree *tree = (TTree*)f->Get(treename.c_str());
// Set branch addresses in tree to be able to import tree to roofit
TLorentzVector* jpsi = new TLorentzVector;
tree->SetBranchAddress("JpsiP",&jpsi);
double CPMval = 0;
tree->SetBranchAddress("CPM",&CPMval);
double massErr = 0;
tree->SetBranchAddress("JpsiMassErr",&massErr);
double Vprob = 0;
tree->SetBranchAddress("JpsiVprob",&Vprob);
double lifetime = 0;
tree->SetBranchAddress("Jpsict",&lifetime);
double lifetimeErr = 0;
tree->SetBranchAddress("JpsictErr",&lifetimeErr);
// define variables necessary for J/Psi(Psi(2S)) mass,lifetime fit
RooRealVar* JpsiMass =
new RooRealVar("JpsiMass", "M [GeV]", onia::massMin, onia::massMax);
RooRealVar* JpsiMassErr =
new RooRealVar("JpsiMassErr", "#delta M [GeV]", 0, 5);
RooRealVar* JpsiRap =
new RooRealVar("JpsiRap", "y", -onia::rap, onia::rap);
RooRealVar* JpsiPt =
new RooRealVar("JpsiPt", "p_{T} [GeV]", 0. ,100.);
RooRealVar* JpsiCPM =
new RooRealVar("JpsiCPM", "N_{ch}", 0. ,100.);
RooRealVar* Jpsict =
new RooRealVar("Jpsict", "lifetime [mm]", -1., 2.5);
RooRealVar* JpsictErr =
new RooRealVar("JpsictErr", "Error on lifetime [mm]", 0.0001, 1);
RooRealVar* JpsiVprob =
new RooRealVar("JpsiVprob", "", 0.01, 1.);
// Set bins
Jpsict->setBins(10000,"cache");
Jpsict->setBins(100);
JpsiMass->setBins(100);
JpsictErr->setBins(100);
// The list of data variables
RooArgList dataVars(*JpsiMass,*JpsiMassErr,*JpsiRap,*JpsiPt,*JpsiCPM,*Jpsict,*JpsictErr,*JpsiVprob);
// construct dataset to contain events
RooDataSet* fullData = new RooDataSet("fullData","The Full Data From the Input ROOT Trees",dataVars);
int entries = tree->GetEntries();
cout << "entries " << entries << endl;
// loop through events in tree and save them to dataset
for (int ientries = 0; ientries < entries; ientries++) {
if (ientries%100000==0) std::cout << "event " << ientries << " of " << entries << std::endl;
tree->GetEntry(ientries);
double M =jpsi->M();
double y=jpsi->Rapidity();
double pt=jpsi->Pt();
double cpm=CPMval;
if (M > JpsiMass->getMin() && M < JpsiMass->getMax()
&& massErr > JpsiMassErr->getMin() && massErr < JpsiMassErr->getMax()
&& pt > JpsiPt->getMin() && pt < JpsiPt->getMax()
&& cpm > JpsiCPM->getMin() && cpm < JpsiCPM->getMax()
&& y > JpsiRap->getMin() && y < JpsiRap->getMax()
&& lifetime > Jpsict->getMin() && lifetime < Jpsict->getMax()
&& lifetimeErr > JpsictErr->getMin() && lifetimeErr < JpsictErr->getMax()
&& Vprob > JpsiVprob->getMin() && Vprob < JpsiVprob->getMax()
){
JpsiPt ->setVal(pt);
JpsiCPM ->setVal(cpm);
JpsiRap ->setVal(y);
JpsiMass ->setVal(M);
JpsiMassErr ->setVal(massErr);
JpsiVprob ->setVal(Vprob);
//cout<<"before lifetime correction \n"
// <<"Jpsict: "<<lifetime<<" JpsictErr: "<<lifetimeErr<<endl;
if(correctCtau){
lifetime = lifetime * onia::MpsiPDG / M ;
lifetimeErr = lifetimeErr * onia::MpsiPDG / M ;
Jpsict ->setVal(lifetime);
JpsictErr ->setVal(lifetimeErr);
//cout<<"MpsiPDG: "<<onia::MpsiPDG<<endl;
//cout<<"after lifetime correction \n"
// <<"Jpsict: "<<lifetime<<" JpsictErr: "<<lifetimeErr<<endl;
//.........这里部分代码省略.........