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

          Line data    Source code
       1             : #ifndef ALIEMCALCALIBTIMEDEPCORRECTION_H
       2             : #define ALIEMCALCALIBTIMEDEPCORRECTION_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 <TArrayF.h>
      12             : #include "AliEMCALGeoParams.h"
      13             : class TString;
      14             : class TTree;
      15             : 
      16             : /*
      17             :   Objects of this class contain info on time-dependent corrections
      18             : */
      19             : 
      20             : // ******* internal class definition *************
      21             : // 1 SuperModule's worth of info
      22           0 : class AliEMCALSuperModuleCalibTimeDepCorrection : public TObject {
      23             :  public:
      24           0 :   AliEMCALSuperModuleCalibTimeDepCorrection(const int smNum=0) : TObject(), // just init values
      25           0 :     fSuperModuleNum(smNum)
      26           0 :     {
      27           0 :       for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
      28           0 :         for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
      29           0 :           fCorrection[icol][irow].Reset();
      30             :         }
      31             :       }
      32           0 :     }
      33             : 
      34             :  public:
      35           0 :   void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; // 
      36           0 :   Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; // 
      37             :   TArrayF * GetCorrection(int icol, int irow) 
      38           0 :     { return &fCorrection[icol][irow]; };
      39             : 
      40             :  private:
      41             :   Int_t fSuperModuleNum; // SM id
      42             :   TArrayF fCorrection[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // values
      43             : 
      44          72 :   ClassDef(AliEMCALSuperModuleCalibTimeDepCorrection, 2) // help class
      45             : };
      46             : // ******* end of internal class definition *************
      47             : 
      48             : class AliEMCALCalibTimeDepCorrection : public TObject {
      49             :  public:
      50             :   AliEMCALCalibTimeDepCorrection(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
      51             : 
      52             :   // interface methods; getting the whole struct should be more efficient though
      53             :   void InitCorrection(Int_t nSM, Int_t nBins, Float_t val=1.0); // assign a certain value to all 
      54             :   // use the methods below with caution: take care that your argument ranges are valid
      55             :   void SetCorrection(Int_t smIndex, Int_t iCol, Int_t iRow, Int_t iBin, Float_t val=1.0); // assign a certain value to a given bin
      56             :   Float_t GetCorrection(Int_t smIndex, Int_t iCol, Int_t iRow, Int_t iBin) const; // assign a certain value to a given bin
      57             :  
      58             :   // Read and Write txt I/O methods are normally not used, but are useful for 
      59             :   // filling the object before it is saved in OCDB 
      60             :   void ReadTextInfo(Int_t nSM, const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      61             :   void WriteTextInfo(const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      62             :   void ReadRootInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      63             :   void ReadTreeInfo(TTree *treeGlob, TTree *treeCorr, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      64             :   void WriteRootInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
      65             : 
      66             :   virtual ~AliEMCALCalibTimeDepCorrection();
      67             : 
      68             :   // pointer to stored info.
      69           0 :   Int_t GetNSuperModule() const { return fNSuperModule; }; 
      70             :  
      71             :   // - via the index in the stored array:
      72             :   virtual AliEMCALSuperModuleCalibTimeDepCorrection * GetSuperModuleCalibTimeDepCorrectionId(Int_t smIndex) const
      73           0 :     { return (AliEMCALSuperModuleCalibTimeDepCorrection*) fSuperModuleData[smIndex]; };
      74             : 
      75             :   // - or via the actual SM number
      76             :   virtual AliEMCALSuperModuleCalibTimeDepCorrection * GetSuperModuleCalibTimeDepCorrectionNum(Int_t smNum) const;
      77             : 
      78           0 :   void SetStartTime(UInt_t ui) { fStartTime = ui; } //
      79           0 :   void SetNTimeBins(Int_t i) { fNTimeBins = i; } // 
      80           0 :   void SetTimeBinSize(Int_t i) { fTimeBinSize = i; } // 
      81             : 
      82           0 :   Int_t GetStartTime() const { return fStartTime; } //
      83           0 :   Int_t GetNTimeBins() const { return fNTimeBins; } // 
      84           0 :   Int_t GetTimeBinSize() const { return fTimeBinSize; } // 
      85             : 
      86           0 :   static Int_t GetMaxTimeBins() { return fgkMaxTimeBins; }
      87             : 
      88             : protected:
      89             : 
      90             :   Int_t           fNSuperModule; // Number of supermodules.
      91             :   TObjArray fSuperModuleData; // SuperModule data
      92             : 
      93             : private:
      94             : 
      95             :   AliEMCALCalibTimeDepCorrection(const AliEMCALCalibTimeDepCorrection &);
      96             :   AliEMCALCalibTimeDepCorrection &operator = (const AliEMCALCalibTimeDepCorrection &);
      97             : 
      98             :   UInt_t fStartTime; // timestamp for start of run/first bin
      99             :   Int_t fNTimeBins; // how many timestamp bins do we have
     100             :   Int_t fTimeBinSize; // seconds per time-bin
     101             : 
     102             :   static const Int_t fgkMaxTimeBins = 50; // we are not going to have more correction time bins than this for a single runnumber.. 
     103             : 
     104          72 :   ClassDef(AliEMCALCalibTimeDepCorrection, 3) //
     105             : };
     106             : 
     107             : #endif

Generated by: LCOV version 1.11