LCOV - code coverage report
Current view: top level - EMCAL/EMCALbase - AliEMCALCalibTempCoeff.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 19 10.5 %
Date: 2016-06-14 17:26:59 Functions: 2 26 7.7 %

          Line data    Source code
       1             : #ifndef ALIEMCALCALIBTEMPCOEFF_H
       2             : #define ALIEMCALCALIBTEMPCOEFF_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /* $Id: $ */
       8             : 
       9             : #include <TObject.h>
      10             : #include <TObjArray.h>
      11             : #include "AliEMCALGeoParams.h"
      12             : class TString;
      13             : class TTree;
      14             : 
      15             : /*
      16             :   Objects of this class contain temperature-dependence coefficients
      17             : */
      18             : 
      19             : // total calibration factor is a product of
      20             : // a) overall calibration factor [fAbsoluteCalib]
      21             : // b) individual gain factor per tower [fRelativeCalib]
      22             : // c) time-dependent correction
      23             : // In this class we store factors needed for c)
      24             : 
      25             : // ******* internal class definition *************
      26             : 
      27             : // 1 SuperModule's worth of info: info on where the different APDs are
      28           0 : class AliEMCALSuperModuleCalibTempCoeff : public TObject {
      29             : 
      30             :  public:
      31           0 :   AliEMCALSuperModuleCalibTempCoeff(const int smNum=0) : TObject(), // just init values
      32           0 :     fSuperModuleNum(smNum)
      33           0 :     {
      34           0 :       for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
      35           0 :         for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
      36           0 :           fTC[icol][irow] = 1.0;
      37           0 :           fSrc[icol][irow] = 0;
      38             :         }
      39             :       }
      40           0 :     }
      41             : 
      42             :  public:
      43             : 
      44           0 :   void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; // 
      45           0 :   Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; // 
      46           0 :   void SetTC(int icol, int irow, Float_t f) { fTC[icol][irow] = f; }; //
      47           0 :   Float_t GetTC(int icol, int irow) const { return fTC[icol][irow]; }; //
      48           0 :   void SetSrc(int icol, int irow, Int_t i) { fSrc[icol][irow] = i; }; //
      49           0 :   Int_t GetSrc(int icol, int irow) const { return fSrc[icol][irow]; }; //
      50             : 
      51             :  private:
      52             :   Int_t fSuperModuleNum; // which SuperModule is this?
      53             :   // individual info for each tower
      54             :   Float_t fTC[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // Temperature Coefficient values (nominally around 2% change per deg C)
      55             :   Int_t fSrc[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // from DarkCurrent, or LED or ..
      56             : 
      57          42 :   ClassDef(AliEMCALSuperModuleCalibTempCoeff, 1) // help class
      58             : };
      59             : // ******* end of internal class definition *************
      60             : 
      61             : class AliEMCALCalibTempCoeff : public TObject {
      62             : 
      63             : public:
      64             : 
      65             :   enum kSrcType {kDarkCurrent=0, kLED=1};// code in possible sources
      66             : 
      67             :   AliEMCALCalibTempCoeff(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
      68             : 
      69             :   // Read and Write txt I/O methods are normally not used, but are useful for 
      70             :   // filling the object before it is saved in OCDB 
      71             :   void ReadTextCalibTempCoeffInfo(Int_t nSM, const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCalModules
      72             :   void WriteTextCalibTempCoeffInfo(const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCalModules
      73             :   void ReadRootCalibTempCoeffInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCalModules
      74             :   void ReadTreeCalibTempCoeffInfo(TTree *tree, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCalModules
      75             :   void WriteRootCalibTempCoeffInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCalModules
      76             : 
      77             :   virtual ~AliEMCALCalibTempCoeff();
      78             : 
      79             :   // pointer to stored info.
      80           0 :   Int_t GetNSuperModule() const { return fNSuperModule; }; 
      81             : 
      82             :   // - via the index in the stored array:
      83             :   virtual AliEMCALSuperModuleCalibTempCoeff * GetSuperModuleCalibTempCoeffId(Int_t smIndex) const
      84           0 :    { return (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[smIndex]; };
      85             : 
      86             :   // - or via the actual SM number
      87             :   virtual AliEMCALSuperModuleCalibTempCoeff * GetSuperModuleCalibTempCoeffNum(Int_t smNum) const;
      88             : 
      89             : protected:
      90             : 
      91             :   Int_t           fNSuperModule; // Number of supermodules.
      92             :   TObjArray fSuperModuleData; // SuperModule data
      93             : 
      94             : private:
      95             : 
      96             :   AliEMCALCalibTempCoeff(const AliEMCALCalibTempCoeff &);
      97             :   AliEMCALCalibTempCoeff &operator = (const AliEMCALCalibTempCoeff &);
      98             : 
      99          42 :   ClassDef(AliEMCALCalibTempCoeff, 1) //CalibTempCoeff data info
     100             : };
     101             : 
     102             : #endif

Generated by: LCOV version 1.11