ROOT logo
void MultCalib(Int_t nIter=16){

  TH2D * c[6]={0} ;
  for(Int_t i=0; i<=nIter; i++){
    TFile * f = new TFile(Form("Calibration_pass%d.root",i)) ;
    for(Int_t m=1; m<4; m++){
       TH2D * tmp = (TH2D*)f->Get(Form("Mass_mod%d",m)) ;
       if(c[m]==0){
         c[m]=(TH2D*)tmp->Clone(Form("MassC_mod%d",m)) ;
	 for(Int_t ix=1; ix<=64;ix++)
	   for(Int_t iz=1; iz<=56; iz++){
	     Double_t clb= tmp->GetBinContent(ix,iz) ;
	     if(clb>0){
               if(clb<0.2)
	         c[m]->SetBinContent(ix,iz,0.136/clb) ;
               else
	         c[m]->SetBinContent(ix,iz,clb) ;
             }
	     else
	       c[m]->SetBinContent(ix,iz,1.) ;
	   }
       }	 
       else{
	 for(Int_t ix=1; ix<=64;ix++)
	   for(Int_t iz=1; iz<=56; iz++){
	     Double_t clb= tmp->GetBinContent(ix,iz) ;
	     if(clb>0)
               if(clb<0.2)
                 if(i<11)
                   clb=0.136/clb ;
                 else
                   clb=(0.136/clb)*(0.136/clb) ;
	       c[m]->SetBinContent(ix,iz,c[m]->GetBinContent(ix,iz)*clb) ;
	   }
       }
    }
  }

  TFile * fout = new TFile("calib.root","recreate") ;
  c[1]->Write("Mass_mod1") ;
  c[2]->Write("Mass_mod2") ;
  c[3]->Write("Mass_mod3") ;
}
 MultCalib.C:1
 MultCalib.C:2
 MultCalib.C:3
 MultCalib.C:4
 MultCalib.C:5
 MultCalib.C:6
 MultCalib.C:7
 MultCalib.C:8
 MultCalib.C:9
 MultCalib.C:10
 MultCalib.C:11
 MultCalib.C:12
 MultCalib.C:13
 MultCalib.C:14
 MultCalib.C:15
 MultCalib.C:16
 MultCalib.C:17
 MultCalib.C:18
 MultCalib.C:19
 MultCalib.C:20
 MultCalib.C:21
 MultCalib.C:22
 MultCalib.C:23
 MultCalib.C:24
 MultCalib.C:25
 MultCalib.C:26
 MultCalib.C:27
 MultCalib.C:28
 MultCalib.C:29
 MultCalib.C:30
 MultCalib.C:31
 MultCalib.C:32
 MultCalib.C:33
 MultCalib.C:34
 MultCalib.C:35
 MultCalib.C:36
 MultCalib.C:37
 MultCalib.C:38
 MultCalib.C:39
 MultCalib.C:40
 MultCalib.C:41
 MultCalib.C:42
 MultCalib.C:43
 MultCalib.C:44