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

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  TRD calibration class for the status of a readout chamber                //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <Rtypes.h>
#include "TNamed.h"

class TH2D;
class AliTRDCalChamberStatus : public TNamed {

 public:

  enum { kNdet = 540, kNstacks = 90, kNcham = 5, kNsect = 18 };
  enum { kGood = 0, kNoData = 1, kNoDataHalfChamberSideA = 2, kNoDataHalfChamberSideB = 3, kBadCalibrated = 4, kNotCalibrated = 5};
  
  AliTRDCalChamberStatus();
  AliTRDCalChamberStatus(const Text_t* name, const Text_t* title);

  Char_t GetStatus(Int_t det) const          { return fStatus[det];   };
  void   SetStatus(Int_t det, Char_t status);
  void   UnsetStatusBit(Int_t det, Char_t status);

  Bool_t IsGood(Int_t det) const             { return TESTBIT(fStatus[det], kGood);                   }
  Bool_t IsNoData(Int_t det) const           { return TESTBIT(fStatus[det], kNoData);                 }
  Bool_t IsNoDataSideA(Int_t det) const      { return TESTBIT(fStatus[det], kNoDataHalfChamberSideA); }
  Bool_t IsNoDataSideB(Int_t det) const      { return TESTBIT(fStatus[det], kNoDataHalfChamberSideB); }
  Bool_t IsBadCalibrated(Int_t det) const    { return TESTBIT(fStatus[det], kBadCalibrated);          }
  Bool_t IsNotCalibrated(Int_t det) const    { return TESTBIT(fStatus[det], kNotCalibrated);          }

 TH2D *Plot(Int_t sm, Int_t rphi);           // Plot fStatus for sm and halfchamberside  
 TH2D *PlotNoData(Int_t sm, Int_t rphi);     // Plot data status for sm and halfchamberside  
 TH2D *PlotBadCalibrated(Int_t sm, Int_t rphi); // Plot calibration status for sm and halfchamberside  
 TH2D *Plot(Int_t sm);                       // Plot fStatus for sm 


 protected:

  Char_t fStatus[kNdet];                    //  Status byte

  ClassDef(AliTRDCalChamberStatus,1)        //  Defines the status of a single readout chamber

};

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