ROOT logo
#ifndef ALIITSONLINECALIBRATIONSPDHANDLER_H
#define ALIITSONLINECALIBRATIONSPDHANDLER_H

//////////////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                                   //
// Class that  simplifies the managing of dead, noisy, and inactive pixels. //
// Has interface to the AliITSOnlineCalibrationSPD container objects        //
// through reading and writing to TFile.                                    //
//////////////////////////////////////////////////////////////////////////////

/* $Id$  */

#include "AliITSRawStreamSPD.h"
#include <TString.h>

class TArrayI;
class TArrayS;
class AliITSIntMap;
class AliITSTriggerConditions;
class AliITSCalibrationSPD;

class AliITSOnlineCalibrationSPDhandler {

 public:
  AliITSOnlineCalibrationSPDhandler();
  AliITSOnlineCalibrationSPDhandler(const AliITSOnlineCalibrationSPDhandler& handle);
  virtual ~AliITSOnlineCalibrationSPDhandler();
  AliITSOnlineCalibrationSPDhandler& operator=(const AliITSOnlineCalibrationSPDhandler& handle);

  void    SetFileLocation(const Char_t* loc) {fFileLocation = loc;}
  TString GetFileLocation() const {return fFileLocation;}

  void    ClearMaps();
  void    ResetDead();
  void    ResetNoisy();
  void    ResetDeadForChip(UInt_t eq, UInt_t hs, UInt_t chip);
  void    ResetNoisyForChip(UInt_t eq, UInt_t hs, UInt_t chip);
  void    ResetDeadForEq(UInt_t eq);
  void    ResetNoisyForEq(UInt_t eq);

  Bool_t  ReadFromFiles();
  Bool_t  ReadSilentFromFiles();
  Bool_t  ReadDeadFromFiles();
  Bool_t  ReadNoisyFromFiles();
  Bool_t  ReadSilentFromFile(UInt_t eq);
  Bool_t  ReadDeadFromFile(UInt_t eq);
  Bool_t  ReadNoisyFromFile(UInt_t eq);
  Bool_t  ReadSilentFromFileName(const char *fileName);
  Bool_t  ReadDeadFromFileName(const char *fileName, Bool_t inactive=kFALSE);
  Bool_t  ReadNoisyFromFileName(const char *fileName);

  UInt_t  ReadDeadFromText(const char *fileName, UInt_t module);
  UInt_t  ReadNoisyFromText(const char *fileName, UInt_t module);
  void    ReadPITConditionsFromText(const char *fileName);

  void    WriteToFilesAlways();
  UInt_t  WriteToFiles();
  void    WriteSilentToFilesAlways();
  void    WriteDeadToFilesAlways();
  void    WriteNoisyToFilesAlways();
  UInt_t  WriteSilentToFiles();
  UInt_t  WriteDeadToFiles();
  UInt_t  WriteNoisyToFiles();
  void    WriteSilentToFile(UInt_t eq);
  void    WriteDeadToFile(UInt_t eq, Bool_t inactive=kFALSE);
  void    WriteNoisyToFile(UInt_t eq);

