diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
index ca63470a198d8176bf7bc672032c95f35944f1de..42d8d9f385070d9e0ef9b718aad6e26f11debc51 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
@@ -1068,6 +1068,7 @@ class triggerMenuSetup(JobProperty):
         'PhysicsP1_pp_run3_v1', # PhysicsP1_pp_run3 for AthenaMT
         'Physics_pp_run3_v1', # Physics_pp_run3 for AthenaMT
         'MC_pp_v8', 'Physics_pp_v8', 'MC_pp_v8_no_prescale', 'MC_pp_v8_tight_mc_prescale', 'MC_pp_v8_tightperf_mc_prescale', 'MC_pp_v8_loose_mc_prescale','Physics_pp_v8_tight_physics_prescale',
+        'Cosmic_pp_run3_v1',
         ]
 
     _default_menu='Physics_pp_v7_primaries'
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
index 29db99e46e3df114f0f1812a9b5a7cfda4f86823..39c79f22ce163232ed32bb87f1a045afc32a99a8 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
+++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
@@ -132,6 +132,7 @@ atlas_add_test( generateMenuMT SCRIPT bash test_HLTmenu.sh
 #----------------------------------
 # List of menus to be created:
 atlas_build_lvl1_trigger_menu( LS2_v1 )
+atlas_build_lvl1_trigger_menu( Cosmic_pp_run3_v1 )
 
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py
new file mode 100644
index 0000000000000000000000000000000000000000..9dc434ed182c31c8618d0841abd7301800f9fe79
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Cosmic_pp_run3_v1.py
@@ -0,0 +1,89 @@
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+
+#------------------------------------------------------------------------#
+# LS2_v1.py menu for the long shutdown development
+#------------------------------------------------------------------------#
+
+# This defines the input format of the chain and it's properties with the defaults set
+# always required are: name, stream and groups
+#['name', 'L1chainParts'=[], 'stream', 'groups', 'merging'=[], 'topoStartFrom'=False],
+from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp
+
+def setupMenu():
+
+    from TriggerJobOpts.TriggerFlags          import TriggerFlags
+    from AthenaCommon.Logging                 import logging
+    log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Menu.Cosmic_pp_run3_v1.py' )
+
+    TriggerFlags.Slices_all_setOff()
+
+    TriggerFlags.TestSlice.signatures = []
+
+    TriggerFlags.MuonSlice.signatures = [
+        ChainProp(name='HLT_mu4_cosmic_L1MU4_EMPTY', l1SeedThresholds=['MU4'], stream=['CosmicMuons'], groups=['RATE:Cosmic_Muon','BW:Muon']),
+        ChainProp(name='HLT_mu4_msonly_cosmic_L1MU4_EMPTY', l1SeedThresholds=['MU4'], stream=['CosmicMuons'], groups=['RATE:Cosmic_Muon','BW:Muon']),
+     ]
+
+    TriggerFlags.EgammaSlice.signatures = [
+        ChainProp(name='HLT_g3_etcut_LArPEB_L1EM3',stream=['LArCells'], groups=['RATE:SinglePhoton', 'BW:Egamma'])
+    ]
+
+    TriggerFlags.METSlice.signatures = []
+    TriggerFlags.JetSlice.signatures = []
+    TriggerFlags.BjetSlice.signatures = [] 
+    TriggerFlags.TauSlice.signatures = []
+    TriggerFlags.BphysicsSlice.signatures = []
+    TriggerFlags.CombinedSlice.signatures = []
+    TriggerFlags.HeavyIonSlice.signatures  = []
+    TriggerFlags.BeamspotSlice.signatures  = []
+    TriggerFlags.MinBiasSlice.signatures   = []
+    TriggerFlags.CalibSlice.signatures     = []
+    TriggerFlags.CosmicSlice.signatures    = []
+    TriggerFlags.StreamingSlice.signatures = []
+    TriggerFlags.MonitorSlice.signatures   = []
+
+    # Random Seeded EB chains which select at the HLT based on L1 TBP bits
+    TriggerFlags.EnhancedBiasSlice.signatures = [ ]
+
+    signatureList=[]
+    for prop in dir(TriggerFlags):
+        if prop[-5:]=='Slice':
+            sliceName=prop
+            slice=getattr(TriggerFlags,sliceName)
+            if slice.signatures():
+                signatureList.extend(slice.signatures())
+            else:
+                log.debug('SKIPPING '+str(sliceName))
+    mySigList=[]
+    for allInfo in signatureList:
+        mySigList.append(allInfo[0])
+    mydict={}
+    for chain in mySigList:
+        mydict[chain]=[-1,0,0]
+    mydict.update(Prescales.HLTPrescales_cosmics)
+    from copy import deepcopy
+    Prescales.HLTPrescales_cosmics = deepcopy(mydict)
+    
+
+class Prescales(object):
+    #   Item name             | Prescale
+    #----------------------------------------------------------
+    L1Prescales = {}
+
+    #   Signature name   | [ HLTprescale, HLTpass-through, rerun]
+    #   - Prescale values should be a positive integer (default=1)
+    #   - If the current pass_through value is non-zero,
+    #     the value given here will be used as pass_through rate
+    #     Assuming that pass through chains are configured so
+    #     in the slice files and won't change. Also prescale
+    #     and pass_through will not be used together.
+    #   - If only the first value is specified,
+    #     the default value of pass-through (=0) will be used
+    #----------------------------------------------------------
+    HLTPrescales = {
+        }
+
+    L1Prescales_cosmics  = {}
+    HLTPrescales_cosmics = {}
+    chain_list=[]
+
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
index 73925e149f59590a4a52f9fec1527ac5f7c61d20..1545b08dc7ee026848032c9c0dce851f05b0b2c4 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuPrescaleConfig.py
@@ -79,7 +79,16 @@ def MenuPrescaleConfig(triggerConfigHLT):
             L1Prescales = Prescales.L1Prescales
             HLTPrescales = Prescales.HLTPrescales        
 
-
+    elif menu_name.startswith('Cosmic_pp_run3_v1'):
+        log.info('Cosmic_pp_run3_v1 menu setup')
+        from TriggerMenuMT.HLTMenuConfig.Menu.Cosmic_pp_run3_v1 import setupMenu, Prescales
+        setupMenu()
+        if 'cosmics_prescale' in menu_name:
+            L1Prescales = Prescales.L1Prescales_cosmics
+            HLTPrescales = Prescales.HLTPrescales_cosmics
+        else:
+            L1Prescales = Prescales.L1Prescales
+            HLTPrescales = Prescales.HLTPrescales
             
     else:
         log.fatal ('Menu with name %s is not known in this version of TriggerMenu! ', menu_name)
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 88d2ac904becda0e7e4530bc7eb3683f85888f7a..97a8d9e147dcc91fc0e70db887aea351d22180be 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -183,7 +183,7 @@ MuonChainParts = {
     'IDinfo'         : [],
     'isoInfo'        : ['ivar','ivarmedium'],
     'invMassInfo'    : ['10invm70'],
-    'addInfo'        : ['1step','idperf','3layersEC'],
+    'addInfo'        : ['1step','idperf','3layersEC','cosmic'],
     'topo'           : AllowedTopos_mu,
     'flavour'        : [],
     }
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py
index 9621de71e0f3f19c7fe8baf96b8bb564dd1b3a2d..1e6033c47be3d94bd2701ddf86cb769df74a38dc 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py
@@ -28,13 +28,14 @@ class StreamInfo(UserList):
 _all_streams = [
     # PHYSICS STREAMS
     StreamInfo('Main', 'physics', True, True),
+    StreamInfo('CosmicMuons','physics',True,True),
     # EXPRESS STREAM
     StreamInfo('express', 'express', True, True),
     # CALIBRATION STREAMS
     StreamInfo('BeamSpot', 'calibration', True, False),
     StreamInfo('LArCells', 'calibration', False, False),
     StreamInfo('RPCSecondaryReadout', 'calibration', False, False),
-    StreamInfo('CostMonitoring','calibration', False, False)
+    StreamInfo('CostMonitoring','calibration', False, False),
 ]
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py
index 4d0ac78aef4fd690c18132a6807ce64b30cfab07..c615d4615fe6e0ce0b6abde5007dbfec85de3733 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuRun3.py
@@ -58,6 +58,7 @@ def main():
         ("mc"   , "MC_pp_v8"     ),
         ("mcp"  , ["MC_pp_v8_no_prescale", "MC_pp_v8_loose_mc_prescale", "MC_pp_v8_tight_mc_prescale"]),
         ("ls"   , "LS2_v1"       ),
+        ("cosmic", "Cosmic_pp_run3_v1"),
         ("hiphy4","Physics_HI_v4"),
         ("hiphy", "Physics_HI_v4"),
         ("himc4", "MC_HI_v4"     ),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py
index 262b5fb3425d1a8444ad689841d99133fc93b0ed..a4ee61d34aa0aa0b3f8653c32a1897b9728dfc72 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateLVL1MenuMT.py
@@ -85,7 +85,7 @@ def findRequiredItemsFromXML():
     from TriggerJobOpts.TriggerFlags import TriggerFlags as TF
     from TriggerMenu.l1.Lvl1Flags import Lvl1Flags
     
-    menus = ['Physics_pp_v7','MC_pp_v7','LS2_v1']
+    menus = ['Physics_pp_v7','MC_pp_v7','LS2_v1','Cosmic_pp_run3_v1']
 
     from TriggerMenu.l1.XMLReader import L1MenuXMLReader
 
@@ -148,6 +148,7 @@ def main():
     if len(sys.argv)==1:
         
         generateL1Menu(menu="LS2_v1" )
+        generateL1Menu(menu="Cosmic_pp_run3_v1")
         return 0
 
     
@@ -199,6 +200,11 @@ def main():
         menu.printCabling()
         return 0
 
+    if sys.argv[1].lower().startswith("cosmic"):
+        menu = generateL1Menu(menu="Cosmic_pp_run3_v1")
+        menu.printCabling()
+        return 0
+
     if sys.argv[1].lower().startswith("dc14"):
         generateL1Menu(menu="DC14",useTopoMenu="Physics_pp_v6")
         return 0