LCOV - code coverage report
Current view: top level - EMCAL/EMCALbase - AliEMCALCalibAbs.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 25 8.0 %
Date: 2016-06-14 17:26:59 Functions: 2 30 6.7 %

          Line data    Source code
       1             : #ifndef ALIEMCALCALIBABS_H
       2             : #define ALIEMCALCALIBABS_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 basis for absolute calibrations
      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 a), b) 
      24             : 
      25             : // ******* internal class definition *************
      26             : 
      27             : // 1 SuperModule's worth of info: info on where the different APDs are
      28           0 : class AliEMCALSuperModuleCalibAbs : public TObject {
      29             : 
      30             :  public:
      31           0 :   AliEMCALSuperModuleCalibAbs(const int smNum=0) : TObject(), // just init values
      32           0 :     fSuperModuleNum(smNum),
      33           0 :     fCalibMethod(0),
      34           0 :     fCalibPass(0),
      35           0 :     fAbsoluteCalib(0)
      36           0 :     {
      37           0 :       for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
      38           0 :         for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
      39           0 :           fRelativeCalib[icol][irow] = 1.0;
      40             :         }
      41             :       }
      42           0 :     }
      43             : 
      44             :  public:
      45             :   // first
      46           0 :   void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; // 
      47           0 :   Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; // 
      48           0 :   void SetCalibMethod(Int_t i) { fCalibMethod = i;}; // 
      49           0 :   Int_t GetCalibMethod() const { return fCalibMethod;}; // 
      50           0 :   void SetCalibPass(Int_t i) { fCalibPass = i;}; // 
      51           0 :   Int_t GetCalibPass() const { return fCalibPass;}; // 
      52           0 :   void SetAbsoluteCalib(Float_t f) { fAbsoluteCalib = f;}; // 
      53           0 :   Float_t GetAbsoluteCalib() const { return fAbsoluteCalib;}; // 
      54             : 
      55             :   // third
      56           0 :   void SetRelativeCalib(int icol, int irow, Float_t f) { fRelativeCalib[icol][irow] = f; }; //
      57           0 :   Float_t GetRelativeCalib(int icol, int irow) const { return fRelativeCalib[icol][irow]; }; //
      58             : 
      59             :  private:
      60             :   // first: overall values for the whole SuperModule
      61             :   Int_t fSuperModuleNum; // which SuperModule is this?
      62             :   Int_t fCalibMethod; // a la 0=cosmics, 1=pi0, 2=electrons,3=using ecore,
      63             :   Int_t fCalibPass; // which analysis iteration is this.. 1,2,..N
      64             :   Float_t fAbsoluteCalib; // (ADC>GeV absolute gain/conversion)
      65             :   
      66             :   // third: individual info for each tower
      67             :   Float_t fRelativeCalib[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // values around 1, if gains are well balanced
      68             : 
      69          42 :   ClassDef(AliEMCALSuperModuleCalibAbs, 3) // help class
      70             : };
      71             : // ******* end of internal class definition *************
      72             : 
      73             : class AliEMCALCalibAbs : public TObject {
      74             : 
      75             : public:
      76             : 
      77             :   enum kProblemType {kNoLED=-999};// code in possible problems
      78             : 
      79             :   AliEMCALCalibAbs(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
      80             : 
      81             :   // Read and Write txt I/O methods are normally not used, but are useful for 
      82             :   // filling the object before it is saved in OCDB 
      83             :   void ReadTextCalibAbsInfo(Int_t nSM, const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      84             :   void WriteTextCalibAbsInfo(const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      85             :   void ReadRootCalibAbsInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      86             :   void ReadTreeCalibAbsInfo(TTree *tree, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      87             :   void WriteRootCalibAbsInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      88             : 
      89             :   virtual ~AliEMCALCalibAbs();
      90             : 
      91             :   // pointer to stored info.
      92           0 :   Int_t GetNSuperModule() const { return fNSuperModule; }; 
      93             : 
      94             :   // - via the index in the stored array:
      95             :   virtual AliEMCALSuperModuleCalibAbs * GetSuperModuleCalibAbsId(Int_t smIndex) const
      96           0 :    { return (AliEMCALSuperModuleCalibAbs*) fSuperModuleData[smIndex]; };
      97             : 
      98             :   // - or via the actual SM number
      99             :   virtual AliEMCALSuperModuleCalibAbs * GetSuperModuleCalibAbsNum(Int_t smNum) const;
     100             : 
     101             : protected:
     102             : 
     103             :   Int_t           fNSuperModule; // Number of supermodules.
     104             :   TObjArray fSuperModuleData; // SuperModule data
     105             : 
     106             : private:
     107             : 
     108             :   AliEMCALCalibAbs(const AliEMCALCalibAbs &);
     109             :   AliEMCALCalibAbs &operator = (const AliEMCALCalibAbs &);
     110             : 
     111          42 :   ClassDef(AliEMCALCalibAbs, 4) //CalibAbs data info
     112             : };
     113             : 
     114             : #endif

Generated by: LCOV version 1.11