ROOT logo
#ifndef ALITRDCALONLINEGAINTABLEROC_H
#define ALITRDCALONLINEGAINTABLEROC_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

#include <TObject.h>
#include "AliTRDCalOnlineGainTableMCM.h"

//////////////////////////////////////////////////////////////////////////////////////////////
//
// Data structure to store gaintables of the online calibration in the OCDB
// consisting of three classes:
// AliTRDCalOnlineGainTable 
// AliTRDCalOnlineGainTableROC 
// AliTRDCalOnlineGainTableMCM
//
// AliTRDCalOnlineGainTable is the main class from which all stored data can be accessed.
// The two sub-classes AliTRDCalOnlineGainTableROC and AliTRDCalOnlineGainTableMCM
// contain the gaintables on ROC level and on the MCM level respectively.
//
// The online calibration is used to compensate gain deviations on the pad level.
// For the offline reconstruction the online calibration has to be undone. 
// The corresponding gain correction factor that was used by the online gain filter can be accessed 
// via the functions AliTRDCalOnlineGainTable::GetGainCorrectionFactor(Int_t det, Int_t row, Int_t col) 
// and AliTRDCalOnlineGainTable::GetGainCorrectionFactor(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col).
//
// AliTRDCalOnlineGainTableROC is a class to allocate MCM Gain Tables 
// and to access all stored calibration values from the ROC level by indicating row and col
//
//////////////////////////////////////////////////////////////////////////////////////////////

class AliTRDCalOnlineGainTableROC: public TObject
{
public:

  AliTRDCalOnlineGainTableROC(); 
   AliTRDCalOnlineGainTableROC(const AliTRDCalOnlineGainTableROC& other);
   AliTRDCalOnlineGainTableROC& operator=(const AliTRDCalOnlineGainTableROC& other);
  ~AliTRDCalOnlineGainTableROC();

  Float_t GetGainCorrectionFactor(Int_t row, Int_t col); 
  Short_t GetAdcdac(Int_t row, Int_t col);
  Float_t GetMCMGain(Int_t row, Int_t col); 
  Short_t GetFGAN(Int_t row, Int_t col);
  Short_t GetFGFN(Int_t row, Int_t col);

  void AllocateGainTableMCM(Int_t rob, Int_t mcm);

  AliTRDCalOnlineGainTableMCM* GetGainTableMCM(Int_t index) const
  { 
    //returns the Gain Table of the given MCM
    return fMCMGainTables[index]; 
  }

  AliTRDCalOnlineGainTableMCM* GetGainTableMCM(Int_t rob, Int_t mcm) const
  { 
    //returns the Gain Table of the given MCM
    return GetGainTableMCM(16*rob+mcm); 
  }

protected:
  
  AliTRDCalOnlineGainTableMCM* fMCMGainTables[128]; // Array of gain tables for MCMs
  
  ClassDef(AliTRDCalOnlineGainTableROC,2);          // TRD online gain table of a ROC

};

#endif
 AliTRDCalOnlineGainTableROC.h:1
 AliTRDCalOnlineGainTableROC.h:2
 AliTRDCalOnlineGainTableROC.h:3
 AliTRDCalOnlineGainTableROC.h:4
 AliTRDCalOnlineGainTableROC.h:5
 AliTRDCalOnlineGainTableROC.h:6
 AliTRDCalOnlineGainTableROC.h:7
 AliTRDCalOnlineGainTableROC.h:8
 AliTRDCalOnlineGainTableROC.h:9
 AliTRDCalOnlineGainTableROC.h:10
 AliTRDCalOnlineGainTableROC.h:11
 AliTRDCalOnlineGainTableROC.h:12
 AliTRDCalOnlineGainTableROC.h:13
 AliTRDCalOnlineGainTableROC.h:14
 AliTRDCalOnlineGainTableROC.h:15
 AliTRDCalOnlineGainTableROC.h:16
 AliTRDCalOnlineGainTableROC.h:17
 AliTRDCalOnlineGainTableROC.h:18
 AliTRDCalOnlineGainTableROC.h:19
 AliTRDCalOnlineGainTableROC.h:20
 AliTRDCalOnlineGainTableROC.h:21
 AliTRDCalOnlineGainTableROC.h:22
 AliTRDCalOnlineGainTableROC.h:23
 AliTRDCalOnlineGainTableROC.h:24
 AliTRDCalOnlineGainTableROC.h:25
 AliTRDCalOnlineGainTableROC.h:26
 AliTRDCalOnlineGainTableROC.h:27
 AliTRDCalOnlineGainTableROC.h:28
 AliTRDCalOnlineGainTableROC.h:29
 AliTRDCalOnlineGainTableROC.h:30
 AliTRDCalOnlineGainTableROC.h:31
 AliTRDCalOnlineGainTableROC.h:32
 AliTRDCalOnlineGainTableROC.h:33
 AliTRDCalOnlineGainTableROC.h:34
 AliTRDCalOnlineGainTableROC.h:35
 AliTRDCalOnlineGainTableROC.h:36
 AliTRDCalOnlineGainTableROC.h:37
 AliTRDCalOnlineGainTableROC.h:38
 AliTRDCalOnlineGainTableROC.h:39
 AliTRDCalOnlineGainTableROC.h:40
 AliTRDCalOnlineGainTableROC.h:41
 AliTRDCalOnlineGainTableROC.h:42
 AliTRDCalOnlineGainTableROC.h:43
 AliTRDCalOnlineGainTableROC.h:44
 AliTRDCalOnlineGainTableROC.h:45
 AliTRDCalOnlineGainTableROC.h:46
 AliTRDCalOnlineGainTableROC.h:47
 AliTRDCalOnlineGainTableROC.h:48
 AliTRDCalOnlineGainTableROC.h:49
 AliTRDCalOnlineGainTableROC.h:50
 AliTRDCalOnlineGainTableROC.h:51
 AliTRDCalOnlineGainTableROC.h:52
 AliTRDCalOnlineGainTableROC.h:53
 AliTRDCalOnlineGainTableROC.h:54
 AliTRDCalOnlineGainTableROC.h:55
 AliTRDCalOnlineGainTableROC.h:56
 AliTRDCalOnlineGainTableROC.h:57
 AliTRDCalOnlineGainTableROC.h:58
 AliTRDCalOnlineGainTableROC.h:59
 AliTRDCalOnlineGainTableROC.h:60
 AliTRDCalOnlineGainTableROC.h:61
 AliTRDCalOnlineGainTableROC.h:62
 AliTRDCalOnlineGainTableROC.h:63
 AliTRDCalOnlineGainTableROC.h:64
 AliTRDCalOnlineGainTableROC.h:65
 AliTRDCalOnlineGainTableROC.h:66
 AliTRDCalOnlineGainTableROC.h:67
 AliTRDCalOnlineGainTableROC.h:68
 AliTRDCalOnlineGainTableROC.h:69