---root---
rootファイルとして保存
hstore("~~~.root")
軸名を付ける
g1->Draw();
g1->GetXaxis()->SetTitle("X-Title");
g1->GetYaxis()->SetTitle("Y-Title");
テキストを挿入
root> TLatex* text = new TLatex(500,2400,"COMMENT") 
// TLatex(x座標、y座標、挿入したいテキスト)
root> text->Draw() 
entriesとかを消す
gStyle->SetOptStat(0)
Draw()
値を表示
yval()
積分値を表示
hh->Integral(0,32)
raw dataをcheck
root[] book(new TAlRawDataExample)
root[] push("~~.ridf")
root[] start()
root[] stop()
root[] ntp->StartViewer()
root[] ntp->Draw("det")
detが何に対応してるかはanaroot/include/segidlist.hhにかいてある
あとは
root[] ntp->Draw("val","det==4")
などとして調べる。
datファイルを読み込んでプロット
{
#include "<"fstream.h">"
  
  const Int_t N=1017;
  float ch[N], count[N];
  
  ifstream data("nai/data137Cs.dat");
  
  int i=0;
  while(data >> ch[i] >> count[i] )
  {cout<< ch[i]<<", "<< count[i] << endl; i++;} 
  
			   
  TCanvas *c1 = new TCanvas("c1","c1",650,450);
  TGraph *g =new TGraph(N,ch,count);
  
  c1->cd();
  g->Draw("AP*");
}
重ねてプロット
{
  TFile *file1 = new TFile("test-rootfiles/CsI252Cf+Ni_Alnasirun109.root","readonly");
  TFile *file2 = new TFile("test-rootfiles/CsI252Cfonlyrun111.root","readonly");
  TH1* h1 = (TH1*)file1->Get("qdcval0");
  TH1* h2 = (TH1*)file2->Get("qdcval0");
  h1->Rebin(8x);
  h2->Rebin(8x);
  h1->Draw();
  h2->SetLineColor(2);
  h2->SetFillColor(2);
  h2->Draw("same");
}
プロットを印刷
c1->Print()
.! lpr c1.ps
2つのrootファイルをくっつける
[ozaki@a01]$ hadd ~~~~.root(新しいの) ~~~~.root ~~~~.root
treeの中身を見る
tree->StartViewer
tree Draw
tree->Draw("y軸:x軸>>hh(~~,~~,~~,~~,~~,~~)","gate条件","colz")
2つプロット (anaroot)
~~~~->Draw()
zone(1,2)
ht(~~~,~~~)
Projection Y (anaroot)
ht(1とか)
pry(~~,~~)
gaussian fit (anaroot)
ht(1とか)
fitg(~~~,~~~)
いろいろ
void peaksumopt(Int_t HV){
  float xmin=0;
  float xmax=0;
  cout << "start fit: HV = " << HV <<"V" << endl;  
  fetch(Form("PMTcheck/opticalpad/rootfiles/withopt_22Na_%dV.root",HV));
  hh->Draw();
  c1->Update();
  cout << "xmin: , xmax: " << endl;
  cin >> xmin >> xmax;
  cout << "xmin="<< xmin << ", xmax=" << xmax << endl;
  fit1g(hh,xmin,xmax);
  //  c1->Update();
  // wait(); 
 
  Int_t hbin = hh->GetBinWidth(1);
  Double_t peaksum = (fitfunc->GetParameter(0))*(fitfunc->GetParameter(2))*sqrt(3.14)/hbin;
  Double_t err = sqrt(pow(fitfunc->GetParError(0)/fitfunc->GetParameter(0),2) + pow(fitfunc->GetParError(2)/fitfunc->GetParameter(2),2));
  Double_t peaksumer = peaksum * err;
  cout << hbin <<", " << peaksum <<", " << peaksumer << ", " 
       << fitfunc->GetParameter(1) << endl;
  
  
  ofstream fout("./PMTcheck/opticalpad/result/fitcalc_withopt.txt"
		, std::ios::app);
  cout << HV <<", " << peaksum <<", " << peaksumer  << ", " 
       << fitfunc->GetParameter(1) << endl;
  
  
  if(HV==1140){
    fout << "HV" <<" " << "peaksum" <<" " << "error" << " " << "peakchannel" 
	 << endl;
  }
  
  fout << HV <<" " << peaksum <<" " << peaksumer << " " 
       << fitfunc->GetParameter(1)  << " " 
       << fitfunc->GetParError(1) <<  endl;
  
  fout.close();
  
  
}
void fit1g(TH1* hh, float xmin, float xmax){
  cout << "Starting fit..." << endl;
  Float_t ymin = hh->GetBinContent(hh->FindBin(xmin));
  Float_t ymax = hh->GetBinContent(hh->FindBin(xmax));
  double x[]={xmin, xmax};
  double y[]={ymin, ymax};
  cout << x[0] << ", " << x[1] << endl;
  cout << y[0] << ", " << y[1] << endl;
  TGraph* tg =new TGraph(2,x,y); 
  TF1  *exp = new TF1("exp","exp([0]+[1]*x)");
  tg->Fit("exp","","",xmin-100,xmax+100);
  cout << xmin << ", " << xmax << endl;
  cout << ymin << ", " << ymax << endl;  
  cout << exp->GetParameter(0)<< ", " << exp->GetParameter(1)<< endl;
  
  TF1* gausfunc1 = new TF1("gausfunc1","gaus");
  gausfunc1->SetParameter(1,(xmin+xmax)/2.);
  hh->Fit("gausfunc1","","",xmin,xmax);
  TF1* fitfunc = new TF1("fitfunc","gaus(0)+expo(3)",xmin,xmax);
  fitfunc->SetParameter(0,gausfunc1->GetParameter(0));
  fitfunc->SetParameter(1,gausfunc1->GetParameter(1));
  fitfunc->SetParLimits(1,gausfunc1->GetParameter(1)-100,
			gausfunc1->GetParameter(1)+100);
  fitfunc->SetParameter(2,gausfunc1->GetParameter(2));
  fitfunc->SetParameter(3,exp->GetParameter(0));
  fitfunc->SetParameter(4,exp->GetParameter(1));
  
  hh->Fit("fitfunc","","",xmin,xmax);
}