41 void CorrFitWielanek::CreateMap() {
42 if (fSource == NULL) { Cout::PrintInfo(
"No source emission funciont", EInfo::kCriticalError); }
43 if (fMaps.size() > 0)
return;
44 Double_t r_min = fParameters[RadiusID()].GetMin();
45 Double_t r_max = fParameters[RadiusID()].GetMax();
46 Double_t d_r = r_max - r_min;
47 d_r = d_r / ((Double_t) fExtrapolationsSteps * 2.0);
50 TH2D* MAP =
new TH2D(
"new_map",
53 fFSIMap->GetXaxis()->GetBinLowEdge(1),
54 fFSIMap->GetXaxis()->GetBinUpEdge(fFSIMap->GetNbinsX()),
55 fExtrapolationsSteps + 1,
58 Int_t R_Map = fFSIMap->GetNbinsY();
59 TAxis* R_Ax = fFSIMap->GetYaxis();
60 Double_t* prob =
new Double_t[R_Map];
61 for (
int j = 1; j <= MAP->GetNbinsY(); j++) {
62 Double_t R = MAP->GetYaxis()->GetBinCenter(j);
64 fSource->FixParameter(0, R);
65 if (fSource->GetNpar() == 2) { fSource->FixParameter(1, 1); }
67 for (
int a = 0; a < R_Map; a++) {
69 prob[a] = fSource->Integral(R_Ax->GetBinLowEdge(a + 1), R_Ax->GetBinUpEdge(a + 1));
73 infs += fSource->Integral(-1000, R_Ax->GetBinLowEdge(1));
74 infs += fSource->Integral(R_Ax->GetBinUpEdge(R_Ax->GetNbins()), 1000);
76 for (
int a = 0; a < R_Map; a++) {
77 prob[a] = prob[a] / sum;
79 for (
int i = 1; i <= MAP->GetNbinsX(); i++) {
81 for (
int k = 0; k < R_Map; k++) {
82 val += prob[k] * fFSIMap->GetBinContent(i, k + 1);
84 MAP->SetBinContent(i, j, val + infs);