ROOT logo
void EmpiricalGEMQFit(const char * input ="GEMScansIKF.root" ){
  //
  // Empirical fit of the relative Q resolution for the iron source with 4 GEM layers
  // Fit:
  // Assumption : 
  // 1.) Effective electron transparency proportiaonal to the effective ion transparency
  // 2.) RMS of the effecitive gain can be expressed as linear function of U1/U3,U2/U4 and U3/U4
  //
  // Agreement with data within the expect error estimate -relative agreement 
  // RMS (sigma_{meas}/sigma_{fit}) ~ 3%
  // 
  TFile *fgem = TFile::Open(input);
  TTree * tree= (TTree*)fgem->Get("NeCO2N2");
  tree->SetMarkerStyle(25);
  TStatToolkit toolkit;
  Double_t chi20=0;
  Int_t    npoints=0;
  Int_t npointsMax=10000;
  TVectorD param0,param1,param2,param3;
  TMatrixD covar0,covar1,covar2,covar3;
  
  tree->SetAlias("UGEMA","(UGEM1+UGEM2+UGEM3+UGEM4)");
  TString fstringFast="";
  fstringFast+="1/IB++";                // fraction of the 
  fstringFast+="(UGEM1/UGEM4)/IB++";    // fraction of the gain
  fstringFast+="(UGEM2/UGEM4)/IB++";    // fraction of the gain
  fstringFast+="(UGEM3/UGEM4)/IB++";    // fraction of the gain
  //
  TCut cutFit="ET2Scan+ET3Scan==0";
  TString *strResolFit = TStatToolkit::FitPlane(tree,"Sigma^2:Sigma^2", fstringFast.Data(),cutFit, chi20,npoints,param0,covar0,-1,0, npointsMax, 0);
  strResolFit->Tokenize("++")->Print();
  tree->SetAlias("fitSigma2",strResolFit->Data());
  //
  gStyle->SetOptTitle(0);
  //
  TCanvas *canvas = new TCanvas("canvasEmp","canvasEmp",600,500);
  canvas->SetBottomMargin(0.15);
  canvas->SetRightMargin(0.1);
  canvas->SetTicks(1,1);
  tree->SetMarkerSize(0.7);
  {
    tree->Draw("Sigma:sqrt(fitSigma2):sqrt(1/IB)",cutFit,"colz");  
    TH2F *htemp = (TH2F*)gPad->GetPrimitive("htemp");
    htemp->GetXaxis()->SetTitle("#sigma_{fit}(%)");
    htemp->GetYaxis()->SetTitle("#sigma_{meas}(%)");
    htemp->GetZaxis()->SetTitle("#sqrt{IBF}");
    htemp->SetTitle("Fe resolution");
    htemp->GetXaxis()->SetLimits(8,20);
    htemp->GetYaxis()->SetLimits(8,20);
    htemp->Draw("colz");
    TLatex latex;
    latex.DrawLatex(8.5,18.5,"#sigma=#sqrt{p_{0}+p_{1}#frac{1}{IB}+p_{2}#frac{U1}{U4xIB}+p_{3}#frac{U2}{U4xIB} + p_{4}#frac{U3}{U4xIB}}");
    latex.DrawLatex(8.5,17,TString::Format("p_{0}=%1.f",param0[0]));
    latex.DrawLatex(8.5,16,TString::Format("p_{1}=%1.f",param0[1]));
    latex.DrawLatex(8.5,15,TString::Format("p_{2}=%1.f",param0[2]));
    latex.DrawLatex(8.5,14,TString::Format("p_{3}=%1.f",param0[3]));
    latex.DrawLatex(8.5,13,TString::Format("p_{4}=%1.f",param0[4]));
  }
  
  canvas->SaveAs("canvasFEResolutionFit.pdf");
  canvas->SaveAs("canvasFEResolutionFit.png");
}


