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

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  TRD calibration class                                                    //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#  include <TObject.h>
#endif

class AliTRDgeometry;

class AliTRDCalibraMode : public TObject {

 public: 

  AliTRDCalibraMode();
  AliTRDCalibraMode(const AliTRDCalibraMode &c);
  virtual ~AliTRDCalibraMode();
  AliTRDCalibraMode &operator=(const AliTRDCalibraMode &) { return *this; }

   
  Bool_t   ModePadFragmentation(Int_t iLayer,Int_t iStack, Int_t iSector, Int_t i);
  void     ModePadCalibration(Int_t iStack, Int_t i);
  void     ReconstructionRowPadGroup(Int_t idect, Int_t i);
  void     CalculXBins(Int_t idect, Int_t i);
  void     ResetMinMax(Int_t i);
  
          
  //
  // Set and Get methods
  //
  
  //Set
          void     SetNz(Int_t i, Short_t nz);
          void     SetNrphi(Int_t i, Short_t nrphi);
	  void     SetRowMin(Int_t i, Short_t rowmin)                        { fRowMin[i] = rowmin;            }
	  void     SetRowMax(Int_t i, Short_t rowmax)                        { fRowMax[i] = rowmax;            }
	  void     SetColMin(Int_t i, Short_t colmin)                        { fColMin[i] = colmin;            }
	  void     SetColMax(Int_t i, Short_t colmax)                        { fColMax[i] = colmax;            } 
	  void     SetDetChamb0(Int_t i);
	  void     SetDetChamb2(Int_t i);
	  
	  void     SetPerSuperModule(Int_t i);
	  void     SetAllTogether(Int_t i);


  //Get
	  Short_t  GetNz(Int_t i) const                                      { return fNz[i];                  }
          Short_t  GetNrphi(Int_t i) const                                   { return fNrphi[i];               }
          Short_t  GetNnZ(Int_t i) const                                     { return fNnZ[i];                 }
          Short_t  GetNnRphi(Int_t i) const                                  { return fNnRphi[i];              }
          Short_t  GetNfragZ(Int_t i) const                                  { return fNfragZ[i];              }
          Short_t  GetNfragRphi(Int_t i) const                               { return fNfragRphi[i];           }
	  Short_t  GetRowMin(Int_t i) const                                  { return fRowMin[i];              }
	  Short_t  GetRowMax(Int_t i) const                                  { return fRowMax[i];              }
	  Short_t  GetColMin(Int_t i) const                                  { return fColMin[i];              }
	  Short_t  GetColMax(Int_t i) const                                  { return fColMax[i];              }
	  Int_t    GetXbins(Int_t i) const                                   { return fXbins[i];               }
          Short_t  GetDetChamb0(Int_t i) const                               { return fDetChamb0[i];           }
          Short_t  GetDetChamb2(Int_t i) const                               { return fDetChamb2[i];           }
    
     
 protected:

  // Geometry
  AliTRDgeometry  *fGeo;                    //! The TRD geometry

          Short_t  fNz[3];                  // Mode of calibration 
          Short_t  fNrphi[3];               // Mode of calibration 
	  Short_t  fNnZ[3];                 // Number of pad rows in a group
          Short_t  fNnRphi[3];              // Number of pad cols in a group
          Short_t  fNfragZ[3];              // Number of  pad row group
          Short_t  fNfragRphi[3];           // Number of pad col group
          Short_t  fRowMin[3];              // Limits of the group in pad row
          Short_t  fRowMax[3];              // Limits of the group in pad row
          Short_t  fColMin[3];              // Limits of the group in pad col
          Short_t  fColMax[3];              // Limits of the group in pad col
          Int_t    fXbins[3];               // First Xbins of the detector
          Short_t  fDetChamb0[3];           // Number of XBins for chamber != 2
          Short_t  fDetChamb2[3];           // Number of Xbins for chamber 2

  // Some basic geometry function
  virtual Int_t    GetLayer(Int_t d) const;
  virtual Int_t    GetStack(Int_t d) const;
  virtual Int_t    GetSector(Int_t d) const;
 
