本文整理汇总了C++中TH3D::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ TH3D::Add方法的具体用法?C++ TH3D::Add怎么用?C++ TH3D::Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH3D
的用法示例。
在下文中一共展示了TH3D::Add方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: bToDRawYield
void bToDRawYield()
{
gStyle->SetTextSize(0.05);
gStyle->SetTextFont(42);
gStyle->SetPadRightMargin(0.04);
gStyle->SetPadLeftMargin(0.14);
gStyle->SetPadTopMargin(0.1);
gStyle->SetPadBottomMargin(0.14);
gStyle->SetTitleX(.0f);
gStyle->SetOptFit(1111);
gStyle->SetOptStat(0);
gStyle->SetOptTitle(0);
TCanvas* c4 = new TCanvas("c4","",800,600);
c4->Divide(2,2);
TCanvas* c2 = new TCanvas("c2","",400,600);
c2->Divide(1,2);
TCanvas* c1 = new TCanvas();
TCanvas* c15 = new TCanvas("c15","",810,1000);
c15->Divide(3,5);
TFile* fPbPb = new TFile("bFeedDownPbPb.hist.root");
TFile* fPbPbMB = new TFile("bFeedDownPbPbMB.hist.root");
TFile* fPbPbMC = new TFile("bFeedDownPbPbMC.hist.root");
TFile* fPbPbMBMC = new TFile("bFeedDownPbPbMBMC.hist.root");
TH3D* hDataPbPb = (TH3D*)fPbPb->Get("hData");
TH3D* hSidebandPbPb = (TH3D*)fPbPb->Get("hSideband");
TH3D* hDataPbPbMB = (TH3D*)fPbPbMB->Get("hData");
TH3D* hSidebandPbPbMB = (TH3D*)fPbPbMB->Get("hSideband");
TH3D* hPtMD0DcaPbPb = (TH3D*)fPbPb->Get("hPtMD0Dca");
TH3D* hPtMD0DcaPbPbMB = (TH3D*)fPbPbMB->Get("hPtMD0Dca");
TH3D* hMCPSignalPbPb = (TH3D*)fPbPbMC->Get("hMCPSignal");
TH3D* hMCNPSignalPbPb = (TH3D*)fPbPbMC->Get("hMCNPSignal");
TH3D* hMCPSignalPbPbMB = (TH3D*)fPbPbMBMC->Get("hMCPSignal");
TH3D* hMCNPSignalPbPbMB = (TH3D*)fPbPbMBMC->Get("hMCNPSignal");
TH3D* hPtMD0DcaMCPSignalPbPb = (TH3D*)fPbPbMC->Get("hPtMD0DcaMCPSignal");
TH3D* hPtMD0DcaMCPSwappedPbPb = (TH3D*)fPbPbMC->Get("hPtMD0DcaMCPSwapped");
TH3D* hPtMD0DcaMCPSignalPbPbMB =(TH3D*)fPbPbMBMC->Get("hPtMD0DcaMCPSignal");
TH3D* hPtMD0DcaMCPSwappedPbPbMB = (TH3D*)fPbPbMBMC->Get("hPtMD0DcaMCPSwapped");
TH3D* hData = (TH3D*)hDataPbPb->Clone("hData");
hData->Sumw2();
hData->Add(hDataPbPbMB);
TH3D* hSideband = (TH3D*)hSidebandPbPb->Clone("hSideband");
hSideband->Sumw2();
hSideband->Add(hSidebandPbPbMB);
TH3D* hPtMD0Dca = (TH3D*)hPtMD0DcaPbPb->Clone("hPtMD0Dca");
hPtMD0Dca->Sumw2();
hPtMD0Dca->Add(hPtMD0DcaPbPbMB);
TH3D* hMCPSignal = (TH3D*)hMCPSignalPbPb->Clone("hMCPSignal");
hMCPSignal->Sumw2();
hMCPSignal->Add(hMCPSignalPbPbMB);
TH3D* hMCNPSignal = (TH3D*)hMCNPSignalPbPb->Clone("hMCNPSignal");
hMCNPSignal->Sumw2();
hMCNPSignal->Add(hMCNPSignalPbPbMB);
TH3D* hPtMD0DcaMCPSignal = (TH3D*)hPtMD0DcaMCPSignalPbPb->Clone("hPtMD0DcaMCPSignal");
hPtMD0DcaMCPSignal->Sumw2();
hPtMD0DcaMCPSignal->Add(hPtMD0DcaMCPSignalPbPbMB);
TH3D* hPtMD0DcaMCPSwapped =(TH3D*)hPtMD0DcaMCPSwappedPbPb->Clone("hPtMD0DcaMCPSwapped");
hPtMD0DcaMCPSwapped->Sumw2();
hPtMD0DcaMCPSwapped->Add(hPtMD0DcaMCPSwappedPbPbMB);
TLatex* texCms = new TLatex(0.18,0.93, "#scale[1.25]{CMS} Preliminary");
texCms->SetNDC();
texCms->SetTextAlign(12);
texCms->SetTextSize(0.06);
texCms->SetTextFont(42);
TLatex* texCol = new TLatex(0.96,0.93, "PbPb #sqrt{s_{NN}} = 5.02 TeV");
texCol->SetNDC();
texCol->SetTextAlign(32);
texCol->SetTextSize(0.06);
texCol->SetTextFont(42);
const int nPtBins = 14;
float ptBins[nPtBins+1] = {2.,3.,4.,5.,6.,8.,10.,12.5,15.0,20.,25.,30.,40.,60.,100};
float pts[nPtBins];
float ptErrors[nPtBins];
float promptFraction[nPtBins];
float totalYield[nPtBins];
float totalYieldInvMassFit[nPtBins];
float totalYieldInvMassFitError[nPtBins];
float bToDYield[nPtBins];
float bToDYieldError[nPtBins];
float bToDYieldErrorDataOnly[nPtBins];
float promptDYield[nPtBins];
float promptDYieldError[nPtBins];
float promptDYieldErrorDataOnly[nPtBins];
//.........这里部分代码省略.........
示例2: tight_loose_ratioplot
void tight_loose_ratioplot()
{
DEBUG("tight_loose_ratioplot() start");
MakeCanvas(1,1);
DEBUG("reading histograms");
// "plot" histograms, i.e. read into memory
cd(1);
top();
plot3("TightMuons");
cd(2);
top();
plot3("LooseMuons");
cd(1);
TLegend * leg = new TLegend(0.53, 0.52, 0.77, 0.84);
setopt(leg);
Bool_t first = kTRUE;
// get summed histograms
vector<Int_t> entries;
TH3D * hTightSum = 0;
TH3D * hLooseSum = 0;
for (Int_t i = 0; i < gMaxProcess; i++) {
Int_t process = gOrder[0][i];
// not existing
TH3D * hTight3 = gHisto3[0][process];
TH3D * hLoose3 = gHisto3[1][process];
if (hTight3 == 0 || hLoose3 == 0) {
ERROR("could not get histogram # " << i << " from memory");
continue;
}
// if joined, it was already considered in previous iteration
if (gProcess[process].join)
continue;
if (strncmp(gProcess[process].fname, "qcd", 3) &&
strncmp(gProcess[process].fname, "dyll", 4) &&
strncmp(gProcess[process].fname, "ttjets", 6) &&
strncmp(gProcess[process].fname, "wjetstolnu", 10) &&
strncmp(gProcess[process].fname, "data", 3))
continue;
DEBUG("Creating histos for process " << gProcess[process].fname);
hTightSum = new TH3D(*hTight3);
hLooseSum = new TH3D(*hLoose3);
// check if histograms are joined -> we need to add statistics
for (Int_t j = i+1; j < gMaxProcess; j++) {
Int_t proc = gOrder[0][j];
if (gOrder[1][j] != proc) {
ERROR("wrong order - need to restart!");
return;
}
// only add joined histograms
if (!gProcess[proc].join)
break;
// not existing
if (gHisto3[0][proc] == 0 || gHisto3[1][proc] == 0)
continue;
DEBUG("Adding histos for process " << gProcess[proc].fname);
hTightSum->Add(gHisto3[0][proc], 1.);
hLooseSum->Add(gHisto3[1][proc], 1.);
}
DEBUG("Getting ratio");
TH1D * histo = get_1d_ratio(hTightSum, hLooseSum);
if (histo == 0) {
ERROR("Division failed");
return;
}
check_1d_ratio_histogram(histo);
setopt(histo);
histo->SetLineColor(gProcess[process].lcolor);
histo->SetLineStyle(gProcess[process].lstyle);
DEBUG("Adding to legend");
if (process != gMaxProcess-1) {
leg->AddEntry(histo, gProcess[process].tname, "l");
}
else {
leg->AddEntry(histo, gProcess[process].tname);
}
DEBUG("Draw");
if (first) {
histo->SetMaximum(1.);
histo->SetMinimum(-0.1);
histo->SetXTitle("p_{T}(#mu) [GeV]");
histo->SetYTitle("T/L ratio");
histo->Draw("ehisto");
first = kFALSE;
}
else {
if (process == gMaxProcess-1) {
histo->SetMarkerStyle(gProcess[gMaxProcess-1].marker);
histo->Draw("epsame");
}
else {
histo->Draw("ehistosame");
}
}
}
// add subtracted data histogram
TH1D * hdata_subtracted = get_subtracted_tight_loose_ratio(false, false);
if (hdata_subtracted == 0)
//.........这里部分代码省略.........
示例3: ScanChain
//.........这里部分代码省略.........
}
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
//get the reweighting histograms
TIter fileIterFirst(listOfFiles);
TFile *currentFileFirst = 0;
TH3D* counterhistSig;
TH2F* histNEvts;
bool thisisfirst = true;
// File Loop for adding correct histograms
while ( (currentFileFirst = (TFile*)fileIterFirst.Next()) ) {
TFile *file = new TFile( currentFileFirst->GetTitle() );
file->cd();
if(thisisfirst){
counterhistSig = (TH3D*)file->Get("h_counterSMS");
counterhistSig->SetDirectory(0);
histNEvts = (TH2F*)file->Get("histNEvts");
histNEvts->SetDirectory(0);
thisisfirst = false;
} else {
TH3D *tempcounterhistSig = (TH3D*)file->Get("h_counterSMS");
tempcounterhistSig->SetDirectory(0);
TH2F *temphistNEvts = (TH2F*)file->Get("histNEvts");
temphistNEvts->SetDirectory(0);
counterhistSig->Add(tempcounterhistSig);
histNEvts->Add(temphistNEvts);
tempcounterhistSig->Delete();
temphistNEvts->Delete();
}
file->Close();
delete file;
}
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
CMS3::progress( nEventsTotal, nEventsChain );
示例4: function_fit
void function_fit(){
gStyle->SetTextSize(0.05);
gStyle->SetTextFont(42);
gStyle->SetPadRightMargin(0.04);
gStyle->SetPadLeftMargin(0.14);
gStyle->SetPadTopMargin(0.1);
gStyle->SetPadBottomMargin(0.14);
gStyle->SetTitleX(.0f);
gStyle->SetOptFit(1111);
gStyle->SetOptStat(0);
gStyle->SetOptTitle(0);
TFile* fPbPb = new TFile("bFeedDownPbPb.hist.root");
TFile* fPbPbMB = new TFile("bFeedDownPbPbMB.hist.root");
// TFile* fPbPbMC = new TFile("bFeedDownPbPbMC_funfit.hist.root");
// TFile* fPbPbMBMC = new TFile("bFeedDownPbPbMBMC_funfit.hist.root");
TFile* fPbPbMC = new TFile("bFeedDownPbPbMC.hist.root");
TFile* fPbPbMBMC = new TFile("bFeedDownPbPbMBMC.hist.root");
TH3D* hDataPbPb = (TH3D*)fPbPb->Get("hData");
TH3D* hSidebandPbPb = (TH3D*)fPbPb->Get("hSideband");
TH3D* hDataPbPbMB = (TH3D*)fPbPbMB->Get("hData");
TH3D* hSidebandPbPbMB = (TH3D*)fPbPbMB->Get("hSideband");
TH3D* hPtMD0DcaPbPb = (TH3D*)fPbPb->Get("hPtMD0Dca");
TH3D* hPtMD0DcaPbPbMB = (TH3D*)fPbPbMB->Get("hPtMD0Dca");
TH3D* hMCPSignalPbPb = (TH3D*)fPbPbMC->Get("hMCPSignal");
TH3D* hMCNPSignalPbPb = (TH3D*)fPbPbMC->Get("hMCNPSignal");
TH3D* hMCPSignalPbPbMB = (TH3D*)fPbPbMBMC->Get("hMCPSignal");
TH3D* hMCNPSignalPbPbMB = (TH3D*)fPbPbMBMC->Get("hMCNPSignal");
TH3D* hPtMD0DcaMCPSignalPbPb = (TH3D*)fPbPbMC->Get("hPtMD0DcaMCPSignal");
TH3D* hPtMD0DcaMCPSwappedPbPb = (TH3D*)fPbPbMC->Get("hPtMD0DcaMCPSwapped");
TH3D* hPtMD0DcaMCPSignalPbPbMB =(TH3D*)fPbPbMBMC->Get("hPtMD0DcaMCPSignal");
TH3D* hPtMD0DcaMCPSwappedPbPbMB = (TH3D*)fPbPbMBMC->Get("hPtMD0DcaMCPSwapped");
TH3D* hData = (TH3D*)hDataPbPb->Clone("hData");
hData->Sumw2();
hData->Add(hDataPbPbMB);
TH3D* hSideband = (TH3D*)hSidebandPbPb->Clone("hSideband");
hSideband->Sumw2();
hSideband->Add(hSidebandPbPbMB);
TH3D* hPtMD0Dca = (TH3D*)hPtMD0DcaPbPb->Clone("hPtMD0Dca");
hPtMD0Dca->Sumw2();
hPtMD0Dca->Add(hPtMD0DcaPbPbMB);
TH3D* hMCPSignal = (TH3D*)hMCPSignalPbPb->Clone("hMCPSignal");
hMCPSignal->Sumw2();
hMCPSignal->Add(hMCPSignalPbPbMB);
TH3D* hMCNPSignal = (TH3D*)hMCNPSignalPbPb->Clone("hMCNPSignal");
hMCNPSignal->Sumw2();
hMCNPSignal->Add(hMCNPSignalPbPbMB);
TH3D* hPtMD0DcaMCPSignal = (TH3D*)hPtMD0DcaMCPSignalPbPb->Clone("hPtMD0DcaMCPSignal");
hPtMD0DcaMCPSignal->Sumw2();
hPtMD0DcaMCPSignal->Add(hPtMD0DcaMCPSignalPbPbMB);
TH3D* hPtMD0DcaMCPSwapped =(TH3D*)hPtMD0DcaMCPSwappedPbPb->Clone("hPtMD0DcaMCPSwapped");
hPtMD0DcaMCPSwapped->Sumw2();
hPtMD0DcaMCPSwapped->Add(hPtMD0DcaMCPSwappedPbPbMB);
// TH1D *h_DcaData = (TH1D*)fDcaData->Get("D0DcaDatafitOut_pt5");
// const int nPtBins = 14;
// float ptBins[nPtBins+1] = {2.,3.,4.,5.,6.,8.,10.,12.5,15.0,20.,25.,30.,40.,60.,100};
const int nPtBins = 9;
float ptBins[nPtBins+1] = {2.,4.,6.,8.,10.,12.5,20.,40.,60.,100};
const int nBinY = 20;
const Double_t binsY[nBinY+1] = {-0.0734,-0.0562,-0.0428,-0.0320,-0.0236,-0.0170,-0.0118,-0.0078,-0.0046,-0.002,0.0,0.002,0.0046,0.0078,0.0118,0.0170,0.0236,0.0320,0.0428,0.0562,0.0734};
TFile *fDcaData = new TFile("bFeedDownResult.root");
TH1D *h_DcaData[nPtBins];
// TH1D *h_DcaData = (TH1D*)fDcaData->Get("D0DcaDatafitOut_pt5");
RooBinning bin_dcaxy(nBinY,binsY);
// TH1D* h_MCP_DCAxy = new TH1D("h_MCP_DCAxy", "h_MCP_DCAxy", nBinY, binsY);
// TH1D* h_MCNP_DCAxy = new TH1D("h_MCNP_DCAxy", "h_MCNP_DCAxy", nBinY, binsY);
TFile *fout= new TFile("function_fit_result.root","RECREATE");
TH1D *h_PromptYield_fix = new TH1D("h_PromptYield_fix","h_PromptYield_fix",nPtBins,ptBins);
TH1D *h_NonPromptYield_fix = new TH1D("h_NonPromptYield_fix","h_NonPromptYield_fix",nPtBins,ptBins);
TH1D *h_NonPromptFraction_fix= new TH1D("h_NonPromptFraction_fix","h_NonPromptFraction_fix",nPtBins,ptBins);
TH1D *h_PromptYield_float = new TH1D("h_PromptYield_float","h_PromptYield_float",nPtBins,ptBins);
TH1D *h_NonPromptYield_float = new TH1D("h_NonPromptYield_float","h_NonPromptYield_float",nPtBins,ptBins);
TH1D *h_NonPromptFraction_float= new TH1D("h_NonPromptFraction_float","h_NonPromptFraction_float",nPtBins,ptBins);
hMCPSignal->GetXaxis()->SetRangeUser(8,10);
//.........这里部分代码省略.........