]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONGeometryBuilder.h
New version of CDB storage framework (A.Colla)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryBuilder.h
CommitLineData
d4bb94a1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
692de412 5
6/// \ingroup geometry
7/// \class AliMUONGeometryBuilder
8/// \brief Manager class for geometry construction via geometry builders.
9///
10/// Author: Ivana Hrivnacova, IPN Orsay
d4bb94a1 11
e118b27e 12#ifndef ALI_MUON_GEOMETRY_BUILDER_H
13#define ALI_MUON_GEOMETRY_BUILDER_H
14
d4bb94a1 15#include <TObject.h>
e118b27e 16#include <TGeoMatrix.h>
d4bb94a1 17
d4bb94a1 18class TObjArray;
19
e118b27e 20class AliModule;
d4bb94a1 21class AliMUONVGeometryBuilder;
22
23class AliMUONGeometryBuilder : public TObject
24{
25 public:
e118b27e 26 AliMUONGeometryBuilder(AliModule* detector);
d4bb94a1 27 AliMUONGeometryBuilder();
d4bb94a1 28 virtual ~AliMUONGeometryBuilder();
067866a3 29
30 // static methods
31 static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2);
32 static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2,
33 const TGeoMatrix& m3);
34 static TGeoHMatrix Multiply(const TGeoMatrix& m1, const TGeoMatrix& m2,
35 const TGeoMatrix& m3, const TGeoMatrix& m4);
d4bb94a1 36
e118b27e 37 // methods
38 void AddBuilder(AliMUONVGeometryBuilder* geomBuilder);
d4bb94a1 39 void CreateGeometry();
40 void CreateMaterials();
41 void InitGeometry();
76497dec 42 void WriteTransformations();
43 void WriteSVMaps(Bool_t rebuild = true);
e118b27e 44 void SetGlobalTransformation(const TGeoCombiTrans& transform);
76497dec 45
46 // Alignement
47 virtual Bool_t GetAlign() const;
48 virtual void SetAlign(Bool_t align);
d4bb94a1 49
d4bb94a1 50 protected:
51 AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right);
52 AliMUONGeometryBuilder& operator = (const AliMUONGeometryBuilder& right);
53
54 private:
55 // method
56 void PlaceVolume(const TString& name, const TString& mName, Int_t copyNo,
57 const TGeoHMatrix& matrix, Int_t npar, Double_t* param,
58 const char* only) const;
e118b27e 59 void FillGlobalTransformations(AliMUONVGeometryBuilder* builder);
d4bb94a1 60
61 // data members
e118b27e 62 AliModule* fModule; // the AliRoot module
76497dec 63 Bool_t fAlign; // option to read transformations
64 // from a file
e118b27e 65 TGeoCombiTrans fGlobalTransformation;// global transformation
d4bb94a1 66 // applied to the whole geometry
76497dec 67 TObjArray* fGeometryBuilders; // list of Geometry Builders
d4bb94a1 68
e118b27e 69 ClassDef(AliMUONGeometryBuilder,4) // Geometry builder
d4bb94a1 70};
71
76497dec 72// inline functions
73
74inline Bool_t AliMUONGeometryBuilder::GetAlign() const
75{ return fAlign; }
76
d4bb94a1 77#endif //ALI_MUON_GEOMETRY_BUILDER_H
78
79
80
81
82
83
84