]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALCalibAbs.h
added macros to create and read TOF TriggerMask
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibAbs.h
index 67bb35f392fa60736e4ee1123848a5f09b0ca81e..7d07b83f8691409b5188e58a156d0b51540133ea 100644 (file)
@@ -7,6 +7,7 @@
 /* $Id: $ */
 
 #include <TObject.h>
+#include <TObjArray.h>
 #include "AliEMCALGeoParams.h"
 class TString;
 class TTree;
@@ -16,95 +17,56 @@ class TTree;
 */
 
 // total calibration factor is a product of
-// a) overall calibration factor [fAbsoluteGain]
-// b) individual gain factor per tower [fRelativeGain]
+// a) overall calibration factor [fAbsoluteCalib]
+// b) individual gain factor per tower [fRelativeCalib]
 // c) time-dependent correction
-// In this class we store a), b) and the needed static ingredients for c)
+// In this class we store a), b) 
 
 // ******* internal class definition *************
-// values per single tower
-class AliEMCALCalibAbsVal : public TObject {
-
- public:
-  AliEMCALCalibAbsVal() : TObject(), // just init values
-    fRelativeGain(0),
-    fHighLowRatio(0),
-    fHighLow(0),
-    fLEDAmp(0),
-    fLEDAmpRMS(0)
-    {
-    }
-  
-  void Init() {
-    fRelativeGain = 0;
-    fHighLowRatio = 0;
-    fHighLow = 0;
-    fLEDAmp = 0;
-    fLEDAmpRMS = 0;
-    return;
-  }
-
- public:
-  Float_t fRelativeGain; // (ADC>GeV relative gain/conversion), value around 1
-  Float_t fHighLowRatio; // value around 16 or so
-  Int_t fHighLow; // 0 (low) or 1 (high) gain, used for LEDAmp info
-  Float_t fLEDAmp; // LED amplitude
-  Float_t fLEDAmpRMS; // RMS
-
-  ClassDef(AliEMCALCalibAbsVal, 1) // help class
-};
 
 // 1 SuperModule's worth of info: info on where the different APDs are
 class AliEMCALSuperModuleCalibAbs : public TObject {
 
  public:
-  AliEMCALSuperModuleCalibAbs() : TObject(), // just init values
-    fSuperModuleNum(0),
+  AliEMCALSuperModuleCalibAbs(const int smNum=0) : TObject(), // just init values
+    fSuperModuleNum(smNum),
     fCalibMethod(0),
     fCalibPass(0),
-    fCalibTime(0),
-    fAbsoluteGain(0)
+    fAbsoluteCalib(0)
     {
-      for (int iref=0; iref<AliEMCALGeoParams::fgkEMCALLEDRefs; iref++) {
-       fLEDRefAmp[iref] = 0;
-       fLEDRefAmpRMS[iref] = 0;
-       fLEDRefHighLowRatio[iref] = 0;
-       fLEDRefHighLow[iref] = 0;
-      }
-
-      for (int itemp=0; itemp<AliEMCALGeoParams::fgkEMCALTempSensors; itemp++) {
-       fTemperature[itemp] = 0;
-       fTemperatureRMS[itemp] = 0;
-      }
-
       for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
        for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
-         fAPDVal[icol][irow].Init();
+         fRelativeCalib[icol][irow] = 1.0;
        }
       }
     }
 
  public:
+  // first
+  void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; // 
+  Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; // 
+  void SetCalibMethod(Int_t i) { fCalibMethod = i;}; // 
+  Int_t GetCalibMethod() const { return fCalibMethod;}; // 
+  void SetCalibPass(Int_t i) { fCalibPass = i;}; // 
+  Int_t GetCalibPass() const { return fCalibPass;}; // 
+  void SetAbsoluteCalib(Float_t f) { fAbsoluteCalib = f;}; // 
+  Float_t GetAbsoluteCalib() const { return fAbsoluteCalib;}; // 
+
+  // third
+  void SetRelativeCalib(int icol, int irow, Float_t f) { fRelativeCalib[icol][irow] = f; }; //
+  Float_t GetRelativeCalib(int icol, int irow) const { return fRelativeCalib[icol][irow]; }; //
+
+ private:
   // first: overall values for the whole SuperModule
   Int_t fSuperModuleNum; // which SuperModule is this?
   Int_t fCalibMethod; // a la 0=cosmics, 1=pi0, 2=electrons,3=using ecore,
   Int_t fCalibPass; // which analysis iteration is this.. 1,2,..N
