- // fit sx parallel to the drift
- TF1 fsxD("fsx", "gaus(0)+expo(3)", 0., 3.5);
- h1 = hsx->ProjectionY("hsx_pyy");
- h1->Scale(1./hsx->GetNbinsX());
- for(Int_t ib=1; ib<=h1->GetNbinsX(); ib++) if(h1->GetBinContent(ib)>0.) h1->SetBinError(ib, 0.02);
- h1->Fit(&f, "QN", "", 0., 1.3);
- fsxD.SetParameter(0, 0.);
- fsxD.SetParameter(1, f.GetParameter(1));
- fsxD.SetParameter(2, f.GetParameter(2));
- TF1 expo("fexpo", "expo", 0., 3.5);
- h1->Fit(&expo, "QN");
- fsxD.SetParameter(3, expo.GetParameter(0));
- fsxD.SetParameter(4, expo.GetParameter(1));
- h1->Fit(&fsxD, "Q");
- printf(" const Float_t sxgc = %5.3e;\n", fsxD.GetParameter(0));
- printf(" const Float_t sxgm = %5.3e;\n", fsxD.GetParameter(1));
- printf(" const Float_t sxgs = %5.3e;\n", fsxD.GetParameter(2));
- printf(" const Float_t sxe0 = %5.3e;\n", fsxD.GetParameter(3));
- printf(" const Float_t sxe1 = %5.3e;\n", fsxD.GetParameter(4));
- if(fCanvas){
- fCanvas->cd();
- h1->Draw("e1"); fsxD.Draw("same");
- fCanvas->Modified(); fCanvas->Update();
- if(IsSaveAs()) fCanvas->SaveAs("Figures/ProcessSigma_SX||.gif");
- else gSystem->Sleep(1000);
+ printf(" const Double_t sx[%d][%d]={\n", kNTB-1, kND);
+ for(Int_t iy=1; iy<kNTB; iy++){
+ printf(" {");
+ for(Int_t ix=1; ix<kND; ix++){
+ printf("%5.3e, ", hsx->GetBinContent(ix, iy));
+ }
+ printf("%5.3e}", hsx->GetBinContent(kND, iy));
+ printf("%c\n", iy==(kNTB-1)?' ':',');