ROOT logo
#ifndef ALIITSUCALIBRATIONPIX_H
#define ALIITSUCALIBRATIONPIX_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliITSUCalibrationPix.h 53595 2011-12-14 16:13:16Z masera $ */
//#include "TRandom.h"
#include "AliITSCalibration.h"
#include "TArrayS.h"

////////////////////////////////////////////////////
//                                                //
// ITS response class for pixels                  //
////////////////////////////////////////////////////

class AliITSUCalibrationPix :  public AliITSCalibration {
 public:
    AliITSUCalibrationPix(); // default constructor
    AliITSUCalibrationPix(Short_t nChips,Short_t nColPerChip,Short_t nRow); // default constructor
    AliITSUCalibrationPix(const AliITSUCalibrationPix &src);
    //    
    virtual ~AliITSUCalibrationPix() {;} // destructror

    virtual void   ClearBad();

    virtual Int_t  GetNrBad() const;
    virtual Int_t  GetNrBadInChip(Int_t chip) const;
    virtual Int_t  GetNrBadInColumn(Int_t col) const;

    virtual Int_t  GetBadColAt(Int_t index) const;
    virtual Int_t  GetBadRowAt(Int_t index) const;
    virtual void   GetBadPixel(Int_t index, Int_t &row, Int_t &col) const;
    virtual void   GetBadPixelSingle(Int_t i,UInt_t &row, UInt_t &col) const;

    virtual Int_t  GetNrBadSingle() const {return fNrBadSingle;}
    virtual void   SetNrBadSingle(Int_t nr) {fNrBadSingle=nr;} // used to be called SetNrBad, but misleading
    virtual void   SetBadList(TArrayS badlist) {fBadChannels=badlist;}
    virtual void   SetNrBad(Int_t /*nr*/); // Use SetNrBadSingle!!!

    virtual Bool_t IsBad() const;
    virtual Bool_t IsChipBad(Int_t chip) const;
    virtual Bool_t IsColumnBad(Int_t col) const;
    virtual Bool_t IsPixelBad(Int_t col, Int_t row) const;

    virtual void   SetChipBad(Int_t chip);
    virtual void   UnSetChipBad(Int_t chip);
    Bool_t         IsChipMarkedBad(Int_t c) const {return (fBadChips&(0x1<<c))!=0;}

    virtual void   AddBad(Int_t col, Int_t row);

    virtual Int_t  GetChipIndexFromCol(Int_t col) const;
    //    virtual Int_t  GetChipFromChipIndex(Int_t index) const;

    virtual void   GiveCompressParam(Int_t *)   const {NotImplemented("GiveCompressParam");}
    virtual void   SetDetParam(Double_t *)            {NotImplemented("SetDetParam");}
    virtual void   GetDetParam(Double_t *)      const {NotImplemented("GetDetParam");}
    virtual void   SetNDetParam(Int_t /*n*/)          {NotImplemented("SetNDetParam");}
    virtual Int_t  NDetParam()                  const {NotImplemented("NDetParam"); return 0;}
    virtual void   SetSigmaSpread(Double_t, Double_t) {NotImplemented("SetSigmaSpread");}
    virtual void   SigmaSpread(Double_t & /* p1 */,Double_t & /* p2 */) const {NotImplemented("SigmaSpread");}
    //
    void    SetColRowData(Short_t nchip, Short_t ncolperchip, Short_t nrow);
    Int_t   GetNCol()         const {return fNCol;}
    Int_t   GetNRow()         const {return fNRow;}
    Int_t   GetNColPerChip()  const {return fNColPerChip;}
    Int_t   GetNChips()       const {return fNChips;}
    //
 protected:
    Short_t  fNChips;          // n of chips
    Short_t  fNColPerChip;     // n of columns per chip
    Short_t  fNCol;            // number of columns
    Short_t  fNRow;            // number of rows
    Int_t    fNrBadSingle;     // Nr of SINGLE bad pixels
    UInt_t   fBadChips;        // bit pattern of completely dead chips?
    TArrayS  fBadChannels;     // Array with bad channels info (col0,row0,col1...rowN) N = fNrBadSingle
    //
    AliITSUCalibrationPix& operator=(const AliITSUCalibrationPix& source);
    //
    ClassDef(AliITSUCalibrationPix,1) // pixels response
};

