diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
index 839514a5f26c93ec8b2a6a35fee8d7abba70e89f..e92d1a6fe072f57b2607a0c02bea7230073b4acc 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
@@ -105,6 +105,7 @@ class RpcDataPreparator: public AthAlgTool
 
       bool m_use_RoIBasedDataAccess;
       bool m_isFakeRoi;
+      bool m_emulateNoRpcHit;
 };
 
 } // namespace TrigL2MuonSA
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtRegionDefiner.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtRegionDefiner.cxx
index 490b8a38dfa19c6e85a3c1920c69cdc35c28dbb8..ce6b88080d55c027cdd18e12bec7f41718e864af 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtRegionDefiner.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtRegionDefiner.cxx
@@ -476,8 +476,8 @@ void TrigL2MuonSA::MdtRegionDefiner::find_phi_min_max(float phiMiddle, float& ph
 void TrigL2MuonSA::MdtRegionDefiner::find_eta_min_max(float zMin, float rMin, float zMax, float rMax,
 						      float& etaMin, float& etaMax)
 {   
-   const bool doEmulateMuFast = true;
-   // const bool doEmulateMuFast = false;
+   // const bool doEmulateMuFast = true;
+   const bool doEmulateMuFast = false;
 
    etaMin = 0.;
    etaMax = 0.;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
index 08a8d63a2d234c94f92f2e91fddff9b7af18226b..edda46791f30fdeb995c493f4eec49fa18aeb4cc 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
@@ -283,7 +283,7 @@ StatusCode TrigL2MuonSA::MuFastDataPreparator::prepareData(const LVL1::RecMuonRo
     }
   }
  
-  //m_recRPCRoiSvc->reconstruct((*p_roi)->roiWord());
+  m_recRPCRoiSvc->reconstruct(p_roi->roiWord());
   double roiEtaMinLow = 0.;
   double roiEtaMaxLow = 0.;
   double roiEtaMinHigh = 0.;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
index 1d91362e76ac60c33ce4a875f4c1682136f7e53b..71bc93b4201d0244b1e0da40e9a7591e55262284 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
@@ -49,6 +49,7 @@ TrigL2MuonSA::RpcDataPreparator::RpcDataPreparator(const std::string& type,
 {
    declareInterface<TrigL2MuonSA::RpcDataPreparator>(this);
    declareProperty("RpcPrepDataProvider", m_rpcPrepDataProvider);
+   declareProperty("EmulateNoRpcHit", m_emulateNoRpcHit=false);
 }
 
 // --------------------------------------------------------------------------------
@@ -170,6 +171,9 @@ StatusCode TrigL2MuonSA::RpcDataPreparator::prepareData(const TrigRoiDescriptor*
   // set to false the flag indicating whether the roi is a fake one.
   m_isFakeRoi = false;
 
+  if( m_emulateNoRpcHit )
+    return StatusCode::SUCCESS;
+
   // check the roi ID
   
   //  decode  roIWord
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
index db8e8bafe3ce0ea48aa8570a2aff7c1bcace1b91..fd1a9279f36565c2fce072f514918218d3a5cf8e 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
@@ -154,13 +154,24 @@ StatusCode TrigL2MuonSA::RpcRoadDefiner::defineRoad(const LVL1::RecMuonRoI*
   
   for (int i_station=0; i_station<6; i_station++) {
     for (int i_layer=0; i_layer<8; i_layer++) {
-      if (i_station==0)      muonRoad.rWidth[i_station][i_layer] = 400;//for inner
-      else if (i_station==1) muonRoad.rWidth[i_station][i_layer] = 200;//for middle
-      else if (i_station==2) muonRoad.rWidth[i_station][i_layer] = 400;//for outer
-      else if (i_station==3) muonRoad.rWidth[i_station][i_layer] = 400;//EndcapInner
-      else if (i_station==4) muonRoad.rWidth[9][i_layer] = m_rWidth_RPC_Failed;//BME
-      else if (i_station==5) muonRoad.rWidth[10][i_layer] = m_rWidth_RPC_Failed;//BMG
-      else muonRoad.rWidth[i_station][i_layer] = m_rWidth_RPC_Failed;
+      if(!rpcFitResult.isSuccess) {
+	if (i_station==0)      muonRoad.rWidth[i_station][i_layer] = 500;//for inner
+	else if (i_station==1) muonRoad.rWidth[i_station][i_layer] = 650;//for middle
+	else if (i_station==2) muonRoad.rWidth[i_station][i_layer] = 800;//for outer
+	else if (i_station==3) muonRoad.rWidth[i_station][i_layer] = 500;//EndcapInner
+	else if (i_station==4) muonRoad.rWidth[9][i_layer] = 650;//BME
+	else if (i_station==5) muonRoad.rWidth[10][i_layer] = 650;//BMG
+	else muonRoad.rWidth[i_station][i_layer] = m_rWidth_RPC_Failed;
+      }
+      else {
+	if (i_station==0)      muonRoad.rWidth[i_station][i_layer] = 400;//for inner
+	else if (i_station==1) muonRoad.rWidth[i_station][i_layer] = 200;//for middle
+	else if (i_station==2) muonRoad.rWidth[i_station][i_layer] = 400;//for outer
+	else if (i_station==3) muonRoad.rWidth[i_station][i_layer] = 400;//EndcapInner
+	else if (i_station==4) muonRoad.rWidth[9][i_layer] = m_rWidth_RPC_Failed;//BME
+	else if (i_station==5) muonRoad.rWidth[10][i_layer] = m_rWidth_RPC_Failed;//BMG
+	else muonRoad.rWidth[i_station][i_layer] = m_rWidth_RPC_Failed;
+      }
     }
   }