ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup geometry
/// \class AliMUONGeometry
/// \brief Container class for geometry modules
///
/// \author Ivana Hrivnacova, IPN Orsay

#ifndef ALI_MUON_GEOMETRY_H
#define ALI_MUON_GEOMETRY_H

#include <TObject.h>
#include <TGeoMatrix.h>

class AliMUONGeometryModule;
class AliMUONGeometryTransformer;

class TObjArray;

using std::ifstream;
using std::ofstream;

class AliMUONGeometry : public TObject
{
  public:
    AliMUONGeometry(Bool_t isOwner);
    AliMUONGeometry();
    virtual  ~AliMUONGeometry();
    
    // methods
    void    AddModule(AliMUONGeometryModule* module);

    Bool_t  ReadSVMap(const TString& fileName);
    Bool_t  WriteSVMap(const TString& fileName) const;

    // get methods
    const AliMUONGeometryModule* GetModule(
                                    Int_t index, Bool_t warn = true) const;

    const AliMUONGeometryModule* GetModuleByDEId(
                                    Int_t detElemId, Bool_t warn = true) const;

    AliMUONGeometryTransformer* GetTransformer() const;


  protected:
    /// Not implemented
    AliMUONGeometry(const AliMUONGeometry& right);
    /// Not implemented
    AliMUONGeometry&  operator = (const AliMUONGeometry& right);
 
  private:
    //methods
    TString  ComposePath(const TString& volName, Int_t copyNo) const; 

    void    FillData3(const TString& sensVolumePath, Int_t detElemId);		   
    TString ReadData3(ifstream& in);
    void    WriteData3(ofstream& out) const;

    // data members
    TObjArray*                  fModules;     ///< Array of geometry modules
    AliMUONGeometryTransformer* fTransformer; ///< Geometry transformer

  ClassDef(AliMUONGeometry,1)  // Geometry parametrisation
};

/// Return geometry transformer
inline AliMUONGeometryTransformer* AliMUONGeometry::GetTransformer() const
{ return fTransformer; }

#endif //ALI_MUON_GEOMETRY_H







 AliMUONGeometry.h:1
 AliMUONGeometry.h:2
 AliMUONGeometry.h:3
 AliMUONGeometry.h:4
 AliMUONGeometry.h:5
 AliMUONGeometry.h:6
 AliMUONGeometry.h:7
 AliMUONGeometry.h:8
 AliMUONGeometry.h:9
 AliMUONGeometry.h:10
 AliMUONGeometry.h:11
 AliMUONGeometry.h:12
 AliMUONGeometry.h:13
 AliMUONGeometry.h:14
 AliMUONGeometry.h:15
 AliMUONGeometry.h:16
 AliMUONGeometry.h:17
 AliMUONGeometry.h:18
 AliMUONGeometry.h:19
 AliMUONGeometry.h:20
 AliMUONGeometry.h:21
 AliMUONGeometry.h:22
 AliMUONGeometry.h:23
 AliMUONGeometry.h:24
 AliMUONGeometry.h:25
 AliMUONGeometry.h:26
 AliMUONGeometry.h:27
 AliMUONGeometry.h:28
 AliMUONGeometry.h:29
 AliMUONGeometry.h:30
 AliMUONGeometry.h:31
 AliMUONGeometry.h:32
 AliMUONGeometry.h:33
 AliMUONGeometry.h:34
 AliMUONGeometry.h:35
 AliMUONGeometry.h:36
 AliMUONGeometry.h:37
 AliMUONGeometry.h:38
 AliMUONGeometry.h:39
 AliMUONGeometry.h:40
 AliMUONGeometry.h:41
 AliMUONGeometry.h:42
 AliMUONGeometry.h:43
 AliMUONGeometry.h:44
 AliMUONGeometry.h:45
 AliMUONGeometry.h:46
 AliMUONGeometry.h:47
 AliMUONGeometry.h:48
 AliMUONGeometry.h:49
 AliMUONGeometry.h:50
 AliMUONGeometry.h:51
 AliMUONGeometry.h:52
 AliMUONGeometry.h:53
 AliMUONGeometry.h:54
 AliMUONGeometry.h:55
 AliMUONGeometry.h:56
 AliMUONGeometry.h:57
 AliMUONGeometry.h:58
 AliMUONGeometry.h:59
 AliMUONGeometry.h:60
 AliMUONGeometry.h:61
 AliMUONGeometry.h:62
 AliMUONGeometry.h:63
 AliMUONGeometry.h:64
 AliMUONGeometry.h:65
 AliMUONGeometry.h:66
 AliMUONGeometry.h:67
 AliMUONGeometry.h:68
 AliMUONGeometry.h:69
 AliMUONGeometry.h:70
 AliMUONGeometry.h:71
 AliMUONGeometry.h:72
 AliMUONGeometry.h:73
 AliMUONGeometry.h:74
 AliMUONGeometry.h:75
 AliMUONGeometry.h:76
 AliMUONGeometry.h:77
 AliMUONGeometry.h:78
 AliMUONGeometry.h:79
 AliMUONGeometry.h:80
 AliMUONGeometry.h:81