ROOT logo
#include "AliITSOnlineCalibrationSPD.h"

///////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                            //
// Implementation of the online container for dead and noisy pixels. //
//                                                                   //
///////////////////////////////////////////////////////////////////////

ClassImp(AliITSOnlineCalibrationSPD)	

AliITSOnlineCalibrationSPD::AliITSOnlineCalibrationSPD():
fEqNr(0),
fNrBad(0),
fBadChannels(0),
fActiveEq(kTRUE),
fDeadEq(kFALSE)
{
  ActivateALL();
  UnSetDeadALL();
}
//____________________________________________________________________________
Int_t AliITSOnlineCalibrationSPD::GetKeyAt(UInt_t index) const {
  // Get key of index-th bad pixel
  if (index<fNrBad) {
    return fBadChannels.At(index);
  }
  return -1;
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::ActivateALL() {
  // activate eq, all hs, all chips
  ActivateEq();
  for (UInt_t hs=0; hs<6; hs++) {
    ActivateHS(hs);
    for (UInt_t chip=0; chip<10; chip++) {
      ActivateChip(hs,chip);
    }
  }
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::ActivateEq(Bool_t setval) {
  // activate this eq
  fActiveEq = setval;
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::ActivateHS(UInt_t hs, Bool_t setval) {
  // activate hs on this eq
  if (hs>=6) {
    Error("AliITSOnlineCalibrationSPD::ActivateHS", "hs (%d) out of bounds.",hs);
    return;
  }
  fActiveHS[hs] = setval;
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::ActivateChip(UInt_t hs, UInt_t chip, Bool_t setval) {
  // activate chip on this eq
  if (hs>=6 || chip>=10) {
    Error("AliITSOnlineCalibrationSPD::ActivateChip", "hs,chip (%d,%d) out of bounds.",hs,chip);
    return;
  }
  fActiveChip[hs*10+chip] = setval;
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsActiveEq() const {
  // is this eq active?
  return fActiveEq;
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsActiveHS(UInt_t hs) const {
  // is this hs active?
  if (hs>=6) {
    Error("AliITSOnlineCalibrationSPD::IsActiveHS", "hs (%d) out of bounds.",hs);
    return kFALSE;
  }
  return fActiveHS[hs];
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsActiveChip(UInt_t hs, UInt_t chip) const {
  // is this chip active?
  if (hs>=6 || chip>=10) {
    Error("AliITSOnlineCalibrationSPD::IsActiveChip", "hs,chip (%d,%d) out of bounds.",hs,chip);
    return kFALSE;
  }
  return fActiveChip[hs*10+chip];
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::UnSetDeadALL() {
  // activate eq, all hs, all chips
  SetDeadEq(kFALSE);
  for (UInt_t hs=0; hs<6; hs++) {
    SetDeadHS(hs,kFALSE);
    for (UInt_t chip=0; chip<10; chip++) {
      SetDeadChip(hs,chip,kFALSE);
    }
  }
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::SetDeadEq(Bool_t setval) {
  // set this eq dead
  fDeadEq = setval;
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::SetDeadHS(UInt_t hs, Bool_t setval) {
  // set dead hs on this eq
  if (hs>=6) {
    Error("AliITSOnlineCalibrationSPD::SetDeadHS", "hs (%d) out of bounds.",hs);
    return;
  }
  fDeadHS[hs] = setval;
}
//____________________________________________________________________________
void AliITSOnlineCalibrationSPD::SetDeadChip(UInt_t hs, UInt_t chip, Bool_t setval) {
  // set dead chip on this eq
  if (hs>=6 || chip>=10) {
    Error("AliITSOnlineCalibrationSPD::SetDeadChip", "hs,chip (%d,%d) out of bounds.",hs,chip);
    return;
  }
  fDeadChip[hs*10+chip] = setval;
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsDeadEq() const {
  // is this eq dead?
  return fDeadEq;
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsDeadHS(UInt_t hs) const {
  // is this hs dead?
  if (hs>=6) {
    Error("AliITSOnlineCalibrationSPD::IsDeadHS", "hs (%d) out of bounds.",hs);
    return kFALSE;
  }
  return fDeadHS[hs];
}
//____________________________________________________________________________
Bool_t AliITSOnlineCalibrationSPD::IsDeadChip(UInt_t hs, UInt_t chip) const {
  // is this chip dead?
  if (hs>=6 || chip>=10) {
    Error("AliITSOnlineCalibrationSPD::IsDeadChip", "hs,chip (%d,%d) out of bounds.",hs,chip);
    return kFALSE;
  }
  return fDeadChip[hs*10+chip];
}
 AliITSOnlineCalibrationSPD.cxx:1
 AliITSOnlineCalibrationSPD.cxx:2
 AliITSOnlineCalibrationSPD.cxx:3
 AliITSOnlineCalibrationSPD.cxx:4
 AliITSOnlineCalibrationSPD.cxx:5
 AliITSOnlineCalibrationSPD.cxx:6
 AliITSOnlineCalibrationSPD.cxx:7
 AliITSOnlineCalibrationSPD.cxx:8
 AliITSOnlineCalibrationSPD.cxx:9
 AliITSOnlineCalibrationSPD.cxx:10
 AliITSOnlineCalibrationSPD.cxx:11
 AliITSOnlineCalibrationSPD.cxx:12
 AliITSOnlineCalibrationSPD.cxx:13
 AliITSOnlineCalibrationSPD.cxx:14
 AliITSOnlineCalibrationSPD.cxx:15
 AliITSOnlineCalibrationSPD.cxx:16
 AliITSOnlineCalibrationSPD.cxx:17
 AliITSOnlineCalibrationSPD.cxx:18
 AliITSOnlineCalibrationSPD.cxx:19
 AliITSOnlineCalibrationSPD.cxx:20
 AliITSOnlineCalibrationSPD.cxx:21
 AliITSOnlineCalibrationSPD.cxx:22
 AliITSOnlineCalibrationSPD.cxx:23
 AliITSOnlineCalibrationSPD.cxx:24
 AliITSOnlineCalibrationSPD.cxx:25
 AliITSOnlineCalibrationSPD.cxx:26
 AliITSOnlineCalibrationSPD.cxx:27
 AliITSOnlineCalibrationSPD.cxx:28
 AliITSOnlineCalibrationSPD.cxx:29
 AliITSOnlineCalibrationSPD.cxx:30
 AliITSOnlineCalibrationSPD.cxx:31
 AliITSOnlineCalibrationSPD.cxx:32
 AliITSOnlineCalibrationSPD.cxx:33
 AliITSOnlineCalibrationSPD.cxx:34
 AliITSOnlineCalibrationSPD.cxx:35
 AliITSOnlineCalibrationSPD.cxx:36
 AliITSOnlineCalibrationSPD.cxx:37
 AliITSOnlineCalibrationSPD.cxx:38
 AliITSOnlineCalibrationSPD.cxx:39
 AliITSOnlineCalibrationSPD.cxx:40
 AliITSOnlineCalibrationSPD.cxx:41
 AliITSOnlineCalibrationSPD.cxx:42
 AliITSOnlineCalibrationSPD.cxx:43
 AliITSOnlineCalibrationSPD.cxx:44
 AliITSOnlineCalibrationSPD.cxx:45
 AliITSOnlineCalibrationSPD.cxx:46
 AliITSOnlineCalibrationSPD.cxx:47
 AliITSOnlineCalibrationSPD.cxx:48
 AliITSOnlineCalibrationSPD.cxx:49
 AliITSOnlineCalibrationSPD.cxx:50
 AliITSOnlineCalibrationSPD.cxx:51
 AliITSOnlineCalibrationSPD.cxx:52
 AliITSOnlineCalibrationSPD.cxx:53
 AliITSOnlineCalibrationSPD.cxx:54
 AliITSOnlineCalibrationSPD.cxx:55
 AliITSOnlineCalibrationSPD.cxx:56
 AliITSOnlineCalibrationSPD.cxx:57
 AliITSOnlineCalibrationSPD.cxx:58
 AliITSOnlineCalibrationSPD.cxx:59
 AliITSOnlineCalibrationSPD.cxx:60
 AliITSOnlineCalibrationSPD.cxx:61
 AliITSOnlineCalibrationSPD.cxx:62
 AliITSOnlineCalibrationSPD.cxx:63
 AliITSOnlineCalibrationSPD.cxx:64
 AliITSOnlineCalibrationSPD.cxx:65
 AliITSOnlineCalibrationSPD.cxx:66
 AliITSOnlineCalibrationSPD.cxx:67
 AliITSOnlineCalibrationSPD.cxx:68
 AliITSOnlineCalibrationSPD.cxx:69
 AliITSOnlineCalibrationSPD.cxx:70
 AliITSOnlineCalibrationSPD.cxx:71
 AliITSOnlineCalibrationSPD.cxx:72
 AliITSOnlineCalibrationSPD.cxx:73
 AliITSOnlineCalibrationSPD.cxx:74
 AliITSOnlineCalibrationSPD.cxx:75
 AliITSOnlineCalibrationSPD.cxx:76
 AliITSOnlineCalibrationSPD.cxx:77
 AliITSOnlineCalibrationSPD.cxx:78
 AliITSOnlineCalibrationSPD.cxx:79
 AliITSOnlineCalibrationSPD.cxx:80
 AliITSOnlineCalibrationSPD.cxx:81
 AliITSOnlineCalibrationSPD.cxx:82
 AliITSOnlineCalibrationSPD.cxx:83
 AliITSOnlineCalibrationSPD.cxx:84
 AliITSOnlineCalibrationSPD.cxx:85
 AliITSOnlineCalibrationSPD.cxx:86
 AliITSOnlineCalibrationSPD.cxx:87
 AliITSOnlineCalibrationSPD.cxx:88
 AliITSOnlineCalibrationSPD.cxx:89
 AliITSOnlineCalibrationSPD.cxx:90
 AliITSOnlineCalibrationSPD.cxx:91
 AliITSOnlineCalibrationSPD.cxx:92
 AliITSOnlineCalibrationSPD.cxx:93
 AliITSOnlineCalibrationSPD.cxx:94
 AliITSOnlineCalibrationSPD.cxx:95
 AliITSOnlineCalibrationSPD.cxx:96
 AliITSOnlineCalibrationSPD.cxx:97
 AliITSOnlineCalibrationSPD.cxx:98
 AliITSOnlineCalibrationSPD.cxx:99
 AliITSOnlineCalibrationSPD.cxx:100
 AliITSOnlineCalibrationSPD.cxx:101
 AliITSOnlineCalibrationSPD.cxx:102
 AliITSOnlineCalibrationSPD.cxx:103
 AliITSOnlineCalibrationSPD.cxx:104
 AliITSOnlineCalibrationSPD.cxx:105
 AliITSOnlineCalibrationSPD.cxx:106
 AliITSOnlineCalibrationSPD.cxx:107
 AliITSOnlineCalibrationSPD.cxx:108
 AliITSOnlineCalibrationSPD.cxx:109
 AliITSOnlineCalibrationSPD.cxx:110
 AliITSOnlineCalibrationSPD.cxx:111
 AliITSOnlineCalibrationSPD.cxx:112
 AliITSOnlineCalibrationSPD.cxx:113
 AliITSOnlineCalibrationSPD.cxx:114
 AliITSOnlineCalibrationSPD.cxx:115
 AliITSOnlineCalibrationSPD.cxx:116
 AliITSOnlineCalibrationSPD.cxx:117
 AliITSOnlineCalibrationSPD.cxx:118
 AliITSOnlineCalibrationSPD.cxx:119
 AliITSOnlineCalibrationSPD.cxx:120
 AliITSOnlineCalibrationSPD.cxx:121
 AliITSOnlineCalibrationSPD.cxx:122
 AliITSOnlineCalibrationSPD.cxx:123
 AliITSOnlineCalibrationSPD.cxx:124
 AliITSOnlineCalibrationSPD.cxx:125
 AliITSOnlineCalibrationSPD.cxx:126
 AliITSOnlineCalibrationSPD.cxx:127
 AliITSOnlineCalibrationSPD.cxx:128
 AliITSOnlineCalibrationSPD.cxx:129
 AliITSOnlineCalibrationSPD.cxx:130
 AliITSOnlineCalibrationSPD.cxx:131
 AliITSOnlineCalibrationSPD.cxx:132
 AliITSOnlineCalibrationSPD.cxx:133
 AliITSOnlineCalibrationSPD.cxx:134
 AliITSOnlineCalibrationSPD.cxx:135
 AliITSOnlineCalibrationSPD.cxx:136
 AliITSOnlineCalibrationSPD.cxx:137
 AliITSOnlineCalibrationSPD.cxx:138
 AliITSOnlineCalibrationSPD.cxx:139
 AliITSOnlineCalibrationSPD.cxx:140
 AliITSOnlineCalibrationSPD.cxx:141
 AliITSOnlineCalibrationSPD.cxx:142