  ClassDef(AliTRDCalibraMode,2)             // TRD Calibration class

};
#endif


 AliTRDCalibraMode.h:1
 AliTRDCalibraMode.h:2
 AliTRDCalibraMode.h:3
 AliTRDCalibraMode.h:4
 AliTRDCalibraMode.h:5
 AliTRDCalibraMode.h:6
 AliTRDCalibraMode.h:7
 AliTRDCalibraMode.h:8
 AliTRDCalibraMode.h:9
 AliTRDCalibraMode.h:10
 AliTRDCalibraMode.h:11
 AliTRDCalibraMode.h:12
 AliTRDCalibraMode.h:13
 AliTRDCalibraMode.h:14
 AliTRDCalibraMode.h:15
 AliTRDCalibraMode.h:16
 AliTRDCalibraMode.h:17
 AliTRDCalibraMode.h:18
 AliTRDCalibraMode.h:19
 AliTRDCalibraMode.h:20
 AliTRDCalibraMode.h:21
 AliTRDCalibraMode.h:22
 AliTRDCalibraMode.h:23
 AliTRDCalibraMode.h:24
 AliTRDCalibraMode.h:25
 AliTRDCalibraMode.h:26
 AliTRDCalibraMode.h:27
 AliTRDCalibraMode.h:28
 AliTRDCalibraMode.h:29
 AliTRDCalibraMode.h:30
 AliTRDCalibraMode.h:31
 AliTRDCalibraMode.h:32
 AliTRDCalibraMode.h:33
 AliTRDCalibraMode.h:34
 AliTRDCalibraMode.h:35
 AliTRDCalibraMode.h:36
 AliTRDCalibraMode.h:37
 AliTRDCalibraMode.h:38
 AliTRDCalibraMode.h:39
 AliTRDCalibraMode.h:40
 AliTRDCalibraMode.h:41
 AliTRDCalibraMode.h:42
 AliTRDCalibraMode.h:43
 AliTRDCalibraMode.h:44
 AliTRDCalibraMode.h:45
 AliTRDCalibraMode.h:46
 AliTRDCalibraMode.h:47
 AliTRDCalibraMode.h:48
 AliTRDCalibraMode.h:49
 AliTRDCalibraMode.h:50
 AliTRDCalibraMode.h:51
 AliTRDCalibraMode.h:52
 AliTRDCalibraMode.h:53
 AliTRDCalibraMode.h:54
 AliTRDCalibraMode.h:55
 AliTRDCalibraMode.h:56
 AliTRDCalibraMode.h:57
 AliTRDCalibraMode.h:58
 AliTRDCalibraMode.h:59
 AliTRDCalibraMode.h:60
 AliTRDCalibraMode.h:61
 AliTRDCalibraMode.h:62
 AliTRDCalibraMode.h:63
 AliTRDCalibraMode.h:64
 AliTRDCalibraMode.h:65
 AliTRDCalibraMode.h:66
 AliTRDCalibraMode.h:67
 AliTRDCalibraMode.h:68
 AliTRDCalibraMode.h:69
 AliTRDCalibraMode.h:70
 AliTRDCalibraMode.h:71
 AliTRDCalibraMode.h:72
 AliTRDCalibraMode.h:73
 AliTRDCalibraMode.h:74
 AliTRDCalibraMode.h:75
 AliTRDCalibraMode.h:76
 AliTRDCalibraMode.h:77
 AliTRDCalibraMode.h:78
 AliTRDCalibraMode.h:79
 AliTRDCalibraMode.h:80
 AliTRDCalibraMode.h:81
 AliTRDCalibraMode.h:82
 AliTRDCalibraMode.h:83
 AliTRDCalibraMode.h:84
 AliTRDCalibraMode.h:85
 AliTRDCalibraMode.h:86
 AliTRDCalibraMode.h:87
 AliTRDCalibraMode.h:88
 AliTRDCalibraMode.h:89
 AliTRDCalibraMode.h:90
 AliTRDCalibraMode.h:91
 AliTRDCalibraMode.h:92
 AliTRDCalibraMode.h:93
 AliTRDCalibraMode.h:94
 AliTRDCalibraMode.h:95
 AliTRDCalibraMode.h:96
 AliTRDCalibraMode.h:97
 AliTRDCalibraMode.h:98
 AliTRDCalibraMode.h:99
 AliTRDCalibraMode.h:100