void EmpiricalGEMQFit(){
  //
  // Empirical fit of the relative Q resolution for the iron source with 4 GEM layers
  // Fit:
  // Assumption : 
  // 1.) Effective electron transparency proportiaonal to the effective ion transparency
  // 2.) RMS of the effecitive gain can be expressed as linear function of U1/U3,U2/U4 and U3/U4
  //
  // Agreement with data within the expect error estimate -relative agreement 
  // RMS (sigma_{meas}/sigma_{fit}) ~ 3%
  // 
  TFile *fgem = TFile::Open("ETscansIKF.root");
  TTree * tree= (TTree*)fgem->Get("NeCO2N2");
  tree->SetMarkerStyle(25);
  TStatToolkit toolkit;
  Double_t chi20=0;
  Int_t    npoints=0;
  Int_t npointsMax=10000;
  TVectorD param0,param1,param2,param3;
  TMatrixD covar0,covar1,covar2,covar3;
  //
  TString fstringFast="";
  fstringFast+="1/IB++";                // fraction of the 
  fstringFast+="(ET1/1000)/IB++";    // fraction of the gain
  fstringFast+="(ET2/1000)/IB++";    // fraction of the gain
  fstringFast+="(ET3/1000)/IB++";    // fraction of the gain
  fstringFast+="(ET4/1000)/IB++";    // fraction of the gain
  //fstringFast+="(UGEM1/UGEM4)/IB++";    // fraction of the gain
  //
  TCut cutFit="ET1<5500";
  TString *strResolFit = TStatToolkit::FitPlane(tree,"Sigma^2:Sigma^2", fstringFast.Data(),cutFit, chi20,npoints,param0,covar0,-1,0, npointsMax, 0);
  strResolFit->Tokenize("++")->Print();
  tree->SetAlias("fitSigma2",strResolFit->Data());
  //
  gStyle->SetOptTitle(0);
  //
  TCanvas *canvas = new TCanvas("canvasEmp","canvasEmp",600,500);
  canvas->SetBottomMargin(0.15);
  canvas->SetRightMargin(0.1);
  canvas->SetTicks(1,1);
  tree->SetMarkerSize(0.7);
  {
    tree->Draw("Sigma:sqrt(fitSigma2):sqrt(1/IB)",cutFit,"colz");  
    TH2F *htemp = (TH2F*)gPad->GetPrimitive("htemp");
    htemp->GetXaxis()->SetTitle("#sigma_{fit}(%)");
    htemp->GetYaxis()->SetTitle("#sigma_{meas}(%)");
    htemp->GetZaxis()->SetTitle("#sqrt{IBF}");
    htemp->SetTitle("Fe resolution");
    htemp->GetXaxis()->SetLimits(8,20);
    htemp->GetYaxis()->SetLimits(8,20);
    htemp->Draw("colz");
    TLatex latex;
    latex.DrawLatex(8.5,18.5,"#sigma=#sqrt{p_{0}+p_{1}#frac{1}{IB}+p_{2}#frac{ET1}{1000xIB}+p_{3}#frac{ET2}{1000xIB} + p_{4}#frac{ET3}{1000xIB}} +  p_{4}#frac{ET4}{1000xIB}} ");
    latex.DrawLatex(8.5,17,TString::Format("p_{0}=%1.f",param0[0]));
    latex.DrawLatex(8.5,16,TString::Format("p_{1}=%1.f",param0[1]));
    latex.DrawLatex(8.5,15,TString::Format("p_{2}=%1.f",param0[2]));
    latex.DrawLatex(8.5,14,TString::Format("p_{3}=%1.f",param0[3]));
    latex.DrawLatex(8.5,13,TString::Format("p_{4}=%1.f",param0[4]));
    latex.DrawLatex(8.5,12,TString::Format("p_{5}=%1.f",param0[5]));
  }
  
  canvas->SaveAs("canvasFEResolutionFitET.pdf");
  canvas->SaveAs("canvasFEResolutionFitET.png");
}


