本文整理汇总了C++中TH1D::SetMaximum方法的典型用法代码示例。如果您正苦于以下问题:C++ TH1D::SetMaximum方法的具体用法?C++ TH1D::SetMaximum怎么用?C++ TH1D::SetMaximum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH1D
的用法示例。
在下文中一共展示了TH1D::SetMaximum方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: anaFragShape
void anaFragShape(TString infile="dj_HCPR-GoodTrkAndPixel_CleanEvt1130.root")
{
TChain * djcalo = new TChain("djcalo/djTree");
djcalo->Add(infile);
aliases_dijet(djcalo);
TChain * djcalopix = new TChain("djcalo_pxl/djTree");
djcalopix->Add(infile);
aliases_dijet(djcalopix);
TString evtSel("(cent<10 && nljet>120 && abs(nljeta)<2 && aljet>50 && abs(aljeta)<2 && jdphi>2.5 && Aj>0.24)");
TH1::SetDefaultSumw2();
TCanvas * c0 = new TCanvas("c0","c0",500,500);
djcalo->Draw("Aj>>hAj(20,0,1)",evtSel);
djcalopix->Draw("Aj",evtSel,"Esame");
TCanvas * c2 = new TCanvas("c2","c2",500,500);
TH1D * hJDPhi = new TH1D("hJDPhi","hJDPhi",50,0,3.1416);
TH1D * hJDPhi2 = new TH1D("hJDPhi2","hJDPhi",50,0,3.1416);
Float_t numDJ = djcalo->Draw("jdphi>>hJDPhi",evtSel);
Float_t numDJ2 = djcalopix->Draw("jdphi>>hJDPhi2",evtSel);
cout << "num djs: " << numDJ << " djs(pix)" << numDJ2 << endl;
TH1D * hPNDRTrk = new TH1D("hPNDRTrk",";R(trk,jet);1/(N_{DJ} 2#piR) dp_{T}^{Trk}/dR",10,0,TMath::PiOver2());
TH1D * hPNDRPix = new TH1D("hPNDRPix",";R(trk,jet);1/(N_{DJ} 2#piR) dp_{T}^{Trk}/dR",10,0,TMath::PiOver2());
TH1D * hPADRTrk = new TH1D("hPADRTrk",";R(trk,jet);1/(N_{DJ} 2#piR) dp_{T}^{Trk}/dR",10,0,TMath::PiOver2());
TH1D * hPADRPix = new TH1D("hPADRPix",";R(trk,jet);1/(N_{DJ} 2#piR) dp_{T}^{Trk}/dR",10,0,TMath::PiOver2());
djcalo->Draw("pndr>>hPNDRTrk",Form("(%s&&ppt>=1.2)*(ppt/(TMath::TwoPi()*pndr))",evtSel.Data()));
djcalopix->Draw("pndr>>hPNDRPix",Form("(%s&&ppt>=0.3&&ppt<1.2)*(ppt/(TMath::TwoPi()*pndr))",evtSel.Data()));
djcalo->Draw("padr>>hPADRTrk",Form("(%s&&ppt>=1.2)*(ppt/(TMath::TwoPi()*padr))",evtSel.Data()));
djcalopix->Draw("padr>>hPADRPix",Form("(%s&&ppt>=0.3&&ppt<1.2)*(ppt/(TMath::TwoPi()*padr))",evtSel.Data()));
hPNDRTrk->Scale(1./(numDJ*hPNDRTrk->GetBinWidth(1)));
hPNDRPix->Scale(1./(numDJ*hPNDRPix->GetBinWidth(1)));
hPADRTrk->Scale(1./(numDJ*hPADRTrk->GetBinWidth(1)));
hPADRPix->Scale(1./(numDJ*hPADRPix->GetBinWidth(1)));
hPNDRPix->SetMinimum(50);
hPNDRPix->SetMaximum(100);
hPNDRTrk->SetMinimum(10);
hPNDRTrk->SetMaximum(2000);
hPNDRPix->SetMarkerStyle(kFullCircle);
hPNDRTrk->SetMarkerStyle(kFullSquare);
hPNDRPix->SetMarkerColor(kRed);
hPNDRTrk->SetMarkerColor(kRed);
hPADRPix->SetMarkerStyle(kOpenCircle);
hPADRTrk->SetMarkerStyle(kOpenSquare);
hPADRPix->SetMarkerColor(kBlue);
hPADRTrk->SetMarkerColor(kBlue);
TCanvas * c3 = new TCanvas("c3","c3",500,500);
hPNDRPix->Draw("E");
hPADRPix->Draw("Esame");
TCanvas * c3_2 = new TCanvas("c3_2","c3_2",500,500);
c3_2->SetLogy();
hPNDRTrk->Draw("E");
hPADRTrk->Draw("Esame");
}
示例2: makeRatioHist
TH1D* makeRatioHist(TH1D& Hist1, TH1D& Hist2, char* name="CaloJetPtRatio2over1", double maxX=100.0) {
TH1D* hist = Hist2.Clone(name);
TH1D* temphist = Hist1.Clone("temphist");
//temphist->Add( &Hist2, -1);
hist->Divide(temphist);
hist->GetXaxis()->SetTitle("jet p_{T} (GeV/c)");
hist->SetMinimum(0.0);
if(maxX > 110.0) hist->SetMaximum(0.35);
else hist->SetMaximum(0.3);
hist->GetXaxis()->SetRangeUser(0,maxX);
delete temphist;
return hist;
}
示例3: plotV2vstheta
void plotV2vstheta(){
gStyle->SetOptFit(1);
gStyle->SetOptStat(0);
gStyle->SetOptTitle(0);
gStyle->SetErrorX(0);
int xbin = 0;
TFile *f = new TFile("mergedV_Prod.root");
TVectorD *vecV = (TVectorD*)f->Get(Form("D_%d/V"));
TVectorD *vecdeltaV = (TVectorD*)f->Get(Form("D_%d/deltaV"));
TVectorD *vecVmean = (TVectorD*)f->Get(Form("Vmean"));
double *V = vecV->GetMatrixArray();
double *deltaV = vecdeltaV->GetMatrixArray();
double *Vmean = vecVmean->GetMatrixArray();
double theta[ntheta];
for(int itheta=0;itheta<ntheta;itheta++){
theta[itheta]=itheta*TMath::Pi()/ntheta/nn;
}
TH1D *hFrame = new TH1D("","",300,-1,2);
hFrame->GetXaxis()->SetTitle("#theta");
hFrame->GetYaxis()->SetTitle("referenceV_{2}");
hFrame->GetXaxis()->SetTitleSize(0.04);
hFrame->GetYaxis()->SetTitleSize(0.04);
hFrame->GetXaxis()->SetRangeUser(-0.1,1.5);
hFrame->SetMaximum(0.055);
hFrame->SetMinimum(0.045);
hFrame->Draw();
TGraphErrors *gr = new TGraphErrors(ntheta,theta,V,0,deltaV);
gr->SetMarkerSize(1.2);
gr->SetMarkerStyle(20);
gr->Draw("Psame");
TLine *l = new TLine(0,inV2,1.4,inV2);
l->SetLineStyle(2);
l->Draw("same");
c1->Print("V2vstheta.png");
}
示例4: drawDum
//__________________________________________________________________________
void drawDum(float min, float max, double drawXLabel)
{
TH1D *hdum = new TH1D("hdum","",20,0,1);
hdum->SetMaximum(max);
hdum->SetStats(0);
if(drawXLabel) hdum->SetXTitle("A_{J} = (E_{T}^{j1}-E_{T}^{j2})/(E_{T}^{j1}+E_{T}^{j2})");
hdum->GetXaxis()->SetLabelSize(20);
hdum->GetXaxis()->SetLabelFont(43);
hdum->GetXaxis()->SetTitleSize(22);
hdum->GetXaxis()->SetTitleFont(43);
hdum->GetXaxis()->SetTitleOffset(1.5);
hdum->GetXaxis()->CenterTitle();
hdum->GetXaxis()->SetNdivisions(905,true);
hdum->SetYTitle("Ratio");
hdum->GetYaxis()->SetLabelSize(20);
hdum->GetYaxis()->SetLabelFont(43);
hdum->GetYaxis()->SetTitleSize(20);
hdum->GetYaxis()->SetTitleFont(43);
hdum->GetYaxis()->SetTitleOffset(2.5);
hdum->GetYaxis()->CenterTitle();
hdum->SetAxisRange(0,0.2,"Y");
hdum->Draw("");
}
示例5: plotRatio
// ----------------------------------------------------------------------
void plotRatio(string era = "2016BF") {
gStyle->SetOptStat(0);
if (era == "all") {
plotRatio("2011");
plotRatio("2012");
plotRatio("2016BF");
plotRatio("2016GH");
return;
}
TH1D *hresult = new TH1D("hresult", Form("n(gauss(5.28))/n(gauss(5.37)) %s", era.c_str()), 40, 0., 0.4);
hresult->GetXaxis()->SetTitle("BDT > ");
TH1D *hbdtcut = new TH1D("hbdtcut", Form("n(gauss(5.28))/n(gauss(5.37)) %s", era.c_str()), 40, 0., 0.4);
hbdtcut->SetMarkerColor(kBlue);
invertedMuonID(era, 0.15, hresult);
invertedMuonID(era, 0.20, hresult);
invertedMuonID(era, 0.25, hresult);
invertedMuonID(era, 0.30, hresult);
invertedMuonID(era, -99., hbdtcut);
c0->Clear();
double ymax(50.);
if (hresult->GetMaximum() < 5.) ymax = 10.;
if (hresult->GetMaximum() < 0.5) ymax = 1.0;
hresult->SetMinimum(-ymax);
hresult->SetMaximum(ymax);
hresult->Draw();
hbdtcut->Draw("same");
pl->DrawLine(0., 0., 0.4, 0.);
c0->SaveAs(Form("invertedMuonID-%s-result.pdf", era.c_str()));
}
示例6: DrawPileupCorr
bool DrawPileupCorr(Str jetAlgo) {
JetCalibrationTool *theJES = new JetCalibrationTool(jetAlgo,_jesFile,false);
bool residual = theJES->JetAreaJES();
TH1D *temp = new TH1D("","",100,-5,5);
temp->SetXTitle("Jet #eta"); temp->SetYTitle("Jet offset at "+GetConstScale(jetAlgo)+"-scale [GeV]");
if (residual) temp->SetYTitle("Residual jet offset at "+GetConstScale(jetAlgo)+"-scale [GeV]");
temp->SetMinimum(-20); temp->SetMaximum(15); temp->SetStats(0);
if ( residual && theJES->ResidualOffsetCorr_Description() == "" ) return false;
Can->Clear(); temp->Draw();
for (int npv=0;npv<9;++npv) {
double NPV=(npv%3)*10, mu=(npv/3)*10;
if (NPV==0) NPV=1;
Graph *g = new Graph();
FormatGraph(g,npv);
for (int ieta=-50;ieta<50;++ieta) {
double eta=0.05 + 0.1*ieta;
double O = residual ? theJES->GetResidualOffset(eta,mu,NPV)/1000 :
theJES->GetOffset(eta,mu,NPV)/1000; // convert to GeV
g->SetPoint(g->GetN(),eta,O);
}
if (npv<4) DrawLabel(Form("N_{PV} = %.0f, #LT#mu#GT = %.0f",NPV,mu),0.18,0.35-0.04*npv,npv);
else DrawLabel(Form("N_{PV} = %.0f, #LT#mu#GT = %.0f",NPV,mu),0.48,0.35-0.04*(npv-4),npv);
g->Draw("P");
}
tex->SetNDC(); tex->SetTextAlign(12);
if (residual)
tex->DrawLatex(0.18,0.975,theJES->ResidualOffsetCorr_Description());
else
tex->DrawLatex(0.18,0.975,theJES->OffsetCorr_Description());
tex->DrawLatex(0.18,0.9,GetJetDesc(jetAlgo));
return true;
}
示例7: drawDum
void drawDum(float min, float max, double drawXLabel){
TH1D *hdum = new TH1D("h","",10,120,220);
hdum->SetMaximum(max);
hdum->SetStats(0);
if(drawXLabel) hdum->SetXTitle("(p_{T}^{j1}-p_{T}^{j2})/(p_{T}^{j1}+p_{T}^{j2})");
hdum->GetXaxis()->SetLabelSize(20);
hdum->GetXaxis()->SetLabelFont(43);
hdum->GetXaxis()->SetTitleSize(22);
hdum->GetXaxis()->SetTitleFont(43);
hdum->GetXaxis()->SetTitleOffset(1.5);
hdum->GetXaxis()->CenterTitle();
hdum->GetXaxis()->SetNdivisions(905,true);
hdum->SetYTitle("Event Fraction");
hdum->GetYaxis()->SetLabelSize(20);
hdum->GetYaxis()->SetLabelFont(43);
hdum->GetYaxis()->SetTitleSize(20);
hdum->GetYaxis()->SetTitleFont(43);
hdum->GetYaxis()->SetTitleOffset(2.5);
hdum->GetYaxis()->CenterTitle();
hdum->SetAxisRange(0,0.2,"Y");
hdum->Draw("");
}
示例8: plotFrame
//--------------------------------------------------------------------------------------------------
void plotFrame(Double_t xMin, Double_t xMax, Double_t maxRate)
{
// Make a good frame
TH1D * h = new TH1D("tmp","Time Series of Rates",1,xMin,xMax);
MitRootStyle::InitHistWide(h,"","",kBlack);
h->SetTitle("; Epoch Time [sec]; SmartCache transfer rate [MB/sec]");
h->SetMaximum(maxRate*1.2);
h->Draw("hist");
}
示例9: plotRatioRaw
// ----------------------------------------------------------------------
void plotRatioRaw(string era = "2016BF") {
gStyle->SetOptStat(0);
if (era == "all") {
plotRatioRaw("2011");
plotRatioRaw("2012");
plotRatioRaw("2016BF");
plotRatioRaw("2016GH");
return;
}
double eps(0.00001);
TH1D *hresult = new TH1D("hresult", Form("%s", era.c_str()), 80, 0., 0.4);
hresult->GetXaxis()->SetTitle("BDT > ");
hresult->SetMarkerStyle(24); hresult->SetLineColor(kRed+2); hresult->SetMarkerColor(kRed+2);
TH1D *hsresult = new TH1D("hsresult", Form("%s", era.c_str()), 80, 0.+eps, 0.4+eps);
hsresult->SetMarkerStyle(25); hsresult->SetLineColor(kBlue); hsresult->SetMarkerColor(kBlue);
TH1D *hbdtcut = new TH1D("hbdtcut", Form("%s", era.c_str()), 80, 0., 0.4);
hbdtcut->SetMarkerColor(kRed+2); hbdtcut->SetMarkerStyle(20);
TH1D *hsbdtcut = new TH1D("hsbdtcut", Form("%s", era.c_str()), 80, 0.+eps, 0.4+eps);
hsbdtcut->SetMarkerColor(kBlue); hsbdtcut->SetMarkerStyle(21);
invertedMuonIDRaw(era, 0.15, hresult, hsresult);
invertedMuonIDRaw(era, 0.20, hresult, hsresult);
invertedMuonIDRaw(era, 0.25, hresult, hsresult);
invertedMuonIDRaw(era, 0.30, hresult, hsresult);
invertedMuonIDRaw(era, -99., hbdtcut, hsbdtcut);
c0->Clear();
double ymax(50.);
double smax = hresult->GetMaximum();
double dmax = hsresult->GetMaximum();
double themax = (smax>dmax? smax: dmax);
if (themax < 50.) ymax = 50.;
if (themax < 20.) ymax = 30.;
if (themax < 5.) ymax = 10.;
if (themax < 0.5) ymax = 1.0;
hresult->SetMinimum(-ymax);
hresult->SetMaximum(ymax);
hresult->Draw();
hsresult->Draw("same");
hbdtcut->Draw("same");
hsbdtcut->Draw("same");
pl->DrawLine(0., 0., 0.4, 0.);
TLegend *tle = new TLegend(0.25, 0.2, 0.50, 0.5);
tle->SetFillStyle(0);
tle->SetBorderSize(0);
tle->SetHeader(era.c_str());
tle->AddEntry(hresult, "yield at B0", "p");
tle->AddEntry(hsresult, "yield at Bs", "p");
tle->Draw();
c0->SaveAs(Form("invertedMuonIDRaw-%s-result.pdf", era.c_str()));
}
示例10: plotFrame
//--------------------------------------------------------------------------------------------------
void plotFrame(Double_t xMin, Double_t xMax, Double_t max)
{
// Make a good frame
TH1D * h = new TH1D("tmp","Time Series of Failures",1,xMin,xMax);
MitStyle::InitHistWide(h,"","",kBlack);
h->SetTitle("; Epoch Time [sec]; SmartCache Failures / 90 sec");
h->SetMaximum(max*1.2);
h->Draw("hist");
}
示例11: plotTurnOn
void plotTurnOn(TTree* inttree, TString triggerpass, TString variable, TString varname, TString varlatex)
{
if(varname=="vtxprob")
{
BIN_MIN = 0;
BIN_MAX = 1;
}
else if(varname=="ffls3d")
{
BIN_MIN = 0;
BIN_MAX = 50;
}
else if(varname=="cosalpha")
{
BIN_MIN = 0.9;
BIN_MAX = 1;
}
TH1D* hAll = new TH1D(Form("h%s_%s_All",triggerpass.Data(),varname.Data()),Form(";%s;Probability",varlatex.Data()),BIN_NUM,BIN_MIN,BIN_MAX);
inttree->Project(Form("h%s_%s_All",triggerpass.Data(),varname.Data()),variable,prefilter);
TH1D* hMBseed = new TH1D(Form("h%s_%s_MBseed",triggerpass.Data(),varname.Data()),Form(";%s;Probability",varlatex.Data()),BIN_NUM,BIN_MIN,BIN_MAX);
inttree->Project(Form("h%s_%s_MBseed",triggerpass.Data(),varname.Data()),variable,Form("%s&&%s",prefilter.Data(),triggerpass.Data()));
//cout<<hAll->Integral()<<endl;
hAll->Scale(1./hAll->Integral());
hMBseed->Scale(1./hMBseed->Integral());
hAll->SetStats(0);
hMBseed->SetStats(0);
hAll->SetMaximum(hMBseed->GetMaximum()*1.3);
hAll->SetLineWidth(2);
hAll->SetLineColor(kBlue-7);
hAll->SetFillColor(kBlue-7);
hAll->SetFillStyle(3001);
hMBseed->SetLineWidth(2);
hMBseed->SetLineColor(kRed);
hMBseed->SetFillColor(kRed);
hMBseed->SetFillStyle(3004);
TCanvas* c = new TCanvas(Form("c%s_%s",triggerpass.Data(),varname.Data()),"",500,500);
hAll->Draw();
hMBseed->Draw("same");
TLatex* tex = new TLatex(0.18,0.96,triggerpass);
tex->SetNDC();
tex->SetTextFont(42);
tex->SetTextSize(0.04);
tex->Draw();
TLegend* leg = new TLegend(0.60,0.82,0.92,0.93);
leg->SetFillStyle(0);
leg->SetBorderSize(0);
leg->AddEntry(hAll,"all","f");
leg->AddEntry(hMBseed,"pass trigger","f");
leg->Draw();
c->SaveAs(Form("triggerturnonPlots/pthat%.0f/c%s_%s.pdf",pthat,triggerpass.Data(),varname.Data()));
}
示例12: plotRatio2Comb
// ----------------------------------------------------------------------
void plotRatio2Comb(string era = "2016BF") {
gStyle->SetOptStat(0);
if (era == "all") {
plotRatio2Comb("2011");
plotRatio2Comb("2012");
plotRatio2Comb("2016BF");
plotRatio2Comb("2016GH");
return;
}
double eps(0.00001);
TH1D *hresultBd = new TH1D("hresultBd", era.c_str(), 80, 0., 0.4);
TH1D *hresultBs = new TH1D("hresultBs", era.c_str(), 80, 0.+eps, 0.4+eps);
hresultBd->GetYaxis()->SetTitle("a.u.");
hresultBd->GetXaxis()->SetTitle("BDT > "); hresultBd->SetMarkerStyle(24); hresultBd->SetLineColor(kRed+2); hresultBd->SetMarkerColor(kRed+2);
hresultBs->GetXaxis()->SetTitle("BDT > "); hresultBs->SetMarkerStyle(25); hresultBs->SetLineColor(kBlue); hresultBs->SetMarkerColor(kBlue);
TH1D *hbdtcutBd = new TH1D("hbdtcutbd", "", 80, 0., 0.4);
TH1D *hbdtcutBs = new TH1D("hbdtcutBs", "", 80, 0.+eps, 0.4+eps);
hbdtcutBs->SetMarkerColor(kBlue); hbdtcutBd->SetMarkerStyle(24); hbdtcutBs->SetLineColor(kBlue);
hbdtcutBd->SetMarkerColor(kRed+2); hbdtcutBd->SetMarkerStyle(25); hbdtcutBd->SetLineColor(kRed+2);
invertedMuonID2Comb(era, 0.15, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.20, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.25, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.30, hresultBd, hresultBs);
invertedMuonID2Comb(era, -99., hbdtcutBd, hbdtcutBs);
c0->Clear();
double ymax(5.);
hresultBd->SetMinimum(-ymax);
hresultBd->SetMaximum(ymax);
hresultBd->Draw();
hbdtcutBd->Draw("same");
pl->DrawLine(0., 0., 0.4, 0.);
tl->SetTextSize(0.035);
tl->SetTextColor(kRed+2); tl->DrawLatexNDC(0.2, 0.85, "n(gauss(5.28))/combinatorial");
tl->SetTextColor(kBlue); tl->DrawLatexNDC(0.2, 0.81, "n(gauss(5.37))/combinatorial");
tl->SetTextColor(kBlack);
hresultBs->Draw("same");
hbdtcutBs->Draw("same");
c0->SaveAs(Form("invertedMuonID2Comb-%s-result.pdf", era.c_str()));
}
示例13: PlotRatio1D
//========================
void PlotRatio1D(Int_t iEff, Int_t iVar){
Char_t name[100];
sprintf(name, "c1_%sEff_%s", effName[iEff], varName[iVar]);
TCanvas *c1 = new TCanvas(name, name);
sprintf(name, "hRatio_%sEff_%s", effName[iEff], varName[iVar]);
TH1D *hRatio = (TH1D *) hEffTP[iEff][iVar]->Clone(name);
hRatio->Divide(hEffMCTruth1D[iEff][iVar]);
hRatio->SetMarkerStyle(20);
hRatio->SetMinimum(0.);
hRatio->SetMaximum(1.5);
hRatio->Draw("p");
sprintf(name, "Figures/ratio_%sEff_%s.pdf", effName[iEff], varName[iVar]);
c1->Print(name);
}
示例14: GetDummyHist
TH1D* GetDummyHist(Float_t xmax, Float_t min, Float_t max,Char_t *xttl,Char_t *yttl) {
TH1D *dum;
dum = new TH1D("dum","",100,0.0,xmax);
//dum = new TH1D("dum","",100,0.2,xmax);
dum->SetMinimum(min);
dum->SetMaximum(max);
dum->SetStats(0);
dum->GetYaxis()->SetTitle(yttl);
dum->GetYaxis()->CenterTitle();
dum->GetXaxis()->SetTitle(xttl);
dum->GetXaxis()->CenterTitle();
return dum;
}
示例15: CompareBranch
void CompareBranch(string MCfilename, string CDfilename, string MCbranchname, string CDbranchname, string xtitle, string unit, string plotname, string MCcuts, string CDcuts, string MCweight, string CDweight, double xlow, double xup, int nbins)
{
TH1D* MChist = MakeBranchPlot(MCfilename,MCbranchname,MCcuts,MCweight,xlow,xup,nbins);
TH1D* CDhist = MakeBranchPlot(CDfilename,CDbranchname,CDcuts,CDweight,xlow,xup,nbins);
MChist->Scale(1./MChist->Integral());
CDhist->Scale(1./CDhist->Integral());
MChist->SetDrawOption("B");
MChist->SetFillColor(kOrange);
MChist->SetLineColor(kOrange);
MChist->SetMaximum(MChist->GetMaximum()*1.3);
MChist->SetMinimum(0);
// Draw everything
plotmaker plotter(MChist);
plotter.SetTitle(xtitle, unit);
TCanvas* plot = plotter.Draw();
CDhist->Draw("sameE1");
plot->SaveAs((plotname+".pdf").c_str());
}