+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
// $Id$
-//
-// Class AliMUONGeometryEnvelopeStore
-// -----------------------------
-// Class for definititon of the temporary volume envelopes
-// used in geometry construction
-//
-// Author: Ivana Hrivnacova, IPN Orsay
+
+/// \ingroup geometry
+/// \class AliMUONGeometryEnvelopeStore
+/// \brief Store for temporary volumes envelopes
+///
+/// Class for definititon of the temporary volume envelopes
+/// used in geometry construction
+///
+/// \author Ivana Hrivnacova, IPN Orsay
#ifndef ALI_MUON_GEOMETRY_ENVELOPE_STORE_H
#define ALI_MUON_GEOMETRY_ENVELOPE_STORE_H
#include <TObject.h>
-#include <TString.h>
+#include <TGeoMatrix.h>
class TGeoTranslation;
class TGeoRotation;
class TGeoCombiTrans;
class TObjArray;
class TArrayI;
+class TString;
class AliMUONChamber;
class AliMUONGeometryEnvelope;
-class AliMUONGeometryTransformStore;
+class AliMpExMap;
class AliMUONGeometryEnvelopeStore : public TObject
{
public:
- AliMUONGeometryEnvelopeStore(AliMUONGeometryTransformStore* transforms);
+ AliMUONGeometryEnvelopeStore(AliMpExMap* detElements);
AliMUONGeometryEnvelopeStore();
- AliMUONGeometryEnvelopeStore(const AliMUONGeometryEnvelopeStore& rhs);
virtual ~AliMUONGeometryEnvelopeStore();
- // operators
- AliMUONGeometryEnvelopeStore& operator = (const AliMUONGeometryEnvelopeStore& rhs);
-
// methods
// adding virtual envelopes
Int_t npar, Double_t* param);
void SetDebug(Bool_t debug);
+ void SetReferenceFrame(const TGeoCombiTrans& referenceFrame);
// Alignement
virtual Bool_t GetAlign() const;
// get methods
const TObjArray* GetEnvelopes() const;
+ Int_t GetNofDetElements() const;
+
+ AliMUONGeometryEnvelope* FindEnvelope(const TString& name) const;
+
+ protected:
+ /// Not implemented
+ AliMUONGeometryEnvelopeStore(const AliMUONGeometryEnvelopeStore& rhs);
+ /// Not implemented
+ AliMUONGeometryEnvelopeStore& operator = (const AliMUONGeometryEnvelopeStore& rhs);
private:
// methods
- AliMUONGeometryEnvelope* FindEnvelope(const TString& name) const;
+ TGeoHMatrix ConvertDETransform(const TGeoHMatrix& transform) const;
Bool_t AlignEnvelope(AliMUONGeometryEnvelope* envelope) const;
// data members
- AliMUONGeometryTransformStore* fDETransforms; // det elements transformations
- TObjArray* fEnvelopes; // the envelopes names and transformations
- // wrt to the chamber position in mother volume
- Bool_t fDebug; // Switch for debugging
- Bool_t fAlign; // option to read transformations from a file
+ TObjArray* fEnvelopes; ///< \brief the envelopes names and transformations
+ /// wrt to the chamber position in mother volume
+ AliMpExMap* fDetElements; ///< \brief detection elements
+ /// used for alignement of envelopes
+ TGeoCombiTrans fReferenceFrame; ///< \brief the transformation from the builder
+ /// reference frame to that of the transform
+ /// data files
+ Bool_t fDebug; ///< Switch for debugging \deprecated - use AliLog instead
+ Bool_t fAlign; ///< option to read transformations from a file
- ClassDef(AliMUONGeometryEnvelopeStore,1) // MUON envelope store
+ ClassDef(AliMUONGeometryEnvelopeStore,2) // Geometry envelope store
};
// inline functions
+/// Set debug option
+/// \deprecated - use AliLog instead
inline void AliMUONGeometryEnvelopeStore::SetDebug(Bool_t debug)
{ fDebug = debug; }
+/// Return align option - if true, transformations are read from a file
inline Bool_t AliMUONGeometryEnvelopeStore::GetAlign() const
{ return fAlign; }
+/// Set align option - if true, transformations are read from a file
inline void AliMUONGeometryEnvelopeStore::SetAlign(Bool_t align)
{ fAlign = align; }
+/// Return the array of the envelopes names and transformations
+/// wrt to the chamber position in mother volume
inline const TObjArray* AliMUONGeometryEnvelopeStore::GetEnvelopes() const
{ return fEnvelopes; }
+/// Set the transformation from the builder reference frame to that of the transform
+/// data files
+inline void
+AliMUONGeometryEnvelopeStore::SetReferenceFrame(const TGeoCombiTrans& referenceFrame)
+{ fReferenceFrame = referenceFrame; }
+
#endif //ALI_MUON_CHAMBER_ENVELOPE_STORE_H