]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDCommonParam.h
Initial check-in of the model classes for User module
[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
21   public:
22   
23     enum { kNplan = 6, kNcham = 5, kNsect = 18, kNdet = 540 };
24     
25     AliTRDCommonParam(const AliTRDCommonParam &p);   
26     AliTRDCommonParam &operator=(const AliTRDCommonParam &p); 
27     virtual        ~AliTRDCommonParam();
28
29     static AliTRDCommonParam *Instance();
30     static  void    Terminate();
31
32     virtual void    Copy(TObject &p) const;
33     
34     void            SetExB(Int_t exbOn = 1)                        { fExBOn             = exbOn; }
35     void            SetSamplingFrequency(Float_t freq)             { fSamplingFrequency = freq;  }
36     
37     Bool_t          ExBOn() const                                  { return fExBOn;              }
38     
39     AliTRDpadPlane *GetPadPlane(Int_t p, Int_t c) const;
40     Int_t           GetRowMax(Int_t p, Int_t c, Int_t /*s*/) const;
41     Int_t           GetColMax(Int_t p) const;
42     Double_t        GetRow0(Int_t p, Int_t c, Int_t /*s*/) const;
43     Double_t        GetCol0(Int_t p) const;
44     Float_t         GetSamplingFrequency() const                   { return fSamplingFrequency;  }
45
46   protected:
47
48     static AliTRDCommonParam *fgInstance;         //  Instance of this class (singleton implementation)
49     static Bool_t             fgTerminated;       //  Defines if this class has already been terminated
50     
51     void Init();
52     
53     Int_t                     fExBOn;             //  Switch for the ExB effects
54
55     Float_t                   fSamplingFrequency; //  Sampling Frequency in MHz
56   
57     TObjArray                *fPadPlaneArray;     //! Array of pad plane objects
58   
59   private:
60
61     // This is a singleton, constructor is private!  
62     AliTRDCommonParam();
63   
64     ClassDef(AliTRDCommonParam,3)                  // The constant parameters common to simulation and reconstruction
65 };
66
67 #endif