ROOT logo
#ifndef ALIITSONLINECALIBRATIONSPD_H
#define ALIITSONLINECALIBRATIONSPD_H

///////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                            //
// This class is used as a container to keep the dead,noisy,active   //
// pixels online. Each object corresponds to one DDL (eq).           //
// Note: This class should not be used directly.                     //
// Use it via AliITSOnlineCalibrationSPDhandler instead.             //
///////////////////////////////////////////////////////////////////////

/* $Id$  */

#include <TObject.h>
#include <TArrayI.h>

class AliITSOnlineCalibrationSPD : public TObject {

 public:
    AliITSOnlineCalibrationSPD();
    virtual ~AliITSOnlineCalibrationSPD() {}

    void   SetEqNr(UInt_t eq) {fEqNr=eq;}
    UInt_t GetEqNr() const {return fEqNr;}
    void   SetBadList(TArrayI badlist) {fBadChannels=badlist;}
    void   SetNrBad(UInt_t nr) {fNrBad=nr;}

    UInt_t GetNrBad() const {return fNrBad;}
    Int_t  GetKeyAt(UInt_t index) const; //returns -1 if out of bounds

    void   ClearBad() {fBadChannels.Reset(); fNrBad=0;}

    void   ActivateALL();
    void   ActivateEq(Bool_t setval = kTRUE);
    void   ActivateHS(UInt_t hs, Bool_t setval = kTRUE);
    void   ActivateChip(UInt_t hs, UInt_t chip, Bool_t setval = kTRUE);

    Bool_t IsActiveEq() const;
    Bool_t IsActiveHS(UInt_t hs) const;
    Bool_t IsActiveChip(UInt_t hs, UInt_t chip) const;

    void   UnSetDeadALL();
    void   SetDeadEq(Bool_t setval = kTRUE);
    void   SetDeadHS(UInt_t hs, Bool_t setval = kTRUE);
    void   SetDeadChip(UInt_t hs, UInt_t chip, Bool_t setval = kTRUE);
    
    Bool_t IsDeadEq() const;
    Bool_t IsDeadHS(UInt_t hs) const;
    Bool_t IsDeadChip(UInt_t hs, UInt_t chip) const;

 private:
    UInt_t   fEqNr;                // eq nr
    UInt_t   fNrBad;               // nr of bad (single) pixels
    TArrayI  fBadChannels;         // array of keys for the bad (single) pixels
    Bool_t   fActiveEq;            // active bit for each equipment
    Bool_t   fActiveHS[6];         // active bit for each half-stave
    Bool_t   fActiveChip[60];      // active bit for each chip
    Bool_t   fDeadEq;              // dead bit for each equipment
    Bool_t   fDeadHS[6];           // dead bit for each half-stave
    Bool_t   fDeadChip[60];        // dead bit for each chip

    ClassDef(AliITSOnlineCalibrationSPD,3)
};

#endif
 AliITSOnlineCalibrationSPD.h:1
 AliITSOnlineCalibrationSPD.h:2
 AliITSOnlineCalibrationSPD.h:3
 AliITSOnlineCalibrationSPD.h:4
 AliITSOnlineCalibrationSPD.h:5
 AliITSOnlineCalibrationSPD.h:6
 AliITSOnlineCalibrationSPD.h:7
 AliITSOnlineCalibrationSPD.h:8
 AliITSOnlineCalibrationSPD.h:9
 AliITSOnlineCalibrationSPD.h:10
 AliITSOnlineCalibrationSPD.h:11
 AliITSOnlineCalibrationSPD.h:12
 AliITSOnlineCalibrationSPD.h:13
 AliITSOnlineCalibrationSPD.h:14
 AliITSOnlineCalibrationSPD.h:15
 AliITSOnlineCalibrationSPD.h:16
 AliITSOnlineCalibrationSPD.h:17
 AliITSOnlineCalibrationSPD.h:18
 AliITSOnlineCalibrationSPD.h:19
 AliITSOnlineCalibrationSPD.h:20
 AliITSOnlineCalibrationSPD.h:21
 AliITSOnlineCalibrationSPD.h:22
 AliITSOnlineCalibrationSPD.h:23
 AliITSOnlineCalibrationSPD.h:24
 AliITSOnlineCalibrationSPD.h:25
 AliITSOnlineCalibrationSPD.h:26
 AliITSOnlineCalibrationSPD.h:27
 AliITSOnlineCalibrationSPD.h:28
 AliITSOnlineCalibrationSPD.h:29
 AliITSOnlineCalibrationSPD.h:30
 AliITSOnlineCalibrationSPD.h:31
 AliITSOnlineCalibrationSPD.h:32
 AliITSOnlineCalibrationSPD.h:33
 AliITSOnlineCalibrationSPD.h:34
 AliITSOnlineCalibrationSPD.h:35
 AliITSOnlineCalibrationSPD.h:36
 AliITSOnlineCalibrationSPD.h:37
 AliITSOnlineCalibrationSPD.h:38
 AliITSOnlineCalibrationSPD.h:39
 AliITSOnlineCalibrationSPD.h:40
 AliITSOnlineCalibrationSPD.h:41
 AliITSOnlineCalibrationSPD.h:42
 AliITSOnlineCalibrationSPD.h:43
 AliITSOnlineCalibrationSPD.h:44
 AliITSOnlineCalibrationSPD.h:45
 AliITSOnlineCalibrationSPD.h:46
 AliITSOnlineCalibrationSPD.h:47
 AliITSOnlineCalibrationSPD.h:48
 AliITSOnlineCalibrationSPD.h:49
 AliITSOnlineCalibrationSPD.h:50
 AliITSOnlineCalibrationSPD.h:51
 AliITSOnlineCalibrationSPD.h:52
 AliITSOnlineCalibrationSPD.h:53
 AliITSOnlineCalibrationSPD.h:54
 AliITSOnlineCalibrationSPD.h:55
 AliITSOnlineCalibrationSPD.h:56
 AliITSOnlineCalibrationSPD.h:57
 AliITSOnlineCalibrationSPD.h:58
 AliITSOnlineCalibrationSPD.h:59
 AliITSOnlineCalibrationSPD.h:60
 AliITSOnlineCalibrationSPD.h:61
 AliITSOnlineCalibrationSPD.h:62
 AliITSOnlineCalibrationSPD.h:63
 AliITSOnlineCalibrationSPD.h:64
 AliITSOnlineCalibrationSPD.h:65