**************************************************************************/
// $Id$
-//
+
+// ----------------------------------
// Class AliMUONGeometryEnvelopeStore
// ----------------------------------
// Class for definititon of the temporary volume envelopes
// used in geometry construction
-//
// Author: Ivana Hrivnacova, IPN Orsay
#include <TVirtualMC.h>
#include "AliMUONGeometryEnvelope.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMUONGeometryStore.h"
-#include "AliMUONConstants.h"
+#include "AliMUONGeometryBuilder.h"
#include "AliLog.h"
ClassImp(AliMUONGeometryEnvelopeStore)
: TObject(),
fEnvelopes(0),
fDetElements(detElements),
+ fReferenceFrame(),
fDebug(false),
fAlign(false)
{
: TObject(),
fEnvelopes(0),
fDetElements(0),
+ fReferenceFrame(),
fDebug(false),
fAlign(false)
{
// private methods
//
+//______________________________________________________________________________
+TGeoHMatrix
+AliMUONGeometryEnvelopeStore::ConvertDETransform(const TGeoHMatrix& transform) const
+{
+// Convert transformation into the reference frame
+
+ if ( fReferenceFrame.IsIdentity() )
+ return transform;
+ else {
+ return AliMUONGeometryBuilder::Multiply( fReferenceFrame.Inverse(),
+ transform );
+ }
+}
+
//______________________________________________________________________________
AliMUONGeometryEnvelope*
AliMUONGeometryEnvelopeStore::FindEnvelope(const TString& name) const
return false;
};
- envelope->SetTransform(*(detElement->GetLocalTransformation()));
+ // Apply frame transform
+ TGeoHMatrix newTransform
+ = ConvertDETransform(*(detElement->GetLocalTransformation()));
+
+ envelope->SetTransform(newTransform);
+
return true;
}