fa1adfff5c996dba9a9594dcd9350f2e095584ac
[u/mrichter/AliRoot.git] / RICH / AliRICHGeometry.h
1 #ifndef AliRICHGeometry_h
2 #define AliRICHGeometry_h
3
4
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /* $Id$ */
9
10 #include <Riostream.h>
11 #include <TObject.h>
12
13 class AliRICHGeometry :public TObject  
14 {
15 public:
16 // ctor & dtor staff      
17    inline AliRICHGeometry(); // default ctor
18 // inline methods:          
19    void    SetGapThickness(Float_t thickness)          {fGapThickness=thickness;}    // Radiator Thickness 
20    Float_t GetGapThickness()                      const{return fGapThickness;}       // Radiator thickness
21
22    void    SetProximityGapThickness(Float_t thickness) {fProximityGapThickness=thickness;}
23    Float_t GetProximityGapThickness()             const{return fProximityGapThickness;}
24     
25    void    SetQuartzLength(Float_t length)             {fQuartzLength=length;}
26    Float_t GetQuartzLength()                      const{return fQuartzLength;}
27    
28    void    SetQuartzWidth(Float_t width)               {fQuartzWidth=width;}
29    Float_t GetQuartzWidth()                       const{return fQuartzWidth;}
30
31    void    SetQuartzThickness(Float_t thickness)       {fQuartzThickness=thickness;}
32    Float_t GetQuartzThickness()                   const{return fQuartzThickness;}
33    
34    void    SetOuterFreonLength(Float_t length)         {fOuterFreonLength=length;}
35    Float_t GetOuterFreonLength()                  const{return fOuterFreonLength;}
36    
37    void    SetOuterFreonWidth(Float_t width)           {fOuterFreonWidth=width;}
38    Float_t GetOuterFreonWidth()                   const{return fOuterFreonWidth;}
39    
40    void    SetInnerFreonLength(Float_t length)         {fInnerFreonLength=length;}
41    Float_t GetInnerFreonLength()                  const{return fInnerFreonLength;}
42    
43    void    SetInnerFreonWidth(Float_t width)           {fInnerFreonWidth=width;}
44    Float_t GetInnerFreonWidth()                   const{return fInnerFreonWidth;}
45    
46    void    SetFreonThickness(Float_t thickness)        {fFreonThickness=thickness;}
47    Float_t GetFreonThickness()                    const{return fFreonThickness;}
48    
49    void    SetRadiatorToPads(Float_t distance)         {fRadiatorToPads=distance;}
50    Float_t GetRadiatorToPads()                    const{return fRadiatorToPads;}   
51
52    void    SetRotationAngle(Float_t rotAngle)          {fRotationAngle=rotAngle;}
53    Float_t GetRotationAngle()                    const {return fRotationAngle;}
54        
55    void    SetAlphaAngle(Float_t alphaAngle)           {fAlphaAngle=alphaAngle;} // Angle between modules in YZ plane
56    Float_t GetAlphaAngle()                       const {return fAlphaAngle;}     // Angle between modules in YZ plane
57    
58    void    SetBetaAngle(Float_t betaAngle)             {fBetaAngle=betaAngle;}   // Angle between modules in XY plane
59    Float_t GetBetaAngle()                        const {return fBetaAngle;}      // Angle between modules in XY plane
60    
61    void    SetOffset(Float_t offset)                   {fOffset=offset;}         // Modules offset from IP
62    Float_t GetOffset()                           const {return fOffset;}         // Modules offset from IP
63    
64    inline void Print(Option_t *option)const;
65           
66 private:
67    Float_t fGapThickness;            // Gap Thickness
68    Float_t fProximityGapThickness;   // Proximity Gap Thickness
69    Float_t fQuartzLength;            // Quartz Length
70    Float_t fQuartzWidth;             // Quartz Width
71    Float_t fQuartzThickness;         // Quartz Thickness
72    Float_t fOuterFreonLength;        // Outer Freon Length
73    Float_t fOuterFreonWidth;         // Outer Freon Width
74    Float_t fInnerFreonLength;        // Inner Freon Length
75    Float_t fInnerFreonWidth;         // Inner Freon Width
76    Float_t fFreonThickness;          // Freon Thickness
77    Float_t fRadiatorToPads;          // Distance from radiator to pads
78    Float_t fRotationAngle;           // Azimuthal rotation angle in X-Y plane  
79    Float_t fAlphaAngle;              // Angle between modules in YZ plane
80    Float_t fBetaAngle;               // Angle between modules in XY plane
81    Float_t fOffset;                  // Modules offset from IP 
82    ClassDef(AliRICHGeometry,3)       // Chamber's main geometry parameters
83 };
84
85 inline AliRICHGeometry::AliRICHGeometry()
86                        :TObject()
87 {
88 // Define the default values:
89       
90    SetGapThickness         (8);     // Gap Thickness
91    SetProximityGapThickness(0.4);   // Proximity Gap Thickness
92    SetQuartzLength         (133);   // Quartz Length
93    SetQuartzWidth          (127.9); // Quartz Width
94    SetQuartzThickness      (0.5);   // Quartz Thickness
95    SetOuterFreonLength     (133);   // Outer Freon Length
96    SetOuterFreonWidth      (41.3);  // Outer Freon Width
97    SetInnerFreonLength     (133);   // Inner Freon Length
98    SetInnerFreonWidth      (41.3);  // Inner Freon Width
99    SetFreonThickness       (1.5);   // Freon Thickness
100    SetRadiatorToPads       (0);     // Distance from radiator to pads
101    SetRotationAngle        (60);   // Azimuthal rotation angle in X-Y plane
102    SetAlphaAngle           (19.5);  // Angle between modules in YZ plane
103    SetBetaAngle            (20);    // Angle vetween modules in XY plane     
104    SetOffset               (490+1.267); // ???1.267??? Modules offset from IP 
105 }//AliRICHGeometry::ctor()
106
107 inline void AliRICHGeometry::Print(Option_t *option)const
108 {
109    TObject::Print();
110    cout<<"Radiator Gap thickness:  "<<GetGapThickness()          <<endl;
111    cout<<"Proximity Gap thickness: "<<GetProximityGapThickness() <<endl;
112    cout<<"Quartz window length:    "<<GetQuartzLength()          <<endl;
113    cout<<"Quartz window width:     "<<GetQuartzWidth()           <<endl;
114    cout<<"Quartz window thickness: "<<GetQuartzThickness()       <<endl;
115    cout<<"Outer freon length:      "<<GetOuterFreonLength()      <<endl;
116    cout<<"Outer freon width:       "<<GetOuterFreonWidth()       <<endl;
117    cout<<"Inner freon length:      "<<GetInnerFreonLength()      <<endl;
118    cout<<"Inner freon width:       "<<GetInnerFreonWidth()       <<endl;
119    cout<<"Freon thickness:         "<<GetFreonThickness()        <<endl;
120    cout<<"RadiatorToPads:          "<<GetRadiatorToPads()        <<endl;
121    cout<<"Rotation angle:          "<<GetRotationAngle()         <<endl;
122    cout<<"Alpha Angle:             "<<GetAlphaAngle()            <<endl;
123    cout<<"Beta angle:              "<<GetBetaAngle()             <<endl;
124    cout<<"Modules offset from IP:  "<<GetOffset()                <<endl;
125 }//void AliRICHGeometry::Print()
126
127 //______________________________________________________
128 // Definition and manipulation with parameters describing RICH parametrised geometry.
129
130 #endif //AliRICHGeometry_h