*
* See cxx source for full Copyright notice
*/
-//____________________________________________________________________
-//
+/** @file AliFMDGeometry.h
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Mon Mar 27 12:40:37 2006
+ @brief Geometry mananger for the FMD
+*/
+//____________________________________________________________________
+//
// Forward Multiplicity Detector based on Silicon wafers.
//
// This class is a singleton that handles the geometry parameters of
// the FMD detectors.
+// The actual code is done by various separate classes.
//
#ifndef ALIGEOMETRY_H
# include <AliGeometry.h>
//__________________________________________________________________
-/** Singleton object of FMD geometry descriptions and parameters.
+/** @brief Singleton object of FMD geometry descriptions and parameters.
This class is a singleton that handles the geometry parameters of
the FMD detectors.
/** Initialize */
virtual void Init();
/** Initialize transforms */
- virtual void InitTransformations();
+ virtual void InitTransformations(Bool_t force=kFALSE);
/** @return Get inner description */
AliFMDRing* GetInner() const { return fInner; }
/** @return Get outer description */
void SetActive(Int_t* active, Int_t n);
/** @param id Register volume @a id to be active */
void AddActive(Int_t id);
+ /** Get Array of active volume numbers
+ @return constant reference to active volume numbers */
+ const TArrayI& ActiveIds() const { return fActive; }
/** Set an external geometry builder
@param b Geometry builder */
void SetBuilder(AliFMDGeometryBuilder* b) { fBuilder = b; }
@param particle Track
@return @c true if @a particle will hit this detector */
virtual Bool_t Impact(const TParticle* particle) const;
+ /** Declare alignable volumes */
+ virtual void SetAlignableVolumes() const;
protected:
Bool_t fIsInitialized; // Whether singleton is initalized
AliFMDRing* fInner; // Inner ring geometry information
Bool_t fUseFMD1; // Wheter to Use FMD1 or not
Bool_t fUseFMD2; // Wheter to Use FMD2 or not
Bool_t fUseFMD3; // Wheter to Use FMD3 or not
+ Bool_t fIsInitTrans; // Transforms initialised?
static AliFMDGeometry* fgInstance; // Singleton instance
/** CTOR */
AliFMDGeometry();
AliFMDGeometry& operator=(const AliFMDGeometry& other);
virtual ~AliFMDGeometry() {}
- AliFMDGeometryBuilder* fBuilder;
- Int_t fDetectorOff;
- Int_t fModuleOff;
- Int_t fRingOff;
- Int_t fSectorOff;
- TArrayI fActive;
- Bool_t fDetailed;
- Bool_t fUseAssembly;
+ AliFMDGeometryBuilder* fBuilder; // Geometry builder
+ Int_t fDetectorOff; // Detector off-set
+ Int_t fModuleOff; // Module off-set
+ Int_t fRingOff; // ring offset
+ Int_t fSectorOff; // Sector offset
+ TArrayI fActive; // Active volumes
+ Bool_t fDetailed; // Whether to make detailed geom
+ Bool_t fUseAssembly; // Whther to use assemblies
- ClassDef(AliFMDGeometry,1); //
+ ClassDef(AliFMDGeometry,1); // Geometry parameters and manager
};