ROOT logo
#ifndef ALIFMDGEOMETRY_H
#define ALIFMDGEOMETRY_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
 *
 * 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>
#endif
#ifndef ROOT_TArrayI
# include <TArrayI.h>
#endif
#ifndef ROOT_TMatrixFfwd
# include <TMatrixFfwd.h>
#endif
class TVector3;
class TParticle;
class AliRecPoint;
class AliFMDRing;
class AliFMDDetector;
class AliFMD1;
class AliFMD2;
class AliFMD3;
class AliFMDGeometryBuilder;


//__________________________________________________________________
/** @brief Singleton object of FMD geometry descriptions and parameters.
    This class is a singleton that handles the geometry parameters of
    the FMD detectors.  
                                                          
    The actual code is done by various separate classes.   Below is
    diagram showing the relationship between the various FMD classes
    that handles the geometry 
    @verbatim
                                  +------------+ 
                               +- | AliFMDRing |
    			   2   |  +------------+
         +----------------+<>--+        |				
         | AliFMDGeometry |             ^                       	
         +----------------+<>--+        V 1..2                     	
              		   3   | +----------------+ 		
               		       +-| AliFMDDetector | 		
                		 +----------------+		
                                        ^
                                        |
                          +-------------+-------------+
                          |             |             |	      
                     +---------+   +---------+   +---------+
                     | AliFMD1 |   | AliFMD2 |   | AliFMD3 |
                     +---------+   +---------+   +---------+
         
    @endverbatim
    -  AliFMDRing 
       This class contains all stuff needed to do with a ring.  It's
       used by the AliFMDDetector objects to instantise inner and
       outer rings.  The AliFMDRing objects are shared by the
       AliFMDDetector objects, and owned by the AliFMDv1 object. 
    -  AliFMD1, AliFMD2, and AliFMD3 
       These are specialisation of AliFMDDetector, that contains the
       particularities of each of the sub-detector system.  It is
       envisioned that the classes should also define the support
       volumes and material for each of the detectors.

    @ingroup FMD_base
 */
