diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h b/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
index 8f4aa98e4dc5332bbdad0f1ace8f9d1aba321664..c68bc53c59bb3307d64ea37a71499fba25b49f79 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
+++ b/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
@@ -31,6 +31,12 @@ private:
 	std::vector<std::string> m_structuresFromFlags;
 	std::string m_outPREsqlName;
 
+    // The following ServiceHandle<AmdcsimrecAthenaSvc> is only needed for creating AGDD muon layouts (muon passive material layouts)
+    // *IF* the AGDD xml block is still stored in the amdb file (https://twiki.cern.ch/twiki/bin/viewauth/Atlas/AmdbSimrecFiles)
+    // Note that this was the case until amdb_simrec.r.08.01, from amdb_simrec.r.08.02 onwards, the AGDD xml is stored independently
+    // of the amdb file in MuonSpectrometer/MuonG4/MuonPassiveMaterials.
+    // Thus, this ServiceHandle is only kept for backwards compatibility (in case someone wants to create muon layouts from amdb files
+    // older than amdb_simrec.r.08.02)
 #ifndef SIMULATIONBASE
 	ServiceHandle<AmdcsimrecAthenaSvc> p_AmdcsimrecAthenaSvc;
 #endif
diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDTool.cxx b/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDTool.cxx
index 4f73cd005c8bddd65dc20ea22c51717ec2453680..f44885e25eb7b1c2ee87168d6cb85c04bdfee468 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDTool.cxx
+++ b/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDTool.cxx
@@ -35,10 +35,8 @@ StatusCode MuonAGDDTool::initialize()
 		m_DBFileName = "Generated_" + m_outFileType + "_pool.txt";
 	}
 
-	// please see more details on regarding the dependency on AMDB on ATLASSIM-3636
-	// and the CMakeLists.txt . the NSWAGDDTool avoids the dependency already
 #ifndef SIMULATIONBASE
-	if(m_writeDBfile && !m_xmlFiles.size()) CHECK( p_AmdcsimrecAthenaSvc.retrieve() );
+	if(m_writeDBfile && !m_xmlFiles.size()) ATH_CHECK(p_AmdcsimrecAthenaSvc.retrieve());
 #endif
 
 	if (m_buildNSW) 
@@ -68,11 +66,11 @@ StatusCode MuonAGDDTool::construct()
 			ATH_MSG_INFO(" ----> "<<m_structuresFromFlags[i]);
 	}
 	
