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

/* $Id: AliTRDCalSingleChamberStatus.h,v */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  TRD calibration base class containing status values for one ROC       //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include <TObject.h>

//_____________________________________________________________________________
class AliTRDCalSingleChamberStatus : public TObject {

 public:

  enum { kMasked          = 2
       , kPadBridgedLeft  = 4
       , kPadBridgedRight = 8
       , kReadSecond      = 16 
       , kNotConnected    = 32};

  AliTRDCalSingleChamberStatus();
  AliTRDCalSingleChamberStatus(Int_t p, Int_t c, Int_t cols);
  AliTRDCalSingleChamberStatus(const AliTRDCalSingleChamberStatus &c);
  virtual                      ~AliTRDCalSingleChamberStatus();
  AliTRDCalSingleChamberStatus &operator=(const AliTRDCalSingleChamberStatus &c);

  virtual void    Copy(TObject &c) const;

          Bool_t  IsMasked(Int_t col, Int_t row) const       { return ((GetStatus(col,row) & kMasked) 
                                                                       ? kTRUE 
                                                                       : kFALSE);                 };
	  Bool_t  IsBridgedLeft(Int_t col, Int_t row) const  { return ((GetStatus(col, row) & kPadBridgedLeft)                                            ? kTRUE                                                                         : kFALSE);                 };
	  Bool_t  IsBridgedRight(Int_t col, Int_t row) const { return ((GetStatus(col, row) & kPadBridgedRight)                                           ? kTRUE                                                                         : kFALSE);                 };
	  Bool_t  IsNotConnected(Int_t col, Int_t row) const { return ((GetStatus(col, row) & kNotConnected)                                           ? kTRUE                                                                         : kFALSE);                 };
          Int_t   GetNrows() const                           { return fNrows;                     };
          Int_t   GetNcols() const                           { return fNcols;                     };

          Int_t   GetChannel(Int_t col, Int_t row) const     { return row+col*fNrows;             };
          Int_t   GetNchannels() const                       { return fNchannels;                 };
          Char_t  GetStatus(Int_t ich) const                 { return fData[ich];                 };
          Char_t  GetStatus(Int_t col, Int_t row) const      { return fData[GetChannel(col,row)]; };

          void    SetStatus(Int_t ich, Char_t vd)            { fData[ich] = vd;                   };
          void    SetStatus(Int_t col, Int_t row, Char_t vd) { fData[GetChannel(col,row)] = vd;   };

 protected:

          Int_t   fPla;                    //  Plane number
          Int_t   fCha;                    //  Chamber number

          Int_t   fNrows;                  //  Number of rows
          Int_t   fNcols;                  //  Number of columns

          Int_t   fNchannels;              //  Number of channels
          Char_t *fData;                   //[fNchannels] Data

  ClassDef(AliTRDCalSingleChamberStatus,1) //  TRD ROC calibration class

};

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