class AliFMDGeometry : public AliGeometry
{
public:
  /** 
   * singleton access 
   *
   * @return Singleton 
   */
  static AliFMDGeometry* Instance();
  /** 
   * Initialize the the singleton if not done so already 
   */
  virtual void Init();
  /** 
   * Find all local <-> global transforms 
   */
  virtual void InitTransformations(Bool_t force=kFALSE);
  /** 
   * @return Get inner description 
   */
  AliFMDRing*     GetInner() const { return fInner; }
  /** 
   * @return Get outer description 
   */
  AliFMDRing*     GetOuter() const { return fOuter; }
  /** 
   * @return Get FMD1 description 
   */
  AliFMD1*        GetFMD1()  const { return (fUseFMD1 ? fFMD1 : 0); }
  /** 
   * @return Get FMD2 description 
   */
  AliFMD2*        GetFMD2()  const { return (fUseFMD2 ? fFMD2 : 0); }
  /** 
   * @return Get FMD3 description 
   */
  AliFMD3*        GetFMD3()  const { return (fUseFMD3 ? fFMD3 : 0); }
  /** 
   * Get description of a sub-detector
   * 
   * @param i Sub-detector #
   * @return Description of sub-detector, or 0 
   */
  AliFMDDetector* GetDetector(Int_t i) const;
  /** 
   * Get description of a ring, i should be one of 'I' or 'O' (case
   * insensitive).  If an invalid parameter is passed, 0 (NULL) is
   * returned.
   *
   * @param i Ring id
   * @return Description of ring, or 0 
   */
  AliFMDRing*     GetRing(Char_t i) const;
  /** 
   * Disable the ith detector
   *
   * @param i IF true, disable sub-detector @a i 
   */
  void            Disable(Int_t i);
  /** 
   * Enable the ith detector
   *
   * @param i IF true, enable sub-detector @a i 
   */
  void            Enable(Int_t i);
  /** 
   * @return Density @f$ \rho@f$ of silicon 
   */
  Double_t        GetSiDensity() const { return 2.33; }
  /** 
   * Translate detector coordinates (detector, ring, sector, strip)
   * to spatial coordinates (x, y, z) in the master reference frame
   * of ALICE.  The member function uses the transformations
   * previously obtained from the TGeoManager.
   *
   * @param detector Detector number
   * @param ring     Ring id
   * @param sector   Sector number
   * @param strip    Strip number
   * @param x        On return, X coordinate 
   * @param y        On return, Y coordinate 
   * @param z        On return, Z coordinate  
   */
  void            Detector2XYZ(UShort_t detector, Char_t ring, 
			       UShort_t sector, UShort_t strip, 
			       Double_t& x, Double_t& y, Double_t& z) const;
  /** 
   * Translate spatial coordinates (x,y,z) in the master reference
   * frame of ALICE to the detector coordinates (detector, ring,
   * sector, strip).  Note, that if this method is to be used in
   * reconstruction or the like, then the input z-coordinate should
   *  be corrected for the events interactions points z-coordinate,
   * like  
   * @code 
   * geom->XYZ2Detector(x,y,z-ipz,d,r,s,t);
   * @endcode
   *
   * @param x        X coordinate
   * @param y 	      Y coordinate
   * @param z 	      Z coordinate
   * @param detector On return, Detector number
   * @param ring     On return, Ring id		   
   * @param sector   On return, Sector number	   
   * @param strip    On return, Strip number	   
   * @return @c  false of (@a x, @a y, @a z) is not within this
   * detector.  
   */
  Bool_t          XYZ2Detector(Double_t x, Double_t y, Double_t z, 
			       UShort_t& detector, Char_t& ring, 
			       UShort_t& sector, UShort_t& strip) const;
  /** 
   * Make the geometry.  This delegates to AliFMDGeometryBuilder 
   */
  void   Build();
  /** 
   * @return Get detector offset in paths 
   */
  Int_t  GetDetectorOff() const    { return fDetectorOff; }
  /**
   * @return Get sensor offset in paths 
   */
  Int_t  GetModuleOff() const      { return fModuleOff;   }
  /** 
   * @return Get ring offset in paths 
   */
  Int_t  GetRingOff() const        { return fRingOff;     }
  /** 
   * @return Get ring sector in paths 
   */
  Int_t  GetSectorOff() const      { return fSectorOff;   }
  /** 
   * @param off Detector off-set set in geometry path 
   */
  void   SetDetectorOff(Int_t off) { fDetectorOff = off; }
  /** 
   * @param off Module off-set set in geometry path 
   */
  void   SetModuleOff(Int_t off)   { fModuleOff   = off; }
  /** 
   * @param off Ring off-set set in geometry path 
   */
  void   SetRingOff(Int_t off)     { fRingOff     = off; }
  /** 
   * @param off Sectord off-set set in geometry path 
   */
  void   SetSectorOff(Int_t off)   { fSectorOff   = off; }
  /** 
   * Check if volume @a vol is marked as active 
   *
   * @param vol Volume ID
   * @return  @c true if @a vol is declared active 
   */
  Bool_t IsActive(Int_t vol) const;
  /** 
   * Set active volumes 
   *
   * @param active Active volume id array 
   * @param n elements of @a active 
   */
  void   SetActive(Int_t* active, Int_t n);
  /** 
   * Add an active volume 
   *
   * @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; }
  /** 
   * Check the volume depth of some nodes, get the active volume
   * numbers, and so forth.
   * 
   * @todo Here, we should actually also get the parameters of the
   * shapes, like the verticies of the polygon shape that makes up the
   * silicon sensor, the strip pitch, the ring radii, the z-positions,
   * and so on - that is, all the geometric information we need for
   * futher processing, such as simulation, digitization,
   * reconstruction, etc.
  */
  void   ExtractGeomInfo();
  /** 
   * Whether we are to use a detailed geometry or not
   * 
   * @param det if @c true, make a detailed geometry. 
   */
  void   SetDetailed(Bool_t det) { fDetailed = det; }
  /** 
   * @return @c true if geometry is detailed 
   */
  Bool_t IsDetailed() const { return fDetailed; }
  /** 
   * @param ass Whether to use assemblies or not 
   */
  void   UseAssembly(Bool_t ass)  { fUseAssembly = ass; }

