本文整理汇总了C++中TH1D::SetNdivisions方法的典型用法代码示例。如果您正苦于以下问题:C++ TH1D::SetNdivisions方法的具体用法?C++ TH1D::SetNdivisions怎么用?C++ TH1D::SetNdivisions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH1D
的用法示例。
在下文中一共展示了TH1D::SetNdivisions方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: balanceMetVsAj
//.........这里部分代码省略.........
t->Draw(Form("Aj>>hAll1"), "weight"*(evtCut&&myCut));
t->Draw(Form("Aj>>hAll2"), Form("((-weight*metxMergedAll))")*(evtCut&&myCut));
pall=(TH1D*)h2->Clone();
pall->SetName("pall");
pall->Divide(h1);
// replace the sys error from pallE to pall
TH1D *he[nBinAj];
cout << "Stat Error for All pt: ";
for ( int iaj = 0 ; iaj< nBinAj ; iaj++) {
he[iaj] = new TH1D(Form("heAll_aj%d",iaj),"",100,-200,200);
TCut ajCut = Form("Aj>%f && Aj<%f", ajBins[iaj],ajBins[iaj+1]);
t->Draw(Form("((metxMergedAll))>>heAll_aj%d",iaj), "weight" * evtCut&&myCut&&ajCut);
float theError = he[iaj]->GetRMS()/ (sqrt(he[iaj]->GetEntries()));
cout << theError << " ";
pall->SetBinError(iaj+1, theError);
}
cout << endl;
pall->SetXTitle("A_{J}");
pall->SetYTitle("<#slash{p}_{T}^{#parallel}> (GeV/c)");
pall->GetXaxis()->CenterTitle();
pall->GetYaxis()->CenterTitle();
pall->GetXaxis()->SetLabelSize(22);
pall->GetXaxis()->SetLabelFont(43);
pall->GetXaxis()->SetTitleSize(24);
pall->GetXaxis()->SetTitleFont(43);
pall->GetYaxis()->SetLabelSize(22);
pall->GetYaxis()->SetLabelFont(43);
pall->GetYaxis()->SetTitleSize(24);
pall->GetYaxis()->SetTitleFont(43);
pall->GetXaxis()->SetTitleOffset(1.8);
pall->GetYaxis()->SetTitleOffset(2.4);
pall->SetNdivisions(505);
pall->SetAxisRange(-59.9,59.9,"Y");
pall->SetMarkerSize(1);
pall->Draw("E");
float addSys = 0;
if ( drawSys==1) addSys=0; // No sys error at this moment
// ====================
// Finally Draw
// ====================
for (int i=0;i<nBin;++i) {
ppos[i]->SetLineWidth(1);
ppos[i]->Draw("hist same");
pneg[i]->SetLineWidth(1);
pneg[i]->Draw("hist same");
}
// ====================
// Draw Statistical Error bars
// ====================
for (int i=0;i<nBin;++i) {
if ( i==0 ) drawErrorShift(ppos[i],-0.016, addSys);
if ( i==1 || i==4) drawErrorShift(ppos[i],-0.008,addSys);
if ( i==2 ) drawErrorShift(ppos[i],0.008,addSys);
if ( i==3 ) drawErrorShift(ppos[i],0.016,addSys);
if ( i==0 ) drawErrorShift(pneg[i],-0.016, addSys);
if ( i==1 || i==4) drawErrorShift(pneg[i],-0.008,addSys);
if ( i==2 ) drawErrorShift(pneg[i],0.008,addSys);
if ( i==3 ) drawErrorShift(pneg[i],0.016,addSys);
}
pall->Draw("E same");
// ====================
示例2: CombineCentralitiesForDirectory
void CombineCentralitiesForDirectory(TString pairType, TDirectory *dataDir)
{
// Gather the cfs and counts to combine centrality bins
vector<TString> centBins010 = {"05", "510"};
vector<TString> centBins1030 = {"1015", "1520", "2025", "2530"};
vector<TString> centBins3050 = {"3035", "3540", "4045", "4550"};
vector<TString> finalCentBins = {"010", "1030", "3050"};
vector<vector<TString> > centBins;
centBins.push_back(centBins010);
centBins.push_back(centBins1030);
centBins.push_back(centBins3050);
TDirectory *mergeDir = dataDir->GetDirectory("Merged");
if(!mergeDir) {
cout<<"Merge directory does not exist. Cannot merge."<<endl;
return;
}
//For each merge group, get the necessary CFs and counts
for(UInt_t iMerge = 0; iMerge < centBins.size(); iMerge++) {
vector<TH1D*> cfs;
vector<Double_t> counts;
Double_t totalCounts = 0;
for(UInt_t iCF = 0; iCF < centBins[iMerge].size(); iCF++) {
TString cfName = "CF" + pairType + centBins[iMerge][iCF];
TH1D *cf = (TH1D*)mergeDir->Get(cfName);
if(!cf) {
cout<<"Could not find CF named "<<cfName<<" in "<<mergeDir->GetName()<<endl;
return;
}
cfs.push_back(cf);
TString countName = "Count" + pairType + centBins[iMerge][iCF];
TVectorD *count = (TVectorD*) mergeDir->Get(countName);
totalCounts += count[0](0);
counts.push_back(count[0](0));
}
// Finally, combine the CFs
TH1D *combinedCF = CombineCFs(cfs, counts);
if (!combinedCF) {
cout << "Combine CF returned nothing. Continuing loop."
<<endl;
continue;
}
TVectorD finalCount(1);
finalCount[0] = totalCounts;
// Set names
TString combinedCFName = "CF" + pairType + finalCentBins[iMerge];
TString combinedCountName = "Count" + pairType + finalCentBins[iMerge];
combinedCF->SetName(combinedCFName);
combinedCF->SetTitle(combinedCFName);
// Set axis ranges
combinedCF->SetAxisRange(0.9, 1.1, "Y");
combinedCF->SetAxisRange(0., .5, "X");
combinedCF->SetLabelSize(0.05, "X");
combinedCF->SetLabelSize(0.05, "Y");
combinedCF->SetTitleSize(0.05, "X");
combinedCF->SetNdivisions(505, "X");
combinedCF->SetNdivisions(505, "Y");
cout<<"Writing combined CF "<<combinedCF->GetName()
<<" to "<<mergeDir->GetName()<<endl;
combinedCF->SetDirectory(0);
mergeDir->cd();
combinedCF->Write(combinedCF->GetName(), TObject::kOverwrite);
finalCount.Write(combinedCountName, TObject::kOverwrite);
}
}
示例3: balanceMetVsAj
//.........这里部分代码省略.........
// t->Draw(Form("Aj>>hAll2"), Form("((-weight*metx))")*(evtCut&&myCut));
t->Draw(Form("Aj>>hAll2"), Form("((-weight*metxMergedAll))")*(evtCut&&myCut));
pall=(TH1D*)h2->Clone();
pall->SetName("pall");
pall->Divide(h1);
// replace the sys error from pallE to pall
TH1D *he[nBinAj];
cout << "Stat Error for All pt: ";
for ( int iaj = 0 ; iaj< nBinAj ; iaj++) {
he[iaj] = new TH1D(Form("heAll_aj%d",iaj),"",100,-200,200);
TCut ajCut = Form("Aj>%f && Aj<%f", ajBins[iaj],ajBins[iaj+1]);
t->Draw(Form("((metxMergedAll))>>heAll_aj%d",iaj), "weight" * evtCut&&myCut&&ajCut);
float theError = he[iaj]->GetRMS()/ (sqrt(he[iaj]->GetEntries()));
cout << theError << " ";
pall->SetBinError(iaj+1, theError);
}
cout << endl;
pall->SetXTitle("A_{J}");
pall->SetYTitle("<#slash{p}_{T}^{#parallel}> (GeV/c)");
pall->GetXaxis()->CenterTitle();
pall->GetYaxis()->CenterTitle();
pall->GetXaxis()->SetLabelSize(22);
pall->GetXaxis()->SetLabelFont(43);
pall->GetXaxis()->SetTitleSize(24);
pall->GetXaxis()->SetTitleFont(43);
pall->GetYaxis()->SetLabelSize(22);
pall->GetYaxis()->SetLabelFont(43);
pall->GetYaxis()->SetTitleSize(24);
pall->GetYaxis()->SetTitleFont(43);
pall->GetXaxis()->SetTitleOffset(1.8);
pall->GetYaxis()->SetTitleOffset(2.4);
pall->SetNdivisions(505);
pall->SetAxisRange(-59.9,59.9,"Y");
pall->SetMarkerSize(1);
pall->Draw("E");
float addSys = 0;
if ( drawSys==1) addSys=0; // No sys error at this moment
// ====================
// Finally Draw
// ====================
for (int i=0;i<nBin;++i) {
if (plotLayer==0) continue;
if (plotLayer==1&&i!=nBin-1) continue;
p[i]->SetLineWidth(1);
// p[i]->SetMarkerSize(0.1);
p[i]->Draw("hist same");
}
// ====================
// Draw Statistical Error bars
// ====================
for (int i=0;i<nBin;++i) {
if (plotLayer==0) continue;
if (plotLayer==1&&i!=nBin-1) continue;
if ( i==0 ) drawErrorShift(p[i],-0.016, addSys);
if ( i==1 || i==4) drawErrorShift(p[i],-0.008,addSys);
if ( i==2 ) drawErrorShift(p[i],0.008,addSys);
if ( i==3 ) drawErrorShift(p[i],0.016,addSys);
}
pall->Draw("E same");
// ====================
// Draw Systematic Errors
示例4: balanceMetVsAj
void balanceMetVsAj(TString infname = "dj_HCPR-J50U-hiGoodMergedTracks_OfficialSelv2_Final0_120_50.root",
TCut myCut = "cent<30", char *title = "",bool drawLegend = false,
bool drawSys = true
)
{
TFile *inf = new TFile(infname);
TTree *t = (TTree*)inf->Get("ntjt");
t->SetAlias("metxMerged0","metx0+metx1+metx2");
t->SetAlias("metxMerged1","metx1+metx2");
t->SetAlias("metxMerged2","metx2");
t->SetAlias("metxMerged3","metx3+metx4");
const int nBin = 4;
double bins[nBin+1] = {0.5,1.5,4,8,1000};
double colors[nBin] = {38, kOrange-8,kBlue-3,kRed};
const int nBinAj = 4;
double ajBins[nBinAj+1] = {0.0001,0.11,0.22,0.33,0.49999};
// Selection cut
TCut evtCut = "nljet>120&&abs(nljetacorr)<2&&aljet>50&&abs(aljetacorr)<2&&jdphi>2./3*TMath::Pi()&&!maskEvt";
cout << "Sel evt: " << t->GetEntries(evtCut&&myCut) << endl;
TH1D *p[nBin];
for (int i=0;i<nBin;i++)
{
TH1D *h1 = new TH1D(Form("h1%d",i),"",nBinAj,ajBins);
TH1D *h2 = new TH1D(Form("h2%d",i),"",nBinAj,ajBins);
h1->Sumw2();
h2->Sumw2();
// t->Project(Form("h%d",i),"Aj", "1"*(evtCut&&myCut));
// t->Project(Form("h2%d",i),"Aj", Form("((-1*metxMerged%d))",i)*(evtCut&&myCut));
t->Draw(Form("Aj>>h1%d",i), "weight"*(evtCut&&myCut));
t->Draw(Form("Aj>>h2%d",i), Form("((-weight*metxMerged%d))",i)*(evtCut&&myCut));
p[i]=(TH1D*)h2->Clone();
p[i]->SetName(Form("p%d",i));
p[i]->Divide(h1);
p[i]->SetLineColor(1);
p[i]->SetMarkerColor(colors[i]);
p[i]->SetFillColor(colors[i]);
// p[i]->SetFillStyle(3004+fabs(i-1));
p[i]->SetFillStyle(1001);
}
TH1D *pall;
TH1D *h1 = new TH1D(Form("hAll1"),"",nBinAj,ajBins);
TH1D *h2 = new TH1D(Form("hAll2"),"",nBinAj,ajBins);
h1->Sumw2();
h2->Sumw2();
t->Draw(Form("Aj>>hAll1"), "weight"*(evtCut&&myCut));
t->Draw(Form("Aj>>hAll2"), Form("((-weight*metx))")*(evtCut&&myCut));
pall=(TH1D*)h2->Clone();
pall->SetName("pall");
pall->Divide(h1);
pall->SetXTitle("A_{J}");
pall->SetYTitle("<#slash{p}_{T}^{#parallel}> (GeV/c)");
pall->GetXaxis()->CenterTitle();
pall->GetYaxis()->CenterTitle();
pall->GetXaxis()->SetLabelSize(22);
pall->GetXaxis()->SetLabelFont(43);
pall->GetXaxis()->SetTitleSize(24);
pall->GetXaxis()->SetTitleFont(43);
pall->GetYaxis()->SetLabelSize(22);
pall->GetYaxis()->SetLabelFont(43);
pall->GetYaxis()->SetTitleSize(24);
pall->GetYaxis()->SetTitleFont(43);
pall->GetXaxis()->SetTitleOffset(1.8);
pall->GetYaxis()->SetTitleOffset(2.4);
pall->SetNdivisions(505);
pall->SetAxisRange(-59.9,59.9,"Y");
pall->SetMarkerSize(1);
pall->Draw("E");
for (int i=0;i<nBin;++i) {
p[i]->SetLineWidth(1);
p[i]->Draw("hist same");
}
pall->Draw("E same");
if (drawSys == 1) {
for(int i = 0; i < nBinAj; ++i){
double x = pall->GetBinCenter(i+1);
double y = pall->GetBinContent(i+1);
// Quote the difference between GEN and RECO in >8 Bin (20%) before adjusting eff as systematics
double err = -p[nBin-1]->GetBinContent(i+1)*0.2;
DrawTick(y,err,err,x,1,0.02,1);
}
}
// Legend
TLegend *leg = new TLegend(0.10,0.68,0.70,0.96);
leg->SetFillStyle(0);
leg->SetBorderSize(0);
leg->SetTextFont(63);
//.........这里部分代码省略.........
示例5: triggerEfficiency
void triggerEfficiency() {
TCut trigCut;
trigCut = "yhlt.HLT_HISinglePhoton40_v2";
// trigCut = "yhlt.HLT_HISinglePhoton30_v2";
//trigCut = "yhlt.L1_SingleEG5_BptxAND";
// trigCut = "yhlt.HLT_HISinglePhoton30_v2 ";
// trigCut = "yhlt.L1_SingleEG5_BptxAND";// || yhlt.HLT_HIJet80_v1";
// || yhlt.HLT_HIJet80_v1";
TCut goodL1Cut = "yhlt.Run > 181675 && !(yhlt.Run==181912 || yhlt.Run==181910 || yhlt.Run==182089 || yhlt.Run==182098 || yhlt.Run==182099 || yhlt.Run==182124)";
TCut goodHLTCut = "!(yhlt.Run==182123 || yhlt.Run==182133 || yhlt.Run==181946) && yhlt.Run<=182134 ";
TCut goodRunCut = goodL1Cut && goodHLTCut;
const int nPtBin = 10;
double ptBin[nPtBin+1] = {0,10,15,20,25,30,33,41,50,70,120};
TH1D* heff = new TH1D("heff",";Leading Photon E_{T} (GeV);",nPtBin, ptBin);
TGraphAsymmErrors* geff = new TGraphAsymmErrors();
TCanvas* c1 = new TCanvas("c2","",610,522);
c1->Divide(2,1);
c1->cd(1);
getEff(heff,geff,trigCut,ptMode, goodRunCut);
handsomeTH1(heff,1);
handsomeTGraph(geff,1);
geff->SetMarkerStyle(20);
heff->SetMarkerSize(0.1);
for ( int i=0;i<= heff->GetNbinsX() ; i++)
heff->SetBinError(i,0);
heff->Draw(0);
// heff->DrawCopy("pl");
geff->Draw("p");
drawText("HLT_HISinglePhoton40",0.4,0.3,1,18);
c1->cd(2);
TH1D* heffr = new TH1D("heffr",";Run number;",182400.5 - 181500.5,181500.5,182400.5);
TGraphAsymmErrors* geffr = new TGraphAsymmErrors();
getEff(heffr,geffr,trigCut, runByRunMode, "pt>50" && goodRunCut);
handsomeTH1(heffr,1);
heffr->SetNdivisions(505);
handsomeTGraph(geffr,1);
geffr->SetMarkerStyle(20);
heffr->Reset();
heffr->DrawCopy();
geffr->Draw("p");
TCanvas* c3 = new TCanvas("c3","",700,500);
heff->SetYTitle("Efficiency");
heff->SetFillColor(kGray);
heff->SetFillStyle(3001);
heff->SetAxisRange(0,1.2,"Y");
heff->DrawCopy("hist ");
geff->Draw("p same");
drawCMS3(0.5,0.5,84,17);
drawText("HLT_HISinglePhoton40",0.5,0.3,1,18);
c3->SaveAs("plot_triggerEfficiencyPhoton30.eps");
c3->SaveAs("plot_triggerEfficiencyPhoton30.gif");
}