本文整理汇总了C++中TPad::SetGridy方法的典型用法代码示例。如果您正苦于以下问题:C++ TPad::SetGridy方法的具体用法?C++ TPad::SetGridy怎么用?C++ TPad::SetGridy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPad
的用法示例。
在下文中一共展示了TPad::SetGridy方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Error
/**
* Draw the Poisson estimate of the occupancy in a given ring.
*
* @param p List
* @param d Detector
* @param r Ring
*
* @return The occupancy (in percent)
*
* @deprecated Use QATrender instead
* @ingroup pwglf_forward_scripts_qa
*/
Double_t
DrawRingOccupancy(TList* p, UShort_t d, Char_t r)
{
if (!p) return 0;
TList* ring = static_cast<TList*>(p->FindObject(Form("FMD%d%c",d,r)));
if (!ring) {
Error("DrawOccupancy", "List FMD%d%c not found in %s",d,r,p->GetName());
return 0;
}
TH1* corr = static_cast<TH1*>(ring->FindObject("occupancy"));
if (!corr) {
Error("DrawRingOccupancy", "Histogram occupancy not found in FMD%d%c",
d, r);
return 0;
}
corr->Rebin(4);
TPad* pad = static_cast<TPad*>(gPad);
pad->SetGridy();
pad->SetGridx();
pad->SetLogy();
pad->SetFillColor(0);
pad->SetRightMargin(0.01);
#if 0
if (d == 3) {
pad->SetPad(pad->GetXlowNDC(), pad->GetYlowNDC(), .99,
pad->GetYlowNDC()+pad->GetHNDC());
pad->SetRightMargin(0.15);
}
#endif
corr->Draw("hist");
TLatex* ltx = new TLatex(.95, .95, Form("FMD%d%c", d, r));
ltx->SetNDC();
ltx->SetTextAlign(33);
ltx->SetTextSize(.08);
ltx->Draw();
return corr->GetMean();
}
示例2: EMCDistribution
void EMCDistribution(TString gain = "CALIB", bool log_scale = false)
{
TText *t;
TCanvas *c1 = new TCanvas(
"EMCDistribution_" + gain + TString(log_scale ? "_Log" : "") + cuts,
"EMCDistribution_" + gain + TString(log_scale ? "_Log" : "") + cuts, 1800,
1000);
c1->Divide(8, 8, 0., 0.01);
int idx = 1;
TPad *p;
for (int iphi = 8 - 1; iphi >= 0; iphi--)
{
for (int ieta = 0; ieta < 8; ieta++)
{
p = (TPad *) c1->cd(idx++);
c1->Update();
p->SetLogy();
p->SetGridx(0);
p->SetGridy(0);
TString hname = Form("hEnergy_ieta%d_iphi%d", ieta, iphi) + TString(log_scale ? "_Log" : "");
TH1 *h = NULL;
if (log_scale)
h = new TH1F(hname,
Form(";Calibrated Tower Energy Sum (GeV);Count / bin"), 300,
5e-3, 3096);
else
// h = new TH1F(hname,
// Form(";Calibrated Tower Energy Sum (GeV);Count / bin"), 196,
// 1900, 2096);
h = new TH1F(hname,
Form(";Calibrated Tower Energy Sum (GeV);Count / bin"), 596,
-96, 500);
h->SetLineWidth(0);
h->SetLineColor(kBlue + 3);
h->SetFillColor(kBlue + 3);
h->GetXaxis()->SetTitleSize(.09);
h->GetXaxis()->SetLabelSize(.08);
h->GetYaxis()->SetLabelSize(.08);
if (log_scale)
QAHistManagerDef::useLogBins(h->GetXaxis());
T->Draw(
"TOWER_" + gain + "_CEMC[].get_energy_power_law_exp()>>" + hname,
Form(
"TOWER_%s_CEMC[].get_bineta()==%d && TOWER_%s_CEMC[].get_binphi()==%d",
gain.Data(), ieta, gain.Data(), iphi),
"");
TText *t = new TText(.9, .9, Form("Col%d Row%d", ieta, iphi));
t->SetTextAlign(33);
t->SetTextSize(.15);
t->SetNDC();
t->Draw();
// return;
}
}
SaveCanvas(c1,
TString(_file0->GetName()) + TString("_DrawPrototype3EMCalTower_") + TString(c1->GetName()), false);
}
示例3: CompareAllHistos
//.........这里部分代码省略.........
newOverHist->SetBinError(iBin,overHist->GetBinError(iBin));
newDMHist2->SetBinContent(iBin,profileHist1[title_id][1]->GetBinContent(iBin));
newDMHist2->SetBinError(iBin,profileHist1[title_id][1]->GetBinError(iBin));
}
newBaseHist->Multiply(newDMHist);
newOverHist->Multiply(newDMHist2);
baseHist=newBaseHist;
overHist=newOverHist;
delete newDMHist;
delete newDMHist2;
}
if(title_id==0) baseHist->GetXaxis()->SetRangeUser(0,100);
baseHist->GetXaxis()->SetLabelOffset(0.1);
baseHist->GetXaxis()->SetTitle(XTitle[title_id]);
baseHist->GetYaxis()->SetTitle("Fake rate");
baseHist->SetMarkerStyle(20);
baseHist->SetMarkerSize(2);
baseHist->SetLineWidth(2);
overHist->SetMarkerColor(kRed);
overHist->SetMarkerStyle(25);
overHist->SetMarkerSize(2);
overHist->SetLineWidth(2);
overHist->SetLineStyle(2);
overHist->SetLineColor(kRed);
int binmax = baseHist->GetMaximumBin();
double max = 1.2*(baseHist->GetBinContent(binmax)+baseHist->GetBinError(binmax));
int binmax2 = overHist->GetMaximumBin();
double max2 = 1.2*(overHist->GetBinContent(binmax2)+overHist->GetBinError(binmax2));
max = max2 > max ? max2 : max;
baseHist->SetMaximum(10.0);
baseHist->SetMinimum(1e-3);
histPad->cd();
histPad->SetLogy();
baseHist->Draw();
overHist->Draw("same");
TLegend* leg = new TLegend(0.8,0.80,0.9,0.9,NULL,"brNDC");
leg->SetFillColor(0);
leg->SetTextSize(0.035);
leg->SetBorderSize(0);
leg->AddEntry(baseHist, leg1, "lp");
leg->AddEntry(overHist, leg2, "lp");
leg->Draw();
//~
TString lumist="";
TPaveText *ll = new TPaveText(0.15, 0.95, 0.95, 0.99, "NDC");
ll->SetTextSize(0.03);
ll->SetTextFont(62);
ll->SetFillColor(0);
ll->SetBorderSize(0);
ll->SetMargin(0.01);
ll->SetTextAlign(12); // align left
TString text = name;
ll->AddText(0.01,0.7,text);
text = "#sqrt{s} = 13 TeV";
text = text + lumist;
// ll->SetTextAlign(32); // align right
ll->AddText(0.7, 0.5, text);
ll->Draw("same");
c1->Update();
TH1D* h_diff=(TH1D*)baseHist->Clone();
h_diff->Divide(overHist);
diffPad->cd();
diffPad->SetGridy();
diffPad->SetGridx();
h_diff->GetYaxis()->SetLabelSize(0.1);
h_diff->GetYaxis()->SetTitleOffset(0.55);
h_diff->GetYaxis()->SetTitleSize(0.12);
h_diff->GetYaxis()->SetTitle("Ratio");
h_diff->GetXaxis()->SetLabelSize(0.12);
h_diff->GetXaxis()->SetLabelOffset(0.01);
h_diff->GetXaxis()->SetTitleSize(0.15);
h_diff->GetYaxis()->SetNdivisions(509);
h_diff->SetMinimum(0.9);
h_diff->SetMaximum(1.1);
h_diff->Draw("hist");
c1->Print(outdir+"/pdf/"+profileHist1[iProf12][0]->GetName()+".pdf");
c1->Print(outdir+"/png/"+profileHist1[iProf12][0]->GetName()+".png");
}
return 0;
}
示例4: plotDistribution
//.........这里部分代码省略.........
<< delimend << endl;
cout << delimstart << setw(10) << "mc" << setw(4)
<< delim << setw(left) << Form("%.3f %s %.4f",effmc1,pm,effmc1err) << setw(4)
<< delim << setw(left) << Form("%.3f %s %.4f",effmc2,pm,effmc2err) << setw(4)
<< delim << setw(left) << Form("%.3f %s %.4f",effmc3,pm,effmc3err) << setw(4)
<< delim << setw(left) << Form("%.3f %s %.4f",effmc4,pm,effmc4err) << setw(4)
<< delim << setw(left) << Form("%.3f %s %.4f",effmc5,pm,effmc5err) << setw(4)
<< delimend << endl;
cout << delimstart << setw(10) << "data/mc" << setw(4)
<< delim << setw(left) << Form("%.2f %s %.2f",ratio1,pm,ratio1err) << setw(4)
<< delim << setw(left) << Form("%.2f %s %.2f",ratio2,pm,ratio2err) << setw(4)
<< delim << setw(left) << Form("%.2f %s %.2f",ratio3,pm,ratio3err) << setw(4)
<< delim << setw(left) << Form("%.2f %s %.2f",ratio4,pm,ratio4err) << setw(4)
<< delim << setw(left) << Form("%.2f %s %.2f",ratio5,pm,ratio5err) << setw(4)
<< delimend << endl;
//--------------------------------------
// draw stuff
//--------------------------------------
hdata->Scale(1.0/hdata->Integral());
hmc->Scale(1.0/hmc->Integral());
if( log ) hmc->GetYaxis()->SetRangeUser(0.0001,5);
else hmc->GetYaxis()->SetRangeUser(0.0,1);
hmc->GetXaxis()->SetTitle(xtitle);
hmc->SetLineColor(2);
hmc->SetMarkerColor(2);
hmc->DrawNormalized("hist");
hmc->DrawNormalized("sameE1");
hdata->SetLineColor(4);
hdata->SetMarkerColor(4);
hdata->Draw("sameE1");
grdata->SetLineColor(6);
grmc->SetLineColor(7);
//grdata->Draw("sameP");
//grmc->Draw("sameP");
TLegend *leg = new TLegend(0.6,0.7,0.8,0.9);
leg->AddEntry(hdata , "data" , "lp");
leg->AddEntry(hmc , "MC" , "lp");
leg->SetBorderSize(0);
leg->SetFillColor(0);
leg->Draw();
TLatex *t = new TLatex();
t->SetNDC();
if( TString(plottitle).Contains("el") ) t->DrawLatex(0.6,0.6,"electrons");
if( TString(plottitle).Contains("mu") ) t->DrawLatex(0.6,0.6,"muons");
if( TString(plottitle).Contains("0j") ) t->DrawLatex(0.6,0.5,"n_{jets} #geq 0");
if( TString(plottitle).Contains("1j") ) t->DrawLatex(0.6,0.5,"n_{jets} #geq 1");
if( TString(plottitle).Contains("2j") ) t->DrawLatex(0.6,0.5,"n_{jets} #geq 2");
if( TString(plottitle).Contains("3j") ) t->DrawLatex(0.6,0.5,"n_{jets} #geq 3");
if( TString(plottitle).Contains("4j") ) t->DrawLatex(0.6,0.5,"n_{jets} #geq 4");
//--------------------------------------
// draw residual plots
//--------------------------------------
if( residual ){
can->cd();
TPad *respad = new TPad("respad","respad",0.0,0.8,1.0,1.0);
respad->Draw();
respad->cd();
respad->SetGridy();
TH1F* hratio = (TH1F*) hdata->Clone(Form("hratio_%i",iplot));
hratio->Divide(hmc);
hratio->SetMarkerColor(1);
hratio->SetLineColor(1);
hratio->Draw();
hratio->GetYaxis()->SetRangeUser(0.5,1.5);
hratio->GetYaxis()->SetNdivisions(5);
hratio->GetYaxis()->SetLabelSize(0.2);
hratio->GetXaxis()->SetLabelSize(0.0);
TLine line;
line.DrawLine(xmin,1.0,xmax,1.0);
}
//data->Scan("run:lumi:event:probe->pt():probe->eta():tkisonew:met:mt:njets:nbl:nbm",sel+"tkisonew>20");
//data->Scan("run:lumi:event:probe->pt():probe->eta():tkisonew:met:mt:njets:nbl:nbm",sel);
if( printplot ) can->Print(Form("plots/%s.pdf",plottitle));
iplot++;
// TCanvas *c2 = new TCanvas();
// c2->cd();
// grdata->Draw("AP");
}
示例5: makePlot
void makePlot(const TString& title,
TGraphAsymmErrors* graph_Data_passed, TF1* fit_Data_passed, const TString& legendEntry_Data_passed,
TGraphAsymmErrors* graph_mcSum_passed, TF1* fit_mcSum_passed, const TString& legendEntry_mcSum_passed,
TGraphAsymmErrors* graph_Data_failed, TF1* fit_Data_failed, const TString& legendEntry_Data_failed,
TGraphAsymmErrors* graph_mcSum_failed, TF1* fit_mcSum_failed, const TString& legendEntry_mcSum_failed,
const TString& outputFileName)
{
TCanvas* canvas = new TCanvas("canvas", "canvas", 800, 900);
canvas->SetFillColor(10);
canvas->SetBorderSize(2);
canvas->SetLeftMargin(0.12);
canvas->SetBottomMargin(0.12);
//TPad* topPad = new TPad("topPad", "topPad", 0.00, 0.35, 1.00, 1.00);
TPad* topPad = new TPad("topPad", "topPad", 0.00, 1.00 - 0.65*(0.93/0.84), 1.00, 1.00);
topPad->SetFillColor(10);
topPad->SetTopMargin(0.04);
topPad->SetLeftMargin(0.15);
//topPad->SetBottomMargin(0.03);
topPad->SetBottomMargin(0.12);
topPad->SetRightMargin(0.05);
topPad->SetGridx();
topPad->SetGridy();
canvas->cd();
topPad->Draw();
topPad->cd();
TH1* dummyHistogram_top = new TH1D("dummyHistogram_top", "dummyHistogram_top", 10, 0., 100.);
dummyHistogram_top->SetTitle("");
dummyHistogram_top->SetStats(false);
dummyHistogram_top->SetMaximum(1.2);
dummyHistogram_top->SetMinimum(0.);
TAxis* xAxis_top = dummyHistogram_top->GetXaxis();
xAxis_top->SetTitle("calo-E_{T}^{miss} / GeV");
xAxis_top->SetTitleOffset(1.15);
//xAxis_top->SetLabelColor(10);
//xAxis_top->SetTitleColor(10);
TAxis* yAxis_top = dummyHistogram_top->GetYaxis();
yAxis_top->SetTitle("#varepsilon");
yAxis_top->SetTitleOffset(1.2);
dummyHistogram_top->Draw();
//dummyHistogram_top->Draw("axis");
//graph_Data_passed->SetLineColor(4);
//graph_Data_passed->SetMarkerColor(4);
//graph_Data_passed->SetMarkerStyle(20);
//graph_Data_passed->Draw("p");
//fit_Data_passed->SetLineColor(graph_Data_passed->GetLineColor());
//fit_Data_passed->SetLineWidth(2);
//fit_Data_passed->Draw("same");
graph_mcSum_passed->SetLineColor(7);
graph_mcSum_passed->SetMarkerColor(7);
graph_mcSum_passed->SetMarkerStyle(24);
graph_mcSum_passed->Draw("p");
fit_mcSum_passed->SetLineColor(graph_mcSum_passed->GetLineColor());
fit_mcSum_passed->SetLineWidth(2);
fit_mcSum_passed->Draw("same");
graph_Data_failed->SetLineColor(2);
graph_Data_failed->SetMarkerColor(2);
graph_Data_failed->SetMarkerStyle(21);
//graph_Data_failed->Draw("p");
fit_Data_failed->SetLineColor(graph_Data_failed->GetLineColor());
fit_Data_failed->SetLineWidth(2);
//fit_Data_failed->Draw("same");
graph_mcSum_failed->SetLineColor(6);
graph_mcSum_failed->SetMarkerColor(6);
graph_mcSum_failed->SetMarkerStyle(25);
graph_mcSum_failed->Draw("p");
fit_mcSum_failed->SetLineColor(graph_mcSum_failed->GetLineColor());
fit_mcSum_failed->SetLineWidth(2);
fit_mcSum_failed->Draw("same");
TLegend* legend = new TLegend(0.61, 0.16, 0.89, 0.47, "", "brNDC");
legend->SetBorderSize(0);
legend->SetFillColor(0);
//legend->AddEntry(graph_Data_passed, legendEntry_Data_passed.Data(), "p");
legend->AddEntry(graph_mcSum_passed, legendEntry_mcSum_passed.Data(), "p");
//legend->AddEntry(graph_Data_failed, legendEntry_Data_failed.Data(), "p");
legend->AddEntry(graph_mcSum_failed, legendEntry_mcSum_failed.Data(), "p");
legend->Draw();
TPaveText* label = 0;
if ( title.Length() > 0 ) {
label = new TPaveText(0.175, 0.89, 0.48, 0.94, "NDC");
label->AddText(title.Data());
label->SetTextAlign(13);
label->SetTextSize(0.045);
label->SetFillStyle(0);
label->SetBorderSize(0);
//.........这里部分代码省略.........
示例6: TCanvas
//################################################################################################################################
TCanvas *drawRatioPlotWithPurity(TH1D *prediction, TH1D *sr, TString xTitle, TString filename, double purity, bool LowECaloRegion){
TCanvas *c = new TCanvas("c"+filename,"c",0,0,500,500);
c->cd();
float y = 0.3;
TPad *pad1 = new TPad("pad1", "Control Plots 1", 0.01, y, 0.99, 0.99);
TPad *padRatio = new TPad("rp1", "Ratio1", 0.01, 0.01, 0.99, y-0.01);
TH1D *ratio = 0;
ratio = (TH1D*) sr->Clone();
ratio->Divide(prediction);
ratio->GetYaxis()->SetTitle((TString) sr->GetName() + "/" + (TString) prediction->GetName());
ratio->SetTitle("");
ratio->SetLabelSize(0.1,"X");
ratio->SetLabelSize(0.1,"Y");
ratio->SetTitleOffset(0.5,"Y");
ratio->SetTitleSize(0.11,"Y");
ratio->SetLineColor(kBlack);
ratio->SetMarkerColor(kBlack);
padRatio->cd();
ratio->GetYaxis()->SetRangeUser(0,2);
ratio->Draw();
// Draw line at one!
float xmin = ratio->GetXaxis()->GetXmin();
float xmax = ratio->GetXaxis()->GetXmax();
TLine *line = new TLine(xmin,1,xmax,1);
line->SetLineWidth(2);
line->Draw("same");
padRatio->Modified();
TLegend *leg = new TLegend(0.5,0.8,0.85,0.9);
leg->AddEntry(sr,sr->GetName(),"l");
leg->AddEntry(prediction,prediction->GetName(),"pel");
pad1->cd();
//pad1->SetLogy();
sr->SetLineColor(kRed);
sr->SetMarkerColor(kRed);
prediction->SetLineColor(kBlack);
prediction->SetMarkerColor(kBlack);
sr->SetTitle("");
prediction->SetTitle("");
prediction->GetXaxis()->SetTitle(xTitle);
sr->GetXaxis()->SetTitle(xTitle);
prediction->SetTitleSize(0.07,"X");
prediction->GetXaxis()->SetTitleOffset(0.7);
sr->SetTitleSize(0.07,"X");
sr->GetXaxis()->SetTitleOffset(0.7);
prediction->Draw("e");
sr->Draw("e same");
double maximum =prediction->GetMaximum()*1.2;
double minimum = 0.00001;
if(sr->GetMinimum()!=0) minimum=sr->GetMinimum()*0.9;
if(prediction->GetMinimum()!=0) minimum=prediction->GetMinimum()*0.9;
if(sr->GetMaximum()>prediction->GetMaximum()){
maximum=sr->GetMaximum()*1.2;
}
//leg->Draw("same");
//***********************
TLatex* info = new TLatex();
info->SetTextFont(132);
info-> SetNDC();
info->SetTextSize(0.06);
TString AuxString = Form("Purity of fakes in CR = %4.1f ",purity*100);
//info->DrawLatex(0.4,0.7,AuxString);
TLatex* info1 = new TLatex();
info1->SetTextFont(132);
info1-> SetNDC();
info1->SetTextSize(0.06);
if(LowECaloRegion) AuxString = "E_{calo}<10GeV";
else AuxString = "E_{calo}>10GeV";
//info1->DrawLatex(0.2,0.82,AuxString);
//***********************
// Draw both pads to canvas
c->cd();
pad1->Draw();
padRatio->SetGridy();
c -> SetBottomMargin(0.55);
//c->Modified();
padRatio->Draw();
c->SaveAs(filename);
//.........这里部分代码省略.........
开发者ID:telenz,项目名称:HighDeDx-DisappTrks-PostProcessing-ExclusiveBins,代码行数:101,代码来源:a1_fakeRatesFromData.C
示例7: setStyle
makeLTauStack(TString name,TString file,TString dir,int s,TString labelX,TString units = "GeV",bool left=false,TString channel = "",bool log = false,bool dndm=false,bool doRatio = false)
{
setStyle();
float xR=0.45;
if(left)
xR=0.2;
if(doRatio){
TCanvas * c = new TCanvas(name,name,600,600);
}
else{
TCanvas * c = new TCanvas(name,name,600,600);
c->SetLeftMargin (0.18);
c->SetRightMargin (0.05);
c->SetTopMargin (0.08);
c->SetBottomMargin (0.15);
}
c->cd();
if(doRatio){
TPad * plotPad = new TPad("pad1","",0.0,0.3,1.0,1.0);
plotPad->SetLeftMargin (0.18);
plotPad->SetTopMargin (0.10);
plotPad->SetRightMargin (0.07);
plotPad->SetBottomMargin(0.03);
TPad * ratioPad = new TPad("pad2","",0.0,0.0,1.0,0.3);
ratioPad->SetLeftMargin (0.18);
ratioPad->SetTopMargin (0.00);
ratioPad->SetRightMargin (0.07);
ratioPad->SetBottomMargin(0.30);
ratioPad->SetGridy(1);
}
else{
TPad * plotPad = new TPad("pad1","",0.0,0.0,1.0,1.0);
plotPad->SetLeftMargin (0.18);
plotPad->SetRightMargin (0.05);
plotPad->SetTopMargin (0.08);
plotPad->SetBottomMargin (0.15);
}
plotPad->Draw();
plotPad->cd();
TFile *f = new TFile(file);
TH1F * data = (TH1F*)(f->Get(dir+"/data_obs"));
if (dndm) convertToDNDM(data);
applyDATAStyle(data);
TH1F * QCD = (TH1F*)(f->Get(dir+"/QCD"));
if (dndm) convertToDNDM(QCD);
applyStyle(QCD,kMagenta-10,1,1001);
TH1F * ttbar = (TH1F*)(f->Get(dir+"/TT"));
if (dndm) convertToDNDM(ttbar);
applyStyle(ttbar,kBlue-8,1,1001);
if(channel == "#tau_{e}#tau_{h}"){
TH1F * EWK = (TH1F*)(f->Get(dir+"/W"));
EWK->Add((TH1F*)(f->Get(dir+"/VV")));
if (dndm) convertToDNDM(EWK);
applyStyle(EWK,kRed+2,1,1001);
if(f->Get(dir+"/ZL")!=0)
TH1F * ZEE = (TH1F*)(f->Get(dir+"/ZL"));
if(f->Get(dir+"/ZJ")!=0)
ZEE->Add((TH1F*)(f->Get(dir+"/ZJ")));
if(f->Get(dir+"/ZLL")!=0)
TH1F * ZEE = (TH1F*)(f->Get(dir+"/ZLL")));
if (dndm) convertToDNDM(ZEE);
applyStyle(ZEE,kAzure+2,1,1001);
}
示例8: trisCheckCorrection_unbinnedfit
//.........这里部分代码省略.........
s_Las[i]= (TPaveStats*)(h_Las[i]->GetListOfFunctions()->FindObject("stats"));
s_Las[i]->SetTextColor(kBlack);
}
*/
/*
TCanvas *cmap = new TCanvas("cmap","cmap");
cmap->cd();
gStyle->SetPalette(1);
h_LC_map->Draw("colz");
*/
// Final plots
TCanvas* cplot = new TCanvas("gplot", "gplot",100,100,725,500);
cplot->cd();
TPad *cLeft = new TPad("pad_0","pad_0",0.00,0.00,0.64,1.00);
TPad *cRight = new TPad("pad_1","pad_1",0.64,0.00,1.00,1.00);
cLeft->SetLeftMargin(0.15);
cLeft->SetRightMargin(0.025);
cRight->SetLeftMargin(0.025);
cLeft->Draw();
cRight->Draw();
float tYoffset = 1.5;
float labSize = 0.04;
float labSize2 = 0.07;
cLeft->cd();
cLeft->SetGridx();
cLeft->SetGridy();
// pad settings
TH1F *hPad = (TH1F*)gPad->DrawFrame(lcMin,0.9,lcMax,1.05);
hPad->GetXaxis()->SetTitle("Laser correction");
hPad->GetYaxis()->SetTitle("Relative E/p scale");
hPad->GetYaxis()->SetTitleOffset(tYoffset);
hPad->GetXaxis()->SetLabelSize(labSize);
hPad->GetXaxis()->SetTitleSize(labSize);
hPad->GetYaxis()->SetLabelSize(labSize);
hPad->GetYaxis()->SetTitleSize(labSize);
if ( strcmp(EBEE,"EB")==0 )
{
hPad -> SetMinimum(0.950);
hPad -> SetMaximum(1.010);
}
else
{
hPad -> SetMinimum(0.910);
hPad -> SetMaximum(1.030);
}
// draw trend plot
g_fit -> SetMarkerStyle(20);
g_fit -> SetMarkerSize(0.75);
g_fit -> SetMarkerColor(kRed+2);
g_fit -> SetLineColor(kRed+2);
g_fit -> Draw("P");
g_c_fit -> SetMarkerStyle(20);
g_c_fit -> SetMarkerColor(kGreen+2);
g_c_fit -> SetLineColor(kGreen+2);
g_c_fit -> SetMarkerSize(0.75);
g_c_fit -> Draw("P,same");
示例9: sample
//.........这里部分代码省略.........
h->SetTitle(titbuf);
sample.defineType(TString(sName));
hmap[sName.Data()] = h;
}
f->Close();
delete c;
// divide the binned data in categories according to the generated top quark mass
RooRealVar mass("m","Mass", 100, 500);
RooDataHist combData("combData", "combined data",mass, sample, hmap );
//the parameters to fit and the variable
RooRealVar g_mean_slope("#mu_{G}(slope)","g_mean_slope",0.01,0.,1.);
RooRealVar g_mean_shift("#mu_{G}(intercept)","g_mean_shift",162,100,180);
RooRealVar g_sigma_slope("#sigma_{G}(slope)","g_sigma_slope",0.01,0.,1.);
RooRealVar g_sigma_shift("#sigma_{G}(intercept)","g_sigma_shift",10,0.,25);
RooRealVar l_mean_slope("mpv_{L}(slope)","l_mean_slope",0.,0.,1.);//1,0,10);
RooRealVar l_mean_shift("mpv_{L}(intercept)","l_mean_shift",212,150,250);
RooRealVar l_sigma_slope("#sigma_{L}(slope)","l_sigma_slope",0.,0.,1.);//1,0,10);
RooRealVar l_sigma_shift("#sigma_{L}(intercept)","l_sigma_shift",10,0,25);
RooRealVar massfrac_slope("#alpha(slope)","massfrac_slope",0,0,0.01);
RooRealVar massfrac_shift("#alpha(intercept)","massfrac_shift",0.38,0.,1.);
//build the prototype pdf
RooRealVar topmass( "mtop","mtop",100,300);
RooFormulaVar g_mean( "g_mean", "(@0-172)*@[email protected]", RooArgSet(topmass,g_mean_slope,g_mean_shift));
RooFormulaVar g_sigma( "g_sigma", "(@0-172)*@[email protected]", RooArgSet(topmass,g_sigma_slope,g_sigma_shift));
RooGaussian gaus("gaus", "Mass component 1", mass, g_mean, g_sigma);
RooFormulaVar l_mean( "l_mean", "(@0-172)*@[email protected]", RooArgSet(topmass,l_mean_slope,l_mean_shift));
RooFormulaVar l_sigma( "l_sigma", "(@0-172)*@[email protected]", RooArgSet(topmass,l_sigma_slope,l_sigma_shift));
RooLandau lan("lan", "Mass component 2", mass, l_mean, l_sigma);
RooFormulaVar massfrac( "#alpha", "(@0-172)*@[email protected]", RooArgSet(topmass,massfrac_slope,massfrac_shift));
RooAddPdf massmodel("model","Model",RooArgList(lan,gaus),massfrac);
//RooNumConvPdf massmodel("model","Model",topmass,lan,gaus);
//now split per categories
RooSimPdfBuilder builder(massmodel) ;
RooArgSet* config = builder.createProtoBuildConfig() ;
config->setStringValue("physModels","model"); // Name of the PDF we are going to work with
config->setStringValue("splitCats","signal"); // Category used to differentiate sub-datasets
config->setStringValue("model","signal : mtop"); // Prescription to taylor PDF parameters mtop for each subset in signal
RooSimultaneous* simPdf = builder.buildPdf(*config,&combData) ;
config = simPdf->getParameters(combData);
for(size_t ipt=0; ipt<MassPointCollection.size(); ipt++)
{
TString sName("m"); sName+=(ipt+1);
Float_t imass=MassPointCollection[ipt].second;
(((RooRealVar &)(*config)["mtop_"+sName])).setRange(imass,imass);
(((RooRealVar &)(*config)["mtop_"+sName])).setVal(imass);
}
//fit to data
simPdf->fitTo(combData,Range(100.,400.));
//display
for(size_t ipt=0; ipt<MassPointCollection.size(); ipt++)
{
if(ipt%5==0)
{
TString name("SignalPDFs_"); name+=ipt;
c = new TCanvas(name,name);
c->SetBorderSize(0);
c->SetFillStyle(0);
c->SetFillColor(0);
c->SetWindowSize(1750,350);
c->Clear();
c->Divide(5,1);
}
TPad *p = (TPad *)c->cd(ipt%5+1);
p->SetGridx();
p->SetGridy();
TString procName("m"); procName += (ipt+1);
char buf[100];
sprintf(buf,"m_{t}=%3.1lf GeV/c^{2}",MassPointCollection[ipt].second);
RooPlot* frame = mass.frame(Title(buf));
RooDataSet* dataslice = (RooDataSet *)combData.reduce("signal==signal::"+procName);
dataslice->plotOn(frame,DataError(RooAbsData::SumW2));
RooCategory newCat(procName,procName);
simPdf->plotOn(frame,Slice(newCat),ProjWData(mass,*dataslice));
frame->GetYaxis()->SetTitleOffset(1.0);
frame->GetYaxis()->SetTitle("Events");
frame->GetXaxis()->SetTitleOffset(0.8);
frame->GetXaxis()->SetTitle("Reconstructed Mass [GeV/c^{2}]");
frame->Draw();
TPaveText *pt = new TPaveText(0.75,0.85,0.97,0.95,"brNDC");
pt->SetBorderSize(0);
pt->SetFillColor(0);
pt->SetFillStyle(0);
char buf2[50];
sprintf(buf2,"%3.1lf GeV/c^{2}",MassPointCollection[ipt].second);
pt->AddText(buf2);
pt->Draw();
}
return simPdf;
}
示例10: main
//.........这里部分代码省略.........
s_EoP->SetY2NDC(0.99);
s_EoP -> Draw("sames");
gPad -> Update();
//-------------------
// Final plot vs date
//-------------------
TCanvas* cplot = new TCanvas("cplot", "history plot vs date",100,100,1000,500);
cplot->cd();
TPad *cLeft = new TPad("pad_0","pad_0",0.00,0.00,0.75,1.00);
TPad *cRight = new TPad("pad_1","pad_1",0.75,0.00,1.00,1.00);
cLeft->SetLeftMargin(0.15);
cLeft->SetRightMargin(0.025);
cRight->SetLeftMargin(0.025);
cLeft->Draw();
cRight->Draw();
float tYoffset = 1.0;
float labSize = 0.05;
float labSize2 = 0.06;
cLeft->cd();
cLeft->SetGridx();
cLeft->SetGridy();
TH1F *hPad = (TH1F*)gPad->DrawFrame(t1,0.9,t2,1.05);
hPad->GetXaxis()->SetTimeFormat("%d/%m%F1970-01-01 00:00:00");
hPad->GetXaxis()->SetTimeDisplay(1);
hPad->GetXaxis() -> SetRangeUser(MinTime[0]-43200,MaxTime[nBins-1]+43200);
hPad->GetXaxis()->SetTitle("date (day/month)");
if( strcmp(EBEE,"EB") == 0 )
hPad->GetYaxis()->SetTitle("Relative E/p scale");
else
hPad->GetYaxis()->SetTitle("Relative E/p scale");
hPad->GetYaxis()->SetTitleOffset(tYoffset);
hPad->GetXaxis()->SetLabelSize(labSize);
hPad->GetXaxis()->SetTitleSize(labSize2);
hPad->GetYaxis()->SetLabelSize(labSize);
hPad->GetYaxis()->SetTitleSize(labSize2);
hPad -> SetMinimum(yMIN);
hPad -> SetMaximum(yMAX);
// draw history plot
g_fit -> SetMarkerStyle(24);
g_fit -> SetMarkerSize(0.7);
g_fit -> SetMarkerColor(kRed+2);
g_fit -> SetLineColor(kRed+2);
g_fit -> Draw("P");
g_c_fit -> SetMarkerStyle(20);
g_c_fit -> SetMarkerColor(kGreen+2);
g_c_fit -> SetLineColor(kGreen+2);
g_c_fit -> SetMarkerSize(0.7);
g_c_fit -> Draw("P,same");
g_las -> SetLineColor(kAzure-2);
g_las -> SetLineWidth(2);
g_las -> Draw("L,same");
示例11: main
//.........这里部分代码省略.........
} // Loop on the cut list
} // Loop on the events
TFile* outputEfficiency = new TFile(("output/"+outputPlotDirectory+"/outputEfficiency.root").c_str(),"RECREATE");
for(map<string,TH1F*>::const_iterator itMap = histoCutEff.begin(); itMap != histoCutEff.end(); itMap++){
itMap->second->Scale(1./itMap->second->GetBinContent(1));
itMap->second->Write();
}
outputEfficiency->Close();
// make the canvas and basic banners
TCanvas *cCanvas = new TCanvas("cCanvas","",1,52,550,550);
cCanvas->SetTicks();
cCanvas->SetFillColor(0);
cCanvas->SetBorderMode(0);
cCanvas->SetBorderSize(2);
cCanvas->SetTickx(1);
cCanvas->SetTicky(1);
cCanvas->SetRightMargin(0.05);
cCanvas->SetBottomMargin(0.12);
cCanvas->SetFrameBorderMode(0);
cCanvas->cd();
TPad* upperPad = new TPad("upperPad", "upperPad", .005, .180, .995, .980);
TPad* lowerPad = new TPad("lowerPad", "lowerPad", .005, .005, .995, .18);
lowerPad->SetGridx();
lowerPad->SetGridy();
upperPad->SetLeftMargin(0.12);
upperPad->SetRightMargin(0.1);
lowerPad->SetLeftMargin(0.12);
lowerPad->SetRightMargin(0.1);
lowerPad->SetTopMargin(0.002);
lowerPad->Draw();
upperPad->Draw();
TCanvas *cCanvasNorm = new TCanvas("cCanvasNorm","",1,52,550,550);
cCanvasNorm->SetTicks();
cCanvasNorm->SetFillColor(0);
cCanvasNorm->SetBorderMode(0);
cCanvasNorm->SetBorderSize(2);
cCanvasNorm->SetTickx(1);
cCanvasNorm->SetTicky(1);
cCanvasNorm->SetRightMargin(0.05);
cCanvasNorm->SetBottomMargin(0.12);
cCanvasNorm->SetFrameBorderMode(0);
TLatex * tex = new TLatex(0.88,0.92," 14 TeV");
tex->SetNDC();
tex->SetTextAlign(31);
tex->SetTextFont(42);
tex->SetTextSize(0.045);
tex->SetLineWidth(2);
TLatex * tex2 = new TLatex(0.14,0.92,"Delphes");
tex2->SetNDC();
tex2->SetTextFont(61);
tex2->SetTextSize(0.045);
tex2->SetLineWidth(2);
TLatex * tex3 = new TLatex(0.295,0.92,"Simulation Preliminary");
示例12: TCanvas
TCanvas *drawRatioPlot(TH1D *prediction, TH1D *sr, TString xTitle, TString filename){
TCanvas *c = new TCanvas("c"+filename,"c",0,0,500,500);
float y = 0.3;
TPad *pad1 = new TPad("pad1", "Control Plots 1", 0.01, y, 0.99, 0.99);
TPad *padRatio = new TPad("rp1", "Ratio1", 0.01, 0.01, 0.99, y-0.01);
TH1D *ratio = 0;
//ratio = (TH1D*) sr->Clone();
//ratio->Divide(prediction);
ratio = (TH1D*) prediction->Clone();
ratio->Divide(sr);
for(int i=1; i<=ratio->GetNbinsX();i++){
cout<<"Scaling Factor in "<<i<<". bin ="<<ratio->GetBinContent(i)<<" +/- "<<ratio->GetBinError(i)<<endl;
}
ratio->GetYaxis()->SetTitle("Pred/Bkg");
ratio->SetTitle("");
ratio->SetLabelSize(0.1,"X");
ratio->SetLabelSize(0.1,"Y");
ratio->SetTitleOffset(0.5,"Y");
ratio->SetTitleSize(0.15,"Y");
padRatio->cd();
//ratio->GetYaxis()->SetRangeUser(0,2);
ratio->Draw();
// Draw line at one!
float xmin = ratio->GetXaxis()->GetXmin();
float xmax = ratio->GetXaxis()->GetXmax();
TLine *line = new TLine(xmin,1,xmax,1);
line->SetLineWidth(2);
line->Draw("same");
padRatio->Modified();
TLegend *leg = new TLegend(0.6,0.8,0.9,0.9);
leg->AddEntry(sr,"bkg","l");
leg->AddEntry(prediction,"bkg prediction","pel");
pad1->cd();
pad1->SetLogy();
sr->SetLineColor(kRed);
sr->SetMarkerColor(kRed);
sr->SetMarkerStyle(20);
sr->SetTitle("");
prediction->SetMarkerStyle(20);
prediction->SetTitle("");
prediction->GetXaxis()->SetTitle(xTitle);
sr->GetXaxis()->SetTitle(xTitle);
prediction->SetTitleSize(0.07,"X");
prediction->GetXaxis()->SetTitleOffset(0.7);
sr->SetTitleSize(0.07,"X");
sr->GetXaxis()->SetTitleOffset(0.7);
prediction->Draw("e");
sr->Draw("e same");
double maximum =prediction->GetMaximum()*2.5;
double minimum = 0.00001;
if(sr->GetMinimum()!=0) minimum=sr->GetMinimum()*0.5;
if(prediction->GetMinimum()!=0) minimum=prediction->GetMinimum()*0.5;
if(sr->GetMaximum()>prediction->GetMaximum()){
maximum=sr->GetMaximum()*2.5;
}
prediction->GetYaxis()->SetRangeUser(minimum,maximum);
leg->Draw("same");
// Draw both pads to canvas
c->cd();
pad1->Draw();
padRatio->SetGridy();
padRatio->Draw();
c->SaveAs(filename);
return c;
}
示例13: compareplots
//.........这里部分代码省略.........
histos.at(0)->GetXaxis()->SetTitleOffset(1.1);
histos.at(0)->GetYaxis()->SetTitleSize(0.06);
histos.at(0)->GetYaxis()->SetTitleOffset(1.08);
histos.at(0)->GetXaxis()->SetTitle(titles.at(run));
run = run+1;
if(run == (3*8)){
run = 0;
}
// If only two histograms per plot make a ratio plot
if(histos.size() == 2)
{
//create main pad
TPad *mainPad = new TPad("","",0.0,0.3,1.0,1.0);
mainPad->SetNumber(1);
mainPad->SetBottomMargin(0.0);
mainPad->SetRightMargin(0.04);
mainPad->SetLeftMargin(0.13);
mainPad->Draw();
//create ratio pad
TPad *ratioPad = new TPad("","",0.0,0.0,1.0,0.3);
ratioPad->SetTopMargin(0.0);
ratioPad->SetBottomMargin(0.4);
ratioPad->SetLeftMargin(0.13);
ratioPad->SetRightMargin(0.04);
gStyle->SetOptTitle(0);
ratioPad->SetFillColor(0);
ratioPad->SetNumber(2);
ratioPad->SetGridy();
ratioPad->Draw();
// Draw both histograms first
c->cd(1);
histos.at(0)->Draw("histo E");
histos.at(1)->Draw("histo same E");
// Show legend and statistical tests in first pad
for(size_t i=0;i<histos.size()-1;i=i+2){
double ksresult = histos.at(i)->KolmogorovTest(histos.at(i+1));
ksresult=floor(ksresult*1000+0.5)/1000;
double chi2result =histos.at(i)->Chi2Test(histos.at(i+1),"WW");
chi2result=floor(chi2result*1000+0.5)/1000;
stringstream ss;
ss << " KS: " <<std::setprecision(3) << ksresult << " chi2: " <<std::setprecision(3) << chi2result << " Private Work";
const char * ch = & ss.str().c_str();;
TLatex * ks = new TLatex(0.1, 0.9-0.03*i, ch );
ks->SetTextColor(histos.at(i)->GetLineColor());
ks->SetNDC();
ks->Draw("");
}
TLegend* l = new TLegend(0.55,0.9,0.69,0.99);
// Options for legend
l->SetBorderSize(0);
l->SetLineStyle(0);
l->SetTextSize(0.049);
l->SetFillStyle(0);
示例14: QA_Draw_Jet_Summary
void QA_Draw_Jet_Summary(const char *jet_family = "AntiKt_Tower",
const char *qa_file_name_new =
"data/G4sPHENIXCells_2000jets25GeV.root_qa.root",
const char *qa_file_name_ref =
"data/G4sPHENIXCells_250jets25GeV.root_qa.root")
{
//! drawing energy range
const double min_Et = 10;
const double max_Et = 80;
SetsPhenixStyle();
TVirtualFitter::SetDefaultFitter("Minuit2");
// file IO
TFile *qa_file_new = new TFile(qa_file_name_new);
assert(qa_file_new->IsOpen());
// buffer for results
vector<float> vec_radius;
vector<TGraphErrors *> vec_phi_res;
vector<TGraphErrors *> vec_eta_res;
vector<TGraphErrors *> vec_e_res;
vector<TGraphErrors *> vec_et_res;
vector<TGraphErrors *> vec_reco_eff;
vector<TGraphErrors *> vec_purity;
// list and process all jets
TList *hist_key_list = qa_file_new->GetListOfKeys();
for (int i = 0; i < hist_key_list->GetSize(); ++i)
{
TString key_name = hist_key_list->At(i)->GetName();
TString s_re_fullname = Form(
"h_QAG4SimJet_.*_r[0-9]*_%s_r[0-9]*_Matching_Count_Truth_Et",
jet_family); // regular expression for search
TRegexp re_fullname(s_re_fullname, false);
if (key_name.Index(re_fullname) == kNPOS)
continue;
// cout << " key_name = " << key_name << endl;
TString jet_pair_name = key_name(0,
key_name.Length() - TString("_Matching_Count_Truth_Et").Length()); // remove suffix
// cout << " jet_pair_name = " << jet_pair_name << endl;
//get jet radius
TRegexp re_jetradius("_r[0-9]*", false);
Ssiz_t index_radius = key_name.Index(re_jetradius); // first radius
index_radius = key_name.Index(re_jetradius, index_radius + 1); // second radius
assert(index_radius != kNPOS);
float radius = 0;
sscanf(key_name(index_radius, 100).Data(), "_r%f", &radius);
// cout << " index_radius = " << index_radius << endl;
assert(radius != 0);
radius /= 10; // jet radius convention in DST names
cout << "QA_Draw_Jet_Summary - process jet pair " << jet_pair_name
<< " with radius = " << radius << endl;
vector<TGraphErrors *> resolution_efficiency_summary(
QA_Draw_Jet_TruthMatching(jet_pair_name, qa_file_name_new,
qa_file_name_ref));
//save results
vec_radius.push_back(radius);
vec_phi_res.push_back(resolution_efficiency_summary[0]);
vec_eta_res.push_back(resolution_efficiency_summary[1]);
vec_e_res.push_back(resolution_efficiency_summary[2]);
vec_et_res.push_back(resolution_efficiency_summary[3]);
vec_reco_eff.push_back(resolution_efficiency_summary[4]);
vec_purity.push_back(resolution_efficiency_summary[5]);
// break;
}
// plot
TCanvas *c1 = new TCanvas(
TString("QA_Draw_Jet_Summary_") + TString(jet_family),
TString("QA_Draw_Jet_Summary_") + TString(jet_family), 1800, 900);
c1->Divide(3, 2);
int idx = 1;
TPad *p;
// ------------------------------------
p = (TPad *) c1->cd(idx++);
c1->Update();
// p->SetLogz();
TH1 *h_frame =
p->DrawFrame(min_Et, -.1, max_Et, .1,
TString(jet_family) + " #phi Reconstruction;E_{T, Truth} (GeV);#phi_{Reco} - #phi_{Truth} (rad)");
// h_frame->GetYaxis()->SetTitleOffset(1.01);
TLine *l = new TLine(min_Et, 0, max_Et, 0);
l->Draw();
p->SetGridx(0);
p->SetGridy(0);
TLegend *legend = new TLegend(0.7, 0.2, .95, 0.5);
legend->SetFillColor(kWhite);
legend->SetFillStyle(1001);
legend->SetLineWidth(2);
//.........这里部分代码省略.........
示例15: FastVsSlowSimEff
void FastVsSlowSimEff(Int_t id=0,Int_t PbPb=0) {
Int_t mult = 2400; // 2800 // deducted from "Frackable"
if (PbPb) mult=2800;
Int_t plusTPC =0;
gROOT->LoadMacro("~/fig_template.C"); // figure style
myOptions(0);
gROOT->ForceStyle();
TCanvas *myCan = new TCanvas("myCan");
myCan->Draw();
myCan->cd();
TPad *myPad = new TPad("myPad", "The pad",0,0,1,1);
myPadSetUp(myPad,0.15,0.04,0.04,0.15);
myPad->Draw(); myPad->cd();
myPad->SetGridx(); myPad->SetGridy();// myPad->SetLogx();
TLegend *leg = new TLegend(0.9,30,1.7,70,"","brCDN");
leg->SetFillColor(0);
TGraph *c[6];
if (id!=2) {
// Current ITS +++++++++++++++++++++++++++++++++++++++++
Int_t color=1; Int_t linewidth=2;
Int_t pi =0;
DetectorK its("ALICE","ITS");
its.MakeAliceCurrent(0,plusTPC);
its.SetMaxRadiusOfSlowDetectors(0.01);
its.SetAtLeastCorr(atLeastcorr);
if (PbPb) its.SetdNdEtaCent(mult);
its.SolveViaBilloir(0);
Int_t color=1; Int_t linewidth=2;
if (id==0)
c[pi] = its.GetGraphRecoEfficiency(0,color,linewidth);
else if (id==1)
c[pi] = its.GetGraphRecoPurity(0,color,linewidth);
else
c[pi] = its.GetGraphRecoFakes(0,color,linewidth);
c[pi]->Draw("AC");
leg->AddEntry(c[pi],"FastTool: Current ITS","l");
// NEW SPD +++++++++++++++++++++++++++++++++++++++++
Int_t color=3; Int_t linewidth=2;
Int_t pi =2;
DetectorK its("ALICE","ITS");
its.MakeAliceCurrent(0,plusTPC);
its.SetAtLeastCorr(atLeastcorr);
if (PbPb) its.SetdNdEtaCent(mult);
its.SetRadius("bpipe",2.0);
its.AddLayer("spd0", 2.2,1,1,1);
its.SetRadius("spd0",2.2); its.SetRadiationLength("spd0",X0); its.SetResolution("spd0",resRPhi,resZ);
its.SetRadius("spd1",4.8); its.SetRadiationLength("spd1",X0); its.SetResolution("spd1",resRPhi,resZ);
its.SetRadius("spd2",9.1); its.SetRadiationLength("spd2",X0); its.SetResolution("spd2",resRPhi,resZ);
its.SetMaxRadiusOfSlowDetectors(0.1);
its.SolveViaBilloir(0);
if (id==0)
c[pi] = its.GetGraphRecoEfficiency(0,color,linewidth);
else if (id==1)
c[pi] = its.GetGraphRecoPurity(0,color,linewidth);
else
c[pi] = its.GetGraphRecoFakes(0,color,linewidth);
c[pi]->Draw("C");
leg->AddEntry(c[pi],"FastTool: \"New SPDs\"","l");
// ALL NEW +++++++++++++++++++++++++++++++++++++++++++
color=4; Int_t linewidth=2;
Int_t pi =1;
// for a 0.8,0.2 weight configuration
DetectorK *itsU = new DetectorK((char*)"ALICE",(char*)"ITS");
itsU->SetAtLeastCorr(atLeastcorr);
itsU->AddLayer((char*)"bpipe", 2.0,0.0022); // beam pipe
itsU->AddLayer((char*)"vertex", 0, 0); // dummy vertex for matrix calculation
itsU->AddLayer("ddd1", 2.2 , X0, resRPhi, resZ);
itsU->AddLayer("ddd2", 3.8 , X0, resRPhi, resZ);
//.........这里部分代码省略.........