  // AliGeometry member functions 
  /** 
   * Get global coordinates cooresponding to a rec point. 
   * 
   * @param p   Reconstructed point.
   * @param pos On return, the position
   * @param mat On return, the material at @a post 
   */
  virtual void GetGlobal(const AliRecPoint* p, TVector3& pos, 
			 TMatrixF& mat) const;
  /** 
   * Get global coordinates cooresponding to a rec point. 
   *
   * @param p   Reconstructed point.
   * @param pos On return, the position 
   */
  virtual void GetGlobal(const AliRecPoint* p, TVector3& pos) const;
  /** 
   * Check if particle will hit an active detector element.  
   * 
   * @todo implement this function 
   *
   * @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;


  /** 
   * Service function to convert Cartisean XYZ to r, eta, phi, and theta.   
   *
   * Note, that the z input should be corrected for the vertex location 
   * if needed.
   * 
   * @param x      Cartisean X coordinate
   * @param y      Cartisean Y coordinate 
   * @param z      Cartisean Z coordinate 
   * @param r      On return, the radius
   * @param eta    On return, the pseudo-rapidity
   * @param phi    On return, the azimuthal angle
   * @param theta  On return, the polar angle;
   *
   * @return kTRUE on success, kFALSE in case of problems
   */     
  static Bool_t XYZ2REtaPhiTheta(Double_t  x,   Double_t y, 
				 Double_t  z, 
				 Double_t& r,   Double_t& eta, 
				 Double_t& phi, Double_t& theta);

protected:
  Bool_t        fIsInitialized; // Whether singleton is initalized
  AliFMDRing*	fInner;		// Inner ring geometry information
  AliFMDRing*	fOuter;		// Outer ring geometry information
  AliFMD1*	fFMD1;		// FMD1 geometry information
  AliFMD2*	fFMD2;		// FMD2 geometry information
  AliFMD3*	fFMD3;		// FMD3 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();
  /** 
   * CTOR 
   *
   * @param name Not used
   */
  AliFMDGeometry(const char* name);
  /** 
   * Copy CTOR
   * 
   * @param other To copy from  
   */
  AliFMDGeometry(const AliFMDGeometry& other);
  /** 
   * Assignment operator 
   * 
   * @param other To assig from
   * @return reference to this.  
   */
  AliFMDGeometry& operator=(const AliFMDGeometry& other);
  /** 
   * Destructor 
   */
  virtual ~AliFMDGeometry() {}
  
  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); // Geometry parameters and manager 
};


