AliFMDDetector.h

Go to the documentation of this file.
00001 #ifndef ALIFMDDETECTOR_H
00002 #define ALIFMDDETECTOR_H
00003 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
00004  * reserved. 
00005  *
00006  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
00007  *
00008  * See cxx source for full Copyright notice                               
00009  */
00010 #ifndef ROOT_TNamed
00011 # include <TNamed.h>
00012 #endif
00013 class AliFMDRing;
00014 class TGeoMatrix;
00015 
00017 //__________________________________________________________________
00024 class AliFMDDetector : public TNamed 
00025 {
00026 public:
00032   AliFMDDetector(Int_t id, AliFMDRing* inner, AliFMDRing* outer);
00035   AliFMDDetector(const AliFMDDetector& other);
00039   AliFMDDetector& operator=(const AliFMDDetector& other);
00040   virtual ~AliFMDDetector() {}
00042   virtual void Init();
00045   virtual void InitTransformations();
00046   
00048   void SetId(Int_t x) { fId = x; }
00050   void SetInnerZ(Double_t x) { fInnerZ = x; }
00052   void SetOuterZ(Double_t x) { fOuterZ = x; }
00054   void SetHoneycombThickness(Double_t x=1) { fHoneycombThickness = x; }
00056   void SetAlThickness(Double_t x=.1) { fAlThickness = x; }
00058   void SetInnerHoneyLowR(Double_t x) { fInnerHoneyLowR = x; }
00060   void SetInnerHoneyHighR(Double_t x) { fInnerHoneyHighR = x; }
00062   void SetOuterHoneyLowR(Double_t x) { fOuterHoneyLowR = x; }
00064   void SetOuterHoneyHighR(Double_t x) { fOuterHoneyHighR = x; }
00065     
00067   Int_t GetId() const { return fId; }
00069   Double_t GetInnerZ() const { return fInnerZ; }
00071   Double_t GetOuterZ() const { return fOuterZ; }
00073   Double_t GetHoneycombThickness() const { return fHoneycombThickness; }
00075   Double_t GetAlThickness() const { return fAlThickness; }
00077   Double_t GetInnerHoneyLowR() const { return fInnerHoneyLowR; }
00079   Double_t GetInnerHoneyHighR() const { return fInnerHoneyHighR; }
00081   Double_t GetOuterHoneyLowR() const { return fOuterHoneyLowR; }
00083   Double_t GetOuterHoneyHighR() const { return fOuterHoneyHighR; }
00084     
00086   AliFMDRing* GetInner() const { return fInner; }
00088   AliFMDRing* GetOuter() const { return fOuter; }
00091   AliFMDRing* GetRing(Char_t id) const;
00094   Double_t GetRingZ(Char_t id) const;
00095   
00106   void Detector2XYZ(Char_t ring, UShort_t sector, UShort_t strip, 
00107                     Double_t& x, Double_t& y, Double_t& z) const;
00125   Bool_t XYZ2Detector(Double_t x, Double_t y, Double_t z, 
00126                       Char_t& ring, UShort_t& sector, UShort_t& strip) const;
00127 protected:
00131   Bool_t        HasAllTransforms(Char_t ring) const;
00136   TGeoMatrix*   FindTransform(Char_t ring, UShort_t sector) const;
00137   Int_t         fId;                    // Detector number
00138   Double_t      fInnerZ;                // Position of outer ring along z
00139   Double_t      fOuterZ;                // Position of outer ring along z
00140   Double_t      fHoneycombThickness;    // Thickness of honeycomb plate
00141   Double_t      fAlThickness;           // Thickness of aluminium of honeycomb
00142   Double_t      fInnerHoneyLowR;        // Inner radius of inner honeycomb
00143   Double_t      fInnerHoneyHighR;       // Outer radius of inner honeycomb
00144   Double_t      fOuterHoneyLowR;        // Inner radius of outer honeycomb
00145   Double_t      fOuterHoneyHighR;       // Outer radius of outer honeycomb
00146   AliFMDRing*   fInner;                 // Pointer to inner ring information
00147   AliFMDRing*   fOuter;                 // Pointer to outer ring information
00148   TObjArray*    fInnerTransforms;       // List of inner module global
00149   TObjArray*    fOuterTransforms;       // List of outer module global
00150 
00151   ClassDef(AliFMDDetector, 1); // 
00152 };
00153 
00154 #endif
00155 //____________________________________________________________________
00156 //
00157 // Local Variables:
00158 //   mode: C++
00159 // End:
00160 //
00161 // EOF
00162 //

Generated on Fri Mar 24 17:11:21 2006 for ALICE FMD Off-line by  doxygen 1.4.6