diff --git a/Simulation/Digitization/python/DigitizationFlags.py b/Simulation/Digitization/python/DigitizationFlags.py
index cc3d1578ebe73159f626dd5432564e1e6edb0495..8b41968f535cf8f6da3718f68719c02c22be9e1e 100755
--- a/Simulation/Digitization/python/DigitizationFlags.py
+++ b/Simulation/Digitization/python/DigitizationFlags.py
@@ -545,7 +545,10 @@ class RunAndLumiOverrideList(JobProperty):
         pDicts = self.get_Value()
         #clear svc properties?
         for el in pDicts:
-            eventIdModSvc.add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'])
+            if 'evt_nbr' in el:
+                eventIdModSvc.add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'], evt_nbr=el['evt_nbr'])
+            else:
+                eventIdModSvc.add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'])
         return
     def SetPileUpEventLoopMgrProps(self,pileUpEventLoopMgr):
         if not (self._locked):
diff --git a/Simulation/Digitization/python/RunDependentConfig.py b/Simulation/Digitization/python/RunDependentConfig.py
index ac7607b15e1a1272238e3f41e4f2f42dcb561f0a..5d9a7f5454883297c2877c5dbfa541cd33f38474 100644
--- a/Simulation/Digitization/python/RunDependentConfig.py
+++ b/Simulation/Digitization/python/RunDependentConfig.py
@@ -44,7 +44,10 @@ def buildListOfModifiers():
             raise RuntimeError( 'You cannot configure the EvtIdModifierSvc with an unlocked JobProperty.' )
         pDicts = digitizationFlags.RunAndLumiOverrideList.get_Value()
         for el in pDicts:
-            Modifiers += add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'])
+            if 'evt_nbr' in el:
+                Modifiers += add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'], evt_nbr=el['evt_nbr'])
+            else:
+                Modifiers += add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'])
     elif digitizationFlags.dataRunNumber.get_Value():
         if digitizationFlags.dataRunNumber.get_Value() < 0:
             raise SystemExit("Given a negative Run Number - please use a real run number from data.")
diff --git a/Simulation/Digitization/python/RunDependentMCTaskIterator.py b/Simulation/Digitization/python/RunDependentMCTaskIterator.py
index cf14c1743e3536c03fccddb7a9ac1d3624461d96..fdd2909c8956eba355a8f366168ce11678e19d7a 100644
--- a/Simulation/Digitization/python/RunDependentMCTaskIterator.py
+++ b/Simulation/Digitization/python/RunDependentMCTaskIterator.py
@@ -9,7 +9,7 @@
 
 import itertools
 
-def getRunLumiInfoFragment(jobnumber,task,maxEvents):
+def getRunLumiInfoFragment(jobnumber,task,maxEvents,sequentialEventNumbers=False):
     """Calculate the specific configuration of the current job in the digi
     task. Try to make each fragment utilize the same amount of CPU and
     Cache resources.  Exploits the fact that the task when sorted by
@@ -30,7 +30,12 @@ def getRunLumiInfoFragment(jobnumber,task,maxEvents):
         hi_mu_frag=getFragment(jobnumber,sorted(task,key=lambda job: job['mu'],reverse=True),hiMaxEvents)
     if loMaxEvents > 0:
         lo_mu_frag=getFragment(jobnumber,sorted(task,key=lambda job: job['mu']),loMaxEvents)        
-    return sorted(sum([hi_mu_frag,lo_mu_frag],[]),key=lambda job: job['run'])
+    
+    fragment=sorted(sum([hi_mu_frag,lo_mu_frag],[]),key=lambda job: job['run'])
+    if sequentialEventNumbers:
+        return defineSequentialEventNumbers(jobnumber,fragment,maxEvents)
+    else:
+        return fragment
 
 def getFragment(jobnumber,task,maxEvents):
     """ Calculate the specific configuration of the current job in the digi task.
@@ -106,3 +111,23 @@ class taskIterator(object):
             if self.current.get('force_new',False): to_do = 0
         raise StopIteration
 #
+
+def defineSequentialEventNumbers(jobnumber,fragment,maxEvents):
+    """ Calculate sequential event numbers for the defined getFragment.
+    """
+    new_frag = []
+    evt_nbr = jobnumber * maxEvents
+    for t in fragment:
+        for i in range(t['evts']):
+            evt_nbr += 1
+            new_frag.append({
+                'run': t['run'],
+                'lb': t['lb'],
+                'starttstamp': t['starttstamp'],
+                'dt': t['dt'],
+                'evts': 1,
+                'evt_nbr': evt_nbr,
+                'mu': t['mu'],
+                'force_new': t['force_new']
+            })
+    return new_frag
diff --git a/Simulation/RunDependentSim/RunDependentSimData/share/configCommon.py b/Simulation/RunDependentSim/RunDependentSimData/share/configCommon.py
index e998cc2fb107b73f6a23569b2be2416e60570be7..5df55d60de6c7c7d5fcb02e6f132f57e47dc2016 100644
--- a/Simulation/RunDependentSim/RunDependentSimData/share/configCommon.py
+++ b/Simulation/RunDependentSim/RunDependentSimData/share/configCommon.py
@@ -33,9 +33,15 @@ digilog.info('There are %d events in this run.' % runMaxEvents)
 jobsPerRun=int(math.ceil(float(runMaxEvents)/corrMaxEvents))
 digilog.info('Assuming there are usually %d events per job. (Based on %d events in this job.)', corrMaxEvents, trfMaxEvents)
 digilog.info('There must be %d jobs per run.' % jobsPerRun)
+
+# Override event numbers with sequential ones if requested
+sequentialEventNumbers = True if 'SequentialEventNumbers' in dir() and SequentialEventNumbers else False
+if sequentialEventNumbers:
+    digilog.info('All event numbers will be sequential.')
+
 #Load needed tools 
 from Digitization.RunDependentMCTaskIterator import getRunLumiInfoFragment
-fragment=getRunLumiInfoFragment(jobnumber=(trfJobNumber-1),task=JobMaker,maxEvents=trfMaxEvents)
+fragment=getRunLumiInfoFragment(jobnumber=(trfJobNumber-1),task=JobMaker,maxEvents=trfMaxEvents,sequentialEventNumbers=sequentialEventNumbers)
 
 from RunDependentSimComps.RunLumiConfigTools import condenseRunLumiInfoFragment
 digilog.info( 'Writing RunDMC trigger configuration fragment to file.  listOfRunsEvents = %s' %
diff --git a/Simulation/RunDependentSim/RunDependentSimData/share/configEvtNbr_sequential.py b/Simulation/RunDependentSim/RunDependentSimData/share/configEvtNbr_sequential.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ba807414868308ddc801b56c6f61b18e7655334
--- /dev/null
+++ b/Simulation/RunDependentSim/RunDependentSimData/share/configEvtNbr_sequential.py
@@ -0,0 +1,4 @@
+####################
+## Enable sequential event numbers override
+####################
+SequentialEventNumbers = True
diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOnlyConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOnlyConfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..b5ba2c3bd87ddfaa11920c2bcaf7dd52a561e025
--- /dev/null
+++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOnlyConfig.py
@@ -0,0 +1,6 @@
+if not 'DetFlags' in dir():
+    #if you configure one detflag, you're responsible for configuring them all!
+    from AthenaCommon.DetFlags import DetFlags
+    DetFlags.all_setOff()
+DetFlags.Truth_setOn()
+DetFlags.Print()