Hi,
I am simply trying to draw a title on four frames using TLatex
TCanvas* ca3 = new TCanvas("ca3","ca3",1000,1000);
ca3->Divide(2,2);
RooPlot* frameEff1 = muonPt.frame(Title("0-10%"));
RooPlot* frameEff2 = muonPt.frame(Title("10-20%"));
RooPlot* frameEff3 = muonPt.frame(Title("20-40%"));
RooPlot* frameEff4 = muonPt.frame(Title("40-100%"));
TLatex l;
l.SetNDC();
for( int i=0; i<nPtBins; i++){
for (int j=0; j<nEtaBins; j++){
for (int k=0; k<nCentralityBins; k++){
effPdf.fitTo(*dataSubSet[i][j][k],ConditionalObservables(muonPt)) ;
std::cout << "Fit ends here. Plotting efficiency curve..." << std::endl;
if(k==0){
dataSubSet[i][j][k]->plotOn(frameEff1,Efficiency(cut),Binning(b0)) ;
effFunc.plotOn(frameEff1,LineColor(kRed)) ;
frameEff1->SetMaximum(1.2); frameEff1->SetMinimum(-0.1) ;
frameEff1->SetXTitle("#font[52]{p}_{T}^{#mu} [GeV]"); frameEff1->SetYTitle("#epsilon_{trigger}");
ca3->cd(1); gPad->SetLeftMargin(0.15); frameEff1->GetYaxis()->SetTitleOffset(1.4);
l.DrawLatex(0.3,0.75, "0-10%" );
frameEff1->Draw();
}else if(k==1){
dataSubSet[i][j][k]->plotOn(frameEff2,Efficiency(cut),Binning(b0)) ;
effFunc.plotOn(frameEff2,LineColor(kRed)) ;
frameEff2->SetMaximum(1.2); frameEff2->SetMinimum(-0.1) ;
frameEff2->SetXTitle("#font[52]{p}_{T}^{#mu} [GeV]"); frameEff2->SetYTitle("#epsilon_{trigger}");
ca3->cd(2); gPad->SetLeftMargin(0.15); frameEff2->GetYaxis()->SetTitleOffset(1.4);
l.DrawLatex(0.3,0.75,"10-20%" );
frameEff2->Draw();
}else if(k==2){
dataSubSet[i][j][k]->plotOn(frameEff3,Efficiency(cut),Binning(b0)) ;
effFunc.plotOn(frameEff3,LineColor(kRed)) ;
frameEff3->SetMaximum(1.2); frameEff3->SetMinimum(-0.1) ;
frameEff3->SetXTitle("#font[52]{p}_{T}^{#mu} [GeV]"); frameEff3->SetYTitle("#epsilon_{trigger}");
ca3->cd(3); gPad->SetLeftMargin(0.15); frameEff3->GetYaxis()->SetTitleOffset(1.4);
l.DrawLatex(0.3,0.75,"20-40%" );
frameEff3->Draw();
}else if(k==3){
dataSubSet[i][j][k]->plotOn(frameEff4,Efficiency(cut),Binning(b0)) ;
effFunc.plotOn(frameEff4,LineColor(kRed)) ;
frameEff4->SetMaximum(1.2); frameEff4->SetMinimum(-0.1) ;
frameEff4->SetXTitle("#font[52]{p}_{T}^{#mu} [GeV]"); frameEff4->SetYTitle("#epsilon_{trigger}");
ca3->cd(4); gPad->SetLeftMargin(0.15); frameEff4->GetYaxis()->SetTitleOffset(1.4);
l.DrawLatex(0.3,0.75,"40-100%" );
frameEff4->Draw();
}
}
}
The output either puts the label on 3 of the 4 frames, or it doesn’t draw at all. Can anyone provide a quick fix? Thanks.