X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGeometryEnvelopeStore.h;h=a02896f9dd62b5b882d9fbf6521adfa1b2f01eb0;hb=d91c6144880606a5d2a5c8c07b23146800dd5b77;hp=431ee53b101ad72504e1de67bc84ffda1d5d08ec;hpb=89cc3034382b2cb8b4234af74aa8527b2ca523b6;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGeometryEnvelopeStore.h b/MUON/AliMUONGeometryEnvelopeStore.h index 431ee53b101..a02896f9dd6 100644 --- a/MUON/AliMUONGeometryEnvelopeStore.h +++ b/MUON/AliMUONGeometryEnvelopeStore.h @@ -1,39 +1,41 @@ +/* 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 -#include +#include 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 @@ -107,6 +109,7 @@ class AliMUONGeometryEnvelopeStore : public TObject Int_t npar, Double_t* param); void SetDebug(Bool_t debug); + void SetReferenceFrame(const TGeoCombiTrans& referenceFrame); // Alignement virtual Bool_t GetAlign() const; @@ -114,34 +117,57 @@ class AliMUONGeometryEnvelopeStore : public TObject // get methods const TObjArray* GetEnvelopes() const; + Int_t GetNofDetElements() const; + + AliMUONGeometryEnvelope* FindEnvelope(const TString& name) const; + + protected: + AliMUONGeometryEnvelopeStore(const AliMUONGeometryEnvelopeStore& rhs); + 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