本文整理汇总了C++中TPad::SetGridx方法的典型用法代码示例。如果您正苦于以下问题:C++ TPad::SetGridx方法的具体用法?C++ TPad::SetGridx怎么用?C++ TPad::SetGridx使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPad
的用法示例。
在下文中一共展示了TPad::SetGridx方法的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: trisCheckCorrection_unbinnedfit
//.........这里部分代码省略.........
gPad->Update();
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);
示例3: FastVsSlowSimRes
void FastVsSlowSimRes() {
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.7,160,20,290,"","brCDN");
TLegend *leg = new TLegend(0.44,160,1.7,290,"","brCDN");
leg->SetFillColor(0);
// Current ITS +++++++++++++++++++++++++++++++++++++++++
DetectorK its("ALICE","ITS");
its.MakeAliceCurrent(0,plusTPC);
its.SetMaxRadiusOfSlowDetectors(0.1);
its.SolveViaBilloir(0);
Int_t color=1; Int_t linewidth=2;
TGraph *c[6];
TGraph *d[6];
Int_t pi =0;
d[pi] = its.GetGraphPointingResolution(1,color,linewidth);
d[pi]->SetLineStyle(2);
// d[pi]->GetYaxis()->SetTitle("Pointing resolution #sigma [#mum]");
// d[pi]->SetTitle("Pointing resolution .vs. Pt");
// d[pi]->Draw("AC");
c[pi] = its.GetGraphPointingResolution(0,color,linewidth);
c[pi]->SetMinimum(-1);
c[pi]->Draw("AC");
leg->AddEntry(c[pi],"FastTool: Current ITS","l");
// leg->AddEntry(d[pi],"in z - Current ITS","l");
// Current ITS +++++++++++++++++++++++++++++++++++++++++
Int_t color=3; Int_t linewidth=2;
Int_t pi =2;
DetectorK its("ALICE","ITS");
its.MakeAliceCurrent(0,plusTPC);
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);
d[pi] = its.GetGraphPointingResolution(1,color,linewidth);
d[pi]->SetLineStyle(2);
// d[pi]->Draw("C");
c[pi] = its.GetGraphPointingResolution(0,color,linewidth);
c[pi]->Draw("C");
leg->AddEntry(c[pi],"FastTool: \"New SPDs\"","l");
// leg->AddEntry(d[pi],"in z - \"New SPDs\"","l");
// ALL NEW +++++++++++++++++++++++++++++++++++++++++++
color=2; 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->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);
itsU->AddLayer("ddd3", 6.8 , X0, resRPhi, resZ);
itsU->AddLayer("ddd4", 12.4 , X0, resRPhi, resZ);
itsU->AddLayer("ddd5", 23.5 , X0, resRPhi, resZ);
itsU->AddLayer("ddd6", 39.6 , X0, resRPhi, resZ);
//.........这里部分代码省略.........
示例4: 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);
//.........这里部分代码省略.........
示例5: 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);
}
示例6: EMCDistribution_PeakSample_Fast
void EMCDistribution_PeakSample_Fast(bool full_gain = false)
{
const TString gain = "RAW";
TString hname = "EMCDistribution_" + gain + TString(full_gain ? "_FullGain" : "") + cuts;
TH2 *h2 = NULL;
{
if (full_gain)
{
h2 = new TH2F(hname,
Form(";Calibrated Tower Energy Sum (ADC);Count / bin"), 100,
.05 * 100, 25 * 100, 64, -.5, 63.5);
QAHistManagerDef::useLogBins(h2->GetXaxis());
}
else
{
h2 = new TH2F(hname,
Form(";Calibrated Tower Energy Sum (ADC);Count / bin"), 260,
-.2 * 100, 5 * 100, 64, -.5, 63.5);
}
T->Draw(
"TOWER_" + gain + "_CEMC[].get_bineta() + 8* TOWER_" + gain + "_CEMC[].get_binphi():(TOWER_RAW_CEMC[].signal_samples[10] - TOWER_RAW_CEMC[].signal_samples[0])*(-1)>>" + hname, "", "goff");
}
TText *t;
TCanvas *c1 = new TCanvas(
"EMCDistribution_PeakSample_Fast_" + TString(full_gain ? "_FullGain" : "") + cuts,
"EMCDistribution_PeakSample_Fast_" + TString(full_gain ? "_FullGain" : "") + cuts, 1800, 950);
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();
if (full_gain)
{
p->SetLogx();
}
p->SetGridx(0);
p->SetGridy(0);
TString hname = Form("hEnergy_ieta%d_iphi%d", ieta, iphi) + TString(full_gain ? "_FullGain" : "");
TH1 *h = h2->ProjectionX(hname, ieta + 8 * iphi + 1,
ieta + 8 * iphi + 1); // axis bin number is encoded as ieta+8*iphi+1
h->SetLineWidth(0);
h->SetLineColor(kBlue + 3);
h->SetFillColor(kBlue + 3);
h->GetXaxis()->SetTitleSize(.09);
h->GetXaxis()->SetLabelSize(.08);
h->GetYaxis()->SetLabelSize(.08);
h->Draw();
if (full_gain)
h->Fit("x*gaus", "M");
else
h->Fit("landau", "M");
double peak = -1;
TF1 *fit = ((TF1 *) (h->GetListOfFunctions()->At(0)));
if (fit)
{
fit->SetLineColor(kRed);
peak = fit->GetParameter(1);
}
cout << Form("Finished <Col%d Row%d> = %.1f", ieta, iphi, peak)
<< endl;
TText *t = new TText(.9, .9,
Form("<Col%d Row%d> = %.1f", ieta, iphi, peak));
t->SetTextAlign(33);
t->SetTextSize(.15);
t->SetNDC();
t->Draw();
}
}
SaveCanvas(c1,
TString(_file0->GetName()) + TString("_DrawPrototype3EMCalTower_") + TString(c1->GetName()), false);
}
示例7: EMCDistribution_SUM_RawADC
void EMCDistribution_SUM_RawADC(TString sTOWER = "Energy_Sum_col1_row2_5x5",
TString CherenkovSignal = "C2_Inner")
{
TH1 *EnergySum_LG_full = new TH1F("EnergySum_LG_full",
";Tower Energy Sum (ADC);Count / bin", 260, -100, 2500);
TH1 *EnergySum_LG = new TH1F("EnergySum_LG",
";Tower Energy Sum (ADC);Count / bin", 260, -100, 2500);
// TH1 * EnergySum_HG = new TH1F("EnergySum_HG",
// ";Low range Tower Energy Sum (ADC);Count / bin", 50, 0, 500);
TH1 *C2_Inner_full = new TH1F("C2_Inner_full",
CherenkovSignal + ";Cherenkov Signal (ADC);Count / bin", 1000, 0, 2000);
TH1 *C2_Inner = new TH1F("C2_Inner",
CherenkovSignal + ";Cherenkov Inner Signal (ADC);Count / bin", 1000, 0, 2000);
EnergySum_LG_full->SetLineColor(kBlue + 3);
EnergySum_LG_full->SetLineWidth(2);
EnergySum_LG->SetLineColor(kGreen + 3);
EnergySum_LG->SetLineWidth(3);
EnergySum_LG->SetMarkerColor(kGreen + 3);
C2_Inner_full->SetLineColor(kBlue + 3);
C2_Inner_full->SetLineWidth(2);
C2_Inner->SetLineColor(kGreen + 3);
C2_Inner->SetLineWidth(3);
C2_Inner->SetMarkerColor(kGreen + 3);
TCut c2 = CherenkovSignal + ">240";
T->Draw(sTOWER + ">>EnergySum_LG_full", "", "goff");
T->Draw(sTOWER + ">>EnergySum_LG", c2, "goff");
T->Draw(CherenkovSignal + ">>C2_Inner_full", "", "goff");
T->Draw(CherenkovSignal + ">>C2_Inner", c2, "goff");
TText *t;
TCanvas *c1 = new TCanvas(
"EMCDistribution_SUM_RawADC_" + sTOWER + "_" + CherenkovSignal + cuts,
"EMCDistribution_SUM_RawADC_" + sTOWER + "_" + CherenkovSignal + cuts, 1800,
600);
c1->Divide(3, 1);
int idx = 1;
TPad *p;
p = (TPad *) c1->cd(idx++);
c1->Update();
p->SetLogy();
p->SetGridx(0);
p->SetGridy(0);
C2_Inner_full->DrawClone();
C2_Inner->DrawClone("same");
p = (TPad *) c1->cd(idx++);
c1->Update();
p->SetLogy();
p->SetGridx(0);
p->SetGridy(0);
TH1 *h = (TH1 *) EnergySum_LG_full->DrawClone();
// h->GetXaxis()->SetRangeUser(0, h->GetMean() + 5 * h->GetRMS());
(TH1 *) EnergySum_LG->DrawClone("same");
p = (TPad *) c1->cd(idx++);
c1->Update();
// p->SetLogy();
p->SetGridx(0);
p->SetGridy(0);
TH1 *h_full = (TH1 *) EnergySum_LG_full->DrawClone();
TH1 *h = (TH1 *) EnergySum_LG->DrawClone("same");
TF1 *fgaus_g = new TF1("fgaus_LG_g", "gaus", h->GetMean() - 1 * h->GetRMS(),
h->GetMean() + 4 * h->GetRMS());
fgaus_g->SetParameters(1, h->GetMean() - 2 * h->GetRMS(),
h->GetMean() + 2 * h->GetRMS());
h->Fit(fgaus_g, "MR0N");
TF1 *fgaus = new TF1("fgaus_LG", "gaus",
fgaus_g->GetParameter(1) - 1 * fgaus_g->GetParameter(2),
fgaus_g->GetParameter(1) + 4 * fgaus_g->GetParameter(2));
fgaus->SetParameters(fgaus_g->GetParameter(0), fgaus_g->GetParameter(1),
fgaus_g->GetParameter(2));
h->Fit(fgaus, "MR");
h->Sumw2();
h_full->Sumw2();
h_full->GetXaxis()->SetRangeUser(h->GetMean() - 4 * h->GetRMS(),
h->GetMean() + 4 * h->GetRMS());
h->SetLineWidth(2);
h->SetMarkerStyle(kFullCircle);
h_full->SetTitle(
Form("#DeltaE/<E> = %.1f%%",
100 * fgaus->GetParameter(2) / fgaus->GetParameter(1)));
// p = (TPad *) c1->cd(idx++);
// c1->Update();
//.........这里部分代码省略.........
示例8: 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);
//.........这里部分代码省略.........
示例9: EMCDistribution_ADC
void EMCDistribution_ADC(bool log_scale = true)
{
TString gain = "RAW";
TText *t;
TCanvas *c1 = new TCanvas(
"EMCDistribution_ADC_" + gain + TString(log_scale ? "_Log" : "") + cuts,
"EMCDistribution_ADC_" + 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();
if (log_scale)
{
p->SetLogz();
}
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 TH2F(hname,
Form(";Calibrated Tower Energy Sum (GeV);Count / bin"), 24, -.5,
23.5,
// 128+64, 0, 3096);
4098, -1, 4097);
// else
// h = new TH2F(hname,
// Form(";Calibrated Tower Energy Sum (GeV);Count / bin"), 100,
// -.050, .5,128,0,2048);
h->SetLineWidth(0);
h->SetLineColor(kBlue + 3);
h->SetFillColor(kBlue + 3);
h->GetXaxis()->SetTitleSize(.09);
h->GetXaxis()->SetLabelSize(.08);
h->GetYaxis()->SetLabelSize(.08);
h->GetYaxis()->SetRangeUser(0, 4096);
// if (log_scale)
// QAHistManagerDef::useLogBins(h->GetYaxis());
TString sdraw = "TOWER_" + gain + "_CEMC[].signal_samples[]:fmod(Iteration$,24)>>" + hname;
TString scut =
Form(
"TOWER_%s_CEMC[].get_bineta()==%d && TOWER_%s_CEMC[].get_binphi()==%d",
gain.Data(), ieta, gain.Data(), iphi);
cout << "T->Draw(\"" << sdraw << "\",\"" << scut << "\");" << endl;
T->Draw(sdraw, scut, "colz");
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);
}
示例10: Plot_muons
void Plot_muons(){
gStyle->SetOptStat(0);
gStyle->SetOptDate(0);
gStyle->SetOptFit(0111);
int ChComb=1;// 0=Same-charge, 1=Mixed-charge
int kTbin_L=5, kTbin_H=6;
int binKT3=1;//1-2
//TFile *_file0= new TFile("Results/PDC_12a17a_muons_R6.root","READ");
//TFile *_file0= new TFile("Results/PDC_13b2_efix_p1_muons_R2.root","READ");
TFile *_file0= new TFile("Results/PDC_12a17e_muons_R4.root","READ");
TList *MyList=(TList*)_file0->Get("MyList");
_file0->Close();
TH1D *PionCandidates=(TH1D*)MyList->FindObject("fPionCandidates");
PionCandidates->GetXaxis()->SetTitle("PDG code");
//PionCandidates->Draw();
//
TH1D *MuonParentsPrimary=(TH1D*)MyList->FindObject("fMuonParents");
MuonParentsPrimary->GetXaxis()->SetTitle("PDG code");
MuonParentsPrimary->SetFillColor(1);
//MuonParentsPrimary->Draw();
//
TH1D *MuonParentsSecondary=(TH1D*)MyList->FindObject("fSecondaryMuonParents");
MuonParentsSecondary->GetXaxis()->SetTitle("PDG code");
MuonParentsSecondary->SetFillColor(1);
//MuonParentsSecondary->Draw();
//
// M0 R10-R6, M6 for R4, M17 for R2
TH3D *PurityNum_3D = (TH3D*)MyList->FindObject("Explicit2_Charge1_1_Charge2_1_SC_0_M_6_ED_0_Term_1_PIDpurityNum");
TH2D *PurityDen_2D = (TH2D*)MyList->FindObject("Explicit2_Charge1_1_Charge2_1_SC_0_M_6_ED_0_Term_1_PIDpurityDen");
TH1D *PurityNum=PurityNum_3D->ProjectionX("PurityNum",kTbin_L,kTbin_H,1,20);
double PurityNorm=PurityDen_2D->Integral(kTbin_L,kTbin_H,1,20);
PurityNum->Scale(1/PurityNorm);
char *namesAxis[15]={"e-e","e-mu","e-pi","e-k","e-p","mu-mu","mu-pi","mu-k","mu-p","pi-pi","pi-k","pi-p","k-k","k-p","p-p"};
for(int i=1; i<=15; i++) PurityNum->GetXaxis()->SetBinLabel(i, namesAxis[i-1]);
PurityNum->GetXaxis()->SetRange(1,15);
PurityNum->GetYaxis()->SetTitle("Probability");
PurityNum->Draw();
//
//
TCanvas *can = new TCanvas("can", "can",800,0,800,800);// 11,53,700,500
can->SetHighLightColor(2);
gStyle->SetOptFit(0111);
can->SetFillColor(10);//10
can->SetBorderMode(0);
can->SetBorderSize(2);
can->SetFrameFillColor(0);
can->SetFrameBorderMode(0);
can->SetFrameBorderMode(0);
can->cd();
TPad *pad = new TPad("pad","pad",0.,0.,1.,1.);
gPad->SetTickx();
gPad->SetTicky();
pad->SetGridx();
pad->SetGridy();
pad->SetTopMargin(0.02);//0.05
pad->SetRightMargin(0.02);//3e-2
pad->SetBottomMargin(0.1);//0.12
pad->SetLeftMargin(0.1);
pad->Draw();
pad->cd();
TLegend *legend = new TLegend(.5,.65, .9,.95,NULL,"brNDC");//.45 or .4 for x1
legend->SetBorderSize(0);
legend->SetFillColor(0);
legend->SetTextFont(42);
legend->SetTextSize(0.03);
//
TH3D *MuonSmearedNum2_3=(TH3D*)MyList->FindObject("fMuonContamSmearedNum2");
TH3D *MuonSmearedDen2_3=(TH3D*)MyList->FindObject("fMuonContamSmearedDen2");
TH3D *PionNum2_3=(TH3D*)MyList->FindObject("fMuonContamIdealNum2");
TH3D *PionDen2_3=(TH3D*)MyList->FindObject("fMuonContamIdealDen2");
TH3D *PionPionK2_3=(TH3D*)MyList->FindObject("fPionPionK2");
//
TH3D *MuonSmearedNum3_3=(TH3D*)MyList->FindObject("fMuonContamSmearedNum3");
TH3D *MuonSmearedDen3_3=(TH3D*)MyList->FindObject("fMuonContamSmearedDen3");
TH3D *PionNum3_3=(TH3D*)MyList->FindObject("fMuonContamIdealNum3");
TH3D *PionDen3_3=(TH3D*)MyList->FindObject("fMuonContamIdealDen3");
TH3D *PionPionK3_3=(TH3D*)MyList->FindObject("fPionPionK3");
TH3D *MuonPionK3_3=(TH3D*)MyList->FindObject("fMuonPionK3");
TH1D *MuonSmearedNum2[2];// SC/MC
TH1D *MuonSmearedDen2[2];
TH1D *PionNum2[2];
TH1D *PionDen2[2];
TH1D *PionPionK2[2];
//
TH1D *MuonSmearedNum3[2];// SC/MC
TH1D *MuonSmearedDen3[2];
TH1D *PionNum3[2];
TH1D *PionDen3[2];
TH1D *PionPionK3[2];
//
TH1D *C2muonSmeared[2];
TH1D *C2pion[2];
//.........这里部分代码省略.........
示例11: 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;
}
示例12: main
//.........这里部分代码省略.........
} // loop on variables
} // 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);
示例13: main
//.........这里部分代码省略.........
s_EoP->SetY1NDC(0.79);
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);
示例14: doComparisonPlots_Et
void doComparisonPlots_Et(){
// gROOT->ProcessLine(".x /Users/Arabella/Public/style.C");
std::string plotDir = "../../NonGlobe/PLOTS_vsEt";
std::string plotDirOut = "2011vs2012_vsEt";
std::cout << " ci sono " << std::endl;
// std::string plotDir = "PLOTS_false_Sh";
// std::string plotDirOut = "2011vs2012_false_Sh";
for(int ii=0; ii<4; ++ii){
std::string category;
if(ii == 0) category = "EB_HIGH_scE_reg";
if(ii == 1) category = "EB_LOW_scE_reg";
if(ii == 2) category = "EE_HIGH_scE_reg";
if(ii == 3) category = "EE_LOW_scE_reg";
std::string file2011 = plotDir+"/results_"+category+"_2011.root";
std::string file2012 = plotDir+"/results_"+category+"_2012.root";
TFile f2012(file2012.c_str(),"read");
TFile f2011(file2011.c_str(),"read");
TGraphErrors* graph2012 = (TGraphErrors*)f2012.Get("finalGraph");
TGraphErrors* graph2011 = (TGraphErrors*)f2011.Get("finalGraph");
graph2012->SetMarkerColor(kGreen+2);
graph2011->SetMarkerColor(kRed+2);
if(ii == 0 || ii == 2){
graph2012->SetMarkerStyle(20);
graph2011->SetMarkerStyle(20);
}
if(ii == 1 || ii == 3){
graph2012->SetMarkerStyle(21);
graph2011->SetMarkerStyle(21);
}
TCanvas* cplot = new TCanvas("gplot", "gplot",100,100,725,500);
cplot->cd();
TPad *cLeft = new TPad("pad_0","pad_0",0.00,0.00,1.00,1.00);
cLeft->SetLeftMargin(0.17);
cLeft->SetRightMargin(0.025);
cLeft->SetBottomMargin(0.17);
cLeft->Draw();
float tYoffset = 1.75;
float tXoffset = 1.6;
float labSize = 0.04;
float labSize2 = 0.07;
cLeft->cd();
cLeft->SetGridx();
cLeft->SetGridy();
// pad settings
TH1F *hPad = (TH1F*)gPad->DrawFrame(20.,-0.02,120.,0.02);
hPad->GetXaxis()->SetTitle("E_{T}");
hPad->GetYaxis()->SetTitle("E/p_{data}-E/p_{mc}");
hPad->GetYaxis()->SetTitleOffset(tYoffset);
hPad->GetXaxis()->SetTitleOffset(tXoffset);
hPad->GetXaxis()->SetLabelSize(labSize);
hPad->GetXaxis()->SetTitleSize(labSize);
hPad->GetYaxis()->SetLabelSize(labSize);
hPad->GetYaxis()->SetTitleSize(labSize);
TLegend *tspec = new TLegend(0.64,0.80,0.99,0.99);
tspec->SetFillColor(0);
tspec->SetTextFont(42);
if(ii == 0){
tspec->AddEntry(graph2012,"2012 EB hR9","PL");
tspec->AddEntry(graph2011,"2011 EB hR9","PL");
}
if(ii == 1){
tspec->AddEntry(graph2012,"2012 EB lR9","PL");
tspec->AddEntry(graph2011,"2011 EB lR9","PL");
}
if(ii == 2){
tspec->AddEntry(graph2012,"2012 EE hR9","PL");
tspec->AddEntry(graph2011,"2011 EE hR9","PL");
}
if(ii == 3){
tspec->AddEntry(graph2012,"2012 EE lR9","PL");
tspec->AddEntry(graph2011,"2011 EE lR9","PL");
}
graph2012->Draw("P");
graph2011->Draw("P,same");
tspec->Draw("same");
cplot->Print( (plotDirOut+"/EoP_vs_Et_"+category+".png").c_str(),".png");
// cplot->Print( (plotDirOut+"/"+histoName+".png").c_str(),".png");
}
// tutto EB in 1 plot
std::string f11_h = plotDir+"/results_EB_HIGH_scE_reg_2011.root";
//.........这里部分代码省略.........
示例15: EMCDistribution_ShowShape
void EMCDistribution_ShowShape(TString CherenkovSignal = "C2_Inner",
const double che_cut = 10)
{
TString cut_pass = CherenkovSignal + Form(">%.1f", che_cut);
TString cut_rej = CherenkovSignal + Form("<%.1f", che_cut);
const double event_pass = T->GetEntries(cut_pass);
const double event_rej = T->GetEntries(cut_rej);
TH2 *EnergyDist_pass = new TH2F("EnergyDist_pass",
cut_pass + ";Column;Row;<Energy> / Event / Tower", 8, -.5, 7.5, 8, -.5,
7.5);
TH2 *EnergyDist_rej = new TH2F("EnergyDist_rej",
cut_rej + ";Column;Row;<Energy> / Event / Tower", 8, -.5, 7.5, 8, -.5,
7.5);
TH2 *Hodoscope_dist = new TH2F("Hodoscope_dist",
cut_rej + ";7 - Horizontal Hodoscope (5 mm);7 - Vertical Hodoscope (5 mm); Event / finger^2", 8, -.5, 7.5, 8, -.5,
7.5);
TH1 *Che_full = new TH1F("Che_full",
";" + CherenkovSignal + " Signal (ADC);Count / bin", 200, 0, 2000);
TH1 *Che_pass = new TH1F("Che_pass",
";" + CherenkovSignal + " Signal (ADC);Count / bin", 200, 0, 2000);
TH1 *Che_rej = new TH1F("Che_rej",
";" + CherenkovSignal + " Signal (ADC);Count / bin", 200, 0, 2000);
Che_full->SetLineColor(kBlue + 3);
Che_full->SetLineWidth(2);
Che_pass->SetLineColor(kGreen + 3);
Che_pass->SetLineWidth(2);
Che_pass->SetFillColor(kGreen + 3);
Che_pass->SetFillStyle(1);
Che_rej->SetLineColor(kBlue + 3);
Che_rej->SetLineWidth(2);
Che_rej->SetFillColor(kBlue + 3);
Che_rej->SetFillStyle(1);
T->Draw(
"TOWER_CALIB_CEMC[].get_binphi():TOWER_CALIB_CEMC[].get_bineta()>>EnergyDist_pass",
Form("(%s) * (TOWER_CALIB_CEMC[].get_energy())", cut_pass.Data()),
"goff");
T->Draw(
"TOWER_CALIB_CEMC[].get_binphi():TOWER_CALIB_CEMC[].get_bineta()>>EnergyDist_rej",
Form("(%s) * (TOWER_CALIB_CEMC[].get_energy())", cut_rej.Data()), "goff");
T->Draw(
"7 - Average_HODO_VERTICAL:7 - Average_HODO_HORIZONTAL>>Hodoscope_dist", "1", "goff");
T->Draw(CherenkovSignal + ">>Che_full", NULL, "goff");
T->Draw(CherenkovSignal + ">>Che_pass", cut_pass, "goff");
T->Draw(CherenkovSignal + ">>Che_rej", cut_rej, "goff");
EnergyDist_pass->Scale(1. / event_pass);
EnergyDist_rej->Scale(1. / event_rej);
TText *t;
TCanvas *c1 = new TCanvas("EMCDistribution_ShowShape" + cuts,
"EMCDistribution_ShowShape" + cuts, 1100, 950);
c1->Divide(2, 2);
int idx = 1;
TPad *p;
p = (TPad *) c1->cd(idx++);
c1->Update();
p->SetLogy();
p->SetGridx(0);
p->SetGridy(0);
Che_full->DrawClone();
Che_pass->DrawClone("same");
Che_rej->DrawClone("same");
p = (TPad *) c1->cd(idx++);
c1->Update();
// p->SetLogy();
EnergyDist_pass->DrawClone("colz");
p = (TPad *) c1->cd(idx++);
c1->Update();
// p->SetLogy();
// p->SetGridx(0);
// p->SetGridy(0);
EnergyDist_rej->DrawClone("colz");
p = (TPad *) c1->cd(idx++);
c1->Update();
// p->SetLogy();
// p->SetGridx(0);
// p->SetGridy(0);
Hodoscope_dist->DrawClone("colz");
SaveCanvas(c1,
TString(_file0->GetName()) + TString("_DrawPrototype3EMCalTower_") + TString(c1->GetName()), false);
}