]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALCalibAbs.cxx
Implement comparison of sim and rec CDB's, by default for the TPC/RecoParam only
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibAbs.cxx
index 95c5ed6ae1b92503ef2f6af882a9f78f26dc7add..4313b4817490ecc5fa4ac1a697c0090562bbecf8 100644 (file)
@@ -39,6 +39,7 @@ AliEMCALCalibAbs::AliEMCALCalibAbs(const int nSM) :
     fSuperModuleData.Add(new AliEMCALSuperModuleCalibAbs(i));
   }
   fSuperModuleData.Compress(); // compress the TObjArray
+  fSuperModuleData.SetOwner(kTRUE); 
 }
 
 //____________________________________________________________________________
@@ -58,27 +59,14 @@ void AliEMCALCalibAbs::ReadTextCalibAbsInfo(Int_t nSM, const TString &txtFileNam
   Int_t iSM = 0; // SuperModule index
   Int_t iCol = 0;
   Int_t iRow = 0;
-  Int_t id = 0;
 
   // list of values to be read
   // first: overall values for the whole SuperModule
-  Int_t CalibMethod; 
-  Int_t CalibPass; 
-  Int_t CalibTime; 
-  Float_t AbsoluteGain; 
-  // second: additional info for LED Reference and SM temperature
-  Float_t LEDRefAmp;
-  Float_t LEDRefAmpRMS;
-  Float_t LEDRefHighLowRatio;
-  Int_t LEDRefHighLow;
-  Float_t Temperature;
-  Float_t TemperatureRMS;
+  Int_t iCalibMethod = 0; 
+  Int_t iCalibPass = 0; 
+  Float_t absoluteCalib = 0; 
   // third: info for each tower
-  Float_t RelativeGain; // (ADC>GeV relative gain/conversion), value around 1
-  Float_t HighLowRatio; // value around 16 or so
-  Int_t HighLow; // 
-  Float_t LEDAmp; // low gain eq. amplitude
-  Float_t LEDAmpRMS; //
+  Float_t relativeCalib = 0; // (ADC>GeV relative gain/conversion), value around 1
   // end - all values
 
   Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
@@ -86,37 +74,28 @@ void AliEMCALCalibAbs::ReadTextCalibAbsInfo(Int_t nSM, const TString &txtFileNam
   for (Int_t i = 0; i < fNSuperModule; i++) {
     AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
     if (!inputFile) {
-      printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; likely EOF..");
+      printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; likely EOF..\n");
       return;
     }
     inputFile >> iSM;
     t->SetSuperModuleNum(iSM);
 
     // first: overall values for the whole SuperModule
-    inputFile >> CalibMethod >> CalibPass >> CalibTime >> AbsoluteGain;
-    t->SetCalibMethod(CalibMethod);
-    t->SetCalibPass(CalibPass);
-    t->SetCalibTime(CalibTime);
-    t->SetAbsoluteGain(AbsoluteGain);
-
-    // second: additional info for LED Reference and SM temperature
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALLEDRefs; j++) {
-      inputFile >> id >> LEDRefAmp >> LEDRefAmpRMS >> LEDRefHighLowRatio >> LEDRefHighLow;
-      t->SetLEDRefAmp(id, LEDRefAmp);
-      t->SetLEDRefAmpRMS(id, LEDRefAmpRMS);
-      t->SetLEDRefHighLowRatio(id, LEDRefHighLowRatio);
-      t->SetLEDRefHighLow(id, LEDRefHighLow);
-    }
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALTempSensors; j++) {
-      inputFile >> id >> Temperature >> TemperatureRMS;
-      t->SetTemperature(id, Temperature);
-      t->SetTemperatureRMS(id, TemperatureRMS);
-    }
+    inputFile >> iCalibMethod >> iCalibPass >> absoluteCalib;
+    t->SetCalibMethod(iCalibMethod);
+    t->SetCalibPass(iCalibPass);
+    t->SetAbsoluteCalib(absoluteCalib);
 
     // third: info for each tower
     for (Int_t j=0; j<nAPDPerSM; j++) {
-      inputFile >> iCol >> iRow 
-               >> RelativeGain >> HighLowRatio >> HighLow >> LEDAmp >> LEDAmpRMS;
+      inputFile >> iCol >> iRow >> relativeCalib;
+
+      // check that input values are not out bounds
+      if (iCol<0 || iCol>(AliEMCALGeoParams::fgkEMCALCols-1) ||
+         iRow<0 || iRow>(AliEMCALGeoParams::fgkEMCALRows-1) ) {
+       printf("AliEMCALCalibAbs::ReadCalibAbsInfo - Error while reading input file; j %d iCol %d iRow %d\n", j, iCol, iRow);
+      return;
+      }
 
       // assume that this info is already swapped and done for this basis?
       if (swapSides) {
@@ -125,13 +104,7 @@ void AliEMCALCalibAbs::ReadTextCalibAbsInfo(Int_t nSM, const TString &txtFileNam
        iRow = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
       }
 
-      AliEMCALCalibAbsVal * v = t->GetAPDVal(iCol, iRow);
-
-      v->SetRelativeGain(RelativeGain);
-      v->SetHighLowRatio(HighLowRatio);
-      v->SetHighLow(HighLow);
-      v->SetLEDAmp(LEDAmp);
-      v->SetLEDAmpRMS(LEDAmpRMS);
+      t->SetRelativeCalib(iCol, iRow, relativeCalib);
     }
 
   } // i, SuperModule
@@ -157,7 +130,7 @@ void AliEMCALCalibAbs::WriteTextCalibAbsInfo(const TString &txtFileName,
   Int_t iRow = 0;
 
   Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
-
+  Float_t relativeCalib = 0;
   for (Int_t i = 0; i < fNSuperModule; i++) {
     AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
 
@@ -165,25 +138,14 @@ void AliEMCALCalibAbs::WriteTextCalibAbsInfo(const TString &txtFileName,
     outputFile << t->GetSuperModuleNum() << endl;
     outputFile << t->GetCalibMethod() << " " 
               << t->GetCalibPass() << " " 
-              << t->GetCalibTime() << " " 
-              << t->GetAbsoluteGain() << endl;
-
-    // second: additional info for LED Reference and SM temperature
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALLEDRefs; j++) {
-      outputFile << j << " " << t->GetLEDRefAmp(j) << " " << t->GetLEDRefAmpRMS(j) 
-                << " " << t->GetLEDRefHighLowRatio(j) << " " << t->GetLEDRefHighLow(j) 
-                << endl;
-    }
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALTempSensors; j++) {
-      outputFile << j << " " << t->GetTemperature(j) << " " << t->GetTemperatureRMS(j) << endl;
-    }
+              << t->GetAbsoluteCalib() << endl;
 
     // third: info for each tower
     for (Int_t j=0; j<nAPDPerSM; j++) {
       iCol = j / AliEMCALGeoParams::fgkEMCALRows;
       iRow = j % AliEMCALGeoParams::fgkEMCALRows;
 
-      AliEMCALCalibAbsVal * v = t->GetAPDVal(iCol, iRow);
+      relativeCalib = t->GetRelativeCalib(iCol, iRow);
 
       if (swapSides) {
        // C side, oriented differently than A side: swap is requested
@@ -192,11 +154,7 @@ void AliEMCALCalibAbs::WriteTextCalibAbsInfo(const TString &txtFileName,
       }
 
       outputFile << iCol << " " << iRow 
-                << " " << v->GetRelativeGain()
-                << " " << v->GetHighLowRatio() 
-                << " " << v->GetHighLow() 
-                << " " << v->GetLEDAmp() 
-                << " " << v->GetLEDAmpRMS() << endl;
+                << " " << relativeCalib << endl;
     }
 
   } // i, SuperModule
@@ -226,64 +184,30 @@ void AliEMCALCalibAbs::ReadRootCalibAbsInfo(const TString &rootFileName,
 void AliEMCALCalibAbs::ReadTreeCalibAbsInfo(TTree *tree,
                                            Bool_t swapSides)
 {
-  // how many SuperModule's worth of entries / APDs do we have?
+  // how many SuperModule's worth of info do we have?
   Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
-  fNSuperModule = tree->GetEntries() / nAPDPerSM;
+  fNSuperModule = tree->GetEntries();
 
   Int_t iSM = 0; // SuperModule index
   // list of values to be read
   // first: overall values for the whole SuperModule
-  Int_t CalibMethod; 
-  Int_t CalibPass= {0}; 
-  Int_t CalibTime= {0}; 
-  Float_t AbsoluteGain= {0}; 
-  // second: additional info for LED Reference and SM temperature
-  Float_t LEDRefAmp[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Float_t LEDRefAmpRMS[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Float_t LEDRefHighLowRatio[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Int_t LEDRefHighLow[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Float_t Temperature[AliEMCALGeoParams::fgkEMCALTempSensors]= {0};
-  Float_t TemperatureRMS[AliEMCALGeoParams::fgkEMCALTempSensors]= {0};
+  Int_t iCalibMethod = 0; 
+  Int_t iCalibPass = 0; 
+  Float_t absoluteCalib = 0; 
   // third: info for each tower
-  Float_t RelativeGain[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t HighLowRatio[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Int_t HighLow[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t LEDAmp[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t LEDAmpRMS[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
+  Float_t relativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; 
   // end - all values
 
   // just to make the initializations of the arrays are done correctly, let's use memset
-  memset(LEDRefAmp, 0, sizeof(LEDRefAmp)); 
-  memset(LEDRefAmpRMS, 0, sizeof(LEDRefAmpRMS)); 
-  memset(LEDRefHighLowRatio, 0, sizeof(LEDRefHighLowRatio)); 
-  memset(LEDRefHighLow, 0, sizeof(LEDRefHighLow)); 
-  memset(Temperature, 0, sizeof(Temperature)); 
-  memset(TemperatureRMS, 0, sizeof(TemperatureRMS)); 
-  memset(RelativeGain, 0, sizeof(RelativeGain)); 
-  memset(HighLowRatio, 0, sizeof(HighLowRatio)); 
-  memset(HighLow, 0, sizeof(HighLow)); 
-  memset(LEDAmp, 0, sizeof(LEDAmp)); 
-  memset(LEDAmpRMS, 0, sizeof(LEDAmpRMS)); 
+  memset(relativeCalib, 0, sizeof(relativeCalib)); 
 
   // declare the branches
   tree->SetBranchAddress("iSM", &iSM);
-  tree->SetBranchAddress("CalibMethod", &CalibMethod);
-  tree->SetBranchAddress("CalibPass", &CalibPass);
-  tree->SetBranchAddress("CalibTime", &CalibTime);
-  tree->SetBranchAddress("AbsoluteGain", &AbsoluteGain);
+  tree->SetBranchAddress("CalibMethod", &iCalibMethod);
+  tree->SetBranchAddress("CalibPass", &iCalibPass);
+  tree->SetBranchAddress("AbsoluteCalib", &absoluteCalib);
   //
-  tree->SetBranchAddress("LEDRefAmp", LEDRefAmp);
-  tree->SetBranchAddress("LEDRefAmpRMS", LEDRefAmpRMS);
-  tree->SetBranchAddress("LEDRefHighLowRatio", LEDRefHighLowRatio);
-  tree->SetBranchAddress("LEDRefHighLow", LEDRefHighLow);
-  tree->SetBranchAddress("Temperature", Temperature);
-  tree->SetBranchAddress("TemperatureRMS", TemperatureRMS);
-  //
-  tree->SetBranchAddress("RelativeGain", RelativeGain);
-  tree->SetBranchAddress("HighLowRatio", HighLowRatio);
-  tree->SetBranchAddress("HighLow", HighLow);
-  tree->SetBranchAddress("LEDAmp", LEDAmp);
-  tree->SetBranchAddress("LEDAmpRMS", LEDAmpRMS);
+  tree->SetBranchAddress("RelativeCalib", relativeCalib);
 
   // indices for looping over the towers
   Int_t iCol = 0;
@@ -297,22 +221,9 @@ void AliEMCALCalibAbs::ReadTreeCalibAbsInfo(TTree *tree,
 
     t->SetSuperModuleNum(iSM);
     // first, overall values
-    t->SetCalibMethod(CalibMethod);
-    t->SetCalibPass(CalibPass);
-    t->SetCalibTime(CalibTime);
-    t->SetAbsoluteGain(AbsoluteGain);
-
-    // second: additional info for LED references and SM temperatures
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALLEDRefs; j++) {
-      t->SetLEDRefAmp(j, LEDRefAmp[j]);
-      t->SetLEDRefAmpRMS(j, LEDRefAmpRMS[j]);
-      t->SetLEDRefHighLowRatio(j, LEDRefHighLowRatio[j]);
-      t->SetLEDRefHighLow(j, LEDRefHighLow[j]);
-    }
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALTempSensors; j++) {
-      t->SetTemperature(j, Temperature[j]);
-      t->SetTemperatureRMS(j, TemperatureRMS[j]);
-    }
+    t->SetCalibMethod(iCalibMethod);
+    t->SetCalibPass(iCalibPass);
+    t->SetAbsoluteCalib(absoluteCalib);
 
     // third: info for each tower
     for (Int_t j=0; j<nAPDPerSM; j++) {
@@ -329,13 +240,7 @@ void AliEMCALCalibAbs::ReadTreeCalibAbsInfo(TTree *tree,
        iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
       }
 
-      AliEMCALCalibAbsVal * v = t->GetAPDVal(iCol, iRow);
-
-      v->SetRelativeGain(RelativeGain[iCol][iRow]);
-      v->SetHighLowRatio(HighLowRatio[iCol][iRow]);
-      v->SetHighLow(HighLow[iCol][iRow]);
-      v->SetLEDAmp(LEDAmp[iCol][iRow]);
-      v->SetLEDAmpRMS(LEDAmpRMS[iCol][iRow]);
+      t->SetRelativeCalib(iColMod, iRowMod, relativeCalib[iCol][iRow]);
     }
 
   } // loop over entries
@@ -360,37 +265,15 @@ void AliEMCALCalibAbs::WriteRootCalibAbsInfo(const TString &rootFileName,
   Int_t iSM = 0; // SuperModule index
   // list of values to be written
   // first: overall values for the whole SuperModule
-  Int_t CalibMethod = 0; 
-  Int_t CalibPass = 0; 
-  Int_t CalibTime = 0; 
-  Float_t AbsoluteGain = 0; 
-  // second: additional info for LED Reference and SM temperature
-  Float_t LEDRefAmp[AliEMCALGeoParams::fgkEMCALLEDRefs] = {0};
-  Float_t LEDRefAmpRMS[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Float_t LEDRefHighLowRatio[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Int_t LEDRefHighLow[AliEMCALGeoParams::fgkEMCALLEDRefs]= {0};
-  Float_t Temperature[AliEMCALGeoParams::fgkEMCALTempSensors]= {0};
-  Float_t TemperatureRMS[AliEMCALGeoParams::fgkEMCALTempSensors]= {0};
+  Int_t iCalibMethod = 0; 
+  Int_t iCalibPass = 0; 
+  Float_t absoluteCalib = 0; 
   // third: info for each tower
-  Float_t RelativeGain[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t HighLowRatio[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Int_t HighLow[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t LEDAmp[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
-  Float_t LEDAmpRMS[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]= {0}; 
+  Float_t relativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; 
   // end - all values
 
   // just to make the initializations of the arrays are done correctly, let's use memset
-  memset(LEDRefAmp, 0, sizeof(LEDRefAmp)); 
-  memset(LEDRefAmpRMS, 0, sizeof(LEDRefAmpRMS)); 
-  memset(LEDRefHighLowRatio, 0, sizeof(LEDRefHighLowRatio)); 
-  memset(LEDRefHighLow, 0, sizeof(LEDRefHighLow)); 
-  memset(Temperature, 0, sizeof(Temperature)); 
-  memset(TemperatureRMS, 0, sizeof(TemperatureRMS)); 
-  memset(RelativeGain, 0, sizeof(RelativeGain)); 
-  memset(HighLowRatio, 0, sizeof(HighLowRatio)); 
-  memset(HighLow, 0, sizeof(HighLow)); 
-  memset(LEDAmp, 0, sizeof(LEDAmp)); 
-  memset(LEDAmpRMS, 0, sizeof(LEDAmpRMS)); 
+  memset(relativeCalib, 0, sizeof(relativeCalib)); 
 
   Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
   // for looping over towers
@@ -400,45 +283,20 @@ void AliEMCALCalibAbs::WriteRootCalibAbsInfo(const TString &rootFileName,
   // declare the branches
   // first
   tree->Branch("iSM", &iSM, "iSM/I");
-  tree->Branch("CalibMethod", &CalibMethod, "CalibMethod/I");
-  tree->Branch("CalibPass", &CalibPass, "CalibPass/I");
-  tree->Branch("CalibTime", &CalibTime, "CalibTime/I");
-  tree->Branch("AbsoluteGain", &AbsoluteGain, "AbsoluteGain/F");
-  // second  
-  tree->Branch( "LEDRefAmp", &LEDRefAmp, Form("LEDRefAmp[%d]/F", AliEMCALGeoParams::fgkEMCALLEDRefs) );
-  tree->Branch( "LEDRefAmpRMS", &LEDRefAmpRMS, Form("LEDRefAmpRMS[%d]/F", AliEMCALGeoParams::fgkEMCALLEDRefs) );
-  tree->Branch( "LEDRefHighLowRatio", &LEDRefHighLowRatio, Form("LEDRefHighLowRatio[%d]/F", AliEMCALGeoParams::fgkEMCALLEDRefs) );
-  tree->Branch( "LEDRefHighLow", &LEDRefHighLow, Form("LEDRefHighLow[%d]/I", AliEMCALGeoParams::fgkEMCALLEDRefs) );
-  tree->Branch( "Temperature", &Temperature, Form("Temperature[%d]/F", AliEMCALGeoParams::fgkEMCALTempSensors) );
-  tree->Branch( "TemperatureRMS", &TemperatureRMS, Form("TemperatureRMS[%d]/F", AliEMCALGeoParams::fgkEMCALTempSensors) );
+  tree->Branch("CalibMethod", &iCalibMethod, "CalibMethod/I");
+  tree->Branch("CalibPass", &iCalibPass, "CalibPass/I");
+  tree->Branch("AbsoluteCalib", &absoluteCalib, "AbsoluteCalib/F");
   // third: info for each tower; see if a 2D array works OK or if we'll have to use 1D arrays instead 
-  tree->Branch( "RelativeGain", &RelativeGain, Form("RelativeGain[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
-  tree->Branch( "HighLowRatio", &HighLowRatio, Form("HighLowRatio[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
-  tree->Branch( "HighLow", &HighLow, Form("HighLow[%d][%d]/I", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
-  tree->Branch( "LEDAmp", &LEDAmp, Form("LEDAmp[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
-  tree->Branch( "LEDAmpRMS", &LEDAmpRMS, Form("LEDAmpRMS[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
+  tree->Branch( "RelativeCalib", &relativeCalib, Form("RelativeCalib[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
 
   for (iSM = 0; iSM < fNSuperModule; iSM++) {
     AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[iSM];
 
     iSM = t->GetSuperModuleNum();
     // first, overall values
-    CalibMethod = t->GetCalibMethod();
-    CalibPass = t->GetCalibPass();
-    CalibTime = t->GetCalibTime();
-    AbsoluteGain = t->GetAbsoluteGain();
-
-    // second: additional info for LED references and SM temperatures
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALLEDRefs; j++) {
-      LEDRefAmp[j] = t->GetLEDRefAmp(j);
-      LEDRefAmpRMS[j] = t->GetLEDRefAmpRMS(j);
-      LEDRefHighLowRatio[j] = t->GetLEDRefHighLowRatio(j);
-      LEDRefHighLow[j] = t->GetLEDRefHighLow(j);
-    }
-    for (Int_t j=0; j<AliEMCALGeoParams::fgkEMCALTempSensors; j++) {
-      Temperature[j] = t->GetTemperature(j);
-      TemperatureRMS[j] = t->GetTemperatureRMS(j);
-    }
+    iCalibMethod = t->GetCalibMethod();
+    iCalibPass = t->GetCalibPass();
+    absoluteCalib = t->GetAbsoluteCalib();
 
     // third: info for each tower
     for (Int_t j=0; j<nAPDPerSM; j++) {
@@ -455,13 +313,7 @@ void AliEMCALCalibAbs::WriteRootCalibAbsInfo(const TString &rootFileName,
        iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
       }
 
-      AliEMCALCalibAbsVal * v = t->GetAPDVal(iCol, iRow);
-
-      RelativeGain[iCol][iRow] = v->GetRelativeGain();
-      HighLowRatio[iCol][iRow] = v->GetHighLowRatio();
-      HighLow[iCol][iRow] = v->GetHighLow();
-      LEDAmp[iCol][iRow] = v->GetLEDAmp();
-      LEDAmpRMS[iCol][iRow] = v->GetLEDAmpRMS();
+      relativeCalib[iColMod][iRowMod] = t->GetRelativeCalib(iCol, iRow);
     }
 
     tree->Fill();
@@ -481,7 +333,7 @@ AliEMCALCalibAbs::~AliEMCALCalibAbs()
 
 //____________________________________________________________________________
 AliEMCALSuperModuleCalibAbs * AliEMCALCalibAbs::GetSuperModuleCalibAbsNum(Int_t supModIndex)const
-{
+{ // getter via index
   for (int i=0; i<fNSuperModule; i++) {
     AliEMCALSuperModuleCalibAbs * t = (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[i];
     if (t->GetSuperModuleNum() == supModIndex) {