#include "./StRoot/StHighptPool/macros/commonmacro/common.h" #include "./StRoot/StHighptPool/macros/commonmacro/histutil.h" #include "./StRoot/StHighptPool/macros/common/Name.cc" void divideSpectra(const char* inName= "links/P01hi.minbias.2000.hist/hianalysis_1000.hist.root", const char* psDir="ps", int cut = 1, const char* outDir="./", const char* more = "west", float extraValue = 0) { cout << "--------------------------" << endl; cout << "in name=" << inName << endl << "ps dir=" << psDir << endl << "cut=" << cut << endl; cout << "--------------------------" << endl; TFile* inRoot; inRoot = new TFile(inName,"READ"); if(!inRoot){ cout << "cannot find the infile" << endl; return; } TH1D* h1[2]; TH1D *h10,*h11; TGraphAsymmErrors* g[2]; TCanvas c1("c1","c1",400,500); float minpt=2,maxpt=6; const int nCharge=1; char* charge[] = { 0,"Plus","Minus"}; const int nBin=1; // different binning float ratioMin=0.2,ratioMax=1.5; float ptMin=2,ptMax=6; char name1[100],name2[100]; int nPair=2; char* namePair[][2]={ {"h1Raw","h1EffCorrected"}, {"h1Corrected","h1EffCorrected"} }; int nx=1,ny=2; gStyle->SetOptStat(0); gStyle->SetTitleBorderSize(0); gStyle->SetPadTickY(1); gStyle->SetPadTickX(1); //--------------------------------------------------- // raw/efficiency corrected c1.Clear(); for(int ib=0; ibSetGridx(); gPad->SetGridy(); setName(name1,namePair[ip][0],ib,charge[ic]); cout << name1 << "\t"; h10=(TH1D*) inRoot->Get(name1); setName(name2,namePair[ip][1],ib,charge[ic]); cout << name2 << endl; h11=(TH1D*) inRoot->Get(name2); //h10->Draw(); // sprintf(title,"%s / %s",name1,name2); //cout << h10->GetBinContent(5) // << "\t" << h11->GetBinContent(5) << endl; h10->Divide(h11); h10->SetTitle(title); h10->Draw("e"); //SetMinMax(h1[0],ratioMin,ratioMax); h10->SetAxisRange(ptMin,ptMax-.00001); h10->SetMinimum(); h10->SetMaximum(1.2); } //ip if(ic==0) sprintf(title,"bin%d.divideSpectra",ib); else sprintf(title,"bin%d.%s.divideSpectra",ib,ic); Print(&c1,psDir,title); } // ic } // ib }