diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py
index 3d2c55248381762098ccdf57e0893a36f1cb02b4..8341cf6ecb318e47ecdc16b767a3dd9b92f0a725 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py
@@ -1,6 +1,5 @@
 #
-#Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration                                    
-        
+#Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 
 from AthenaConfiguration.ComponentFactory import CompFactory
@@ -37,6 +36,15 @@ def MMMonitoringConfig(inputFlags):
     # Configure histograms
 
     # Overview histograms
+    mmGroup.defineHistogram('residual;Residuals',  type='TH1F',  title='Residuals;res[mm];Number of Entries',
+                        path='Overview',   xbins=200, xmin=-10, xmax=10.
+    )
+
+
+    mmGroup.defineHistogram('residual,eta_trk;Res_vs_eta', type='TH2F', title="Res vs Eta;Res;Eta;", path='Overview',xbins=100, xmin=-10, xmax=10., ybins=100, ymin=-3.,ymax=3.)
+    mmGroup.defineHistogram('residual,phi_trk;Res_vs_phi', type='TH2F', title="Res vs Eta;Res;Phi;", path='Overview',xbins=100, xmin=-10, xmax=10., ybins=16, ymin=-3.14,ymax=3.14)
+    mmGroup.defineHistogram('residual,stPhi_mon;Res_vs_stPhi', type='TH2F', title="Res vs Eta;Res;stPhi;", path='Overview',xbins=100, xmin=-10, xmax=10., ybins=16, ymin=0,ymax=16)
+    
     mmGroup.defineHistogram('charge_all;Charge',  type='TH1F',
                             title='Charge;Charge[fC];Number of Entries',
                         path='Overview',   xbins=120, xmin=0., xmax=1200.
@@ -148,6 +156,11 @@ def MMMonitoringConfig(inputFlags):
                             title_MMSummary_angle="uTPC angle "+iside+" "+isector+" stPhi"+str(phi)+" stEta"+str(eta)+" multiplet"+str(multi)+" gap"+str(gas_gap)
                             var3="mu_TPC_angle_"+iside+"_sector_"+isector+"_phi"+str(phi)+"_stationEta"+str(eta)+"_multiplet"+str(multi)+"_gas_gap"+str(gas_gap)+";uTPCangle_"+iside+"_"+isector+"_stPhi"+str(phi)+"_stEta"+str(eta)+"_multiplet"+str(multi)+"_gap"+str(gas_gap)
                             mmSideGroup.defineHistogram(var3,  type='TH1F', title=title_MMSummary_angle+"; #muTPC angle [degrees];Number of Entries",path='uTPC_angle_perLayer',    xbins=2000, xmin=-100, xmax=100)
+                            
+                            var_residual="residuals_"+iside+"_phi"+str(phi)+"_stationEta"+str(eta)+"_multiplet"+str(multi)+"_gas_gap"+str(gas_gap)
+                            print(var_residual)
+                            title_residual = "residuals "+iside+" "+isector+" stPhi"+str(phi)+" stEta"+str(eta)+" multiplet"+str(multi)+" gap"+str(gas_gap)
+                            mmSideGroup.defineHistogram(var_residual,  type='TH1F', title=title_residual+"; res [mm];Number of Entries",path='Residuals',    xbins=200, xmin=-10, xmax=10)
 
         for gas1 in range(1, 5):
             for multi1 in range(1, 3):
@@ -172,11 +185,25 @@ if __name__=='__main__':
     
     # Set the Athena configuration flags
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    #ConfigFlags.Input.Files = ['/afs/cern.ch/work/e/elrossi/DQ_Run3/WorkDir/group.det-muon/group.det-muon.21673292.EXT1._000048.ESD.pool.root']
-    #ConfigFlags.Input.Files = ['/afs/cern.ch/work/e/elrossi/DQ_Run3/WorkDir/group.det-muon_Sym/group.det-muon.21823259.EXT1._000045_uTPC.ESD.pool.root']
     #ConfigFlags.Input.Files = ["/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_uTPC_v01_EXT1/group.det-muon.21673283.EXT1._000037.ESD.pool.root"]
-    #ConfigFlags.Input.Files = ['/afs/cern.ch/work/e/elrossi/DQ_updated_308/WorkDir/group.det-muon/group.det-muon.22415666.EXT1._000048.ESD.pool.root']
-    ConfigFlags.Input.Files = ['/afs/cern.ch/work/e/elrossi/DQ_Run3/WorkDir/group.det-muon_Sym/group.det-muon.21670802.EXT1._000006.ESD.pool.root','/afs/cern.ch/work/e/elrossi/DQ_updated/WorkDir/group.det-muon_Sym/group.det-muon.21670802.EXT1._000045.ESD.pool.root','/afs/cern.ch/work/e/elrossi/DQ_updated/WorkDir/group.det-muon_Sym/group.det-muon.21670802.EXT1._000030.ESD.pool.root','/afs/cern.ch/work/e/elrossi/DQ_updated/WorkDir/group.det-muon_Sym/group.det-muon.21670802.EXT1._000046.ESD.pool.root','/afs/cern.ch/work/e/elrossi/DQ_updated/WorkDir/group.det-muon_Sym/group.det-muon.21670802.EXT1._000014.ESD.pool.root']
+    ConfigFlags.Input.Files = ["/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000002.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000006.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000008.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000009.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000012.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000015.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000017.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000018.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000019.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000020.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000021.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000023.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000028.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000032.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000033.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000041.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000043.ESD.pool.root",
+                               "/afs/cern.ch/user/b/bigliett/work/DQ/group.det-muon.DiMuon10_100GeV.ESD.rel213_2020-06-18T2149_R3S_v01_EXT1/group.det-muon.21670802.EXT1._000050.ESD.pool.root"]
     #from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
   #  ConfigFlags.Input.isMC = True
     ConfigFlags.Output.HISTFileName = 'monitor.root'
@@ -198,4 +225,4 @@ if __name__=='__main__':
     cfg.merge(mmMonitorAcc)
     #cfg.printConfig(withDetails=True, summariseProps = True)  
     # number of events selected in the ESD
-    cfg.run(1000)
+    cfg.run(2000)
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx
index f7c30ff74ee0096fee0c91a8db3ca1bcb70da339..8ca9d8ae97a5a168c69905c811ec636934397780 100755
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx
@@ -87,6 +87,7 @@ namespace {
     std::vector<float> mu_TPC_angle;
     std::vector<float> x_ontrack;
     std::vector<float> y_ontrack;
+    std::vector<float> residuals;
   };
 
 }