-  Int_t fCalibTime; // t0, unix timestamp
-  Float_t fAbsoluteGain; // (ADC>GeV absolute gain/conversion)
-  
-  // second: additional info for LED Reference and SM temperature
-  Float_t fLEDRefAmp[AliEMCALGeoParams::fgkEMCALLEDRefs]; // LED amplitude at  t0, low gain equivalent
-  Float_t fLEDRefAmpRMS[AliEMCALGeoParams::fgkEMCALLEDRefs]; // RMS
-  Float_t fLEDRefHighLowRatio[AliEMCALGeoParams::fgkEMCALLEDRefs]; // value around 16 or so
-  Int_t fLEDRefHighLow[AliEMCALGeoParams::fgkEMCALLEDRefs]; // 0 (low) or 1 (high) gain
-  
-  Float_t fTemperature[AliEMCALGeoParams::fgkEMCALTempSensors]; // temperature at t0
-  Float_t fTemperatureRMS[AliEMCALGeoParams::fgkEMCALTempSensors]; // RMS
+  Float_t fAbsoluteCalib; // (ADC>GeV absolute gain/conversion)
   
   // third: individual info for each tower
-  AliEMCALCalibAbsVal fAPDVal[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // at t0
+  Float_t fRelativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // values around 1, if gains are well balanced
 
-  ClassDef(AliEMCALSuperModuleCalibAbs, 1) // help class
+  ClassDef(AliEMCALSuperModuleCalibAbs, 3) // help class
 };
 // ******* end of internal class definition *************
 
@@ -114,7 +76,7 @@ public:
 
   enum kProblemType {kNoLED=-999};// code in possible problems
 
-  AliEMCALCalibAbs();
+  AliEMCALCalibAbs(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
 
   // Read and Write txt I/O methods are normally not used, but are useful for 
   // filling the object before it is saved in OCDB 
@@ -128,24 +90,25 @@ public:
 
   // pointer to stored info.
   Int_t GetNSuperModule() const { return fNSuperModule; }; 
-  AliEMCALSuperModuleCalibAbs * GetSuperModuleData() const { return fSuperModuleData; };
 
   // - via the index in the stored array:
-  virtual AliEMCALSuperModuleCalibAbs GetSuperModuleCalibAbsId(Int_t smIndex) const;
+  virtual AliEMCALSuperModuleCalibAbs * GetSuperModuleCalibAbsId(Int_t smIndex) const
+   { return (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[smIndex]; };
+
   // - or via the actual SM number
-  virtual AliEMCALSuperModuleCalibAbs GetSuperModuleCalibAbsNum(Int_t smNum) const;
+  virtual AliEMCALSuperModuleCalibAbs GetSuperModuleCalibAbsNum(Int_t smNum) const;
 
 protected:
 
   Int_t          fNSuperModule; // Number of supermodules.
-  AliEMCALSuperModuleCalibAbs *fSuperModuleData; // SuperModule data
+  TObjArray fSuperModuleData; // SuperModule data
 
 private:
 
   AliEMCALCalibAbs(const AliEMCALCalibAbs &);
   AliEMCALCalibAbs &operator = (const AliEMCALCalibAbs &);
 
-  ClassDef(AliEMCALCalibAbs, 2) //CalibAbs data reader
+  ClassDef(AliEMCALCalibAbs, 4) //CalibAbs data info
 };
 
 #endif