void fitKStarKAll(int reBinFac){

  gROOT->Reset();
  gROOT->SetStyle("Plain");
  gStyle->SetOptStat(0);
  char  hId[120];
  char  fString[120];
  char  tString[120];
  int eBeamInt = 10;

  //sprintf(fString,"./outData/all.root");
  sprintf(fString,"./allPhi.root");

  TFile *hFile1 = new TFile(fString);
  //TH2D *h2d = (TH2D*)hFile1->Get("hMassKpKmPi0VsKmPi0Cut4SigCL_M");
  //TH2D *h2d = (TH2D*)hFile1->Get("hMassKpKmPi0VsKmPi0Cut4SigCL");
  //TH2D *h2d = (TH2D*)hFile1->Get("hMassKpKmPi0VsKmPi0Cut4Sig");

  
  double mKStarLow = 0.6;
  double mKStarHigh = 2.0;

  //double mKStarLow = 0.801;
  //double mKStarHigh = 0.9699;
  
  //mKStarLow = 0.5;mKStarHigh = 0.8;

  //int binKStarLow  = h2d->GetXaxis()->FindBin(mKStarLow);
  //int binKStarHigh = h2d->GetXaxis()->FindBin(mKStarHigh);

  //TH1D *hKStarK = h2d->ProjectionY("hKStarK",binKStarLow,binKStarHigh);

  //ASDFASDF
  //TH1D *hKStarK = (TH1D*)hFile1->Get("hKStarMinus_KPlus");
  //TH1D *hKStarK = (TH1D*)hFile1->Get("hKStarPlus_KMinus");
  //TH1D *hKStarK = (TH1D*)hFile1->Get("hmasskpkm2phoCUT");
  TH1D *hKStarK = (TH1D*)hFile1->Get("hMassKmStarKp");
  //hKStarK->Draw();
  //return;

  double rangeLow = 1.15;
  double rangeHigh = 3.0;
  hKStarK->GetXaxis()->SetRangeUser(rangeLow,rangeHigh);
  hKStarK->Draw("e");


  hKStarK->Rebin(reBinFac);

  TF1 *f1 = new TF1("f1","gaus(0)+gaus(3)+gaus(6)+gaus(9)+gaus(12)+gaus(15)+gaus(18)+gaus(21)+gaus(24)+fabs(pol1(27))",0.4,4.6);
  TF1 *fg = new TF1("fg","gaus",0.4,4.6);

  double f1c = 1.380; //h_1(1380)
  double f1sig = 0.091;
  double f11Low = f1c - 0.019;
  double f11High = f1c + 0.019;
  double f12Low = 0.061;
  double f12High = 0.141;
  f1->SetParameter(0,8);
  f1->SetParameter(1,f1c);
  f1->SetParameter(2,f1sig);
  f1->SetParLimits(1,f11Low,f11High);
  f1->SetParLimits(2,f12Low,f12High);


  double f2c = 1.4088; //eta(1405)
  double f2sig = 0.051;
  double f21Low = f2c - 0.0018;
  double f21High = f2c + 0.0018;
  double f22Low = 0.048;
  double f22High = 0.074;
  f1->SetParameter(3,8);
  f1->SetParameter(4,f2c);
  f1->SetParameter(5,f2sig);
  f1->SetParLimits(4,f21Low,f21High);
  f1->SetParLimits(5,f22Low,f22High);

  //START OF A CASCADE
  double f3c = 91.690; //Mass of Xi(1690)
  double f3sig = 0.044;//Width
  double f31Low = f3c - 0.03;//Lower bound of mass 
  double f31High = f3c + 0.03; //Upper bound of mass 
  double f32Low = f3sig - 0.03;//Width lower bound
  double f32High = f3sig + 0.03;//Width lower bound
  f1->SetParameter(6,8);//Gaussian height
  f1->SetParameter(7,f3c);//Gaussian center (mass)
  f1->SetParameter(8,f3sig);//Gaussian sigma (width)
  f1->SetParLimits(7,f31Low,f31High);
  f1->SetParLimits(8,f32Low,f32High);
  //END OF A CASCADE

  double f4c = 1.465; //rho(1450)
  double f4sig = 0.400;
  double f41Low = 1.440;
  double f41High = 1.490;
  double f42Low = 0.340;
  double f42High = 0.480;
  f1->SetParameter(9,8);
  f1->SetParameter(10,f4c);
  f1->SetParameter(11,f4sig);
  f1->SetParLimits(10,f41Low,f41High);
  f1->SetParLimits(11,f42Low,f42High);

  double f5c = 1.476; //eta(1475)
  double f5sig = 0.085;
  double f51Low = 1.472;
  double f51High = 1.480;
  double f52Low = 0.076;
  double f52High = 0.114;
  f1->SetParameter(12,8);
  f1->SetParameter(13,f5c);
  f1->SetParameter(14,f5sig);
  f1->SetParLimits(13,f51Low,f51High);
  f1->SetParLimits(14,f52Low,f52High);

  double f6c = 1.525; //f2-prime(1525)
  double f6sig = 0.076;
  double f61Low = 1.520 - 0.03;
  double f61High = 1.530;
  double f62Low = 0.066 - 0.03;
  double f62High = 0.106;
  f1->SetParameter(15,8);
  f1->SetParameter(16,f6c);
  f1->SetParameter(17,f6sig);
  f1->SetParLimits(16,f61Low,f61High);
  f1->SetParLimits(17,f62Low,f62High);

  double f7c = 1.617; //eta_2(1645)
  double f7sig = 0.181;
  double f71Low = 1.612;
  double f71High = 1.622;
  double f72Low = 0.170;
  double f72High = 0.192 + 0.020;
  f1->SetParameter(18,8);
  f1->SetParameter(19,f7c);
  f1->SetParameter(20,f7sig);
  f1->SetParLimits(19,f71Low,f71High);
  f1->SetParLimits(20,f72Low,f72High);

  double f8c = 1.6722; //pi_2(1670)
  double f8sig = 0.260;
  double f81Low = f8c + 0.003;
  double f81High = f8c - 0.003;
  double f82Low = f8sig - 0.009;
  double f82High = f8sig + 0.009 + 0.020;
  f1->SetParameter(21,8);
  f1->SetParameter(22,f8c);
  f1->SetParameter(23,f8sig);
  f1->SetParLimits(22,f81Low,f81High);
  f1->SetParLimits(23,f82Low,f82High);

  double f9c = 1.680; //phi(1680)
  double f9sig = 0.150;
  double f91Low = f9c-0.02;
  double f91High = f9c+0.02;
  double f92Low = f9sig - 0.050;
  double f92High = f9sig + 0.050 + 0.020;
  f1->SetParameter(24,8);
  f1->SetParameter(25,f9c);
  f1->SetParameter(26,f9sig);
  f1->SetParLimits(25,f91Low,f91High);
  f1->SetParLimits(26,f92Low,f92High);

  f1->SetParLimits(0,0.0,10000.0);
  f1->SetParLimits(3,0.0,10000.0);
  f1->SetParLimits(6,0.0,10000.0);
  f1->SetParLimits(9,0.0,10000.0);
  f1->SetParLimits(12,0.0,10000.0);
  f1->SetParLimits(15,0.0,10000.0);
  f1->SetParLimits(18,0.0,10000.0);
  f1->SetParLimits(21,0.0,10000.0);
  f1->SetParLimits(24,0.0,10000.0);

  hKStarK->Fit("f1","RB","",1.1,1.3);
  hKStarK->Fit("f1","RB","",1.1,1.45);
  hKStarK->Fit("f1","RB","",1.1,1.55);
  hKStarK->Fit("f1","RB","",1.1,2.0);
  hKStarK->Fit("f1","RB","",1.1,3.0);


  double a1Val = f1->GetParameter(0);
  double a2Val = f1->GetParameter(3);
  double a3Val = f1->GetParameter(6);
  double a4Val = f1->GetParameter(9);
  double a5Val = f1->GetParameter(12);
  double a6Val = f1->GetParameter(15);
  double a7Val = f1->GetParameter(18);
  double a8Val = f1->GetParameter(21);
  double a9Val = f1->GetParameter(24);

  double b1Val = f1->GetParameter(0+1);
  double b2Val = f1->GetParameter(3+1);
  double b3Val = f1->GetParameter(6+1);
  double b4Val = f1->GetParameter(9+1);
  double b5Val = f1->GetParameter(12+1);
  double b6Val = f1->GetParameter(15+1);
  double b7Val = f1->GetParameter(18+1);
  double b8Val = f1->GetParameter(21+1);
  double b9Val = f1->GetParameter(24+1);

  double c1Val = f1->GetParameter(0+2);
  double c2Val = f1->GetParameter(3+2);
  double c3Val = f1->GetParameter(6+2);
  double c4Val = f1->GetParameter(9+2);
  double c5Val = f1->GetParameter(12+2);
  double c6Val = f1->GetParameter(15+2);
  double c7Val = f1->GetParameter(18+2);
  double c8Val = f1->GetParameter(21+2);
  double c9Val = f1->GetParameter(24+2);

  TH1D *hBK1 = new TH1D("hBK1","",1000,0.4,2.4);
  TH1D *hBK2 = new TH1D("hBK2","",1000,0.4,2.4);
  TH1D *hBK3 = new TH1D("hBK3","",1000,0.4,2.4);
  TH1D *hBK4 = new TH1D("hBK4","",1000,0.4,2.4);
  TH1D *hBK5 = new TH1D("hBK5","",1000,0.4,2.4);
  TH1D *hBK6 = new TH1D("hBK6","",1000,0.4,2.4);
  TH1D *hBK7 = new TH1D("hBK7","",1000,0.4,2.4);
  TH1D *hBK8 = new TH1D("hBK8","",1000,0.4,2.4);
  TH1D *hBK9 = new TH1D("hBK9","",1000,0.4,2.4);

  cout<<"  Val:  Val:  Val = "<<"Amp      "<<"\t\t"<<"Center"<<"\t\t"<<"Sigma"<<endl;
  cout<<"a1Val:b1Val:c1Val = "<<a1Val<<"\t\t"<<b1Val<<"\t\t"<<c1Val<<"\t\t: h1(1380)"<<endl;
  cout<<"a2Val:b2Val:c2Val = "<<a2Val<<"\t\t"<<b2Val<<"\t\t"<<c2Val<<"\t\t: eta(1405)"<<endl;
  cout<<"a3Val:b3Val:c3Val = "<<a3Val<<"\t\t"<<b3Val<<"\t\t"<<c3Val<<"\t\t: f1(1420)"<<endl;
  cout<<"a4Val:b4Val:c4Val = "<<a4Val<<"\t\t"<<b4Val<<"\t\t"<<c4Val<<"\t\t: rho(1450)"<<endl;
  cout<<"a5Val:b5Val:c5Val = "<<a5Val<<"\t\t"<<b5Val<<"\t\t"<<c5Val<<"\t\t: eta(1475)"<<endl;
  cout<<"a6Val:b6Val:c6Val = "<<a6Val<<"\t\t"<<b6Val<<"\t\t"<<c6Val<<"\t\t: f2-prime(1525)"<<endl;
  cout<<"a7Val:b7Val:c7Val = "<<a7Val<<"\t\t"<<b7Val<<"\t\t"<<c7Val<<"\t\t: eta2(1645)"<<endl;
  cout<<"a8Val:b8Val:c8Val = "<<a8Val<<"\t\t"<<b8Val<<"\t\t"<<c8Val<<"\t\t: pi2(1670)"<<endl;
  cout<<"a9Val:b9Val:c9Val = "<<a9Val<<"\t\t"<<b9Val<<"\t\t"<<c9Val<<"\t\t: phi(1680)"<<endl;


  fg->SetParameter(0,a1Val);fg->SetParameter(1,b1Val);fg->SetParameter(2,c1Val);hBK1->Eval(fg);
  fg->SetParameter(0,a2Val);fg->SetParameter(1,b2Val);fg->SetParameter(2,c2Val);hBK2->Eval(fg);
  fg->SetParameter(0,a3Val);fg->SetParameter(1,b3Val);fg->SetParameter(2,c3Val);hBK3->Eval(fg);
  fg->SetParameter(0,a4Val);fg->SetParameter(1,b4Val);fg->SetParameter(2,c4Val);hBK4->Eval(fg);
  fg->SetParameter(0,a5Val);fg->SetParameter(1,b5Val);fg->SetParameter(2,c5Val);hBK5->Eval(fg);
  fg->SetParameter(0,a6Val);fg->SetParameter(1,b6Val);fg->SetParameter(2,c6Val);hBK6->Eval(fg);
  fg->SetParameter(0,a7Val);fg->SetParameter(1,b7Val);fg->SetParameter(2,c7Val);hBK7->Eval(fg);
  fg->SetParameter(0,a8Val);fg->SetParameter(1,b8Val);fg->SetParameter(2,c8Val);hBK8->Eval(fg);
  fg->SetParameter(0,a9Val);fg->SetParameter(1,b9Val);fg->SetParameter(2,c9Val);hBK9->Eval(fg);
  
  hBK1->SetLineWidth(2);//Peak
  hBK2->SetLineWidth(2);//Peak
  hBK3->SetLineWidth(2);
  hBK4->SetLineWidth(2);
  hBK5->SetLineWidth(2);
  hBK6->SetLineWidth(2);//Peak
  hBK7->SetLineWidth(2);
  hBK8->SetLineWidth(2);
  hBK9->SetLineWidth(2);//Peak

  hBK1->SetLineColor(2);//Peak
  hBK2->SetLineColor(3);//Peak
  hBK3->SetLineColor(11);
  hBK4->SetLineColor(5);
  hBK5->SetLineColor(6);
  hBK6->SetLineColor(4);//Peak
  hBK7->SetLineColor(8);
  hBK8->SetLineColor(9);
  hBK9->SetLineColor(7);//Peak

  
  hKStarK->GetXaxis()->SetRangeUser(rangeLow,rangeHigh);

  hKStarK->Draw("e");
  hBK1->Draw("same");
  hBK2->Draw("same");
  hBK3->Draw("same");
  hBK4->Draw("same");
  hBK5->Draw("same");
  hBK6->Draw("same");
  hBK7->Draw("same");
  hBK8->Draw("same");
  hBK9->Draw("same");
}
