ROOT logo
#ifndef ALITRDCALPADSTATUS_H
#define ALITRDCALPADSTATUS_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 single pad status                          //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "TNamed.h"

class AliTRDCalSingleChamberStatus;
class TH1F;
class TH2F;

class AliTRDCalPadStatus : public TNamed {

 public:
 
  enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
  enum { kMasked = 2, kPadBridgedLeft = 4, kPadBridgedRight = 8, kReadSecond = 16 , kNotConnected = 32};

  AliTRDCalPadStatus();
  AliTRDCalPadStatus(const Text_t* name, const Text_t* title);
  AliTRDCalPadStatus(const AliTRDCalPadStatus &c);   
  virtual            ~AliTRDCalPadStatus();
  AliTRDCalPadStatus &operator=(const AliTRDCalPadStatus &c);

  virtual void        Copy(TObject &c) const;

          Bool_t      IsMasked(Int_t d, Int_t col, Int_t row) const 
                                               { return CheckStatus(d, col, row, kMasked);          };
          Bool_t      IsBridgedLeft(Int_t d, Int_t col, Int_t row) const 
                                               { return CheckStatus(d, col, row, kPadBridgedLeft);  };
          Bool_t      IsBridgedRight(Int_t d, Int_t col, Int_t row) const 
                                               { return CheckStatus(d, col, row, kPadBridgedRight); };
	  Bool_t      IsReadSecond(Int_t d, Int_t col, Int_t row) const 
	                                       { return CheckStatus(d, col, row, kReadSecond); };
	  Bool_t      IsNotConnected(Int_t d, Int_t col, Int_t row) const
	                                       { return CheckStatus(d, col, row, kNotConnected); };
          Bool_t      CheckStatus(Int_t d, Int_t col, Int_t row, Int_t bitMask) const;

  AliTRDCalSingleChamberStatus *GetCalROC(Int_t d) const { return fROC[d]; };
  AliTRDCalSingleChamberStatus *GetCalROC(Int_t p, Int_t c, Int_t s) const;

  // Plot functions
  TH1F    *MakeHisto1D();
  TH2F    *MakeHisto2DSmPl(Int_t sm, Int_t pl);
  void     PlotHistos2DSm(Int_t sm, const Char_t *name);

 protected:

  AliTRDCalSingleChamberStatus *fROC[kNdet];          //  Array of ROC objects which contain the values per pad

  ClassDef(AliTRDCalPadStatus,1)                      //  TRD calibration class for the single pad status

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