#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
// EOF
//
 AliFMDGeometry.h:1
 AliFMDGeometry.h:2
 AliFMDGeometry.h:3
 AliFMDGeometry.h:4
 AliFMDGeometry.h:5
 AliFMDGeometry.h:6
 AliFMDGeometry.h:7
 AliFMDGeometry.h:8
 AliFMDGeometry.h:9
 AliFMDGeometry.h:10
 AliFMDGeometry.h:11
 AliFMDGeometry.h:12
 AliFMDGeometry.h:13
 AliFMDGeometry.h:14
 AliFMDGeometry.h:15
 AliFMDGeometry.h:16
 AliFMDGeometry.h:17
 AliFMDGeometry.h:18
 AliFMDGeometry.h:19
 AliFMDGeometry.h:20
 AliFMDGeometry.h:21
 AliFMDGeometry.h:22
 AliFMDGeometry.h:23
 AliFMDGeometry.h:24
 AliFMDGeometry.h:25
 AliFMDGeometry.h:26
 AliFMDGeometry.h:27
 AliFMDGeometry.h:28
 AliFMDGeometry.h:29
 AliFMDGeometry.h:30
 AliFMDGeometry.h:31
 AliFMDGeometry.h:32
 AliFMDGeometry.h:33
 AliFMDGeometry.h:34
 AliFMDGeometry.h:35
 AliFMDGeometry.h:36
 AliFMDGeometry.h:37
 AliFMDGeometry.h:38
 AliFMDGeometry.h:39
 AliFMDGeometry.h:40
 AliFMDGeometry.h:41
 AliFMDGeometry.h:42
 AliFMDGeometry.h:43
 AliFMDGeometry.h:44
 AliFMDGeometry.h:45
 AliFMDGeometry.h:46
 AliFMDGeometry.h:47
 AliFMDGeometry.h:48
 AliFMDGeometry.h:49
 AliFMDGeometry.h:50
 AliFMDGeometry.h:51
 AliFMDGeometry.h:52
 AliFMDGeometry.h:53
 AliFMDGeometry.h:54
 AliFMDGeometry.h:55
 AliFMDGeometry.h:56
 AliFMDGeometry.h:57
 AliFMDGeometry.h:58
 AliFMDGeometry.h:59
 AliFMDGeometry.h:60
 AliFMDGeometry.h:61
 AliFMDGeometry.h:62
 AliFMDGeometry.h:63
 AliFMDGeometry.h:64
 AliFMDGeometry.h:65
 AliFMDGeometry.h:66
 AliFMDGeometry.h:67
 AliFMDGeometry.h:68
 AliFMDGeometry.h:69
 AliFMDGeometry.h:70
 AliFMDGeometry.h:71
 AliFMDGeometry.h:72
 AliFMDGeometry.h:73
 AliFMDGeometry.h:74
 AliFMDGeometry.h:75
 AliFMDGeometry.h:76
 AliFMDGeometry.h:77
 AliFMDGeometry.h:78
 AliFMDGeometry.h:79
 AliFMDGeometry.h:80
 AliFMDGeometry.h:81
 AliFMDGeometry.h:82
 AliFMDGeometry.h:83
 AliFMDGeometry.h:84
 AliFMDGeometry.h:85
 AliFMDGeometry.h:86
 AliFMDGeometry.h:87
 AliFMDGeometry.h:88
 AliFMDGeometry.h:89
 AliFMDGeometry.h:90
 AliFMDGeometry.h:91
 AliFMDGeometry.h:92
 AliFMDGeometry.h:93
 AliFMDGeometry.h:94
 AliFMDGeometry.h:95
 AliFMDGeometry.h:96
 AliFMDGeometry.h:97
 AliFMDGeometry.h:98
 AliFMDGeometry.h:99
 AliFMDGeometry.h:100
 AliFMDGeometry.h:101
 AliFMDGeometry.h:102
 AliFMDGeometry.h:103
 AliFMDGeometry.h:104
 AliFMDGeometry.h:105
 AliFMDGeometry.h:106
 AliFMDGeometry.h:107
 AliFMDGeometry.h:108
 AliFMDGeometry.h:109
 AliFMDGeometry.h:110
 AliFMDGeometry.h:111
 AliFMDGeometry.h:112
 AliFMDGeometry.h:113
 AliFMDGeometry.h:114
 AliFMDGeometry.h:115
 AliFMDGeometry.h:116
 AliFMDGeometry.h:117
 AliFMDGeometry.h:118
 AliFMDGeometry.h:119
 AliFMDGeometry.h:120
 AliFMDGeometry.h:121
 AliFMDGeometry.h:122
 AliFMDGeometry.h:123
 AliFMDGeometry.h:124
 AliFMDGeometry.h:125
 AliFMDGeometry.h:126
 AliFMDGeometry.h:127
 AliFMDGeometry.h:128
 AliFMDGeometry.h:129
 AliFMDGeometry.h:130
 AliFMDGeometry.h:131
 AliFMDGeometry.h:132
 AliFMDGeometry.h:133
 AliFMDGeometry.h:134
 AliFMDGeometry.h:135
 AliFMDGeometry.h:136
 AliFMDGeometry.h:137
 AliFMDGeometry.h:138
 AliFMDGeometry.h:139
 AliFMDGeometry.h:140
 AliFMDGeometry.h:141
 AliFMDGeometry.h:142
 AliFMDGeometry.h:143
 AliFMDGeometry.h:144
 AliFMDGeometry.h:145
 AliFMDGeometry.h:146
 AliFMDGeometry.h:147
 AliFMDGeometry.h:148
 AliFMDGeometry.h:149
 AliFMDGeometry.h:150
 AliFMDGeometry.h:151
 AliFMDGeometry.h:152
 AliFMDGeometry.h:153
 AliFMDGeometry.h:154
 AliFMDGeometry.h:155
 AliFMDGeometry.h:156
 AliFMDGeometry.h:157
 AliFMDGeometry.h:158
 AliFMDGeometry.h:159
 AliFMDGeometry.h:160
 AliFMDGeometry.h:161
 AliFMDGeometry.h:162
 AliFMDGeometry.h:163
 AliFMDGeometry.h:164
 AliFMDGeometry.h:165
 AliFMDGeometry.h:166
 AliFMDGeometry.h:167
 AliFMDGeometry.h:168
 AliFMDGeometry.h:169
 AliFMDGeometry.h:170
 AliFMDGeometry.h:171
 AliFMDGeometry.h:172
 AliFMDGeometry.h:173
 AliFMDGeometry.h:174
 AliFMDGeometry.h:175
 AliFMDGeometry.h:176
 AliFMDGeometry.h:177
 AliFMDGeometry.h:178
 AliFMDGeometry.h:179
 AliFMDGeometry.h:180
 AliFMDGeometry.h:181
 AliFMDGeometry.h:182
 AliFMDGeometry.h:183
 AliFMDGeometry.h:184
 AliFMDGeometry.h:185
 AliFMDGeometry.h:186
 AliFMDGeometry.h:187
 AliFMDGeometry.h:188
 AliFMDGeometry.h:189
 AliFMDGeometry.h:190
 AliFMDGeometry.h:191
 AliFMDGeometry.h:192
 AliFMDGeometry.h:193
 AliFMDGeometry.h:194
 AliFMDGeometry.h:195
 AliFMDGeometry.h:196
 AliFMDGeometry.h:197
 AliFMDGeometry.h:198
 AliFMDGeometry.h:199
 AliFMDGeometry.h:200
 AliFMDGeometry.h:201
 AliFMDGeometry.h:202
 AliFMDGeometry.h:203
 AliFMDGeometry.h:204
 AliFMDGeometry.h:205
 AliFMDGeometry.h:206
 AliFMDGeometry.h:207
 AliFMDGeometry.h:208
 AliFMDGeometry.h:209
 AliFMDGeometry.h:210
 AliFMDGeometry.h:211
 AliFMDGeometry.h:212
 AliFMDGeometry.h:213
 AliFMDGeometry.h:214
 AliFMDGeometry.h:215
 AliFMDGeometry.h:216
 AliFMDGeometry.h:217
 AliFMDGeometry.h:218
 AliFMDGeometry.h:219
 AliFMDGeometry.h:220
 AliFMDGeometry.h:221
 AliFMDGeometry.h:222
 AliFMDGeometry.h:223
 AliFMDGeometry.h:224
 AliFMDGeometry.h:225
 AliFMDGeometry.h:226
 AliFMDGeometry.h:227
 AliFMDGeometry.h:228
 AliFMDGeometry.h:229
 AliFMDGeometry.h:230
 AliFMDGeometry.h:231
 AliFMDGeometry.h:232
 AliFMDGeometry.h:233
 AliFMDGeometry.h:234
 AliFMDGeometry.h:235
 AliFMDGeometry.h:236
 AliFMDGeometry.h:237
 AliFMDGeometry.h:238
 AliFMDGeometry.h:239
 AliFMDGeometry.h:240
 AliFMDGeometry.h:241
 AliFMDGeometry.h:242
 AliFMDGeometry.h:243
 AliFMDGeometry.h:244
 AliFMDGeometry.h:245
 AliFMDGeometry.h:246
 AliFMDGeometry.h:247
 AliFMDGeometry.h:248
 AliFMDGeometry.h:249
 AliFMDGeometry.h:250
 AliFMDGeometry.h:251
 AliFMDGeometry.h:252
 AliFMDGeometry.h:253
 AliFMDGeometry.h:254
 AliFMDGeometry.h:255
 AliFMDGeometry.h:256
 AliFMDGeometry.h:257
 AliFMDGeometry.h:258
 AliFMDGeometry.h:259
 AliFMDGeometry.h:260
 AliFMDGeometry.h:261
 AliFMDGeometry.h:262
 AliFMDGeometry.h:263
 AliFMDGeometry.h:264
 AliFMDGeometry.h:265
 AliFMDGeometry.h:266
 AliFMDGeometry.h:267
 AliFMDGeometry.h:268
 AliFMDGeometry.h:269
 AliFMDGeometry.h:270
 AliFMDGeometry.h:271
 AliFMDGeometry.h:272
 AliFMDGeometry.h:273
 AliFMDGeometry.h:274
 AliFMDGeometry.h:275
 AliFMDGeometry.h:276
 AliFMDGeometry.h:277
 AliFMDGeometry.h:278
 AliFMDGeometry.h:279
 AliFMDGeometry.h:280
 AliFMDGeometry.h:281
 AliFMDGeometry.h:282
 AliFMDGeometry.h:283
 AliFMDGeometry.h:284
 AliFMDGeometry.h:285
 AliFMDGeometry.h:286
 AliFMDGeometry.h:287
 AliFMDGeometry.h:288
 AliFMDGeometry.h:289
 AliFMDGeometry.h:290
 AliFMDGeometry.h:291
 AliFMDGeometry.h:292
 AliFMDGeometry.h:293
 AliFMDGeometry.h:294
 AliFMDGeometry.h:295
 AliFMDGeometry.h:296
 AliFMDGeometry.h:297
 AliFMDGeometry.h:298
 AliFMDGeometry.h:299
 AliFMDGeometry.h:300
 AliFMDGeometry.h:301
 AliFMDGeometry.h:302
 AliFMDGeometry.h:303
 AliFMDGeometry.h:304
 AliFMDGeometry.h:305
 AliFMDGeometry.h:306
 AliFMDGeometry.h:307
 AliFMDGeometry.h:308
 AliFMDGeometry.h:309
 AliFMDGeometry.h:310
 AliFMDGeometry.h:311
 AliFMDGeometry.h:312
 AliFMDGeometry.h:313
 AliFMDGeometry.h:314
 AliFMDGeometry.h:315
 AliFMDGeometry.h:316
 AliFMDGeometry.h:317
 AliFMDGeometry.h:318
 AliFMDGeometry.h:319
 AliFMDGeometry.h:320
 AliFMDGeometry.h:321
 AliFMDGeometry.h:322
 AliFMDGeometry.h:323
 AliFMDGeometry.h:324
 AliFMDGeometry.h:325
 AliFMDGeometry.h:326
 AliFMDGeometry.h:327
 AliFMDGeometry.h:328
 AliFMDGeometry.h:329
 AliFMDGeometry.h:330
 AliFMDGeometry.h:331
 AliFMDGeometry.h:332
 AliFMDGeometry.h:333
 AliFMDGeometry.h:334
 AliFMDGeometry.h:335
 AliFMDGeometry.h:336
 AliFMDGeometry.h:337
 AliFMDGeometry.h:338
 AliFMDGeometry.h:339
 AliFMDGeometry.h:340
 AliFMDGeometry.h:341
 AliFMDGeometry.h:342
 AliFMDGeometry.h:343
 AliFMDGeometry.h:344
 AliFMDGeometry.h:345
 AliFMDGeometry.h:346
 AliFMDGeometry.h:347
 AliFMDGeometry.h:348
 AliFMDGeometry.h:349
 AliFMDGeometry.h:350
 AliFMDGeometry.h:351
 AliFMDGeometry.h:352
 AliFMDGeometry.h:353
 AliFMDGeometry.h:354
 AliFMDGeometry.h:355
 AliFMDGeometry.h:356
 AliFMDGeometry.h:357
 AliFMDGeometry.h:358
 AliFMDGeometry.h:359
 AliFMDGeometry.h:360
 AliFMDGeometry.h:361
 AliFMDGeometry.h:362
 AliFMDGeometry.h:363
 AliFMDGeometry.h:364
 AliFMDGeometry.h:365
 AliFMDGeometry.h:366
 AliFMDGeometry.h:367
 AliFMDGeometry.h:368
 AliFMDGeometry.h:369
 AliFMDGeometry.h:370
 AliFMDGeometry.h:371
 AliFMDGeometry.h:372
 AliFMDGeometry.h:373
 AliFMDGeometry.h:374
 AliFMDGeometry.h:375
 AliFMDGeometry.h:376
 AliFMDGeometry.h:377
 AliFMDGeometry.h:378
 AliFMDGeometry.h:379
 AliFMDGeometry.h:380
 AliFMDGeometry.h:381
 AliFMDGeometry.h:382
 AliFMDGeometry.h:383
 AliFMDGeometry.h:384
 AliFMDGeometry.h:385
 AliFMDGeometry.h:386
 AliFMDGeometry.h:387
 AliFMDGeometry.h:388
 AliFMDGeometry.h:389
 AliFMDGeometry.h:390
 AliFMDGeometry.h:391
 AliFMDGeometry.h:392
 AliFMDGeometry.h:393
 AliFMDGeometry.h:394
 AliFMDGeometry.h:395
 AliFMDGeometry.h:396
 AliFMDGeometry.h:397
 AliFMDGeometry.h:398
 AliFMDGeometry.h:399
 AliFMDGeometry.h:400
 AliFMDGeometry.h:401
 AliFMDGeometry.h:402