Decoupled ITS/UPGRADE cmake stuff from ITS
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSCalibrationPixUpg.h
1 #ifndef ALIITSCALIBRATIONPIXUPG_H
2 #define ALIITSCALIBRATIONPIXUPG_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliITSCalibrationPixUpg.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 AliITSCalibrationPixUpg :  public AliITSCalibration {
17  public:
18     AliITSCalibrationPixUpg(); // default constructor
19     AliITSCalibrationPixUpg(Short_t nChips,Short_t nColPerChip,Short_t nRow); // default constructor
20     AliITSCalibrationPixUpg(const AliITSCalibrationPixUpg &src);
21     //    
22     virtual ~AliITSCalibrationPixUpg() {;} // 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
34     virtual Int_t  GetNrBadSingle() const {return fNrBad;}
35     virtual void   SetNrBadSingle(Int_t nr) {fNrBad=nr;} // used to be called SetNrBad, but misleading
36     virtual void   SetBadList(TArrayS badlist) {fBadChannels=badlist;}
37     virtual void   SetNrBad(Int_t /*nr*/); // Use SetNrBadSingle!!!
38
39     virtual Bool_t IsBad() const;
40     virtual Bool_t IsChipBad(Int_t chip) const;
41     virtual Bool_t IsColumnBad(Int_t col) const;
42     virtual Bool_t IsPixelBad(Int_t col, Int_t row) const;
43
44     virtual void   SetChipBad(Int_t chip);
45     virtual void   UnSetChipBad(Int_t chip);
46     Bool_t         IsChipMarkedBad(Int_t c) const {return (fBadChips&(0x1<<c))!=0;}
47
48     virtual void   AddBad(Int_t col, Int_t row);
49
50     virtual Int_t  GetChipIndexFromCol(Int_t col) const;
51     //    virtual Int_t  GetChipFromChipIndex(Int_t index) const;
52
53     virtual void   GiveCompressParam(Int_t *)   const {NotImplemented("GiveCompressParam");}
54     virtual void   SetDetParam(Double_t *)            {NotImplemented("SetDetParam");}
55     virtual void   GetDetParam(Double_t *)      const {NotImplemented("GetDetParam");}
56     virtual void   SetNDetParam(Int_t /*n*/)          {NotImplemented("SetNDetParam");}
57     virtual Int_t  NDetParam()                  const {NotImplemented("NDetParam"); return 0;}
58     virtual void   SetSigmaSpread(Double_t, Double_t) {NotImplemented("SetSigmaSpread");}
59     virtual void   SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const {NotImplemented("SigmaSpread");}
60     //
61     void    SetColRowData(Short_t nchip, Short_t ncolperchip, Short_t nrow);
62     Int_t   GetNCol()         const {return fNCol;}
63     Int_t   GetNRow()         const {return fNRow;}
64     Int_t   GetNColPerChip()  const {return fNColPerChip;}
65     Int_t   GetNChips()       const {return fNChips;}
66     //
67  protected:
68     Short_t  fNChips;          // n of chips
69     Short_t  fNColPerChip;     // n of columns per chip
70     Short_t  fNCol;            // number of columns
71     Short_t  fNRow;            // number of rows
72     Int_t    fNrBad;           // Nr of SINGLE bad pixels
73     UInt_t   fBadChips;        // bit pattern of completely dead chips?
74     TArrayS  fBadChannels;     // Array with bad channels info (col0,row0,col1...rowN) N = fNrBad
75     //
76     AliITSCalibrationPixUpg& operator=(const AliITSCalibrationPixUpg& source);
77     //
78     ClassDef(AliITSCalibrationPixUpg,1) // pixels response
79 };
80
81 #endif