@@ -216,6 +217,7 @@ StatusCode MMRawDataMonAlg::fillMMOverviewVects( const Muon::MMPrepData* prd, MM
   vects.R_mon.push_back(R);
 
     
+
   //MMS and MML phi sectors
   int phisec=0;
   if (stationNumber%2 == 0) phisec=1;
@@ -355,7 +357,8 @@ StatusCode MMRawDataMonAlg::fillMMSummaryVects( const Muon::MMPrepData* prd, MMS
 
     //    Filling Vectors for both sides, considering each strip  
     Vectors.strip_number.push_back(stripNumbers[sIdx]);
-    Vectors.sector_strip.push_back(get_bin_for_occ_ASide_hist(stationEta,multiplet,gas_gap));
+    if(iside==1)    Vectors.sector_strip.push_back(get_bin_for_occ_ASide_hist(stationEta,multiplet,gas_gap));
+    if(iside==0)    Vectors.sector_strip.push_back(get_bin_for_occ_CSide_hist(stationEta,multiplet,gas_gap));
     
   }
 
@@ -408,27 +411,31 @@ StatusCode MMRawDataMonAlg::fillMMHistograms( const Muon::MMPrepData* ) const{
 void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer*  muonContainer, int lb) const{
 
   MMSummaryHistogramStruct summaryPlots[2][2][4];
+  MMSummaryHistogramStruct summaryPlots_full[2][16][2][2][4];
   MMOverviewHistogramStruct overviewPlots;
+
   int nmu=0;
 
   for (const xAOD::TrackParticle* meTP  : *muonContainer){
 
     if (meTP) {
       nmu++;
+      auto eta_trk = Monitored::Scalar<float>("eta_trk", meTP->eta());
+      auto phi_trk = Monitored::Scalar<float>("phi_trk", meTP->phi());
 
       // retrieve the original track                                                       
       const Trk::Track* meTrack = meTP->track();
       if (meTrack) {
         // get the vector of measurements on track                                                           
-       
+
 	const DataVector<const Trk::MeasurementBase>* meas = meTrack->measurementsOnTrack();
+
 	
 	for(const Trk::MeasurementBase* it: *meas){
 	
 	  const Trk::RIO_OnTrack* rot = dynamic_cast<const Trk::RIO_OnTrack*>(it);
 	  
 	  if (rot) {
-	      
 	    Identifier rot_id = rot->identify();
 	    if (m_idHelperSvc->isMM(rot_id)) {
 	      const Muon::MMClusterOnTrack* cluster = dynamic_cast<const Muon::MMClusterOnTrack*>(rot);
@@ -479,12 +486,71 @@ void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer*  muon
 		  vects.sector_lb_ASide_eta2_ontrack.push_back(get_bin_for_occ_lb_ASide_pcb_eta2_hist(stEta,multi,gap,PCB,phisec));
 		  
 		  }
-	                      
+
+		float x =		cluster->localParameters()[Trk::loc1] ;
+
+		for (const Trk::TrackStateOnSurface* trkState: *meTrack->trackStateOnSurfaces()) {
+
+		  if(!(trkState)) continue;
+		  Identifier surfaceId = (trkState)->surface().associatedDetectorElementIdentifier();
+		  if(!m_idHelperSvc->isMM(surfaceId)) continue;
+
+		  int trk_stEta= m_idHelperSvc->mmIdHelper().stationEta(surfaceId);
+		  int trk_stPhi= m_idHelperSvc->mmIdHelper().stationPhi(surfaceId);
+		  int trk_multi = m_idHelperSvc->mmIdHelper().multilayer(surfaceId);
+		  int trk_gap=  m_idHelperSvc->mmIdHelper().gasGap(surfaceId);
+		  if(  trk_stPhi==stPhi  and trk_stEta==stEta and trk_multi==multi and trk_gap==gap ){
+		    double x_trk = trkState->trackParameters()->parameters()[Trk::loc1];
+		    double y_trk = trkState->trackParameters()->parameters()[Trk::locY];
+		    
+		    int stPhi16=0;
+		    if (stName=="MML")   stPhi16=2*stPhi-1;
+		    
+		    if (stName=="MMS")  stPhi16=2*stPhi;
+
+		    int iside=0;
+		    if(stEta>0) iside=1;
+
+		    float stereo_angle=		      0.02618;
+		    //		    float stereo_correction=stereo_angle*y_trk;
+		    float stereo_correction=sin(stereo_angle)*y_trk;
+		    if(multi==1 && gap<3) stereo_correction=0;
+		    if(multi==2 && gap>2) stereo_correction=0;
+		    if(multi==1 && gap==3 ) stereo_correction*=-1;
+		    if(multi==2 && gap==1 ) stereo_correction*=-1;
+		    if(multi==1 && gap<3) stereo_angle=0;
+		    if(multi==2 && gap>2) stereo_angle=0;
+		    float res_stereo = (x - x_trk)*cos(stereo_angle) - stereo_correction;
+		    auto residual_mon = Monitored::Scalar<float>("residual", res_stereo);
+		    auto stPhi_mon = Monitored::Scalar<float>("stPhi_mon",stPhi16);
+		    fill("mmMonitor",residual_mon, eta_trk, phi_trk, stPhi_mon);
+		    int abs_stEta= get_sectorEta_from_stationEta(stEta);
+		    auto& vectors = summaryPlots_full[iside][stPhi16-1][abs_stEta-1][multi-1][gap-1];
+		    vectors.residuals.push_back(res_stereo);
+		  }
+		}
 	      } //if cluster
 	    } //isMM
 	  } // if rot
 	} // loop on meas
 	
+	for (int iside=0;iside<2;iside++){
+	std::string MM_sideGroup = "MM_sideGroup"+MM_Side[iside];
+	  for( int statPhi=0; statPhi<16; statPhi++) {
+	    for( int statEta=0; statEta<2; statEta++) {
+	      for( int multiplet=0; multiplet<2; multiplet++) {
+		for( int gas_gap=0; gas_gap<4; gas_gap++) {	
+		  auto& vects=summaryPlots_full[iside][statPhi][statEta][multiplet][gas_gap];;
+		  auto residuals_gap = Monitored::Collection("residuals_"+MM_Side[iside]+"_phi"+std::to_string(statPhi+1)+"_stationEta"+EtaSector[statEta]+"_multiplet"+std::to_string(multiplet+1)+"_gas_gap"+std::to_string(gas_gap+1),vects.residuals);
+		  std::string MM_GapGroup = "MM_GapGroup"+std::to_string(gas_gap+1);
+
+		  fill(MM_sideGroup,residuals_gap);
+		}
+	      }}}}
+
+
+
+
 	for (const Trk::TrackStateOnSurface* trkState: *meTrack->trackStateOnSurfaces()) {
 	  
 	  if(!(trkState)) continue;
@@ -500,13 +566,12 @@ void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer*  muon
 	  int iside=0;
 	  if(stEta>0) iside=1;
 
-	  auto& Vectors = summaryPlots[iside][multi-1][gap-1];
-	  
+	  auto& Vectors = summaryPlots[iside][multi-1][gap-1];	  
+
 	  //Filling x-y position vectors using the trackStateonSurface 
-	    Vectors.x_ontrack.push_back(pos.x());
-	    Vectors.y_ontrack.push_back(pos.y());
-	
-	  
+	  Vectors.x_ontrack.push_back(pos.x());
+	  Vectors.y_ontrack.push_back(pos.y());
+	    
 	}
       } // if meTrack
     } // if muon