void fitCasStarTmp20(int reBinFac){

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


  sprintf(fString,"./hAllKH.root");
  TFile *hFile1 = new TFile(fString);
  TH1D *hCasStar = (TH1D*)hFile1->Get("hXiStarTmp");
  
  TH1D *hCasStarSig = (TH1D*) hCasStar->Clone("hCasStarSig");
  TH1D *hCasStarBKG = (TH1D*) hCasStar->Clone("hCasStarBKG");
 
  double rangeLow = 1.48;
  double rangeHigh = 1.73;

  hCasStar->GetXaxis()->SetRangeUser(rangeLow,rangeHigh);
  hCasStar->Draw("e");

  hCasStar->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)+pol1(27)",0.4,4.6);
  TF1 *fg = new TF1("fg","gaus",0.4,4.6);
  TF1 *fp = new TF1("fp","pol1",0.4,4.6);

  f1->SetLineColor(2);

  double f1c = 1.535; //1530
  double f1sig = 0.0091/2.335;
  double f11Low  = f1c - 0.01;
  double f11High = f1c + 0.01;
  double f12Low = f1sig;
  double f12High = f1sig + 0.01;
  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.620; //1620
  double f2sig = 0.03/2.335;
  double f21Low = f2c - 0.02;
  double f21High = f2c + 0.02;
  double f22Low = f2sig - 0.02;
  f22Low = 0.01;
  double f22High = f2sig + 0.01;
  f1->SetParameter(3,0);
  f1->SetParameter(4,f2c);
  f1->SetParameter(5,f2sig);
  f1->SetParLimits(4,f21Low,f21High);
  f1->SetParLimits(5,f22Low,f22High);

  double f3c = 1.690; //Mass of Xi(1690)
  double f3sig = 0.02/2.335;//Width
  double f31Low = f3c - 0.01;//Lower bound of mass 
  double f31High = f3c + 0.01; //Upper bound of mass 
  double f32Low = f3sig - 0.01;//Width lower bound
  f32Low = 0.01;
  double f32High = f3sig + 0.01;//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);

  double f4c = 1.823; //1820
  double f4sig = 0.024/2.335;
  double f41Low = f4c - 0.02;
  double f41High = f4c + 0.002;
  double f42Low = f4sig - 0.05;
  f42Low = 0.01;
  double f42High = f4sig + 0.01;
  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.950; //1950
  double f5sig = 0.020/2.335;
  double f51Low = f5c - 0.015;
  double f51High = f5c + 0.015;
  double f52Low = 0.01;
  double f52High = f5sig + 0.01;
  f1->SetParameter(12,8);
  f1->SetParameter(13,f5c);
  f1->SetParameter(14,f5sig);
  f1->SetParLimits(13,f51Low,f51High);
  f1->SetParLimits(14,f52Low,f52High);

  double f6c = 2.025; //2025
  double f6sig = 0.02;
  double f61Low = f6c - 0.015;
  double f61High = f6c + 0.015;
  double f62Low = f6sig - 0.015;
  double f62High =f6sig + 0.03;
  f1->SetParameter(15,8);
  f1->SetParameter(16,f6c);
  f1->SetParameter(17,f6sig);
  f1->SetParLimits(16,f61Low,f61High);
  f1->SetParLimits(17,f62Low,f62High);

  double f7c = 2.120; //2120
  double f7sig = 0.02/2.335;
  double f71Low = f7c - 0.02;
  double f71High = f7c + 0.04;
  double f72Low = 0.01;
  double f72High = f7sig + 0.02;
  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.585; //2250
  double f8sig = 0.01;
  double f81Low = f8c - 0.01;
  double f81High = f8c + 0.01;
  double f82Low = f8sig - 0.02;
  double f82High = f8sig + 0.01;
  f1->SetParameter(21,8);
  f1->SetParameter(22,f8c);
  f1->SetParameter(23,f8sig);
  f1->SetParLimits(22,f81Low,f81High);
  f1->SetParLimits(23,f82Low,f82High);

  //double f9c = 2.370; //
  //double f9sig = 0.08;
  //double f91Low = f9c-0.03;
  //double f91High = f9c+0.03;
  //double f92Low = f9sig - 0.050;
  //double f92High = f9sig + 0.050;

  double f9c = 1.750; //
  double f9sig = 0.02/2.335;
  double f91Low = f9c-0.01;
  double f91High = f9c+0.01;
  double f92Low = 0.010;
  double f92High = f9sig + 0.010;
  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,1000.0);
  f1->SetParLimits(3,0.0,1000.0);
  f1->SetParLimits(6,0.0,1000.0);
  f1->SetParLimits(9,0.0,1000.0);
  f1->SetParLimits(12,0.0,1000.0);
  f1->SetParLimits(15,0.0,1000.0);
  f1->SetParLimits(18,0.0,1000.0);
  f1->SetParLimits(21,0.0,1000.0);
  f1->SetParLimits(24,0.0,1000.0);

  //f1->FixParameter(9,10.0);

  f1->SetParameter(27,50.0);

  hCasStar->GetXaxis()->SetRangeUser(1.45,1.99);

  //Performing the fits from low to high
  hCasStar->Fit("f1","RBL","",1.48,1.58);

  hCasStar->Fit("f1","RBL","",1.48,1.66);

  hCasStar->Fit("f1","RBL","",1.48,1.71);
  
  hCasStar->Fit("f1","RBL","",1.48,1.84);

  hCasStar->Fit("f1","RBL","",1.48,1.99);


  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);

  double a10Val = f1->GetParameter(27);
  double b10Val = f1->GetParameter(28);

  TH1D *hF1 = new TH1D("hF1","",1000,1.4,2.8);

  TH1D *hBK1 = new TH1D("hBK1","",1000,1.4,2.8);
  TH1D *hBK2 = new TH1D("hBK2","",1000,1.4,2.8);
  TH1D *hBK3 = new TH1D("hBK3","",1000,1.4,2.8);
  TH1D *hBK4 = new TH1D("hBK4","",1000,1.4,2.8);
  TH1D *hBK5 = new TH1D("hBK5","",1000,1.4,2.8);
  TH1D *hBK6 = new TH1D("hBK6","",1000,1.4,2.8);
  TH1D *hBK7 = new TH1D("hBK7","",1000,1.4,2.8);
  TH1D *hBK8 = new TH1D("hBK8","",1000,1.4,2.8);
  TH1D *hBK9 = new TH1D("hBK9","",1000,1.4,2.8);
  TH1D *hBKp = new TH1D("hBKp","",1000,1.4,2.8);

  fp->SetParameter(0,a10Val);fp->SetParameter(1,b10Val);hBKp->Eval(fp);

  hCasStarBKG->Eval(fp);
  hCasStarSig->Add(hCasStarSig,hCasStarBKG,1,-1.0);

  int binLow1 = hCasStar->FindBin(b1Val-3*c1Val);int binHigh1 = hCasStar->FindBin(b1Val+3*c1Val);  
  int binLow2 = hCasStar->FindBin(b2Val-3*c2Val);int binHigh2 = hCasStar->FindBin(b2Val+3*c2Val);  
  int binLow3 = hCasStar->FindBin(b3Val-3*c3Val);int binHigh3 = hCasStar->FindBin(b3Val+3*c3Val);  
  int binLow4 = hCasStar->FindBin(b4Val-3*c4Val);int binHigh4 = hCasStar->FindBin(b4Val+3*c4Val);  
  int binLow5 = hCasStar->FindBin(b5Val-3*c5Val);int binHigh5 = hCasStar->FindBin(b5Val+3*c5Val);  
  int binLow6 = hCasStar->FindBin(b6Val-3*c6Val);int binHigh6 = hCasStar->FindBin(b6Val+3*c6Val);  
  int binLow7 = hCasStar->FindBin(b7Val-3*c7Val);int binHigh7 = hCasStar->FindBin(b7Val+3*c7Val);  
  double e1=0,e2=0,e3=0,e4=0,e5=0,e6=0,e7=0;
  double y1 = hCasStarSig->IntegralAndError(binLow1,binHigh1,e1,"");
  double y2 = hCasStarSig->IntegralAndError(binLow2,binHigh2,e2,"");
  double y3 = hCasStarSig->IntegralAndError(binLow3,binHigh3,e3,"");
  double y4 = hCasStarSig->IntegralAndError(binLow4,binHigh4,e4,"");
  double y5 = hCasStarSig->IntegralAndError(binLow5,binHigh5,e5,"");
  double y6 = hCasStarSig->IntegralAndError(binLow6,binHigh6,e6,"");
  double y7 = hCasStarSig->IntegralAndError(binLow7,binHigh7,e7,"");




  cout<<""<<endl;
  cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<<endl;
  cout<<"State"<<"\t\t"<<"Yield"<<"\t\t\t"<<"Center"<<"\t\t"<<"FWHM"<<endl;
  cout<<"Xi(1530) : "<<y1<<" +/- "<<e1<<"\t\t"<<b1Val<<"\t\t"<<2.335*c1Val<<"\t\t "<<endl;
  cout<<"Xi(1620) : "<<y2<<" +/- "<<e2<<"\t\t"<<b2Val<<"\t\t"<<2.335*c2Val<<"\t\t "<<endl;
  cout<<"Xi(1690) : "<<y3<<" +/- "<<e3<<"\t\t"<<b3Val<<"\t\t"<<2.335*c3Val<<"\t\t "<<endl;
  cout<<"Xi(1820) : "<<y4<<" +/- "<<e4<<"\t\t"<<b4Val<<"\t\t"<<2.335*c4Val<<"\t\t "<<endl;
  cout<<"Xi(1950) : "<<y5<<" +/- "<<e5<<"\t\t"<<b5Val<<"\t\t"<<2.335*c5Val<<"\t\t "<<endl;
  cout<<"Xi(2030) : "<<y6<<" +/- "<<e6<<"\t\t"<<b6Val<<"\t\t"<<2.335*c6Val<<"\t\t "<<endl;
  //cout<<"Xi(2120) : "<<y7<<" +/- "<<e7<<"\t\t"<<b7Val<<"\t\t"<<2.335*c7Val<<"\t\t: "<<endl;
  //cout<<"a2Val:b2Val:c2Val = "<<a2Val<<"\t\t"<<b2Val<<"\t\t"<<2.335*c2Val<<"\t\t: "<<endl;
  //cout<<"a3Val:b3Val:c3Val = "<<a3Val<<"\t\t"<<b3Val<<"\t\t"<<2.335*c3Val<<"\t\t: "<<endl;
  //cout<<"a4Val:b4Val:c4Val = "<<a4Val<<"\t\t"<<b4Val<<"\t\t"<<2.335*c4Val<<"\t\t: "<<endl;
  //cout<<"a5Val:b5Val:c5Val = "<<a5Val<<"\t\t"<<b5Val<<"\t\t"<<2.335*c5Val<<"\t\t: "<<endl;
  //cout<<"a6Val:b6Val:c6Val = "<<a6Val<<"\t\t"<<b6Val<<"\t\t"<<2.335*c6Val<<"\t\t: "<<endl;
  //cout<<"a7Val:b7Val:c7Val = "<<a7Val<<"\t\t"<<b7Val<<"\t\t"<<2.335*c7Val<<"\t\t: "<<endl;
  //cout<<"a8Val:b8Val:c8Val = "<<a8Val<<"\t\t"<<b8Val<<"\t\t"<<2.335*c8Val<<"\t\t: "<<endl;
  //cout<<"a9Val:b9Val:c9Val = "<<a9Val<<"\t\t"<<b9Val<<"\t\t"<<2.335*c9Val<<"\t\t: "<<endl;
  cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"<<endl;
  cout<<""<<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);
  hBK2->SetLineWidth(2);
  hBK3->SetLineWidth(2);
  hBK4->SetLineWidth(2);
  hBK5->SetLineWidth(2);
  hBK6->SetLineWidth(2);
  hBK7->SetLineWidth(2);
  hBK8->SetLineWidth(2);
  hBK9->SetLineWidth(2);
  hBKp->SetLineWidth(2);

  hBK1->SetLineColor(1);
  hBK2->SetLineColor(3);
  hBK3->SetLineColor(4);
  hBK4->SetLineColor(6);
  hBK5->SetLineColor(7);
  hBK6->SetLineColor(8);
  hBK7->SetLineColor(9);
  hBK8->SetLineColor(10);
  hBK9->SetLineColor(11);
  hBKp->SetLineColor(12);
  hBKp->SetLineStyle(13);


  hCasStar->GetXaxis()->SetRangeUser(rangeLow,rangeHigh);
  hCasStar->SetMarkerStyle(21);
  hCasStar->SetMarkerSize(1);
  hCasStar->SetMarkerColor(1);
  hCasStar->SetLineColor(1);

  

  hCasStar->GetXaxis()->SetRangeUser(rangeLow,rangeHigh);
  hCasStar->SetMarkerStyle(21);
  hCasStar->SetMarkerSize(1);
  hCasStar->SetMarkerColor(1);

  hCasStar->SetMaximum(250);
  hCasStar->Draw("e1");

  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");

  return;

}
