1f7cf6116b635867ce613333c780efdf285daad9
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUCalibrationPix.h
1 #ifndef ALIITSUCALIBRATIONPIX_H
2 #define ALIITSUCALIBRATIONPIX_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliITSUCalibrationPix.h 53595 2011-12-14 16:13:16Z masera $ */
7 //#include "TRandom.h"
8 #include "AliITSCalibration.h"
9 #include "TArrayS.h"
10
11 ////////////////////////////////////////////////////
12 //                                                //
13 // ITS response class for pixels                  //
14 ////////////////////////////////////////////////////
15
16 class AliITSUCalibrationPix :  public AliITSCalibration {
17  public:
18     AliITSUCalibrationPix(); // default constructor
19     AliITSUCalibrationPix(Short_t nChips,Short_t nColPerChip,Short_t nRow); // default constructor
20     AliITSUCalibrationPix(const AliITSUCalibrationPix &src);
21     //    
22     virtual ~AliITSUCalibrationPix() {;} // destructror
23
24     virtual void   ClearBad();
25
26     virtual Int_t  GetNrBad() const;
27     virtual Int_t  GetNrBadInChip(Int_t chip) const;
28     virtual Int_t  GetNrBadInColumn(Int_t col) const;
29
30     virtual Int_t  GetBadColAt(Int_t index) const;
31     virtual Int_t  GetBadRowAt(Int_t index) const;
32     virtual void   GetBadPixel(Int_t index, Int_t &row, Int_t &col) const;
33     virtual void   GetBadPixelSingle(Int_t i,UInt_t &row, UInt_t &col) const;
34
35     virtual Int_t  GetNrBadSingle() const {return fNrBadSingle;}
36     virtual void   SetNrBadSingle(Int_t nr) {fNrBadSingle=nr;} // used to be called SetNrBad, but misleading
37     virtual void   SetBadList(TArrayS badlist) {fBadChannels=badlist;}
38     virtual void   SetNrBad(Int_t /*nr*/); // Use SetNrBadSingle!!!
39
40     virtual Bool_t IsBad() const;
41     virtual Bool_t IsChipBad(Int_t chip) const;
42     virtual Bool_t IsColumnBad(Int_t col) const;
43     virtual Bool_t IsPixelBad(Int_t col, Int_t row) const;
44
45     virtual void   SetChipBad(Int_t chip);
46     virtual void   UnSetChipBad(Int_t chip);
47     Bool_t         IsChipMarkedBad(Int_t c) const {return (fBadChips&(0x1<<c))!=0;}
48
49     virtual void   AddBad(Int_t col, Int_t row);
50
51     virtual Int_t  GetChipIndexFromCol(Int_t col) const;
52     //    virtual Int_t  GetChipFromChipIndex(Int_t index) const;
53
54     virtual void   GiveCompressParam(Int_t *)   const {NotImplemented("GiveCompressParam");}
55     virtual void   SetDetParam(Double_t *)            {NotImplemented("SetDetParam");}
56     virtual void   GetDetParam(Double_t *)      const {NotImplemented("GetDetParam");}
57     virtual void   SetNDetParam(Int_t /*n*/)          {NotImplemented("SetNDetParam");}
58     virtual Int_t  NDetParam()                  const {NotImplemented("NDetParam"); return 0;}
59     virtual void   SetSigmaSpread(Double_t, Double_t) {NotImplemented("SetSigmaSpread");}
60     virtual void   SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const {NotImplemented("SigmaSpread");}
61     //
62     void    SetColRowData(Short_t nchip, Short_t ncolperchip, Short_t nrow);
63     Int_t   GetNCol()         const {return fNCol;}
64     Int_t   GetNRow()         const {return fNRow;}
65     Int_t   GetNColPerChip()  const {return fNColPerChip;}
66     Int_t   GetNChips()       const {return fNChips;}
67     //
68  protected:
69     Short_t  fNChips;          // n of chips
70     Short_t  fNColPerChip;     // n of columns per chip
71     Short_t  fNCol;            // number of columns
72     Short_t  fNRow;            // number of rows
73     Int_t    fNrBadSingle;     // Nr of SINGLE bad pixels
74     UInt_t   fBadChips;        // bit pattern of completely dead chips?
75     TArrayS  fBadChannels;     // Array with bad channels info (col0,row0,col1...rowN) N = fNrBadSingle
76     //
77     AliITSUCalibrationPix& operator=(const AliITSUCalibrationPix& source);
78     //
79     ClassDef(AliITSUCalibrationPix,1) // pixels response
80 };
81
82 #endif