43ff2dd99ba38eca7c75f895f60939bbf08ec138
[u/mrichter/AliRoot.git] / TRD / AliTRDCommonParam.h
1 #ifndef AliTRDCOMMONPARAM_H
2 #define AliTRDCOMMONPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 //                                                                           //
8 // Class containing constant common parameters                           //
9 //                                                                           //
10 ///////////////////////////////////////////////////////////////////////////////
11
12 /* $Id$ */
13
14 #include "TObject.h"
15
16 class AliTRDpadPlane;
17
18 class AliTRDCommonParam : public TObject
19 {
20   public:
21     static AliTRDCommonParam* Instance();
22     static void Terminate();
23   
24     enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
25     
26     AliTRDCommonParam(const AliTRDCommonParam &p);   
27     AliTRDCommonParam &operator=(const AliTRDCommonParam &p); 
28     virtual void Copy(TObject &p) const;
29     
30     void SetField(Float_t field)                        { fField          = field;    };
31     
32     void     SetExB(Int_t exbOn = 1)                        { fExBOn          = exbOn;    };
33     
34     Float_t  GetField()                               const { return fField; };
35     
36     Bool_t   ExBOn()                                  const { return fExBOn;         };
37     
38     AliTRDpadPlane *GetPadPlane(Int_t p, Int_t c) const;
39     Int_t    GetRowMax(Int_t p, Int_t c, Int_t /*s*/) const;
40     Int_t    GetColMax(Int_t p) const;
41     Double_t GetRow0(Int_t p, Int_t c, Int_t /*s*/) const;
42     Double_t GetCol0(Int_t p) const;
43   
44   protected:
45     static AliTRDCommonParam* fgInstance;     // Instance of this class (singleton implementation)
46     static Bool_t fgTerminated;               // Defines if this class has already been terminated and therefore does not return instances in GetInstance anymore
47     
48     void Init();
49     
50     Float_t              fField;                              //  Magnetic field
51     
52     Int_t                fExBOn;                              //  Switch for the ExB effects
53   
54     TObjArray  *fPadPlaneArray;                               //!  Array of pad plane objects
55   
56   private:
57     // this is a singleton, constructor is private!  
58     AliTRDCommonParam();
59     virtual ~AliTRDCommonParam();
60   
61     ClassDef(AliTRDCommonParam, 1)
62 };
63
64 #endif