+/// \endcond
+
+//
+// static functions
+//
+
+//______________________________________________________________________________
+const TString& AliMUONGeometryBuilder::GetDefaultTransformFileName()
+{
+ ///< default transformations file name
+ static const TString kDefaultTransformFileName = "transform.dat";
+ return kDefaultTransformFileName;
+}
+
+//______________________________________________________________________________
+const TString& AliMUONGeometryBuilder::GetDefaultSVMapFileName()
+{
+ ///< default svmaps file name
+ static const TString kDefaultSVMapFileName = "svmap.dat";
+ return kDefaultSVMapFileName;
+}
+
+//______________________________________________________________________________
+const TString& AliMUONGeometryBuilder::GetOutFileNameExtension()
+{
+ ///< default output file name extension
+ static const TString kOutFileNameExtension = ".out";
+ return kOutFileNameExtension;
+}
+
+
+//______________________________________________________________________________
+TGeoHMatrix AliMUONGeometryBuilder::Multiply(const TGeoMatrix& m1,
+ const TGeoMatrix& m2)
+{
+/// Temporary fix for problem with matrix multiplication in Root 5.02/00
+
+ if (m1.IsIdentity() && m2.IsIdentity()) return TGeoHMatrix();
+
+ if (m1.IsIdentity()) return m2;
+
+ if (m2.IsIdentity()) return m1;
+
+ return m1 * m2;
+}
+
+//______________________________________________________________________________
+TGeoHMatrix AliMUONGeometryBuilder::Multiply(const TGeoMatrix& m1,
+ const TGeoMatrix& m2,
+ const TGeoMatrix& m3)
+{
+/// Temporary fix for problem with matrix multiplication in Root 5.02/00
+
+ if (m1.IsIdentity() && m2.IsIdentity() & m3.IsIdentity())
+ return TGeoHMatrix();
+
+ if (m1.IsIdentity()) return Multiply(m2, m3);
+
+ if (m2.IsIdentity()) return Multiply(m1, m3);
+
+ if (m3.IsIdentity()) return Multiply(m1, m2);
+
+ return m1 * m2 * m3;
+}
+
+//______________________________________________________________________________
+TGeoHMatrix AliMUONGeometryBuilder::Multiply(const TGeoMatrix& m1,
+ const TGeoMatrix& m2,
+ const TGeoMatrix& m3,
+ const TGeoMatrix& m4)
+{
+/// Temporary fix for problem with matrix multiplication in Root 5.02/00
+
+ if (m1.IsIdentity() && m2.IsIdentity() & m3.IsIdentity() & m4.IsIdentity())
+ return TGeoHMatrix();
+
+ if (m1.IsIdentity()) return Multiply(m2, m3, m4);
+
+ if (m2.IsIdentity()) return Multiply(m1, m3, m4);
+
+ if (m3.IsIdentity()) return Multiply(m1, m2, m4);
+
+ if (m4.IsIdentity()) return Multiply(m1, m2, m3);
+
+ return m1 * m2 * m3 * m4;
+}
+
+//
+// ctors, dtor
+//
+