-	if (!m_readAGDD)
-	{
-		ATH_MSG_INFO(" trying to parse files ");
+	// reading from a local AGDD xml file
+	if (!m_readAGDD) {
+		ATH_MSG_INFO(" Parsing local xml file ");
 		m_controller->ParseFiles();
-		if(!m_writeDBfile) return StatusCode::SUCCESS;
+    // reading the AGDD xml blob from the ATLAS geometry database
 	} else {
 	    ATH_MSG_INFO(" now reading AGDD blob ");
 
@@ -87,19 +85,24 @@ StatusCode MuonAGDDTool::construct()
 	    m_controller->ParseString(AGDDfile);
 	}
 
-	if (m_printSections)
-	{	
+	if (m_printSections) {	
 		ATH_MSG_INFO("\t Printing all sections");
 		m_controller->PrintSections();
 	}
-	
-	ATH_MSG_INFO(" now dumping the flags ");
-	for (unsigned int i =0;i<m_structuresFromFlags.size();i++)
-	{
-		ATH_MSG_INFO("\t\t----- "<<m_structuresFromFlags[i]<<" "<<ALIAS(m_structuresFromFlags[i]));
-		if (!m_buildNSW && m_structuresFromFlags[i]=="NewSmallWheel") continue;
-		m_controller->GetBuilder()->BuildFromVolume(m_structuresFromFlags[i]);
-	}
+
+    // when reading from a local AGDD xml file and not creating a layout (i.e. running simulation from a local xml file),
+    // only build those volumes that are specified at the 'Volumes' property (analogously to the AGDD2GeoSwitches when reading the blob)
+    if (!m_readAGDD && !m_writeDBfile) {
+        for (const auto &vol:m_volumesToBuild) {
+            m_controller->GetBuilder()->BuildFromVolume(vol);
+        }
+    } else {
+    // when reading the AGDD xml blob, only build the volumes specified via the AGDD2GeoSwitches
+        for (unsigned int i =0;i<m_structuresFromFlags.size();i++) {
+            if (!m_buildNSW && m_structuresFromFlags[i]=="NewSmallWheel") continue;
+            m_controller->GetBuilder()->BuildFromVolume(m_structuresFromFlags[i]);
+        }
+    }
 
 	if(m_writeDBfile)
 	{
@@ -176,9 +179,12 @@ bool MuonAGDDTool::WritePREsqlFile() const
 	}
 
 	std::string TheAmdcName = m_amdcName;
-	// in principle this information could also be accessed differently and the
-	// dependency on AMDB could be avoided. for the moment it's kept to be fully
-	// consistent with previous table generations
+	// The following is only needed for creating AGDD muon (passive material) layouts
+    // *IF* the AGDD xml block is still stored in the amdb file (https://twiki.cern.ch/twiki/bin/viewauth/Atlas/AmdbSimrecFiles)
+    // Note that this was the case until amdb_simrec.r.08.01, from amdb_simrec.r.08.02 onwards, the AGDD xml is stored independently
+    // of the amdb file in MuonSpectrometer/MuonG4/MuonPassiveMaterials.
+    // Thus, this retrieval of the AmdcName is only kept for backwards compatibility (in case someone wants to create muon layouts 
+    // from amdb files older than amdb_simrec.r.08.02) to be fully consistent with previous table generations.
 #ifndef SIMULATIONBASE
     if (!m_xmlFiles.size()) {
         Amdcsimrec* pAmdcsimrec = p_AmdcsimrecAthenaSvc->GetAmdcsimrec();
diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
index 779ee8afbe08980b7b5edba4ef2865f1646b3d34..4a073094ebd6238f28d68a5a3e8de62be9a950a9 100755
--- a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
@@ -373,37 +373,43 @@ namespace MuonGM {
     GeoPcon* c4 = new GeoPcon( 0, 360*Gaudi::Units::deg );
 
     if(m_isAmdcDb) {
-      log<< MSG::INFO <<" Using hardcoded envelope dimesions from MuonSystem-11 table" <<endmsg;
-      c4->addPlane(-26046. , 1050.  ,  1500.  );
-      c4->addPlane(-23001. , 1050.  ,  1500.  );
-      c4->addPlane(-23001. , 1050.  ,  2750.  );
-      c4->addPlane(-22030. , 1050.  ,  2750.  );
-      c4->addPlane(-22030. ,  436.  , 12650.  );
-      c4->addPlane(-18650. ,  436.  , 12650.  );
-      c4->addPlane(-18650. ,  279.  , 13400.  );
-      c4->addPlane(-12900. ,  279.  , 13400.  );
-      c4->addPlane(-12900. ,   70.  , 13910.  );
-      c4->addPlane( -6783. ,   70.  , 13910.  );
-      c4->addPlane( -6783. ,  420.  , 13910.  );
-      c4->addPlane( -6736. ,  420.  , 13910.  );
-      c4->addPlane( -6736. , 3800.  , 13910.  );
-      c4->addPlane( -6550. , 3800.  , 13910.  );
-      c4->addPlane( -6550. , 4255.  , 13000.  );
-      c4->addPlane(  6550. , 4255.  , 13000.  );
-      c4->addPlane(  6550. , 3800.  , 13910.  );
-      c4->addPlane(  6736. , 3800.  , 13910.  );
-      c4->addPlane(  6736. ,  420.  , 13910.  );
-      c4->addPlane(  6783. ,  420.  , 13910.  );
-      c4->addPlane(  6783. ,   70.  , 13910.  );
-      c4->addPlane( 12900. ,   70.  , 13910.  );
-      c4->addPlane( 12900. ,  279.  , 13400.  );
-      c4->addPlane( 18650. ,  279.  , 13400.  );
-      c4->addPlane( 18650. ,  436.  , 12650.  );
-      c4->addPlane( 22030. ,  436.  , 12650.  );
-      c4->addPlane( 22030. , 1050.  ,  2750.  );
-      c4->addPlane( 23001. , 1050.  ,  2750.  );
-      c4->addPlane( 23001. , 1050.  ,  1500.  );
-      c4->addPlane( 26046. , 1050.  ,  1500.  );         
+      // NOTE: the following hard coded values are ONLY needed for local validation studies of new amdb layouts
+      // (when no values from the geometry database are retrieved, the values correspond to ATLAS-R2-2016-01-00-01)
+      log<< MSG::INFO <<" Using hardcoded envelope dimesions from MuonSystem-15 table" <<endmsg;
+      c4->addPlane(-26046. , 1050.  ,  1500);
+      c4->addPlane(-23001. , 1050.  ,  1500);
+      c4->addPlane(-23001. , 1050.  ,  2750);
+      c4->addPlane(-22030. , 1050.  ,  2750);
+      c4->addPlane(-22030. ,  436.7 , 12650);
+      c4->addPlane(-18650. ,  436.7 , 12650);
+      c4->addPlane(-18650. ,  279.  , 13400);
+      c4->addPlane(-12900. ,  279.  , 13400);
+      c4->addPlane(-12900. ,   70.  , 14200);
+      c4->addPlane( -6783. ,   70.  , 14200);
+      c4->addPlane( -6783. ,  420.  , 14200);
+      c4->addPlane( -6736. ,  420.  , 14200);
+      c4->addPlane( -6736. , 3800.  , 14200);
+      c4->addPlane( -6550. , 3800.  , 14200);
+      c4->addPlane( -6550. , 4255.  , 14200);
+      c4->addPlane( -4000. , 4255.  , 14200);
+      c4->addPlane( -4000. , 4255.  , 13000);
+      c4->addPlane(  4000. , 4255.  , 13000);
+      c4->addPlane(  4000. , 4255.  , 14200);
+      c4->addPlane(  6550. , 4255.  , 14200);
+      c4->addPlane(  6550. , 3800.  , 14200);
+      c4->addPlane(  6736. , 3800.  , 14200);
+      c4->addPlane(  6736. ,  420.  , 14200);
+      c4->addPlane(  6783. ,  420.  , 14200);
+      c4->addPlane(  6783. ,   70.  , 14200);
+      c4->addPlane( 12900. ,   70.  , 14200);
+      c4->addPlane( 12900. ,  279.  , 13400);
+      c4->addPlane( 18650. ,  279.  , 13400);
+      c4->addPlane( 18650. ,  436.7 , 12650);
+      c4->addPlane( 22030. ,  436.7 , 12650);
+      c4->addPlane( 22030. , 1050.  ,  2750);
+      c4->addPlane( 23001. , 1050.  ,  2750);
+      c4->addPlane( 23001. , 1050.  ,  1500);
+      c4->addPlane( 26046. , 1050.  ,  1500);
     } else {
 
       //--- --- --- CREATE ENVELOPE --- --- ---
diff --git a/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_01.sh b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_01.sh
index 963ac2ec2914fbefcba14ce4e923dfa1cb191cde..f26d290174e0d5a7c00232c8fead3afba18049c5 100755
--- a/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_01.sh
+++ b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_01.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# art-description: Run simulation from existing layout of geometry database and from local file (for muon geometry MuonSpectrometer-R.08.01)
+# art-description: Run simulation from existing layout of geometry database and from local amdb file (for muon geometry MuonSpectrometer-R.08.01)
 #
 # art-type: grid
 # art-include: master/Athena
@@ -14,16 +14,17 @@ art.py createpoolfile
 set -x
 
 #######################################
-# first, run simulation with ATLAS layout ATLAS-R2-2016-01-00-01 (official Run2) based on MuonSpectrometer-R.08.01
+# run simulation with ATLAS layout ATLAS-R2-2016-01-00-01 (official Run2) based on MuonSpectrometer-R.08.01
 # but from local file (in this case: amdb_simrec.r.08.01)
 #######################################
 
 # download amdb file
 wget http://atlas.web.cern.ch/Atlas/GROUPS/MUON/AMDB/amdb_simrec.r.08.01
 # run simulation from local amdb file
+# NOTE: the simFlags.G4Commands+=["/process/em/applyCuts true"] is added by hand, since it is part of the nominal s3512 job, but apparently overwritten when giving a custom postExec
 Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
           --geometryVersion 'default:ATLAS-R2-2016-01-00-01' \
-          --postExec 'input_amdb_simrec="amdb_simrec.r.08.01";include("MuonGeoModel/InitGeoFromLocal_postIncl.py")' \
+          --postExec 'input_amdb_simrec="amdb_simrec.r.08.01";include("MuonGeoModel/InitGeoFromLocal_postIncl.py");simFlags.G4Commands+=["/process/em/applyCuts true"]' \
           --AMI=s3512 \
           --maxEvents 25 \
           --imf False \
@@ -39,7 +40,7 @@ fi
 mv log.EVNTtoHITS log.EVNTtoHITS_fromLocal
 
 #######################################
-# second, run simulation with ATLAS layout ATLAS-R2-2016-01-00-01 (official Run2) based on MuonSpectrometer-R.08.01
+# run simulation with ATLAS layout ATLAS-R2-2016-01-00-01 (official Run2) based on MuonSpectrometer-R.08.01
 #######################################
 
 Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
@@ -60,7 +61,7 @@ fi
 # then diff the output files
 #######################################
 
-acmd.py diff-root --ignore-leaves timings --mode semi-detailed --error-mode resilient OUT_HITS_fromLocal.root OUT_HITS.root &> log_diff_HITS.log
+acmd.py diff-root OUT_HITS_fromLocal.root OUT_HITS.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref &> log_diff_HITS.log
 exit_code=$?
 echo  "art-result: ${exit_code} diff-root_sim"
 if [ ${exit_code} -ne 0 ]
diff --git a/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_AGDD.sh b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_AGDD.sh
new file mode 100755
index 0000000000000000000000000000000000000000..097a189a2d09b93a126ab58c21eabcc4953f80d0
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_AGDD.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# art-description: Run simulation from existing layout of geometry database and from local AGDD file (for muon geometry MuonSpectrometer-R.08.02)
+#
+# art-type: grid
+# art-include: master/Athena
+#
+# art-output: log.EVNTtoHITS_fromLocal
+# art-output: log.EVNTtoHITS
+# art-output: log_diff_HITS.log
+
+art.py createpoolfile
+
+set -x
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R2-2016-01-02-01 (best knowledge Run2) based on MuonSpectrometer-R.08.02
+# but from local file (in this case: passiveMat_r.08.02.xml)
+#######################################
+
+# download AGDD file
+get_files passiveMat_r.08.02.xml
+# run simulation from local AGDD file
+# NOTE: the simFlags.G4Commands+=["/process/em/applyCuts true"] is added by hand, since it is part of the nominal s3512 job, but apparently overwritten when giving a custom postExec
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R2-2016-01-02-01_VALIDATION' \
+          --postExec 'input_agdd_xml="passiveMat_r.08.02.xml";include("InitGeoFromLocal_postIncl.py");simFlags.G4Commands+=["/process/em/applyCuts true"]' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS_fromLocal.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf_fromLocal"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+mv log.EVNTtoHITS log.EVNTtoHITS_fromLocal
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R2-2016-01-02-01 (best knowledge Run2) based on MuonSpectrometer-R.08.02
+#######################################
+
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R2-2016-01-02-01_VALIDATION' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+#######################################
+# then diff the output files
+#######################################
+
+acmd.py diff-root OUT_HITS_fromLocal.root OUT_HITS.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref &> log_diff_HITS.log
+exit_code=$?
+echo  "art-result: ${exit_code} diff-root_sim"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+echo "art-result: $?"
+
+
+
diff --git a/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_Amdb.sh b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_Amdb.sh
new file mode 100755
index 0000000000000000000000000000000000000000..fc08e7f7c02d86c0af26f02ba5efe1eb53562d8b
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_08_02_Amdb.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# art-description: Run simulation from existing layout of geometry database and from local amdb file (for muon geometry MuonSpectrometer-R.08.02)
+#
+# art-type: grid
+# art-include: master/Athena
+#
+# art-output: log.EVNTtoHITS_fromLocal
+# art-output: log.EVNTtoHITS
+# art-output: log_diff_HITS.log
+
+art.py createpoolfile
+
+set -x
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R2-2016-01-02-01 (best knowledge Run2) based on MuonSpectrometer-R.08.02
+# but from local file (in this case: amdb_simrec.r.08.02)
+#######################################
+
+# download amdb file
+wget http://atlas.web.cern.ch/Atlas/GROUPS/MUON/AMDB/amdb_simrec.r.08.02
+# run simulation from local amdb file
+# NOTE: the simFlags.G4Commands+=["/process/em/applyCuts true"] is added by hand, since it is part of the nominal s3512 job, but apparently overwritten when giving a custom postExec
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R2-2016-01-02-01_VALIDATION' \
+          --postExec 'input_amdb_simrec="amdb_simrec.r.08.02";include("MuonGeoModel/InitGeoFromLocal_postIncl.py");simFlags.G4Commands+=["/process/em/applyCuts true"]' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS_fromLocal.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf_fromLocal"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+mv log.EVNTtoHITS log.EVNTtoHITS_fromLocal
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R2-2016-01-02-01 (best knowledge Run2) based on MuonSpectrometer-R.08.02
+#######################################
+
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R2-2016-01-02-01_VALIDATION' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+#######################################
+# then diff the output files
+#######################################
+
+acmd.py diff-root OUT_HITS_fromLocal.root OUT_HITS.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref &> log_diff_HITS.log
+exit_code=$?
+echo  "art-result: ${exit_code} diff-root_sim"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+echo "art-result: $?"
+
+
+
diff --git a/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_09_02_NSWAGDD.sh b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_09_02_NSWAGDD.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5af0b37cc89f53c815eb468a0af3028ba5794463
--- /dev/null
+++ b/MuonSpectrometer/MuonValidation/MuonGeomValidation/MuonGeomRTT/test/test_geoFromLocal_R_09_02_NSWAGDD.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# art-description: Run simulation from existing layout of geometry database and from local NSW AGDD file (for muon geometry MuonSpectrometer-R.09.02.Asym)
+#
+# art-type: grid
+# art-include: master/Athena
+#
+# art-output: log.EVNTtoHITS_fromLocal
+# art-output: log.EVNTtoHITS
+# art-output: log_diff_HITS.log
+
+art.py createpoolfile
+
+set -x
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R3-2021-01-00-01 (asymmetric Run3) based on MuonSpectrometer-R.09.02.Asym
+# but from local file (in this case: stations.v2.08_Aside.xml)
+#######################################
+
+# download NSWAGDD file
+get_files stations.v2.08_Aside.xml
+# run simulation from local NSW AGDD file
+# NOTE: the simFlags.G4Commands+=["/process/em/applyCuts true"] is added by hand, since it is part of the nominal s3512 job, but apparently overwritten when giving a custom postExec
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R3-2021-01-00-01_VALIDATION' \
+          --postExec 'input_nsw_xml="stations.v2.08_Aside.xml";include("MuonGeoModel/InitGeoFromLocal_postIncl.py");simFlags.G4Commands+=["/process/em/applyCuts true"]' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS_fromLocal.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf_fromLocal"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+mv log.EVNTtoHITS log.EVNTtoHITS_fromLocal
+
+#######################################
+# run simulation with ATLAS layout ATLAS-R3-2021-01-00-01 (asymmetric Run3) based on MuonSpectrometer-R.09.02.Asym
+#######################################
+
+Sim_tf.py --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 \
+          --geometryVersion 'default:ATLAS-R3-2021-01-00-01_VALIDATION' \
+          --AMI=s3512 \
+          --maxEvents 25 \
+          --imf False \
+          --outputHITSFile OUT_HITS.root
+
+exit_code=$?
+echo  "art-result: ${exit_code} Sim_tf"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+#######################################
+# then diff the output files
+#######################################
+
+acmd.py diff-root OUT_HITS_fromLocal.root OUT_HITS.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref &> log_diff_HITS.log
+exit_code=$?
+echo  "art-result: ${exit_code} diff-root_sim"
+if [ ${exit_code} -ne 0 ]
+then
+    exit ${exit_code}
+fi
+
+echo "art-result: $?"
+
+
+