]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDGeometry.h
Add EMCICs classes
[u/mrichter/AliRoot.git] / FMD / AliFMDGeometry.h
index 98da215aca328f22199fd47996f10e7ba48cc6c9..35760cea4798a5d428973d0658320f4dbf8fd8e0 100644 (file)
@@ -7,12 +7,18 @@
  *
  * 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>
@@ -35,7 +41,7 @@ class AliFMDGeometryBuilder;
 
 
 //__________________________________________________________________
-/** 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.  
                                                           
@@ -82,7 +88,7 @@ public:
   /** 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 */
@@ -170,6 +176,9 @@ public:
   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; }
@@ -199,6 +208,8 @@ public:
       @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
@@ -209,6 +220,7 @@ protected:
   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();
@@ -221,16 +233,16 @@ protected:
   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 
 };