diff --git a/MuonSpectrometer/MuonDigitContainer/CMakeLists.txt b/MuonSpectrometer/MuonDigitContainer/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1c538aad65f7aee121642c9f59f8bb1946ee3325
--- /dev/null
+++ b/MuonSpectrometer/MuonDigitContainer/CMakeLists.txt
@@ -0,0 +1,35 @@
+################################################################################
+# Package: MuonDigitContainer
+################################################################################
+
+# Declare the package name:
+atlas_subdir( MuonDigitContainer )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          Control/CLIDSvc
+                          Control/DataModel
+                          Control/SGTools
+                          DetectorDescription/Identifier
+                          Event/EventContainers
+                          MuonSpectrometer/MuonIdHelpers
+                          PRIVATE
+                          TestPolicy )
+
+# External dependencies:
+find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
+
+# Component(s) in the package:
+atlas_add_library( MuonDigitContainer
+                   src/*.cxx
+                   PUBLIC_HEADERS MuonDigitContainer
+                   PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                   LINK_LIBRARIES DataModel SGTools Identifier MuonIdHelpersLib
+                   PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} )
+
+atlas_add_dictionary( MuonDigitContainerDict
+                      MuonDigitContainer/MuonDigitContainerDict.h
+                      MuonDigitContainer/selection.xml
+                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} DataModel SGTools Identifier MuonIdHelpersLib MuonDigitContainer )
+
diff --git a/MuonSpectrometer/MuonDigitContainer/MuonDigitContainer/MmDigit.h b/MuonSpectrometer/MuonDigitContainer/MuonDigitContainer/MmDigit.h
index 59db582c2db55e9fa3e27005d4f4ce9f790b449e..d4a41f62558863eff7a7bf8d56e318ff3e6b1a7b 100755
--- a/MuonSpectrometer/MuonDigitContainer/MuonDigitContainer/MmDigit.h
+++ b/MuonSpectrometer/MuonDigitContainer/MuonDigitContainer/MmDigit.h
@@ -42,20 +42,26 @@ class MmDigit : public MuonDigit {
 
   /** Full constructor --- From Identifier and time */ 
  
-  MmDigit(const Identifier& id, std::vector<float> stripResponseTime, std::vector<int> stripResponsePosition, std::vector<float> stripResponseCharge, 
-                                std::vector<float> chipResponseTime, std::vector<int> chipResponsePosition, std::vector<float> chipResponseCharge,
-                                int stripForTrigger, float stripTimeForTrigger);
+  MmDigit(const Identifier& id,
+          const std::vector<float>& stripResponseTime,
+          const std::vector<int>& stripResponsePosition,
+          const std::vector<float>& stripResponseCharge, 
+          const std::vector<float>& chipResponseTime,
+          const std::vector<int>& chipResponsePosition,
+          const std::vector<float>& chipResponseCharge,
+          int stripForTrigger,
+          float stripTimeForTrigger);
 
   // Is this a valid digit?
   bool is_valid(const MmIdHelper * mmHelper) const;
   
    /** strip response info */
   /** return the time */
-  const std::vector<float> stripResponseTime() const { return m_stripResponseTime; }
+  const std::vector<float>& stripResponseTime() const { return m_stripResponseTime; }
   /** Return the strip position */
-  const std::vector<int> stripResponsePosition() const { return m_stripResponsePosition; }
+  const std::vector<int>& stripResponsePosition() const { return m_stripResponsePosition; }
   /** Return the charge */
-  const std::vector<float> stripResponseCharge() const { return m_stripResponseCharge; }
+  const std::vector<float>& stripResponseCharge() const { return m_stripResponseCharge; }
   /** Return the stripForTrigger */
   int stripForTrigger() const { return m_stripForTrigger; }
   /** Return the charge */
@@ -63,11 +69,11 @@ class MmDigit : public MuonDigit {
 
    /** chip response info */
   /** return the time */
-  const std::vector<float> chipResponseTime() const { return m_chipResponseTime; }
+  const std::vector<float>& chipResponseTime() const { return m_chipResponseTime; }
   /** Return the strip position */
-  const std::vector<int> chipResponsePosition() const { return m_chipResponsePosition; }
+  const std::vector<int>& chipResponsePosition() const { return m_chipResponsePosition; }
   /** Return the charge */
-  const std::vector<float> chipResponseCharge() const { return m_chipResponseCharge; }
+  const std::vector<float>& chipResponseCharge() const { return m_chipResponseCharge; }
 
 
 
diff --git a/MuonSpectrometer/MuonDigitContainer/src/MmDigit.cxx b/MuonSpectrometer/MuonDigitContainer/src/MmDigit.cxx
index 77b82f9f91ce3d135d9be8f1a67ca99fcfd5c003..368b1610ee1ff726d93eeffb6b76820a043c8d0d 100755
--- a/MuonSpectrometer/MuonDigitContainer/src/MmDigit.cxx
+++ b/MuonSpectrometer/MuonDigitContainer/src/MmDigit.cxx
@@ -34,11 +34,25 @@ MmDigit::MmDigit(const Identifier& id)
   
 // Full constructor, with trigger Info
 
-MmDigit::MmDigit(const Identifier& id, std::vector<float> stripResponseTime, std::vector<int> stripResponsePosition, std::vector<float> stripResponseCharge, 
-std::vector<float> chipResponseTime, std::vector<int> chipResponsePosition, std::vector<float> chipResponseCharge, int stripForTrigger, float stripTimeForTrigger)
-  : MuonDigit(id), m_stripResponseTime(stripResponseTime), m_stripResponseCharge(stripResponseCharge), m_stripResponsePosition(stripResponsePosition), 
-  m_chipResponseTime(chipResponseTime), m_chipResponseCharge(chipResponseCharge), m_chipResponsePosition(chipResponsePosition), 
-  m_stripForTrigger(stripForTrigger), m_stripTimeForTrigger(stripTimeForTrigger) { }
+MmDigit::MmDigit(const Identifier& id,
+                 const std::vector<float>& stripResponseTime,
+                 const std::vector<int>& stripResponsePosition,
+                 const std::vector<float>& stripResponseCharge, 
+                 const std::vector<float>& chipResponseTime,
+                 const std::vector<int>& chipResponsePosition,
+                 const std::vector<float>& chipResponseCharge,
+                 int stripForTrigger,
+                 float stripTimeForTrigger)
+  : MuonDigit(id),
+    m_stripResponseTime(stripResponseTime),
+    m_stripResponseCharge(stripResponseCharge),
+    m_stripResponsePosition(stripResponsePosition), 
+    m_chipResponseTime(chipResponseTime),
+    m_chipResponseCharge(chipResponseCharge),
+    m_chipResponsePosition(chipResponsePosition), 
+    m_stripForTrigger(stripForTrigger),
+    m_stripTimeForTrigger(stripTimeForTrigger)
+{ }
 //**********************************************************************/
  
 // Validity check.