]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGeometryEnvelopeStore.h
Adding more bins in QA (Alis)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryEnvelopeStore.h
index 431ee53b101ad72504e1de67bc84ffda1d5d08ec..2a1b82da54f7f5f5fa99a49144e24ddb58525841 100644 (file)
@@ -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 <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  
@@ -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,59 @@ class AliMUONGeometryEnvelopeStore : public TObject
  
     // 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