New SPD pre-processor (H. Tydesjo)
[u/mrichter/AliRoot.git] / ITS / AliITSOnlineCalibrationSPD.cxx
1 #include "AliITSOnlineCalibrationSPD.h"
2
3 ///////////////////////////////////////////////////////////////////////
4 // Author: Henrik Tydesjo                                            //
5 // Implementation of the online container for dead and noisy pixels. //
6 //                                                                   //
7 ///////////////////////////////////////////////////////////////////////
8
9 ClassImp(AliITSOnlineCalibrationSPD)    
10
11 AliITSOnlineCalibrationSPD::AliITSOnlineCalibrationSPD():
12 fModuleNr(0),
13 fNrDead(0),
14 fDeadChannels(0),
15 fNrNoisy(0),
16 fNoisyChannels(0)
17 {}
18 //_________________________________________________________________________
19 void AliITSOnlineCalibrationSPD::AddDead(UInt_t col, UInt_t row) {
20   //
21   // Add a dead channel to fDeadChannel array
22   //
23   fDeadChannels.Set(fNrDead*2+2);
24   fDeadChannels.AddAt(col,fNrDead*2);
25   fDeadChannels.AddAt(row,fNrDead*2+1);
26   fNrDead++;
27 }
28 //_________________________________________________________________________
29 Int_t AliITSOnlineCalibrationSPD::GetDeadColAt(UInt_t index) const {
30   // 
31   // Returns column of index-th dead channel
32   //
33   if (index<fNrDead) {
34     return fDeadChannels.At(index*2);
35   }
36   return -1;
37 }
38 //_________________________________________________________________________
39 Int_t AliITSOnlineCalibrationSPD::GetDeadRowAt(UInt_t index) const {
40   // 
41   // Returns row of index-th dead channel
42   //
43   if (index<fNrDead) {
44     return fDeadChannels.At(index*2+1);
45   }
46   return -1;
47 }
48 //_________________________________________________________________________
49 Bool_t AliITSOnlineCalibrationSPD::IsPixelDead(Int_t col, Int_t row) const {
50   //
51   // Check if pixel (col,row) is dead
52   //
53   for (UInt_t i=0; i<fNrDead; i++) { 
54     if (fDeadChannels.At(i*2)==col && fDeadChannels.At(i*2+1)==row) {
55       return kTRUE;
56     }
57   }
58   return kFALSE;
59 }
60 //____________________________________________________________________________
61 void AliITSOnlineCalibrationSPD::AddNoisy(UInt_t col, UInt_t row) {
62   //
63   // add noisy pixel 
64   //
65   fDeadChannels.Set(fNrNoisy*2+2);
66   fNoisyChannels.AddAt(col,fNrNoisy*2);
67   fNoisyChannels.AddAt(row,fNrNoisy*2+1);
68   fNrNoisy++;
69 }
70 //____________________________________________________________________________
71 Int_t AliITSOnlineCalibrationSPD::GetNoisyColAt(UInt_t index) const {
72   //
73   // Get column of index-th noisy pixel
74   //
75   if (index<fNrNoisy) {
76     return fNoisyChannels.At(index*2);
77   }
78   return -1;
79 }
80 //____________________________________________________________________________
81 Int_t AliITSOnlineCalibrationSPD::GetNoisyRowAt(UInt_t index) const {
82   //
83   // Get row of index-th noisy pixel
84   //
85   if (index<fNrNoisy) {
86     return fNoisyChannels.At(index*2+1);
87   }
88   return -1;
89 }
90 //____________________________________________________________________________
91 Bool_t AliITSOnlineCalibrationSPD::IsPixelNoisy(Int_t col, Int_t row) const {
92   //
93   // Check if pixel (col,row) is noisy
94   //
95   for (UInt_t i=0; i<fNrNoisy; i++) { 
96     if (fNoisyChannels.At(i*2)==col && fNoisyChannels.At(i*2+1)==row) {
97       return kTRUE;
98     }
99   }
100   return kFALSE;
101 }