#endif
 AliITSUCalibrationPix.h:1
 AliITSUCalibrationPix.h:2
 AliITSUCalibrationPix.h:3
 AliITSUCalibrationPix.h:4
 AliITSUCalibrationPix.h:5
 AliITSUCalibrationPix.h:6
 AliITSUCalibrationPix.h:7
 AliITSUCalibrationPix.h:8
 AliITSUCalibrationPix.h:9
 AliITSUCalibrationPix.h:10
 AliITSUCalibrationPix.h:11
 AliITSUCalibrationPix.h:12
 AliITSUCalibrationPix.h:13
 AliITSUCalibrationPix.h:14
 AliITSUCalibrationPix.h:15
 AliITSUCalibrationPix.h:16
 AliITSUCalibrationPix.h:17
 AliITSUCalibrationPix.h:18
 AliITSUCalibrationPix.h:19
 AliITSUCalibrationPix.h:20
 AliITSUCalibrationPix.h:21
 AliITSUCalibrationPix.h:22
 AliITSUCalibrationPix.h:23
 AliITSUCalibrationPix.h:24
 AliITSUCalibrationPix.h:25
 AliITSUCalibrationPix.h:26
 AliITSUCalibrationPix.h:27
 AliITSUCalibrationPix.h:28
 AliITSUCalibrationPix.h:29
 AliITSUCalibrationPix.h:30
 AliITSUCalibrationPix.h:31
 AliITSUCalibrationPix.h:32
 AliITSUCalibrationPix.h:33
 AliITSUCalibrationPix.h:34
 AliITSUCalibrationPix.h:35
 AliITSUCalibrationPix.h:36
 AliITSUCalibrationPix.h:37
 AliITSUCalibrationPix.h:38
 AliITSUCalibrationPix.h:39
 AliITSUCalibrationPix.h:40
 AliITSUCalibrationPix.h:41
 AliITSUCalibrationPix.h:42
 AliITSUCalibrationPix.h:43
 AliITSUCalibrationPix.h:44
 AliITSUCalibrationPix.h:45
 AliITSUCalibrationPix.h:46
 AliITSUCalibrationPix.h:47
 AliITSUCalibrationPix.h:48
 AliITSUCalibrationPix.h:49
 AliITSUCalibrationPix.h:50
 AliITSUCalibrationPix.h:51
 AliITSUCalibrationPix.h:52
 AliITSUCalibrationPix.h:53
 AliITSUCalibrationPix.h:54
 AliITSUCalibrationPix.h:55
 AliITSUCalibrationPix.h:56
 AliITSUCalibrationPix.h:57
 AliITSUCalibrationPix.h:58
 AliITSUCalibrationPix.h:59
 AliITSUCalibrationPix.h:60
 AliITSUCalibrationPix.h:61
 AliITSUCalibrationPix.h:62
 AliITSUCalibrationPix.h:63
 AliITSUCalibrationPix.h:64
 AliITSUCalibrationPix.h:65
 AliITSUCalibrationPix.h:66
 AliITSUCalibrationPix.h:67
 AliITSUCalibrationPix.h:68
 AliITSUCalibrationPix.h:69
 AliITSUCalibrationPix.h:70
 AliITSUCalibrationPix.h:71
 AliITSUCalibrationPix.h:72
 AliITSUCalibrationPix.h:73
 AliITSUCalibrationPix.h:74
 AliITSUCalibrationPix.h:75
 AliITSUCalibrationPix.h:76
 AliITSUCalibrationPix.h:77
 AliITSUCalibrationPix.h:78
 AliITSUCalibrationPix.h:79
 AliITSUCalibrationPix.h:80
 AliITSUCalibrationPix.h:81
 AliITSUCalibrationPix.h:82