*
* See cxx source for full Copyright notice
*/
+//__________________________________________________________________
+//
+// Utility class to help implement the FMD geometry. This provides
+// the interface for the concrete geometry implementations of the FMD
+// sub-detectors.
+/** @file AliFMDDetector.h
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Mon Mar 27 12:36:27 2006
+ @brief Sub-detector base class declaration
+ @ingroup FMD_base
+*/
#ifndef ROOT_TNamed
# include <TNamed.h>
#endif
/** @defgroup FMD_base Basic classes */
//__________________________________________________________________
-/** Base class for the geometry description and parameters of the FMD
- sub detectors FMD1, FMD2, and FMD3.
+/** @brief Base class for the geometry description and parameters of
+ the FMD sub detectors FMD1, FMD2, and FMD3.
This class hold common parameters of the specific FMD detectors.
@ingroup FMD_base
void SetInnerZ(Double_t x) { fInnerZ = x; }
/** @param x Position of outer ring along z */
void SetOuterZ(Double_t x) { fOuterZ = x; }
- /** @param x Thickness of honeycomb plate */
- void SetHoneycombThickness(Double_t x=1) { fHoneycombThickness = x; }
- /** @param x Thickness of aluminium of honeycomb */
- void SetAlThickness(Double_t x=.1) { fAlThickness = x; }
/** @param x Inner radius of inner honeycomb */
void SetInnerHoneyLowR(Double_t x) { fInnerHoneyLowR = x; }
/** @param x Outer radius of inner honeycomb */
Double_t GetInnerZ() const { return fInnerZ; }
/** @return Position of outer ring along z */
Double_t GetOuterZ() const { return fOuterZ; }
- /** @return Thickness of honeycomb plate */
- Double_t GetHoneycombThickness() const { return fHoneycombThickness; }
- /** @return Thickness of aluminium of honeycomb */
- Double_t GetAlThickness() const { return fAlThickness; }
/** @return Inner radius of inner honeycomb */
Double_t GetInnerHoneyLowR() const { return fInnerHoneyLowR; }
/** @return Outer radius of inner honeycomb */
detector. */
Bool_t XYZ2Detector(Double_t x, Double_t y, Double_t z,
Char_t& ring, UShort_t& sector, UShort_t& strip) const;
+
+ /** Declare alignable volumes */
+ virtual void SetAlignableVolumes() const;
+ /** Get transformation matrix for a sector in a ring
+ @param ring Ring id
+ @param sector Sector numberr
+ @return Matrix on success, 0 otherwise */
+ TGeoMatrix* FindTransform(Char_t ring, UShort_t sector) const;
protected:
/** Check if we have all transformations for a ring
@param ring Ring to check for
@return @c true if we got all transforms */
Bool_t HasAllTransforms(Char_t ring) const;
- /** Get transformation matrix for a sector in a ring
- @param ring Ring id
- @param sector Sector numberr
- @return Matrix on success, 0 otherwise */
- TGeoMatrix* FindTransform(Char_t ring, UShort_t sector) const;
+
Int_t fId; // Detector number
Double_t fInnerZ; // Position of outer ring along z
Double_t fOuterZ; // Position of outer ring along z
- Double_t fHoneycombThickness; // Thickness of honeycomb plate
- Double_t fAlThickness; // Thickness of aluminium of honeycomb
Double_t fInnerHoneyLowR; // Inner radius of inner honeycomb
Double_t fInnerHoneyHighR; // Outer radius of inner honeycomb
Double_t fOuterHoneyLowR; // Inner radius of outer honeycomb
TObjArray* fInnerTransforms; // List of inner module global
TObjArray* fOuterTransforms; // List of outer module global
- ClassDef(AliFMDDetector, 1); //
+ ClassDef(AliFMDDetector, 2); //
};
#endif