TGraphErrors bestFit(TTree *tree, TString alphaName, TString constTermName){ Double_t alpha, constTerm; alphaName.ReplaceAll("-","_"); constTermName.ReplaceAll("-","_"); tree->SetBranchAddress(alphaName,&alpha); tree->SetBranchAddress(constTermName,&constTerm); //Long64_t nEntries=genTree->GetEntries(); TGraphErrors graph; Int_t iPoint=0; tree->GetEntry(0); graph.SetPoint(0, constTerm, alpha); graph.SetPointError(0,0, 0); iPoint++; graph.Set(iPoint); tree->ResetBranchAddresses(); graph.Draw("A P"); // graph.SetFillColor(kBlue); // graph.SetLineColor(kYellow); // graph.GetXaxis()->SetTitle("Energy [GeV]"); // graph.GetYaxis()->SetTitle("Additional smearing [%]"); return graph; }
TGraphErrors g(TTree *tree, TString alphaName, TString constTermName){ Double_t alpha, constTerm; alphaName.ReplaceAll("-","_"); constTermName.ReplaceAll("-","_"); tree->SetBranchAddress(alphaName,&alpha); tree->SetBranchAddress(constTermName,&constTerm); //Long64_t nEntries=genTree->GetEntries(); TGraphErrors graph; Int_t iPoint=0; tree->GetEntry(0); std::cout << alpha << "\t" << constTerm << std::endl; Double_t alpha2=alpha*alpha; Double_t const2=constTerm*constTerm; for(Double_t energy=20; energy<150; energy+=10){ Double_t addSmearing = (sqrt(alpha2/energy+const2)); graph.SetPoint(iPoint, energy, addSmearing); graph.SetPointError(iPoint,0, 0); iPoint++; } graph.Set(iPoint); tree->ResetBranchAddresses(); graph.Draw("A L"); graph.SetFillColor(kBlue); graph.SetLineColor(kYellow); graph.GetXaxis()->SetTitle("Energy [GeV]"); graph.GetYaxis()->SetTitle("Additional smearing [%]"); return graph; }
TGraphErrors g(TTree *genTree, TString constTermName=""){ Double_t alpha, constTerm; genTree->SetBranchAddress("alpha",&alpha); genTree->SetBranchAddress("constTerm",&constTerm); Long64_t nEntries=genTree->GetEntries(); TH1F h("smearingHist","",10000,0,0.1); TGraphErrors graph; Int_t iPoint=0; for(Double_t energy=20; energy<150; energy+=10){ h.Reset(); for(Long64_t jentry=0; jentry<nEntries; jentry++){ genTree->GetEntry(jentry); h.Fill(sqrt(alpha*alpha/energy+constTerm*constTerm)); } graph.SetPoint(iPoint, energy, h.GetMean()); graph.SetPointError(iPoint,0, h.GetRMS()); iPoint++; } h.SetTitle(constTermName); h.SaveAs("tmp/h-"+constTermName+".root"); graph.Set(iPoint); genTree->ResetBranchAddresses(); graph.Draw("A L3"); graph.SetFillColor(kBlue); graph.SetLineColor(kYellow); graph.GetXaxis()->SetTitle("Energy [GeV]"); graph.GetYaxis()->SetTitle("Additional smearing [%]"); return graph; }
TGraphErrors g(Double_t alpha, Double_t constTerm){ TGraphErrors graph; Int_t iPoint=0; // std::cout << alpha << "\t" << constTerm << std::endl; Double_t alpha2=alpha*alpha; Double_t const2=constTerm*constTerm; for(Double_t energy=20; energy<150; energy+=10){ Double_t addSmearing = (sqrt(alpha2/energy+const2)); graph.SetPoint(iPoint, energy, addSmearing); graph.SetPointError(iPoint,0, 0); iPoint++; } graph.Set(iPoint); graph.Draw("A L"); graph.SetFillColor(kBlue); graph.SetLineColor(kYellow); graph.GetXaxis()->SetTitle("Energy [GeV]"); graph.GetYaxis()->SetTitle("Additional smearing [%]"); return graph; }