-#ifndef ALI_ITS_ONLINECALIBRATIONSPDHANDLER_H
-#define ALI_ITS_ONLINECALIBRATIONSPDHANDLER_H
+#ifndef ALIITSONLINECALIBRATIONSPDHANDLER_H
+#define ALIITSONLINECALIBRATIONSPDHANDLER_H
-//////////////////////////////////////////////////////////////////////
-// Author: Henrik Tydesjo //
-// Class that simplifies the managing of dead and noisy pixels. //
-// Interface to the AliITSOnlineCalibrationSPD container object //
-// through reading and writing to TFile. //
-//////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+// 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 "AliITSIntMap.h"
+#include "AliITSRawStreamSPD.h"
+#include <TString.h>
class TArrayI;
+class TArrayS;
+class AliITSIntMap;
+class AliITSTriggerConditions;
+class AliITSCalibrationSPD;
class AliITSOnlineCalibrationSPDhandler {
public:
AliITSOnlineCalibrationSPDhandler();
- AliITSOnlineCalibrationSPDhandler(UInt_t module);
AliITSOnlineCalibrationSPDhandler(const AliITSOnlineCalibrationSPDhandler& handle);
virtual ~AliITSOnlineCalibrationSPDhandler();
AliITSOnlineCalibrationSPDhandler& operator=(const AliITSOnlineCalibrationSPDhandler& handle);
- void ClearMaps();
- void WriteToFile();
- void WriteToFile(Char_t* fileName);
- void ReadFromFile();
- void ReadDeadFromFile();
- void ReadNoisyFromFile();
- void ReadFromFile(Char_t* fileName);
- void ReadDeadFromFile(Char_t* fileName);
- void ReadNoisyFromFile(Char_t* fileName);
- void SetModuleNr(UInt_t mod) {fModuleNr=mod;}
- UInt_t GetModuleNr() const {return fModuleNr;}
- void SetFileLocation(Char_t* loc) {sprintf(fFileLocation,"%s",loc);}
- UInt_t GetNrDead() const {return fDeadPixelMap.GetNrEntries();}
- UInt_t GetNrNoisy() const {return fNoisyPixelMap.GetNrEntries();}
- TArrayI GetDeadArray();
- TArrayI GetNoisyArray();
+ void SetFileLocation(const Char_t* loc) {fFileLocation = loc;}
+ TString GetFileLocation() const {return fFileLocation;}
+ void ClearMaps();
void ResetDead();
- Bool_t SetDeadPixel(Int_t col, Int_t row);
- Int_t GetDeadColAt(UInt_t index) const;
- Int_t GetDeadRowAt(UInt_t index) const;
- Bool_t IsPixelDead(Int_t col, Int_t row) const;
void ResetNoisy();
- Bool_t SetNoisyPixel(Int_t col, Int_t row);
- Int_t GetNoisyColAt(UInt_t index) const;
- Int_t GetNoisyRowAt(UInt_t index) const;
- Bool_t IsPixelNoisy(Int_t col, Int_t row) const;
+ 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:
- UInt_t fModuleNr; // module nr
- AliITSIntMap fDeadPixelMap; // list of dead pixels
- AliITSIntMap fNoisyPixelMap; // list of noisy pixels
- Char_t fFileLocation[200]; // location (dir) of file to read and write from
-
- Int_t GetKey(Int_t col, Int_t row) const {return col*256 + row;}
- Int_t GetColFromKey(Int_t key) const {return key/256;}
- Int_t GetRowFromKey(Int_t key) const {return key%256;}
+ 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;
};