AliRoot Core  3dc7879 (3dc7879)
AliFMDDetector.h
Go to the documentation of this file.
1 #ifndef ALIFMDDETECTOR_H
2 #define ALIFMDDETECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved.
5  *
6  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7  *
8  * See cxx source for full Copyright notice
9  */
10 //__________________________________________________________________
11 //
12 // Utility class to help implement the FMD geometry. This provides
13 // the interface for the concrete geometry implementations of the FMD
14 // sub-detectors.
21 #ifndef ROOT_TNamed
22 # include <TNamed.h>
23 #endif
24 class AliFMDRing;
25 class TGeoMatrix;
38 //__________________________________________________________________
45 class AliFMDDetector : public TNamed
46 {
47 public:
53  AliFMDDetector(Int_t id, AliFMDRing* inner, AliFMDRing* outer);
56  AliFMDDetector(const AliFMDDetector& other);
61  virtual ~AliFMDDetector() {}
63  virtual void Init();
66  virtual void InitTransformations();
67 
69  void SetId(Int_t x) { fId = x; }
71  void SetInnerZ(Double_t x) { fInnerZ = x; }
73  void SetOuterZ(Double_t x) { fOuterZ = x; }
75  void SetInnerHoneyLowR(Double_t x) { fInnerHoneyLowR = x; }
77  void SetInnerHoneyHighR(Double_t x) { fInnerHoneyHighR = x; }
79  void SetOuterHoneyLowR(Double_t x) { fOuterHoneyLowR = x; }
81  void SetOuterHoneyHighR(Double_t x) { fOuterHoneyHighR = x; }
82 
84  Int_t GetId() const { return fId; }
86  Double_t GetInnerZ() const { return fInnerZ; }
88  Double_t GetOuterZ() const { return fOuterZ; }
90  Double_t GetInnerHoneyLowR() const { return fInnerHoneyLowR; }
92  Double_t GetInnerHoneyHighR() const { return fInnerHoneyHighR; }
94  Double_t GetOuterHoneyLowR() const { return fOuterHoneyLowR; }
96  Double_t GetOuterHoneyHighR() const { return fOuterHoneyHighR; }
97 
99  AliFMDRing* GetInner() const { return fInner; }
101  AliFMDRing* GetOuter() const { return fOuter; }
104  AliFMDRing* GetRing(Char_t id) const;
107  Double_t GetRingZ(Char_t id) const;
108 
119  void Detector2XYZ(Char_t ring, UShort_t sector, UShort_t strip,
120  Double_t& x, Double_t& y, Double_t& z) const;
138  Bool_t XYZ2Detector(Double_t x, Double_t y, Double_t z,
139  Char_t& ring, UShort_t& sector, UShort_t& strip) const;
140 
142  virtual void SetAlignableVolumes() const;
147  TGeoMatrix* FindTransform(Char_t ring, UShort_t sector) const;
148 protected:
152  Bool_t HasAllTransforms(Char_t ring) const;
153 
154  Int_t fId; // Detector number
155  Double_t fInnerZ; // Position of outer ring along z
156  Double_t fOuterZ; // Position of outer ring along z
157  Double_t fInnerHoneyLowR; // Inner radius of inner honeycomb
158  Double_t fInnerHoneyHighR; // Outer radius of inner honeycomb
159  Double_t fOuterHoneyLowR; // Inner radius of outer honeycomb
160  Double_t fOuterHoneyHighR; // Outer radius of outer honeycomb
161  AliFMDRing* fInner; // Pointer to inner ring information
162  AliFMDRing* fOuter; // Pointer to outer ring information
163  TObjArray* fInnerTransforms; // List of inner module global
164  TObjArray* fOuterTransforms; // List of outer module global
165 
166  ClassDef(AliFMDDetector, 2); //
167 };
168 
169 #endif
170 //____________________________________________________________________
171 //
172 // Local Variables:
173 // mode: C++
174 // End:
175 //
176 // EOF
177 //
Double_t GetOuterZ() const
Bool_t HasAllTransforms(Char_t ring) const
AliFMDRing * GetInner() const
AliFMDDetector(Int_t id, AliFMDRing *inner, AliFMDRing *outer)
Double_t GetInnerHoneyHighR() const
AliFMDRing * fOuter
AliFMDRing * GetOuter() const
Double_t GetInnerZ() const
#define TObjArray
virtual ~AliFMDDetector()
void Detector2XYZ(Char_t ring, UShort_t sector, UShort_t strip, Double_t &x, Double_t &y, Double_t &z) const
AliFMDRing * GetRing(Char_t id) const
Double_t fInnerHoneyLowR
Base class for the geometry description and parameters of the FMD sub detectors FMD1, FMD2, and FMD3.
TObjArray * fInnerTransforms
TGeoMatrix * FindTransform(Char_t ring, UShort_t sector) const
Double_t fInnerHoneyHighR
Double_t fOuterHoneyHighR
Double_t GetRingZ(Char_t id) const
AliFMDRing * fInner
Double_t fOuterHoneyLowR
void SetOuterHoneyHighR(Double_t x)
virtual void Init()
void SetOuterZ(Double_t x)
void SetInnerHoneyLowR(Double_t x)
void SetId(Int_t x)
AliFMDDetector & operator=(const AliFMDDetector &other)
TObjArray * fOuterTransforms
void SetOuterHoneyLowR(Double_t x)
void SetInnerHoneyHighR(Double_t x)
Double_t GetOuterHoneyHighR() const
Bool_t XYZ2Detector(Double_t x, Double_t y, Double_t z, Char_t &ring, UShort_t &sector, UShort_t &strip) const
virtual void SetAlignableVolumes() const
Geometry description and parameters of a ring in the FMD detector.
Definition: AliFMDRing.h:41
Double_t GetOuterHoneyLowR() const
Int_t GetId() const
virtual void InitTransformations()
void SetInnerZ(Double_t x)
Double_t GetInnerHoneyLowR() const