]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOSCalib/MultCalib.C
Bug in flattening correction is fixed
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOSCalib / MultCalib.C
1 void MultCalib(Int_t nIter=16){
2
3   TH2D * c[6]={0} ;
4   for(Int_t i=0; i<=nIter; i++){
5     TFile * f = new TFile(Form("Calibration_pass%d.root",i)) ;
6     for(Int_t m=1; m<4; m++){
7        TH2D * tmp = (TH2D*)f->Get(Form("Mass_mod%d",m)) ;
8        if(c[m]==0){
9          c[m]=(TH2D*)tmp->Clone(Form("MassC_mod%d",m)) ;
10          for(Int_t ix=1; ix<=64;ix++)
11            for(Int_t iz=1; iz<=56; iz++){
12              Double_t clb= tmp->GetBinContent(ix,iz) ;
13              if(clb>0){
14                if(clb<0.2)
15                  c[m]->SetBinContent(ix,iz,0.136/clb) ;
16                else
17                  c[m]->SetBinContent(ix,iz,clb) ;
18              }
19              else
20                c[m]->SetBinContent(ix,iz,1.) ;
21            }
22        }         
23        else{
24          for(Int_t ix=1; ix<=64;ix++)
25            for(Int_t iz=1; iz<=56; iz++){
26              Double_t clb= tmp->GetBinContent(ix,iz) ;
27              if(clb>0)
28                if(clb<0.2)
29                  if(i<11)
30                    clb=0.136/clb ;
31                  else
32                    clb=(0.136/clb)*(0.136/clb) ;
33                c[m]->SetBinContent(ix,iz,c[m]->GetBinContent(ix,iz)*clb) ;
34            }
35        }
36     }
37   }
38
39   TFile * fout = new TFile("calib.root","recreate") ;
40   c[1]->Write("Mass_mod1") ;
41   c[2]->Write("Mass_mod2") ;
42   c[3]->Write("Mass_mod3") ;
43 }