  Bool_t  ReadPITConditionsFromDB(Int_t runNr, const Char_t *storage="default");
#ifndef SPD_DA_OFF
  Bool_t  ReadDeadModuleFromDB(UInt_t module, Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadNoisyModuleFromDB(UInt_t module, Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadFromDB(Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadDeadFromDB(Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadSparseDeadFromDB(Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadNoisyFromDB(Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadDeadFromDBasNoisy(Int_t runNr, const Char_t *storage="default", Bool_t treeSerial=kFALSE);
  Bool_t  ReadDeadFromCalibObj(const TObjArray* calObj);
  Bool_t  ReadNoisyFromCalibObj(const TObjArray* calObj);
  Bool_t  WriteToDB(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
  Bool_t  WriteDeadToDB(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
  Bool_t  WriteSparseDeadToDB(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
  Bool_t  WriteDeadToDBasNoisy(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
  Bool_t  WriteNoisyToDB(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
  Bool_t  WritePITConditionsToDB(Int_t runNrStart, Int_t runNrEnd, const Char_t *storage="default");
#endif

  void    GenerateDCSConfigFile(const Char_t* fileName);

  TArrayS GetSilentArray(UInt_t module, Bool_t treeSerial=kFALSE); // temporarily needed
  TArrayS GetDeadArray(UInt_t module, Bool_t treeSerial=kFALSE);
  TArrayS GetSparseDeadArray(UInt_t module, Bool_t treeSerial=kFALSE);
  TArrayS GetNoisyArray(UInt_t module, Bool_t treeSerial=kFALSE);

  TArrayI GetDeadArrayOnline(UInt_t eq);
  TArrayI GetNoisyArrayOnline(UInt_t eq);

  void    PrintEqSummary();
  void    PrintSilent() const; // silent = dead or inactive
  void    PrintDead() const;
  void    PrintSparseDead() const;
  void    PrintNoisy() const;

  Bool_t  SetDeadPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  SetSparseDeadPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  SetNoisyPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  SetDeadPixelM(UInt_t module, UInt_t colM, UInt_t row);
  Bool_t  SetSparseDeadPixelM(UInt_t module, UInt_t colM, UInt_t row);
  Bool_t  SetNoisyPixelM(UInt_t module, UInt_t colM, UInt_t row);
  Bool_t  UnSetDeadPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  UnSetSparseDeadPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  UnSetNoisyPixel(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row);
  Bool_t  UnSetDeadPixelM(UInt_t module, UInt_t colM, UInt_t row);
  Bool_t  UnSetSparseDeadPixelM(UInt_t module, UInt_t colM, UInt_t row);
  Bool_t  UnSetNoisyPixelM(UInt_t module, UInt_t colM, UInt_t row);

  Bool_t SetInactiveChipInPITmask(UInt_t eq, UInt_t hs, UInt_t chip);
  Bool_t UnSetInactiveChipInPITmask(UInt_t eq, UInt_t hs, UInt_t chip);

  Bool_t  IsPixelBad(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) const;
  Bool_t  IsPixelSilent(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) const; // silent = dead or inactive
  Bool_t  IsPixelDead(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) const;
  Bool_t  IsPixelNoisy(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) const;
  Bool_t  IsPixelBadM(UInt_t module, UInt_t colM, UInt_t row) const;
  Bool_t  IsPixelSilentM(UInt_t module, UInt_t colM, UInt_t row) const;
  Bool_t  IsPixelDeadM(UInt_t module, UInt_t colM, UInt_t row) const;
  Bool_t  IsPixelNoisyM(UInt_t module, UInt_t colM, UInt_t row) const;
  Bool_t  IsPixelBadKey(Int_t key) const;
  Bool_t  IsPixelSilentKey(Int_t key) const;
  Bool_t  IsPixelDeadKey(Int_t key) const;
  Bool_t  IsPixelNoisyKey(Int_t key) const;

  UInt_t  GetNrBad() const; // bad = silent or noisy
  UInt_t  GetNrSilent() const; // silent = dead or inactive
  UInt_t  GetNrDead() const;
  UInt_t  GetNrSparseDead() const;
  UInt_t  GetDeadEqIdAt(UInt_t index) const;
  UInt_t  GetDeadHSAt(UInt_t index) const;
  UInt_t  GetDeadChipAt(UInt_t index) const;
  UInt_t  GetDeadColAt(UInt_t index) const;
  UInt_t  GetDeadRowAt(UInt_t index) const;
  UInt_t  GetNrNoisy() const;
  UInt_t  GetNoisyEqIdAt(UInt_t index) const;
  UInt_t  GetNoisyHSAt(UInt_t index) const;
  UInt_t  GetNoisyChipAt(UInt_t index) const;
  UInt_t  GetNoisyColAt(UInt_t index) const;
  UInt_t  GetNoisyRowAt(UInt_t index) const;


  UInt_t  GetNrBad(UInt_t module) const; // bad = silent or noisy
  UInt_t  GetNrSilent(UInt_t module) const; // silent = dead or inactive
  UInt_t  GetNrDead(UInt_t module) const;
  UInt_t  GetNrSparseDead(UInt_t module) const;
  UInt_t  GetNrDeadSingle(UInt_t module) const;
  UInt_t  GetDeadEqIdAt(UInt_t module,UInt_t index) const;
  UInt_t  GetDeadHSAt(UInt_t module,UInt_t index) const;
  UInt_t  GetDeadChipAt(UInt_t module,UInt_t index) const;
  UInt_t  GetDeadColAt(UInt_t module,UInt_t index) const;
  UInt_t  GetDeadRowAt(UInt_t module,UInt_t index) const;
  UInt_t  GetNrNoisy(UInt_t module) const;
  UInt_t  GetNrNoisySingle(UInt_t module) const;
  UInt_t  GetNoisyEqIdAt(UInt_t module, UInt_t index) const;
  UInt_t  GetNoisyHSAt(UInt_t module, UInt_t index) const;
  UInt_t  GetNoisyChipAt(UInt_t module, UInt_t index) const;
  UInt_t  GetNoisyColAt(UInt_t module, UInt_t index) const;
  UInt_t  GetNoisyRowAt(UInt_t module, UInt_t index) const;

  UInt_t  GetNrBadEq(UInt_t eq) const; // bad = silent or noisy
  UInt_t  GetNrSilentEq(UInt_t eq) const; // silent = dead or inactive
  UInt_t  GetNrDeadEq(UInt_t eq) const;
  UInt_t  GetNrSparseDeadEq(UInt_t eq) const;
  UInt_t  GetDeadEqIdAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetDeadHSAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetDeadChipAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetDeadColAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetDeadRowAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetNrNoisyEq(UInt_t eq) const;
  UInt_t  GetNoisyEqIdAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetNoisyHSAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetNoisyChipAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetNoisyColAtEq(UInt_t eq, UInt_t index) const;
  UInt_t  GetNoisyRowAtEq(UInt_t eq, UInt_t index) const;

  UInt_t  GetNrBadC(UInt_t eq, UInt_t hs, UInt_t chip) const; // bad = silent or noisy
  UInt_t  GetNrSilentC(UInt_t eq, UInt_t hs, UInt_t chip) const; // silent = dead or inactive
  UInt_t  GetNrDeadC(UInt_t eq, UInt_t hs, UInt_t chip) const;
  UInt_t  GetNrSparseDeadC(UInt_t eq, UInt_t hs, UInt_t chip) const;
  UInt_t  GetDeadEqIdAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetDeadHSAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetDeadChipAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetDeadColAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetDeadRowAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetNrNoisyC(UInt_t eq, UInt_t hs, UInt_t chip) const;
  UInt_t  GetNoisyEqIdAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetNoisyHSAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetNoisyChipAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetNoisyColAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  UInt_t  GetNoisyRowAtC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;

  const Char_t* GetDeadPixelAsTextC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;
  const Char_t* GetNoisyPixelAsTextC(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t index) const;

  void    ActivateALL();
  void    ActivateEq(UInt_t eq, Bool_t setval = kTRUE);
  void    ActivateHS(UInt_t eq, UInt_t hs, Bool_t setval = kTRUE);
  void    ActivateChip(UInt_t eq, UInt_t hs, UInt_t chip, Bool_t setval = kTRUE);

  void    UnSetDeadALL();
  void    SetDeadEq(UInt_t eq, Bool_t setval = kTRUE);
  void    SetDeadHS(UInt_t eq, UInt_t hs, Bool_t setval = kTRUE);
  void    SetDeadChip(UInt_t eq, UInt_t hs, UInt_t chip, Bool_t setval = kTRUE);

  Bool_t  IsActiveEq(UInt_t eq) const;
  Bool_t  IsActiveHS(UInt_t eq, UInt_t hs) const;
  Bool_t  IsActiveChip(UInt_t eq, UInt_t hs, UInt_t chip) const;

  Bool_t  IsDeadEq(UInt_t eq) const;
  Bool_t  IsDeadHS(UInt_t eq, UInt_t hs) const;
  Bool_t  IsDeadChip(UInt_t eq, UInt_t hs, UInt_t chip) const;

  Bool_t  IsSilentEq(UInt_t eq) const;
  Bool_t  IsSilentHS(UInt_t eq, UInt_t hs) const;
  Bool_t  IsSilentChip(UInt_t eq, UInt_t hs, UInt_t chip) const;

  Bool_t  IsNoisyChip(UInt_t eq, UInt_t hs, UInt_t chip) const; 

  UInt_t  AddSilentFrom(AliITSOnlineCalibrationSPDhandler* other);
  UInt_t  AddDeadFrom(const AliITSOnlineCalibrationSPDhandler* other);
  UInt_t  AddNoisyFrom(const AliITSOnlineCalibrationSPDhandler* other);

  UInt_t  GetNrDiff(AliITSOnlineCalibrationSPDhandler* other) const;
  UInt_t  GetNrSilentDiff(AliITSOnlineCalibrationSPDhandler* other) const;
  UInt_t  GetNrDeadDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  UInt_t  GetNrNoisyDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  AliITSOnlineCalibrationSPDhandler* GetDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  AliITSOnlineCalibrationSPDhandler* GetSilentDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  AliITSOnlineCalibrationSPDhandler* GetDeadDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  AliITSOnlineCalibrationSPDhandler* GetNoisyDiff(const AliITSOnlineCalibrationSPDhandler* other) const;
  AliITSTriggerConditions * GetTriggerConditions() const {return fTriggerConditions;}

  void PrintDiffInDead(AliITSOnlineCalibrationSPDhandler *other) const;
  void PrintDiffInPITmask(AliITSOnlineCalibrationSPDhandler *other) const;

 private:
  TString fFileLocation;              // location (dir) of files to read and write from
  AliITSIntMap* fDeadPixelMap[1200];  // lists of dead pixels for each chip
  AliITSIntMap* fSparseDeadPixelMap[1200];  // lists of dead pixels for each chip (used to define sparse dead pixel on LHC period basis)
  AliITSIntMap* fNoisyPixelMap[1200]; // lists of noisy pixels for each chip
  UInt_t fNrDead[1200];               // nr of dead pixels for each chip
  UInt_t fNrSparseDead[1200];         // nr of sparse dead pixels for each chip
  UInt_t fNrNoisy[1200];              // nr of noisy pixels for each chip
  Bool_t fActiveEq[20];               // active bit for each equipment
  Bool_t fActiveHS[20][6];            // active bit for each half-stave
  Bool_t fActiveChip[20][6][10];      // active bit for each chip
  Bool_t fDeadEq[20];                 // dead bit for each equipment
  Bool_t fDeadHS[20][6];              // dead bit for each half-stave
  Bool_t fDeadChip[20][6][10];        // dead bit for each chip
  AliITSTriggerConditions *fTriggerConditions; // PIT conditions (mask, parameters name, parameters values)


  Int_t    GetKey(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) const 
    {return eq*6*10*32*256 + hs*10*32*256 + chip*32*256 + col*256 + row;}
  UInt_t   GetEqIdFromKey(Int_t key) const 
    {return key/(6*10*32*256);}
  UInt_t   GetHSFromKey(Int_t key) const 
    {return (key%(6*10*32*256))/(10*32*256);}
  UInt_t   GetChipFromKey(Int_t key) const 
    {return ((key%(6*10*32*256))%(10*32*256))/(32*256);}
  UInt_t   GetColFromKey(Int_t key) const 
    {return (((key%(6*10*32*256))%(10*32*256))%(32*256))/256;}
  UInt_t   GetRowFromKey(Int_t key) const 
    {return (((key%(6*10*32*256))%(10*32*256))%(32*256))%256;}
  UInt_t   GetModuleFromKey(Int_t key) const
    {return AliITSRawStreamSPD::GetOfflineModuleFromOnline(GetEqIdFromKey(key),GetHSFromKey(key),GetChipFromKey(key));}
  UInt_t   GetColMFromKey(Int_t key) const 
    {return AliITSRawStreamSPD::GetOfflineColFromOnline(GetEqIdFromKey(key),GetHSFromKey(key),GetChipFromKey(key),GetColFromKey(key));}
  UInt_t   GetRowMFromKey(Int_t key) const 
    {return AliITSRawStreamSPD::GetOfflineRowFromOnline(GetEqIdFromKey(key),GetHSFromKey(key),GetChipFromKey(key),GetRowFromKey(key));}
  
  UInt_t   GetGloChip(UInt_t eq, UInt_t hs, UInt_t chip) const {return eq*60 + hs*10 + chip;}
  UInt_t   GetEqGlo(UInt_t gloChip) const {return gloChip/60;}
  UInt_t   GetHSGlo(UInt_t gloChip) const {return (gloChip%60)/10;}
  UInt_t   GetChipGlo(UInt_t gloChip) const {return (gloChip%60)%10;}

  void     GetChipAndIndexDead(UInt_t module, UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;
  void     GetChipAndIndexNoisy(UInt_t module, UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;
  void     GetChipAndIndexEqDead(UInt_t eq, UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;
  void     GetChipAndIndexEqNoisy(UInt_t eq, UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;
  void     GetChipAndIndexTotDead(UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;
  void     GetChipAndIndexTotNoisy(UInt_t index, UInt_t& gloChip, UInt_t& chipIndex) const;

  UInt_t   GetEqIdFromOffline(UInt_t module) const;
  UInt_t   GetHSFromOffline(UInt_t module) const;
  UInt_t   GetChipFromOffline(UInt_t module, UInt_t colM) const;
  UInt_t   GetColFromOffline(UInt_t module, UInt_t colM) const;
  UInt_t   GetRowFromOffline(UInt_t module, UInt_t rowM) const;

  void     RecursiveInsertDead(AliITSCalibrationSPD* calibSPD, UInt_t module, Int_t lowInd, Int_t highInd);
  void     RecursiveInsertSparseDead(AliITSCalibrationSPD* calibSPD, UInt_t module, Int_t lowInd, Int_t highInd);
  void     RecursiveInsertNoisy(AliITSCalibrationSPD* calibSPD, UInt_t module, Int_t lowInd, Int_t highInd);

  UInt_t   GetNrDeadC2(UInt_t gloChip) const;
  UInt_t   GetNrSparseDeadC2(UInt_t gloChip) const;
  UInt_t   GetDeadEqIdAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetDeadHSAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetDeadChipAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetDeadColAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetDeadRowAtC2(UInt_t gloChip, UInt_t index) const;	  
  UInt_t   GetNrNoisyC2(UInt_t gloChip) const;
  UInt_t   GetNoisyEqIdAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetNoisyHSAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetNoisyChipAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetNoisyColAtC2(UInt_t gloChip, UInt_t index) const;
  UInt_t   GetNoisyRowAtC2(UInt_t gloChip, UInt_t index) const;

};

#endif
 AliITSOnlineCalibrationSPDhandler.h:1
 AliITSOnlineCalibrationSPDhandler.h:2
 AliITSOnlineCalibrationSPDhandler.h:3
 AliITSOnlineCalibrationSPDhandler.h:4
 AliITSOnlineCalibrationSPDhandler.h:5
 AliITSOnlineCalibrationSPDhandler.h:6
 AliITSOnlineCalibrationSPDhandler.h:7
 AliITSOnlineCalibrationSPDhandler.h:8
 AliITSOnlineCalibrationSPDhandler.h:9
 AliITSOnlineCalibrationSPDhandler.h:10
 AliITSOnlineCalibrationSPDhandler.h:11
 AliITSOnlineCalibrationSPDhandler.h:12
 AliITSOnlineCalibrationSPDhandler.h:13
 AliITSOnlineCalibrationSPDhandler.h:14
 AliITSOnlineCalibrationSPDhandler.h:15
 AliITSOnlineCalibrationSPDhandler.h:16
 AliITSOnlineCalibrationSPDhandler.h:17
 AliITSOnlineCalibrationSPDhandler.h:18
 AliITSOnlineCalibrationSPDhandler.h:19
 AliITSOnlineCalibrationSPDhandler.h:20
 AliITSOnlineCalibrationSPDhandler.h:21
 AliITSOnlineCalibrationSPDhandler.h:22
 AliITSOnlineCalibrationSPDhandler.h:23
 AliITSOnlineCalibrationSPDhandler.h:24
 AliITSOnlineCalibrationSPDhandler.h:25
 AliITSOnlineCalibrationSPDhandler.h:26
 AliITSOnlineCalibrationSPDhandler.h:27
 AliITSOnlineCalibrationSPDhandler.h:28
 AliITSOnlineCalibrationSPDhandler.h:29
 AliITSOnlineCalibrationSPDhandler.h:30
 AliITSOnlineCalibrationSPDhandler.h:31
 AliITSOnlineCalibrationSPDhandler.h:32
 AliITSOnlineCalibrationSPDhandler.h:33
 AliITSOnlineCalibrationSPDhandler.h:34
 AliITSOnlineCalibrationSPDhandler.h:35
 AliITSOnlineCalibrationSPDhandler.h:36
 AliITSOnlineCalibrationSPDhandler.h:37
 AliITSOnlineCalibrationSPDhandler.h:38
 AliITSOnlineCalibrationSPDhandler.h:39
 AliITSOnlineCalibrationSPDhandler.h:40
 AliITSOnlineCalibrationSPDhandler.h:41
 AliITSOnlineCalibrationSPDhandler.h:42
 AliITSOnlineCalibrationSPDhandler.h:43
 AliITSOnlineCalibrationSPDhandler.h:44
 AliITSOnlineCalibrationSPDhandler.h:45
 AliITSOnlineCalibrationSPDhandler.h:46
 AliITSOnlineCalibrationSPDhandler.h:47
 AliITSOnlineCalibrationSPDhandler.h:48
 AliITSOnlineCalibrationSPDhandler.h:49
 AliITSOnlineCalibrationSPDhandler.h:50
 AliITSOnlineCalibrationSPDhandler.h:51
 AliITSOnlineCalibrationSPDhandler.h:52
 AliITSOnlineCalibrationSPDhandler.h:53
 AliITSOnlineCalibrationSPDhandler.h:54
 AliITSOnlineCalibrationSPDhandler.h:55
 AliITSOnlineCalibrationSPDhandler.h:56
 AliITSOnlineCalibrationSPDhandler.h:57
 AliITSOnlineCalibrationSPDhandler.h:58
 AliITSOnlineCalibrationSPDhandler.h:59
 AliITSOnlineCalibrationSPDhandler.h:60
 AliITSOnlineCalibrationSPDhandler.h:61
 AliITSOnlineCalibrationSPDhandler.h:62
 AliITSOnlineCalibrationSPDhandler.h:63
 AliITSOnlineCalibrationSPDhandler.h:64
 AliITSOnlineCalibrationSPDhandler.h:65
 AliITSOnlineCalibrationSPDhandler.h:66
 AliITSOnlineCalibrationSPDhandler.h:67
 AliITSOnlineCalibrationSPDhandler.h:68
 AliITSOnlineCalibrationSPDhandler.h:69
 AliITSOnlineCalibrationSPDhandler.h:70
 AliITSOnlineCalibrationSPDhandler.h:71
 AliITSOnlineCalibrationSPDhandler.h:72
 AliITSOnlineCalibrationSPDhandler.h:73
 AliITSOnlineCalibrationSPDhandler.h:74
 AliITSOnlineCalibrationSPDhandler.h:75
 AliITSOnlineCalibrationSPDhandler.h:76
 AliITSOnlineCalibrationSPDhandler.h:77
 AliITSOnlineCalibrationSPDhandler.h:78
 AliITSOnlineCalibrationSPDhandler.h:79
 AliITSOnlineCalibrationSPDhandler.h:80
 AliITSOnlineCalibrationSPDhandler.h:81
 AliITSOnlineCalibrationSPDhandler.h:82
 AliITSOnlineCalibrationSPDhandler.h:83
 AliITSOnlineCalibrationSPDhandler.h:84
 AliITSOnlineCalibrationSPDhandler.h:85
 AliITSOnlineCalibrationSPDhandler.h:86
 AliITSOnlineCalibrationSPDhandler.h:87
 AliITSOnlineCalibrationSPDhandler.h:88
 AliITSOnlineCalibrationSPDhandler.h:89
 AliITSOnlineCalibrationSPDhandler.h:90
 AliITSOnlineCalibrationSPDhandler.h:91
 AliITSOnlineCalibrationSPDhandler.h:92
 AliITSOnlineCalibrationSPDhandler.h:93
 AliITSOnlineCalibrationSPDhandler.h:94
 AliITSOnlineCalibrationSPDhandler.h:95
 AliITSOnlineCalibrationSPDhandler.h:96
 AliITSOnlineCalibrationSPDhandler.h:97
 AliITSOnlineCalibrationSPDhandler.h:98
 AliITSOnlineCalibrationSPDhandler.h:99
 AliITSOnlineCalibrationSPDhandler.h:100
 AliITSOnlineCalibrationSPDhandler.h:101
 AliITSOnlineCalibrationSPDhandler.h:102
 AliITSOnlineCalibrationSPDhandler.h:103
 AliITSOnlineCalibrationSPDhandler.h:104
 AliITSOnlineCalibrationSPDhandler.h:105
 AliITSOnlineCalibrationSPDhandler.h:106
 AliITSOnlineCalibrationSPDhandler.h:107
 AliITSOnlineCalibrationSPDhandler.h:108
 AliITSOnlineCalibrationSPDhandler.h:109
 AliITSOnlineCalibrationSPDhandler.h:110
 AliITSOnlineCalibrationSPDhandler.h:111
 AliITSOnlineCalibrationSPDhandler.h:112
 AliITSOnlineCalibrationSPDhandler.h:113
 AliITSOnlineCalibrationSPDhandler.h:114
 AliITSOnlineCalibrationSPDhandler.h:115
 AliITSOnlineCalibrationSPDhandler.h:116
 AliITSOnlineCalibrationSPDhandler.h:117
 AliITSOnlineCalibrationSPDhandler.h:118
 AliITSOnlineCalibrationSPDhandler.h:119
 AliITSOnlineCalibrationSPDhandler.h:120
 AliITSOnlineCalibrationSPDhandler.h:121
 AliITSOnlineCalibrationSPDhandler.h:122
 AliITSOnlineCalibrationSPDhandler.h:123
 AliITSOnlineCalibrationSPDhandler.h:124
 AliITSOnlineCalibrationSPDhandler.h:125
 AliITSOnlineCalibrationSPDhandler.h:126
 AliITSOnlineCalibrationSPDhandler.h:127
 AliITSOnlineCalibrationSPDhandler.h:128
 AliITSOnlineCalibrationSPDhandler.h:129
 AliITSOnlineCalibrationSPDhandler.h:130
 AliITSOnlineCalibrationSPDhandler.h:131
 AliITSOnlineCalibrationSPDhandler.h:132
 AliITSOnlineCalibrationSPDhandler.h:133
 AliITSOnlineCalibrationSPDhandler.h:134
 AliITSOnlineCalibrationSPDhandler.h:135
 AliITSOnlineCalibrationSPDhandler.h:136
 AliITSOnlineCalibrationSPDhandler.h:137
 AliITSOnlineCalibrationSPDhandler.h:138
 AliITSOnlineCalibrationSPDhandler.h:139
 AliITSOnlineCalibrationSPDhandler.h:140
 AliITSOnlineCalibrationSPDhandler.h:141
 AliITSOnlineCalibrationSPDhandler.h:142
 AliITSOnlineCalibrationSPDhandler.h:143
 AliITSOnlineCalibrationSPDhandler.h:144
 AliITSOnlineCalibrationSPDhandler.h:145
 AliITSOnlineCalibrationSPDhandler.h:146
 AliITSOnlineCalibrationSPDhandler.h:147
 AliITSOnlineCalibrationSPDhandler.h:148
 AliITSOnlineCalibrationSPDhandler.h:149
 AliITSOnlineCalibrationSPDhandler.h:150
 AliITSOnlineCalibrationSPDhandler.h:151
 AliITSOnlineCalibrationSPDhandler.h:152
 AliITSOnlineCalibrationSPDhandler.h:153
 AliITSOnlineCalibrationSPDhandler.h:154
 AliITSOnlineCalibrationSPDhandler.h:155
 AliITSOnlineCalibrationSPDhandler.h:156
 AliITSOnlineCalibrationSPDhandler.h:157
 AliITSOnlineCalibrationSPDhandler.h:158
 AliITSOnlineCalibrationSPDhandler.h:159
 AliITSOnlineCalibrationSPDhandler.h:160
 AliITSOnlineCalibrationSPDhandler.h:161
 AliITSOnlineCalibrationSPDhandler.h:162
 AliITSOnlineCalibrationSPDhandler.h:163
 AliITSOnlineCalibrationSPDhandler.h:164
 AliITSOnlineCalibrationSPDhandler.h:165
 AliITSOnlineCalibrationSPDhandler.h:166
 AliITSOnlineCalibrationSPDhandler.h:167
 AliITSOnlineCalibrationSPDhandler.h:168
 AliITSOnlineCalibrationSPDhandler.h:169
 AliITSOnlineCalibrationSPDhandler.h:170
 AliITSOnlineCalibrationSPDhandler.h:171
 AliITSOnlineCalibrationSPDhandler.h:172
 AliITSOnlineCalibrationSPDhandler.h:173
 AliITSOnlineCalibrationSPDhandler.h:174
 AliITSOnlineCalibrationSPDhandler.h:175
 AliITSOnlineCalibrationSPDhandler.h:176
 AliITSOnlineCalibrationSPDhandler.h:177
 AliITSOnlineCalibrationSPDhandler.h:178
 AliITSOnlineCalibrationSPDhandler.h:179
 AliITSOnlineCalibrationSPDhandler.h:180
 AliITSOnlineCalibrationSPDhandler.h:181
 AliITSOnlineCalibrationSPDhandler.h:182
 AliITSOnlineCalibrationSPDhandler.h:183
 AliITSOnlineCalibrationSPDhandler.h:184
 AliITSOnlineCalibrationSPDhandler.h:185
 AliITSOnlineCalibrationSPDhandler.h:186
 AliITSOnlineCalibrationSPDhandler.h:187
 AliITSOnlineCalibrationSPDhandler.h:188
 AliITSOnlineCalibrationSPDhandler.h:189
 AliITSOnlineCalibrationSPDhandler.h:190
 AliITSOnlineCalibrationSPDhandler.h:191
 AliITSOnlineCalibrationSPDhandler.h:192
 AliITSOnlineCalibrationSPDhandler.h:193
 AliITSOnlineCalibrationSPDhandler.h:194
 AliITSOnlineCalibrationSPDhandler.h:195
 AliITSOnlineCalibrationSPDhandler.h:196
 AliITSOnlineCalibrationSPDhandler.h:197
 AliITSOnlineCalibrationSPDhandler.h:198
 AliITSOnlineCalibrationSPDhandler.h:199
 AliITSOnlineCalibrationSPDhandler.h:200
 AliITSOnlineCalibrationSPDhandler.h:201
 AliITSOnlineCalibrationSPDhandler.h:202
 AliITSOnlineCalibrationSPDhandler.h:203
 AliITSOnlineCalibrationSPDhandler.h:204
 AliITSOnlineCalibrationSPDhandler.h:205
 AliITSOnlineCalibrationSPDhandler.h:206
 AliITSOnlineCalibrationSPDhandler.h:207
 AliITSOnlineCalibrationSPDhandler.h:208
 AliITSOnlineCalibrationSPDhandler.h:209
 AliITSOnlineCalibrationSPDhandler.h:210
 AliITSOnlineCalibrationSPDhandler.h:211
 AliITSOnlineCalibrationSPDhandler.h:212
 AliITSOnlineCalibrationSPDhandler.h:213
 AliITSOnlineCalibrationSPDhandler.h:214
 AliITSOnlineCalibrationSPDhandler.h:215
 AliITSOnlineCalibrationSPDhandler.h:216
 AliITSOnlineCalibrationSPDhandler.h:217
 AliITSOnlineCalibrationSPDhandler.h:218
 AliITSOnlineCalibrationSPDhandler.h:219
 AliITSOnlineCalibrationSPDhandler.h:220
 AliITSOnlineCalibrationSPDhandler.h:221
 AliITSOnlineCalibrationSPDhandler.h:222
 AliITSOnlineCalibrationSPDhandler.h:223
 AliITSOnlineCalibrationSPDhandler.h:224
 AliITSOnlineCalibrationSPDhandler.h:225
 AliITSOnlineCalibrationSPDhandler.h:226
 AliITSOnlineCalibrationSPDhandler.h:227
 AliITSOnlineCalibrationSPDhandler.h:228
 AliITSOnlineCalibrationSPDhandler.h:229
 AliITSOnlineCalibrationSPDhandler.h:230
 AliITSOnlineCalibrationSPDhandler.h:231
 AliITSOnlineCalibrationSPDhandler.h:232
 AliITSOnlineCalibrationSPDhandler.h:233
 AliITSOnlineCalibrationSPDhandler.h:234
 AliITSOnlineCalibrationSPDhandler.h:235
 AliITSOnlineCalibrationSPDhandler.h:236
 AliITSOnlineCalibrationSPDhandler.h:237
 AliITSOnlineCalibrationSPDhandler.h:238
 AliITSOnlineCalibrationSPDhandler.h:239
 AliITSOnlineCalibrationSPDhandler.h:240
 AliITSOnlineCalibrationSPDhandler.h:241
 AliITSOnlineCalibrationSPDhandler.h:242
 AliITSOnlineCalibrationSPDhandler.h:243
 AliITSOnlineCalibrationSPDhandler.h:244
 AliITSOnlineCalibrationSPDhandler.h:245
 AliITSOnlineCalibrationSPDhandler.h:246
 AliITSOnlineCalibrationSPDhandler.h:247
 AliITSOnlineCalibrationSPDhandler.h:248
 AliITSOnlineCalibrationSPDhandler.h:249
 AliITSOnlineCalibrationSPDhandler.h:250
 AliITSOnlineCalibrationSPDhandler.h:251
 AliITSOnlineCalibrationSPDhandler.h:252
 AliITSOnlineCalibrationSPDhandler.h:253
 AliITSOnlineCalibrationSPDhandler.h:254
 AliITSOnlineCalibrationSPDhandler.h:255
 AliITSOnlineCalibrationSPDhandler.h:256
 AliITSOnlineCalibrationSPDhandler.h:257
 AliITSOnlineCalibrationSPDhandler.h:258
 AliITSOnlineCalibrationSPDhandler.h:259
 AliITSOnlineCalibrationSPDhandler.h:260
 AliITSOnlineCalibrationSPDhandler.h:261
 AliITSOnlineCalibrationSPDhandler.h:262
 AliITSOnlineCalibrationSPDhandler.h:263
 AliITSOnlineCalibrationSPDhandler.h:264
 AliITSOnlineCalibrationSPDhandler.h:265
 AliITSOnlineCalibrationSPDhandler.h:266
 AliITSOnlineCalibrationSPDhandler.h:267
 AliITSOnlineCalibrationSPDhandler.h:268
 AliITSOnlineCalibrationSPDhandler.h:269
 AliITSOnlineCalibrationSPDhandler.h:270
 AliITSOnlineCalibrationSPDhandler.h:271
 AliITSOnlineCalibrationSPDhandler.h:272
 AliITSOnlineCalibrationSPDhandler.h:273
 AliITSOnlineCalibrationSPDhandler.h:274
 AliITSOnlineCalibrationSPDhandler.h:275
 AliITSOnlineCalibrationSPDhandler.h:276
 AliITSOnlineCalibrationSPDhandler.h:277
 AliITSOnlineCalibrationSPDhandler.h:278
 AliITSOnlineCalibrationSPDhandler.h:279
 AliITSOnlineCalibrationSPDhandler.h:280
 AliITSOnlineCalibrationSPDhandler.h:281
 AliITSOnlineCalibrationSPDhandler.h:282
 AliITSOnlineCalibrationSPDhandler.h:283
 AliITSOnlineCalibrationSPDhandler.h:284
 AliITSOnlineCalibrationSPDhandler.h:285
 AliITSOnlineCalibrationSPDhandler.h:286
 AliITSOnlineCalibrationSPDhandler.h:287
 AliITSOnlineCalibrationSPDhandler.h:288
 AliITSOnlineCalibrationSPDhandler.h:289
 AliITSOnlineCalibrationSPDhandler.h:290
 AliITSOnlineCalibrationSPDhandler.h:291
 AliITSOnlineCalibrationSPDhandler.h:292
 AliITSOnlineCalibrationSPDhandler.h:293
 AliITSOnlineCalibrationSPDhandler.h:294
 AliITSOnlineCalibrationSPDhandler.h:295
 AliITSOnlineCalibrationSPDhandler.h:296
 AliITSOnlineCalibrationSPDhandler.h:297
 AliITSOnlineCalibrationSPDhandler.h:298
 AliITSOnlineCalibrationSPDhandler.h:299
 AliITSOnlineCalibrationSPDhandler.h:300
 AliITSOnlineCalibrationSPDhandler.h:301
 AliITSOnlineCalibrationSPDhandler.h:302
 AliITSOnlineCalibrationSPDhandler.h:303
 AliITSOnlineCalibrationSPDhandler.h:304
 AliITSOnlineCalibrationSPDhandler.h:305
 AliITSOnlineCalibrationSPDhandler.h:306
 AliITSOnlineCalibrationSPDhandler.h:307
 AliITSOnlineCalibrationSPDhandler.h:308
 AliITSOnlineCalibrationSPDhandler.h:309
 AliITSOnlineCalibrationSPDhandler.h:310
 AliITSOnlineCalibrationSPDhandler.h:311
 AliITSOnlineCalibrationSPDhandler.h:312
 AliITSOnlineCalibrationSPDhandler.h:313
 AliITSOnlineCalibrationSPDhandler.h:314
 AliITSOnlineCalibrationSPDhandler.h:315
 AliITSOnlineCalibrationSPDhandler.h:316
 AliITSOnlineCalibrationSPDhandler.h:317