ROOT Rebin http://www-jlc.kek.jp/subg/offl/lib/docs/rootstarter/node20.html 1次元datを読み込む root [0] #include root [1] ifstream ifs("BBBB.dat"); root [2] TH1F * h1 = new TH1F("h1","h1",10000,-5000.,5000.); root [3] double x; root [4] while(ifs>>x) h1->Fill(x); root [5] ifs.close() root [6] h1->Draw() 簡略版 root [0] #include root [1] ifstream ifs("CCC.dat"); root [2] TH1F * h1 = new TH1F("h1","h1",10000,-5000.,5000.); root [3] double x;while(ifs>>x) h1->Fill(x);ifs.close();h1->Draw(); 二次元版 root [0] #include root [1] ifstream ifs("CCC.dat"); root [2] TH2F* h2 = new TH2F("h2", "h2", 5000, 0., 5000., 5000., 0., 5000.); root [3] double x,y;while(ifs>>x>>y) h2->Fill(x,y);ifs.close();h2->Draw("colz"); 関数重ね書き TF1 f6("f6","(-x+sqrt(x*x+4*x*511))/2",0,5000) f6->Draw("same"); TF1 f5("f5","-x+3900",0,5000) f5->Draw("same"); TF1 f6("f6","(-x+sqrt(x*x+4*x*511))/2",0,5000);f6->Draw("same"); TF1 f5("f5","-x+3892",0,5000);f5->Draw("same"); タイトル h1->SetTitle("kE_quad + kE_GRAPE") 統計ボックスを消す h2->SetStats(0) 縦軸を非表示 waveformS1->GetYaxis()->SetNdivisions(0) 戻す waveformS1->GetYaxis()->SetNdivisions(510) Waveform用 TCanvas *c2 = new TCanvas("c2", "c2",1500,500);gPad->SetRightMargin(0.03);gPad->SetLeftMargin(0.03); waveformS1->SetStats(0);waveformS1->Draw(); y軸の範囲を指定 waveformS1->GetYaxis()->SetRangeUser(-50,300); キャンバスサイズvs保存画像サイズ 700*700で生成したら698*673で画像出力された 702*727でやってみたら700*700になった TCanvas *c2 = new TCanvas("c2", "c2",702,727); 余白の指定 gPad->SetMargin(0.1,0.1,0.1,0.1); * キャンバスサイズに対する割合ではなく内側(画像として保存される部分)に対する割合になる 画像の保存 c2->SaveAs("outimg/Run063c0m2_maxEXY8.gif") c2->SaveAs("outimg/Run063c0m2_maxEXY8.pdf") 2次元Histの1次元への射影 maxEXY7->ProjectionY()->Draw() ピークサーチ https://gist.github.com/pn11/49c5b892af86dc8ec79b root [70] TSpectrum *s = new TSpectrum(1); root [71] s->Search(maxEXY1_py, 2, "new"); Warning in : Peak buffer full root [72] cout<<*(s->GetPositionX())<<"\n"; -15.25 root [73] maxEXY1->ProjectionY()->Fit("gaus","","",*(s->GetPositionX())-2,*(s->GetPositionX())+2) FCN=4.49246 FROM MIGRAD STATUS=CONVERGED 67 CALLS 68 TOTAL EDM=9.73165e-09 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 Constant 1.70865e+03 2.36475e+01 2.09189e-02 2.36391e-06 2 Mean -1.54266e+01 1.26225e-02 1.42985e-05 6.00884e-03 3 Sigma 1.05567e+00 1.13984e-02 3.34367e-06 -1.69134e-02 (class TFitResultPtr)26762640 TH2F* h2 = (TH2F*)gDirectory->Get("maxEXY1"); h2->ProjectionX()->Draw(); TSpectrum *s = new TSpectrum(1); s->Search(h2->ProjectionX(), 1, "new"); h2->ProjectionX()->Fit("gaus","","",*(s->GetPositionX())-2,*(s->GetPositionX())+2); TH2F* h2 = (TH2F*)gDirectory->Get("maxEXY1"); h2->ProjectionX()->Draw();TSpectrum *s = new TSpectrum(1);s->Search(h2->ProjectionX(), 1, "new");h2->ProjectionX()->Draw();h2->ProjectionX()->Fit("gaus","","",*(s->GetPositionX())-2,*(s->GetPositionX())+2); h2->ProjectionY()->Draw();TSpectrum *s = new TSpectrum(1);s->Search(h2->ProjectionY(), 1, "new");h2->ProjectionY()->Draw();h2->ProjectionY()->Fit("gaus","","",*(s->GetPositionX())-2,*(s->GetPositionX())+2); h2->ProjectionX()->Draw();TSpectrum *s = new TSpectrum(1);s->Search(h2->ProjectionX(), 1, "new");h2->ProjectionX()->Draw();TF1 *f1 = new TF1("f1","gaus",*(s->GetPositionX())-2,*(s->GetPositionX())+2);h2->ProjectionX()->Fit("f1","R");cout<GetParameter(1)<<"\n"; char hname[50];sprintf(hname,"maxEXY0"); TH2F* h2 = (TH2F*)gDirectory->Get(hname);h2->ProjectionX()->Draw();TSpectrum *s = new TSpectrum(1);s->Search(h2->ProjectionX(), 1, "new");h2->ProjectionX()->Draw();TF1 *f1 = new TF1("f1","gaus",*(s->GetPositionX())-2,*(s->GetPositionX())+2);h2->ProjectionX()->Fit("f1","R");cout<GetParameter(0)<<"\t"<GetParameter(1)<<"\t"<GetParameter(2)<<"\n"; 結果をファイルに書く #include ofstream ofs("outimg/Run021c0m2.txt",std::ios::app); ofs<GetParameter(0)<<"\t"<GetParameter(1)<<"\t"<GetParameter(2)<<"\n";ofs.close(); 最終版(二次元ヒストを1次元にしてガウスフィットしてパラメータを外部ファイルに出力) #include char fitxt[50];sprintf(fitxt,"outimg/Run021c0m2.txt");int rebin=1;int range=2; char hname[50];sprintf(hname,"maxEXY0"); TH2F* h2 = (TH2F*)gDirectory->Get(hname);TH1D* h3 = (TH1D*)h2->ProjectionX();h3->Draw();h3->Rebin(rebin);TSpectrum *s = new TSpectrum(1);s->Search(h3, 1, "new");h3->Draw();TF1 *f1 = new TF1("f1","gaus",*(s->GetPositionX())-range,*(s->GetPositionX())+range);h3->Fit("f1","R");ofstream ofs(fitxt,std::ios::app);ofs<GetParameter(0)/rebin<<"\t"<GetParameter(1)<<"\t"<GetParameter(2)<<"\n";ofs.close();int rebin=1; TH2F* h2 = (TH2F*)gDirectory->Get(hname);TH1D* h3 = (TH1D*)h2->ProjectionY();h3->Draw();h3->Rebin(rebin);TSpectrum *s = new TSpectrum(1);s->Search(h3, 1, "new");h3->Draw();TF1 *f1 = new TF1("f1","gaus",*(s->GetPositionX())-range,*(s->GetPositionX())+range);h3->Fit("f1","R");ofstream ofs(fitxt,std::ios::app);ofs<GetParameter(0)/rebin<<"\t"<GetParameter(1)<<"\t"<GetParameter(2)<<"\n";ofs.close();int rebin=1; projectionの範囲を指定する int f=maxEXY1.GetXaxis()->FindBin(-40.0) int l=maxEXY1.GetXaxis()->FindBin(0.0) maxEXY1->ProjectionY("",f,l)->Draw() よって TH2F* h2 = (TH2F*)gDirectory->Get(hname);TH1D* h3 = (TH1D*)h2->ProjectionY("",f,l);h3->Draw();h3->Rebin(rebin);TSpectrum *s = new TSpectrum(1);s->Search(h3, 1, "new");h3->Draw();TF1 *f1 = new TF1("f1","gaus",*(s->GetPositionX())-range,*(s->GetPositionX())+range);h3->Fit("f1","R");ofstream ofs(fitxt,std::ios::app);ofs<GetParameter(0)/rebin<<"\t"<GetParameter(1)<<"\t"<GetParameter(2)<<"\n";ofs.close();int rebin=1; これよりも、 maxEXY2->SetAxisRange(-40,0) としてたほうが楽かもしれない カラーパレットの大きさを変える TPaletteAxis *pal= (TPaletteAxis*)maxEXZ3->GetListOfFunctions()->FindObject("palette"); pal->SetY2NDC(0.7); maxEXZ3->SetTickLength(0,"Z") デフォルト値(と思われる値) pal->SetY2NDC(0.9); pal->SetY1NDC(0.1); pal->SetX1NDC(0.905); pal->SetX2NDC(0.95); Run029のmaxEXZxの画像保存手順 TCanvas *c2 = new TCanvas("c2", "c2",1002,1152); maxEXZ3->SetStats(0); maxEXZ3->Draw("colz"); TPaletteAxis *pal= (TPaletteAxis*)maxEXZ3->GetListOfFunctions()->FindObject("palette"); pal->SetX2NDC(0.93); maxEXZ3->SetTickLength(0,"Z"); c2->SaveAs("outimg/Run029c0m2_maxEXZ3.gif"); c2->SaveAs("outimg/Run029c0m2_maxEXZ3.pdf"); 簡略版 TH2F* h2 = (TH2F*)gDirectory->Get("maxEXZ1"); h2->SetStats(0);h2->Draw("colz");TPaletteAxis *pal= (TPaletteAxis*)h2->GetListOfFunctions()->FindObject("palette");pal->SetX2NDC(0.93);h2->SetTickLength(0,"Z"); c2->SaveAs("outimg/Run029c0m2_maxEXZ3.gif"); c2->SaveAs("outimg/Run029c0m2_maxEXZ3.pdf"); 9個の波形を書くやつ root [0] TGraph *gr5 = new TGraph("ABC.dat","%lg %lg") root [1] TCanvas *cv = new TCanvas("cv","CV",700,700); root [2] cv->Divide(3,3); root [3] cv->cd(1); root [4] gr5->Draw() root [5] cv->cd(2); root [6] gr5->Draw() root [7] gr5->GetXaxis()->SetRangeUser(200,300); root [8] gr5->Draw() root [9] gr5->GetXaxis()->SetRangeUser(200,400); root [10] gr5->Draw() root [11] gr5->GetYaxis()->SetRangeUser(-0.05,0.15); root [12] gr5->Draw() root [13] cv->cd(1); root [14] gr5->Draw() root [15] gr5->GetXaxis()->SetRangeUser(0,200); root [16] gr5->Draw() root [17] cv->cd(3); root [18] gr5->GetXaxis()->SetRangeUser(400,600); root [19] gr5->Draw() タイトルを消す root [20] gr5->SetTitle(0) どういうわけかpdfで保存したら9枚全部同じ絵になる。 gifなら問題なし。なぜか? チョンさん曰く、同じ名前のグラフだとこうなるらしい。 こうすると同じにならずにできた。 root [0] TCanvas *cv = new TCanvas("cv","CV",700,700); root [1] TGraph *gr5 = new TGraph("ABC.dat","%lg %lg") root [2] TGraph *gr7 = new TGraph("ABC.dat","%lg %lg") root [3] cv->Divide(3,3); root [4] cv->cd(1);gr5->GetXaxis()->SetRangeUser(200,400);gr5->Draw() root [5] cv->cd(2);gr7->GetXaxis()->SetRangeUser(600,800); gr7->Draw() root [6] cv->Print("aaaaaaaaaa91.pdf") Info in : pdf file aaaaaaaaaa91.pdf has been created TGraph *gr8 = (TGraph*)gr5 とやって複製する作戦はポインタが同じになるから無意味 使えるかも↓https://root.cern.ch/doc/master/classTH1.html TH1F *hnew = (TH1F*)h1->Clone("hnew"); これで行けた!! root [3] TCanvas *cv = new TCanvas("cv","cv",700,700); root [4] TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1"); root [5] TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2"); root [6] cv->Divide(3,3); root [7] cv->cd(1);wfS1v1->GetXaxis()->SetRangeUser(200,400);wfS1v1->Draw() root [8] cv->cd(2);wfS1v2->GetXaxis()->SetRangeUser(600,800);wfS1v2->Draw() root [9] cv->Print("aaaaaaaaaa91.pdf") Info in : pdf file aaaaaaaaaa91.pdf has been created TCanvas *cv = new TCanvas("cv","cv",700,700); cv->Divide(3,3,0,0); TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1");TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2");TH1F *wfS1v3 = (TH1F*)waveformS1->Clone("wfS1v3");TH1F *wfS1v4 = (TH1F*)waveformS1->Clone("wfS1v4");TH1F *wfS1v5 = (TH1F*)waveformS1->Clone("wfS1v5");TH1F *wfS1v6 = (TH1F*)waveformS1->Clone("wfS1v6");TH1F *wfS1v7 = (TH1F*)waveformS1->Clone("wfS1v7");TH1F *wfS1v8 = (TH1F*)waveformS1->Clone("wfS1v8");TH1F *wfS1v9 = (TH1F*)waveformS1->Clone("wfS1v9"); int ymin=-20;int ymax=300; int mnum=3; int hnum=3; //mnumは9*9の中の位置番号、hnumは結晶セグメント番号(h0~h40) //char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname = (TH1F*)gDirectory->Get(wfhn); //TH1F* hname = (TH1F*)gDirectory->Get("wfS1v3"); //cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->SetTitle(0);hname->SetStats(0);hname->Draw(); //cv->cd(3);hname->GetXaxis()->SetRangeUser(600,800);hname->SetTitle(0);hname->SetStats(0);hname->Draw(); char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->SetStats(0);hname->Draw(); グラフver TCanvas *cv = new TCanvas("cv","cv",700,700); TGraph *gr5 = new TGraph("ABC.dat","%lg %lg"); TGraph *wfS1v[10]; for(int i=0; i<10; i++)wfS1v[i]=(TGraph*)gr5->Clone(); //TGraph *wfS1v1=(TGraph*)gr5->Clone("wfS1v1");TGraph *wfS1v2=(TGraph*)gr5->Clone("wfS1v2");TGraph *wfS1v3=(TGraph*)gr5->Clone("wfS1v3");TGraph *wfS1v4=(TGraph*)gr5->Clone("wfS1v4");TGraph *wfS1v5=(TGraph*)gr5->Clone("wfS1v5");TGraph *wfS1v6=(TGraph*)gr5->Clone("wfS1v6");TGraph *wfS1v7=(TGraph*)gr5->Clone("wfS1v7");TGraph *wfS1v8=(TGraph*)gr5->Clone("wfS1v8");TGraph *wfS1v9=(TGraph*)gr5->Clone("wfS1v9"); cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw(); root [0] TCanvas *cv = new TCanvas("cv","cv",700,700); root [1] TGraph *gr5 = new TGraph("ABC.dat","%lg %lg"); root [2] TGraph *wfS1v[10]; root [3] for(int i=0; i<10; i++)wfS1v[i]=(TGraph*)gr5->Clone(); root [4] TGraph* hname=&(*wfS1v[8]) root [5] hname->Draw() float ymin=-1.2;float ymax=2.5; root [0] TCanvas *cv = new TCanvas("cv","cv",700,700); root [1] TGraph *gr5 = new TGraph("ABC.dat","%lg %lg"); root [2] TGraph *wfS1v[10]; root [3] for(int i=0; i<10; i++)wfS1v[i]=(TGraph*)gr5->Clone(); root [4] cv->Divide(3,3); root [5] int mnum=1; int hnum=1; root [6] TGraph* hname=&(*wfS1v[mnum]) root [7] float ymin=-1.2;float ymax=2.5; root [8] cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw(); root [9] int mnum=2; int hnum=2; root [10] cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw(); 完成版(グラフver) TCanvas *cv = new TCanvas("cv","cv",700,700);cv->Divide(3,3,0,0); TGraph *gr5 = new TGraph("ABC.dat","%lg %lg"); TGraph *wfS1v[10];for(int i=0; i<10; i++){wfS1v[i]=(TGraph*)gr5->Clone();} float ymin=-1.2;float ymax=2.5; int mnum=1; int hnum=1; //TGraph* hname=&(*wfS1v[mnum]);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw(); TGraph* hname=&(*wfS1v[mnum]);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->SetLineColor(2);hname->Draw(); cv->Print("aaaaaaaaaa91-a.pdf") 同じパッドに異なるスケールの2つのヒストグラムを重ねる https://root.cern.ch/doc/v608/classTHistPainter.html TCanvas *cv = new TCanvas("cv","cv",700,700);cv->Divide(3,3,0,0); TGraph *gr5 = new TGraph("~/dltools/yamamo-base/yamamo-base/ABC.dat","%lg %lg"); TGraph *wfS1v[10];for(int i=0; i<10; i++){wfS1v[i]=(TGraph*)gr5->Clone();} float ymin=-1.2;float ymax=2.5; int mnum=1; int hnum=1; TGraph* hname=&(*wfS1v[mnum]);hname->SetLineColor(2);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw("AL"); TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1");TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2");TH1F *wfS1v3 = (TH1F*)waveformS1->Clone("wfS1v3");TH1F *wfS1v4 = (TH1F*)waveformS1->Clone("wfS1v4");TH1F *wfS1v5 = (TH1F*)waveformS1->Clone("wfS1v5");TH1F *wfS1v6 = (TH1F*)waveformS1->Clone("wfS1v6");TH1F *wfS1v7 = (TH1F*)waveformS1->Clone("wfS1v7");TH1F *wfS1v8 = (TH1F*)waveformS1->Clone("wfS1v8");TH1F *wfS1v9 = (TH1F*)waveformS1->Clone("wfS1v9"); char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same"); //char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);hname2->Scale(0.004);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same"); //↑スケーリングを入れてる(あかんやつ) //色指定してdrawしたときに一発で赤くならない問題はhname->Draw("AL");で解決 完成版 TCanvas *cv = new TCanvas("cv","cv",700,700);cv->Divide(3,3,0,0);waveformS1->Scale(0.004); TGraph *gr5 = new TGraph("~/dltools/yamamo-base/yamamo-base/ABC.dat","%lg %lg"); TGraph *wfS1v[10];for(int i=0; i<10; i++){wfS1v[i]=(TGraph*)gr5->Clone();} TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1");TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2");TH1F *wfS1v3 = (TH1F*)waveformS1->Clone("wfS1v3");TH1F *wfS1v4 = (TH1F*)waveformS1->Clone("wfS1v4");TH1F *wfS1v5 = (TH1F*)waveformS1->Clone("wfS1v5");TH1F *wfS1v6 = (TH1F*)waveformS1->Clone("wfS1v6");TH1F *wfS1v7 = (TH1F*)waveformS1->Clone("wfS1v7");TH1F *wfS1v8 = (TH1F*)waveformS1->Clone("wfS1v8");TH1F *wfS1v9 = (TH1F*)waveformS1->Clone("wfS1v9"); float ymin=-1.2;float ymax=2.5; //int mnum=1; int hnum=1; //TGraph* hname=&(*wfS1v[mnum]);hname->SetLineColor(2);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw("AL");char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same"); int hnuma[10];hnuma[1]=1;hnuma[2]=2;hnuma[3]=3;hnuma[4]=7;hnuma[5]=8;hnuma[6]=10;hnuma[7]=14;hnuma[8]=15;hnuma[9]=16; for(int i=1;i<10;i++){int mnum=i;int hnum=hnuma[i];TGraph* hname=&(*wfS1v[mnum]);hname->SetLineColor(2);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw("AL");char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same");} 一行まとめver TCanvas *cv = new TCanvas("cv","cv",700,700);cv->Divide(3,3,0,0);waveformS1->Scale(0.004);TGraph *gr5 = new TGraph("~/dltools/yamamo-base/yamamo-base/ABC.dat","%lg %lg");TGraph *wfS1v[10];for(int i=0; i<10; i++){wfS1v[i]=(TGraph*)gr5->Clone();}TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1");TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2");TH1F *wfS1v3 = (TH1F*)waveformS1->Clone("wfS1v3");TH1F *wfS1v4 = (TH1F*)waveformS1->Clone("wfS1v4");TH1F *wfS1v5 = (TH1F*)waveformS1->Clone("wfS1v5");TH1F *wfS1v6 = (TH1F*)waveformS1->Clone("wfS1v6");TH1F *wfS1v7 = (TH1F*)waveformS1->Clone("wfS1v7");TH1F *wfS1v8 = (TH1F*)waveformS1->Clone("wfS1v8");TH1F *wfS1v9 = (TH1F*)waveformS1->Clone("wfS1v9");float ymin=-1.2;float ymax=2.5;int hnuma[10];hnuma[1]=1;hnuma[2]=2;hnuma[3]=3;hnuma[4]=7;hnuma[5]=8;hnuma[6]=10;hnuma[7]=14;hnuma[8]=15;hnuma[9]=16;for(int i=1;i<10;i++){int mnum=i;int hnum=hnuma[i];TGraph* hname=&(*wfS1v[mnum]);hname->SetLineColor(2);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw("AL");char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same");} TCanvas *cv = new TCanvas("cv","cv",700,700);cv->Divide(3,3,0,0);waveformS1->Scale(0.0040);TGraph *gr5 = new TGraph("~/dltools/yamamo-base/yamamo-base/ABC.dat","%lg %lg");TGraph *wfS1v[10];for(int i=0; i<10; i++){wfS1v[i]=(TGraph*)gr5->Clone();}TH1F *wfS1v1 = (TH1F*)waveformS1->Clone("wfS1v1");TH1F *wfS1v2 = (TH1F*)waveformS1->Clone("wfS1v2");TH1F *wfS1v3 = (TH1F*)waveformS1->Clone("wfS1v3");TH1F *wfS1v4 = (TH1F*)waveformS1->Clone("wfS1v4");TH1F *wfS1v5 = (TH1F*)waveformS1->Clone("wfS1v5");TH1F *wfS1v6 = (TH1F*)waveformS1->Clone("wfS1v6");TH1F *wfS1v7 = (TH1F*)waveformS1->Clone("wfS1v7");TH1F *wfS1v8 = (TH1F*)waveformS1->Clone("wfS1v8");TH1F *wfS1v9 = (TH1F*)waveformS1->Clone("wfS1v9");float ymin=-1.2;float ymax=2.5;int hnuma[10];hnuma[1]=1;hnuma[2]=2;hnuma[3]=3;hnuma[4]=7;hnuma[5]=8;hnuma[6]=10;hnuma[7]=14;hnuma[8]=15;hnuma[9]=16;for(int i=1;i<10;i++){int mnum=i;int hnum=hnuma[i];TGraph* hname=&(*wfS1v[mnum]);hname->SetLineColor(2);cv->cd(mnum);hname->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname->GetYaxis()->SetRangeUser(ymin,ymax);hname->SetTitle(0);hname->Draw("AL");char wfhn[50];sprintf(wfhn,"wfS1v%d",mnum);TH1F* hname2=(TH1F*)gDirectory->Get(wfhn);cv->cd(mnum);hname2->GetXaxis()->SetRangeUser(hnum*200,hnum*200+200);hname2->GetYaxis()->SetRangeUser(ymin,ymax);hname2->SetTitle(0);hname2->SetStats(0);hname2->Draw("same");} 一番近かった3点(30