]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDRing.h
Example macros for Kr cluster finding
[u/mrichter/AliRoot.git] / FMD / AliFMDRing.h
index 755a2509544512e8279dd6101b7707c3c03189d9..10790311565ab7860a0e923e7d7a06327165953b 100644 (file)
@@ -7,10 +7,14 @@
  *
  * See cxx source for full Copyright notice                               
  */
+/** @file    AliFMDRing.h
+    @author  Christian Holm Christensen <cholm@nbi.dk>
+    @date    Mon Mar 27 12:47:43 2006
+    @brief   FMD ring geometry parameters 
+*/
 //__________________________________________________________________
 //
 // Parameters of the FMD rings. 
-// 
 // This class is responsible to make the (common) rings of the three
 // sub-detectors. 
 //
 class TBrowser;
 class TVector2;
 
-/** Geometry description and parameters of a ring in the FMD
+/** @brief Geometry description and parameters of a ring in the FMD 
     detector. 
     
     As there are only 2 kinds of rings @e Inner (@c 'I') and @e
     Outer (@c 'O') the two objects of this class is owned by the
     Geometry::FMD singleton object.  The 3 Geometry::FMDDetector
     objects shares these two instances as needed. 
+    @ingroup FMD_base
 */
 class AliFMDRing : public TNamed
 {
 public:
+  /** CTOR
+      @param fId Ring ID  */
   AliFMDRing(Char_t fId);
+  /** DTOR  */
   virtual ~AliFMDRing() {}
   /** Initialize the ring geometry */
   virtual void Init();
@@ -83,6 +91,10 @@ public:
   Double_t GetWaferRadius() const { return fWaferRadius; }
   /** @return Thickness of sensor */
   Double_t GetSiThickness() const { return fSiThickness; }
+  /** @return Minimum r for an active strip */
+  Double_t GetMinR() const { return fMinR; }
+  /** @return Maximum r for an active strip */
+  Double_t GetMaxR() const { return fMaxR; }
   /** @return Lower radius of ring */
   Double_t GetLowR() const { return fLowR; }
   /** @return Upper radius of ring */
@@ -113,7 +125,11 @@ public:
   Double_t GetChipThickness() const { return fChipThickness; }
   /** @return Value of spacing between si and PCB */
   Double_t GetSpacing() const { return fSpacing; }
-
+  /** @return The strip pitch */ 
+  Double_t GetPitch() const { return (fMaxR - fMinR) / fNStrips; }
+  /** @return Radius (in cm) correspondig to strip @a strip */
+  Double_t GetStripRadius(UShort_t strip) const;
+  
   /** @return List of verticies */
   const TObjArray& GetVerticies() const { return fVerticies; }
   /** @return Number of verticies */
@@ -122,9 +138,12 @@ public:
       @return the ith vertex */
   TVector2* GetVertex(Int_t i) const;
      
+  /** Not used */
   void Detector2XYZ(UShort_t sector, UShort_t strip, 
                    Double_t& x, Double_t& y, Double_t& z) const;
-  
+  /** Not used */
+  Bool_t XYZ2Detector(Double_t x, Double_t y, Double_t z, 
+                     UShort_t& sector, UShort_t& strip) const;
 private: 
   Char_t       fId;                    // The Id of this ring type
   Double_t     fBondingWidth;          // With of bonding pad on sensor
@@ -132,6 +151,8 @@ private:
   Double_t     fSiThickness;           // Thickness of sensor
   Double_t     fLowR;                  // Lower radius of ring
   Double_t     fHighR;                 // Upper radius of ring
+  Double_t     fMinR;                  // Lower radius of active strips
+  Double_t     fMaxR;                  // Upper radius of active strips
   Double_t     fTheta;                 // Opening angle of the silicon wafers
   Int_t                fNStrips;               // Number of strips
   Double_t     fRingDepth;             // How far the ring extends beyond z