void FitMCParam(){
  //
  // Fit the parmaterizations
  //
  TChain *chain  = AliXRDPROOFtoolkit::MakeChain("outscan_all.list","d",0,100000);
  

}
 fitResolution.C:1
 fitResolution.C:2
 fitResolution.C:3
 fitResolution.C:4
 fitResolution.C:5
 fitResolution.C:6
 fitResolution.C:7
 fitResolution.C:8
 fitResolution.C:9
 fitResolution.C:10
 fitResolution.C:11
 fitResolution.C:12
 fitResolution.C:13
 fitResolution.C:14
 fitResolution.C:15
 fitResolution.C:16
 fitResolution.C:17
 fitResolution.C:18
 fitResolution.C:19
 fitResolution.C:20
 fitResolution.C:21
 fitResolution.C:22
 fitResolution.C:23
 fitResolution.C:24
 fitResolution.C:25
 fitResolution.C:26
 fitResolution.C:27
 fitResolution.C:28
 fitResolution.C:29
 fitResolution.C:30
 fitResolution.C:31
 fitResolution.C:32
 fitResolution.C:33
 fitResolution.C:34
 fitResolution.C:35
 fitResolution.C:36
 fitResolution.C:37
 fitResolution.C:38
 fitResolution.C:39
 fitResolution.C:40
 fitResolution.C:41
 fitResolution.C:42
 fitResolution.C:43
 fitResolution.C:44
 fitResolution.C:45
 fitResolution.C:46
 fitResolution.C:47
 fitResolution.C:48
 fitResolution.C:49
 fitResolution.C:50
 fitResolution.C:51
 fitResolution.C:52
 fitResolution.C:53
 fitResolution.C:54
 fitResolution.C:55
 fitResolution.C:56
 fitResolution.C:57
 fitResolution.C:58
 fitResolution.C:59
 fitResolution.C:60
 fitResolution.C:61
 fitResolution.C:62
 fitResolution.C:63
 fitResolution.C:64
 fitResolution.C:65
 fitResolution.C:66
 fitResolution.C:67
 fitResolution.C:68
 fitResolution.C:69
 fitResolution.C:70
 fitResolution.C:71
 fitResolution.C:72
 fitResolution.C:73
 fitResolution.C:74
 fitResolution.C:75
 fitResolution.C:76
 fitResolution.C:77
 fitResolution.C:78
 fitResolution.C:79
 fitResolution.C:80
 fitResolution.C:81
 fitResolution.C:82
 fitResolution.C:83
 fitResolution.C:84
 fitResolution.C:85
 fitResolution.C:86
 fitResolution.C:87
 fitResolution.C:88
 fitResolution.C:89
 fitResolution.C:90
 fitResolution.C:91
 fitResolution.C:92
 fitResolution.C:93
 fitResolution.C:94
 fitResolution.C:95
 fitResolution.C:96
 fitResolution.C:97
 fitResolution.C:98
 fitResolution.C:99
 fitResolution.C:100
 fitResolution.C:101
 fitResolution.C:102
 fitResolution.C:103
 fitResolution.C:104
 fitResolution.C:105
 fitResolution.C:106
 fitResolution.C:107
 fitResolution.C:108
 fitResolution.C:109
 fitResolution.C:110
 fitResolution.C:111
 fitResolution.C:112
 fitResolution.C:113
 fitResolution.C:114
 fitResolution.C:115
 fitResolution.C:116
 fitResolution.C:117
 fitResolution.C:118
 fitResolution.C:119
 fitResolution.C:120
 fitResolution.C:121
 fitResolution.C:122
 fitResolution.C:123
 fitResolution.C:124
 fitResolution.C:125
 fitResolution.C:126
 fitResolution.C:127
 fitResolution.C:128
 fitResolution.C:129
 fitResolution.C:130
 fitResolution.C:131
 fitResolution.C:132
 fitResolution.C:133
 fitResolution.C:134
 fitResolution.C:135
 fitResolution.C:136
 fitResolution.C:137
 fitResolution.C:138
 fitResolution.C:139