From 6e71f0fb2bcdf603a1ba0618e3eb782473b38a8e Mon Sep 17 00:00:00 2001 From: Heather Russell <heather.russell@cern.ch> Date: Thu, 30 Mar 2017 09:43:12 +0200 Subject: [PATCH] ATR-15909, Changes for BPhys CPU improvements. Changing nomucomb to default in Bphys chains, so the name is removed from chains in the menu. --- .../bphysics/generateBPhysicsChainDefs.py | 669 +++++++++++++----- .../TriggerMenu/python/menu/MC_pp_v7.py | 20 +- .../TriggerMenu/python/menu/Physics_pp_v7.py | 42 +- .../TriggerMenu/python/menu/SignatureDicts.py | 6 +- .../TriggerMenu/python/menu/StreamInfo.py | 3 +- .../TriggerMenu/python/muon/MuonDef.py | 31 +- .../python/muon/generateMuonChainDefs.py | 4 +- 7 files changed, 575 insertions(+), 200 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenu/python/bphysics/generateBPhysicsChainDefs.py b/Trigger/TriggerCommon/TriggerMenu/python/bphysics/generateBPhysicsChainDefs.py index 9d46f03550a9..cb7908b36c6b 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/bphysics/generateBPhysicsChainDefs.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/bphysics/generateBPhysicsChainDefs.py @@ -13,25 +13,60 @@ log = logging.getLogger(__name__) from TriggerMenu.menu.MenuUtils import setupTopoStartFrom from TrigInDetConf.TrigInDetSequence import TrigInDetSequence + +log.bphysTrigWarning = True + + ########################################################################### ########################################################################### def generateChainDefs(chainDict): from TriggerMenu.muon.generateMuonChainDefs import generateChainDefs as genMuonChainDefs - theChainDef = genMuonChainDefs(chainDict) + + from TriggerJobOpts.TriggerFlags import TriggerFlags + if TriggerFlags.run2Config=='2016': + thisIsBphysChain = False + else : + thisIsBphysChain = True + + + # OI - this is really should be managed in RunTier0Tests and not here!! + menu_name = TriggerFlags.triggerMenuSetup() + if 'MC_pp_v6' in menu_name and TriggerFlags.run2Config!='2016' and log.bphysTrigWarning : + log.warning(menu_name+" is used with run2Config = "+str(TriggerFlags.run2Config)+" will use Bphys trigger config for 2016!!") + thisIsBphysChain = False + log.bphysTrigWarning = False + + elif log.bphysTrigWarning : + log.bphysTrigWarning = False + log.info( "Bphys trigger will be setup for run2config = "+str(TriggerFlags.run2Config)+" as requested") + + + if "bBmumuxv3" in chainDict['chainName'] : # OI this mc 2016 chain was never enabled, and is not needed in future + thisIsBphysChain = False + if 'legacyVtx' in chainDict['chainName'] : # OI Drell-Yan chains are not migrated + thisIsBphysChain = False + if 'invm' in chainDict['chainName'] : # OI Drell-Yan chains are not migrated + thisIsBphysChain = False + + + theChainDef = genMuonChainDefs(chainDict, thisIsBphysChain) if not chainDict["topo"]: log.error( "No topo given -> not a bphysics chain...") else: - theChainDef = _addTopoInfo(theChainDef,chainDict) + if thisIsBphysChain : # new setup + theChainDef = _addTopoInfo(theChainDef,chainDict, doL2MultiTrack = True) + else : + theChainDef = _addTopoInfo(theChainDef,chainDict, doL2MultiTrack = False) return theChainDef ########################################################################### ########################################################################### -def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True): +def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True, doL2MultiTrack = False): maxL2SignatureIndex = -1 for signatureIndex,signature in enumerate(theChainDef.signatureList): @@ -45,44 +80,34 @@ def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True): SameConfigTopos = ['bJpsi', 'bDimu', 'bTau', 'bTauTrk', 'trkTau', 'bDsPhiXtight','bDsPhiX', 'bPhi', - 'bBmumu', 'bJpsimumu', 'bUpsimumu', 'Zmumu','bUpsi'] + 'bBmumu', 'bJpsimumu', 'bUpsimumu', 'Zmumu','bUpsi', + 'bNocut'] ntopos = len(topoAlgs) topoThresh = chainDict['topoThreshold'] topoStartFrom = setupTopoStartFrom(topoThresh,theChainDef) if topoThresh else None - + + if ('bBmumux' in topoAlgs) | ('bBmumuxv2' in topoAlgs) | ('bBmumuxv3' in topoAlgs): - theChainDef = bBmumuxTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom) + theChainDef = bBmumuxTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack) elif ('Trkloose' in topoAlgs): theChainDef = bMuTrack(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom) + elif ('TrkPEB' in topoAlgs): + theChainDef = bMuTrackPEB(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom) elif (ntopos ==1) & (topoAlgs[0] in SameConfigTopos): - theChainDef = bSingleOptionTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom) + theChainDef = bSingleOptionTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack) else: - theChainDef = bMultipleOptionTopos(theChainDef,chainDict,inputTEsL2, inputTEsEF, topoStartFrom) + theChainDef = bMultipleOptionTopos(theChainDef,chainDict,inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack) return theChainDef ################################################################################### -################################################################################### - -def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom): - topoAlgs = chainDict["topo"] - mtopo = topoAlgs[0] - # TE naming deifnition - TEname = findL2teBaseName(chainDict['chainName'],topoAlgs) - L2TEname = "L2_" + TEname+'_'+mtopo+'_'+chainDict['L1item'] - EFTEname = "EF_" + chainDict['chainName'] - topo2StartFrom = None - if topoStartFrom: - L2TEname = "L2_" + TEname+'_'+mtopo+'_tsf_'+chainDict['L1item'] - topo2StartFrom = L2TEname - - chainParts = chainDict['chainParts'] +def getBphysThresholds(chainDict) : mult = 0 trkmuons = [] fexNameExt = "" - for part in chainParts : + for part in chainDict['chainParts'] : mult = mult + int(part['multiplicity']) for dictpart in chainDict['chainParts']: if 'mu' in dictpart['trigType']: @@ -104,36 +129,81 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart thr = 900. trkmuons.append(thr) fexNameExt = fexNameExt + "_"+str(int(dictpart['threshold'])) + return fexNameExt, trkmuons, mult + +################################################################################### + +def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack = False): + topoAlgs = chainDict["topo"] + mtopo = topoAlgs[0] + # TE naming deifnition + TEname = findL2teBaseName(chainDict['chainName'],topoAlgs) + L2TEname = "L2_" + TEname+'_'+mtopo+'_'+chainDict['L1item'] + EFTEname = "EF_" + chainDict['chainName'] + topo2StartFrom = None + if topoStartFrom: + L2TEname = "L2_" + TEname+'_'+mtopo+'_tsf_'+chainDict['L1item'] + topo2StartFrom = L2TEname + + chainParts = chainDict['chainParts'] - if (mtopo == 'bJpsi'): - from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_Jpsi - from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_Jpsi + fexNameExt,trkmuons, mult = getBphysThresholds(chainDict) + + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu,TrigMultiTrkFex_DiMu_noCut,TrigMultiTrkFex_DiMu_noVtx_noOS,TrigMultiTrkFex_DiMu_noVtx_noM_SS + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu_noCut,EFMultiMuHypo_DiMu_noVtx,EFMultiMuHypo_DiMu,EFMultiMuHypo_BMeson,EFMultiMuHypo_Jpsi,EFMultiMuHypo_Upsi,EFMultiMuHypo_2700 + if (mtopo == 'bJpsi'): + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_Jpsi + from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_Jpsi + L2Fex = L2MultiMuFex_Jpsi() + L2Hypo = L2MultiMuHypo_Jpsi() + from TrigBphysHypo.TrigEFMultiMuFexConfig import EFMultiMuFex_Jpsi from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_Jpsi - L2Fex = L2MultiMuFex_Jpsi() - L2Hypo = L2MultiMuHypo_Jpsi() EFFex = EFMultiMuFex_Jpsi() EFHypo = EFMultiMuHypo_Jpsi() elif (mtopo =='bDimu'): import re if ('3mu' in chainDict['chainName'] or re.search('2mu[0-9]+_mu[0-9]+',chainDict['chainName']) or re.search('mu[0-9]+_2mu[0-9]+',chainDict['chainName'])): - from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_DiMu - from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_DiMu + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_DiMu + from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_DiMu + L2Fex = L2MultiMuFex_DiMu() + L2Hypo = L2MultiMuHypo_DiMu() + from TrigBphysHypo.TrigEFMultiMuFexConfig import EFMultiMuFex_DiMu from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu - L2Fex = L2MultiMuFex_DiMu() - L2Hypo = L2MultiMuHypo_DiMu() EFFex = EFMultiMuFex_DiMu() EFHypo = EFMultiMuHypo_DiMu() else: #This is a di-muon chain - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu + L2Fex = L2BMuMuFex_DiMu() + L2Hypo = L2BMuMuHypo_DiMu() + from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu - L2Fex = L2BMuMuFex_DiMu() - L2Hypo = L2BMuMuHypo_DiMu() EFFex = EFBMuMuFex_DiMu() EFHypo = EFBMuMuHypo_DiMu() elif (mtopo == 'bTauTrk'): @@ -157,6 +227,20 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart EFHypo = EFMultiMuHypo_2700("EFMultiMuHypo_Tau3") EFHypo.bphysCollectionKey = "EFMultiMuFex" + elif (mtopo == 'bNocut'): + + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu_noCut + from TrigBphysHypo.TrigBphysMuonCounterConfig import TrigBphysMuonCounter_bNmu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu_noCut + # at level 2 just check that there is at least 2 tracks. One could cut this more down with multiplicity cut for 3mu_bNocut + # but because of 3mu_bJpsi items we will not gain anything + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + + EFFex = TrigBphysMuonCounter_bNmu("TrigBphysMuonCounter"+fexNameExt, trkmuons) + EFHypo = None + elif (mtopo == 'bTau'): from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_trkTau @@ -164,8 +248,15 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart from TrigBphysHypo.TrigEFMultiMuFexConfig import EFMultiMuFex_Tau2 from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_2700 - L2Fex = None - L2Hypo = None + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_trkTau + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_trkTau() + L2Hypo = EFMultiMuHypo_2700("L2MultiMuHypo_bTau") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : # in 2016 there was no L2 part + L2Fex = None + L2Hypo = None if mult == 2 : EFFex = EFMultiMuFex_Tau2() @@ -243,42 +334,72 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart elif (mtopo == 'bUpsi'): - from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_Upsi - from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_Upsi + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Upsi("L2MultiMuTrkHypo_Upsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else: + from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_Upsi + from TrigBphysHypo.TrigL2MultiMuHypoConfig import L2MultiMuHypo_Upsi + L2Fex = L2MultiMuFex_Upsi() + L2Hypo = L2MultiMuHypo_Upsi() + from TrigBphysHypo.TrigEFMultiMuFexConfig import EFMultiMuFex_Upsi from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_Upsi - L2Fex = L2MultiMuFex_Upsi() - L2Hypo = L2MultiMuHypo_Upsi() EFFex = EFMultiMuFex_Upsi() EFHypo = EFMultiMuHypo_Upsi() elif (mtopo == 'bBmumu'): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_B - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_B + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_BMeson + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_BMeson("L2MultiMuTrkHypo_BMeson") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_B + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_B + L2Fex = L2BMuMuFex_B() + L2Hypo = L2BMuMuHypo_B() from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_B from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_B - L2Fex = L2BMuMuFex_B() - L2Hypo = L2BMuMuHypo_B() EFFex = EFBMuMuFex_B() EFHypo = EFBMuMuHypo_B() elif (mtopo == 'bJpsimumu'): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_Jpsi - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_Jpsi + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi + L2Fex = L2BMuMuFex_Jpsi() + L2Hypo = L2BMuMuHypo_Jpsi() + from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Jpsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Jpsi - L2Fex = L2BMuMuFex_Jpsi() - L2Hypo = L2BMuMuHypo_Jpsi() EFFex = EFBMuMuFex_Jpsi() EFHypo = EFBMuMuHypo_Jpsi() elif (mtopo == 'bUpsimumu'): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_Upsi - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Upsi + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Upsi("L2MultiMuTrkHypo_Upsi") + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_Upsi + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Upsi + L2Fex = L2BMuMuFex_Upsi() + L2Hypo = L2BMuMuHypo_Upsi() + from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Upsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Upsi - L2Fex = L2BMuMuFex_Upsi() - L2Hypo = L2BMuMuHypo_Upsi() EFFex = EFBMuMuFex_Upsi() EFHypo = EFBMuMuHypo_Upsi() @@ -298,7 +419,10 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart if L2Fex != None : theChainDef.addSequence([L2Fex, L2Hypo], inputTEsL2, L2TEname, topo_start_from = topoStartFrom) theChainDef.addSignatureL2([L2TEname]) - theChainDef.addSequence([EFFex, EFHypo],inputTEsEF, EFTEname, topo_start_from=topo2StartFrom) + if EFHypo != None : + theChainDef.addSequence([EFFex, EFHypo],inputTEsEF, EFTEname, topo_start_from=topo2StartFrom) + else : + theChainDef.addSequence([EFFex],inputTEsEF, EFTEname, topo_start_from=topo2StartFrom) theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFTEname]) if 'idperf' in chainDict['chainName']: @@ -313,7 +437,7 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStart ################################################################################### ################################################################################### -def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom): +def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack = False): topoAlgs = chainDict["topo"] TEname = findL2teBaseName(chainDict['chainName'],topoAlgs) @@ -331,31 +455,65 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta + #from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + #from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu,TrigMultiTrkFex_DiMu_noCut,TrigMultiTrkFex_DiMu_noVtx_noOS,TrigMultiTrkFex_DiMu_noVtx_noM_SS + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu_noCut,EFMultiMuHypo_DiMu_noVtx,EFMultiMuHypo_DiMu,EFMultiMuHypo_BMeson,EFMultiMuHypo_Jpsi,EFMultiMuHypo_Upsi,EFMultiMuHypo_2700,EFMultiMuHypo_BMeson + if ('7invm9' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' not in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_7invm9_noOS - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_7invm9 + #if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_7invm9_noOS + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_7invm9 + L2Fex = L2BMuMuFex_DiMu_7invm9_noOS() + L2Hypo = L2BMuMuHypo_DiMu_7invm9() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu_7invm9_noVtx") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 7000. + ## L2Hypo.UpperMassCut= 9000. + from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_7invm9_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_7invm9 - L2Fex = L2BMuMuFex_DiMu_7invm9_noOS() - L2Hypo = L2BMuMuHypo_DiMu_7invm9() EFFex = EFBMuMuFex_DiMu_7invm9_noOS() EFHypo = EFBMuMuHypo_DiMu_7invm9() elif ('7invm9' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_7invm9_noOS - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_7invm9_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_7invm9_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_7invm9_noVtx - L2Fex = L2BMuMuFex_DiMu_7invm9_noOS() - L2Hypo = L2BMuMuHypo_DiMu_7invm9_noVtx() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_7invm9_noOS + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_7invm9_noVtx + L2Fex = L2BMuMuFex_DiMu_7invm9_noOS() + L2Hypo = L2BMuMuHypo_DiMu_7invm9_noVtx() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu_noVtx("L2MultiMuTrkHypo_DiMu_noVtx_7invm9") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 7000. + ## L2Hypo.UpperMassCut= 9000. + EFFex = EFBMuMuFex_DiMu_7invm9_noOS() EFHypo = EFBMuMuHypo_DiMu_7invm9_noVtx() elif ('18invm60' in topoAlgs) & ('noos' in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_18invm60_noOS - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_18invm60_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_18invm60_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_18invm60_noVtx - L2Fex = L2BMuMuFex_DiMu_18invm60_noOS() - L2Hypo = L2BMuMuHypo_DiMu_18invm60_noVtx() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_18invm60_noOS + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_18invm60_noVtx + L2Fex = L2BMuMuFex_DiMu_18invm60_noOS() + L2Hypo = L2BMuMuHypo_DiMu_18invm60_noVtx() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu_18invm60") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 18000. + ## L2Hypo.UpperMassCut= 60000. EFFex = EFBMuMuFex_DiMu_18invm60_noOS() EFHypo = EFBMuMuHypo_DiMu_18invm60_noVtx() elif ('11invm60' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' not in topoAlgs): @@ -363,8 +521,17 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_11invm60 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_11invm60_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_11invm60 - L2Fex = L2BMuMuFex_DiMu_11invm60_noOS() - L2Hypo = L2BMuMuHypo_DiMu_11invm60() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_11invm60_noOS() + L2Hypo = L2BMuMuHypo_DiMu_11invm60() + ## else: + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu_11invm60") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 11000. + ## L2Hypo.UpperMassCut= 60000. EFFex = EFBMuMuFex_DiMu_11invm60_noOS() EFHypo = EFBMuMuHypo_DiMu_11invm60() elif ('11invm24' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' not in topoAlgs): @@ -372,8 +539,18 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_11invm24 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_11invm24_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_11invm24 - L2Fex = L2BMuMuFex_DiMu_11invm24_noOS() - L2Hypo = L2BMuMuHypo_DiMu_11invm24() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_11invm24_noOS() + L2Hypo = L2BMuMuHypo_DiMu_11invm24() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu_11invm24") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 11000. + ## L2Hypo.UpperMassCut= 24000. + EFFex = EFBMuMuFex_DiMu_11invm24_noOS() EFHypo = EFBMuMuHypo_DiMu_11invm24() elif ('24invm60' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' not in topoAlgs): @@ -381,8 +558,17 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_24invm60 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_24invm60_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_24invm60 - L2Fex = L2BMuMuFex_DiMu_24invm60_noOS() - L2Hypo = L2BMuMuHypo_DiMu_24invm60() + ## if doL2MultiTrack : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu_24invm60") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 24000. + ## L2Hypo.UpperMassCut= 60000. + ## else : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_24invm60_noOS() + L2Hypo = L2BMuMuHypo_DiMu_24invm60() EFFex = EFBMuMuFex_DiMu_24invm60_noOS() EFHypo = EFBMuMuHypo_DiMu_24invm60() elif ('11invm60' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' in topoAlgs): @@ -390,8 +576,17 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_11invm60_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_11invm60_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_11invm60_noVtx - L2Fex = L2BMuMuFex_DiMu_11invm60_noOS() - L2Hypo = L2BMuMuHypo_DiMu_11invm60_noVtx() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_11invm60_noOS() + L2Hypo = L2BMuMuHypo_DiMu_11invm60_noVtx() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu_noVtx("L2MultiMuTrkHypo_DiMu_noVtx_11invm60") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 11000. + ## L2Hypo.UpperMassCut= 60000. EFFex = EFBMuMuFex_DiMu_11invm60_noOS() EFHypo = EFBMuMuHypo_DiMu_11invm60_noVtx() elif ('11invm24' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' in topoAlgs): @@ -399,8 +594,18 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_11invm24_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_11invm24_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_11invm24_noVtx - L2Fex = L2BMuMuFex_DiMu_11invm24_noOS() - L2Hypo = L2BMuMuHypo_DiMu_11invm24_noVtx() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_11invm24_noOS() + L2Hypo = L2BMuMuHypo_DiMu_11invm24_noVtx() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu_noVtx("L2MultiMuTrkHypo_DiMu_noVtx_11invm24") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 11000. + ## L2Hypo.UpperMassCut= 24000. + EFFex = EFBMuMuFex_DiMu_11invm24_noOS() EFHypo = EFBMuMuHypo_DiMu_11invm24_noVtx() elif ('24invm60' in topoAlgs) & ('noos' in topoAlgs) & ('novtx' in topoAlgs): @@ -408,8 +613,17 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_24invm60_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_24invm60_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_24invm60_noVtx - L2Fex = L2BMuMuFex_DiMu_24invm60_noOS() - L2Hypo = L2BMuMuHypo_DiMu_24invm60_noVtx() +# if not doL2MultiTrack : + # OI do MultiTrk is not working yet for invm chains + if 1 : + L2Fex = L2BMuMuFex_DiMu_24invm60_noOS() + L2Hypo = L2BMuMuHypo_DiMu_24invm60_noVtx() + ## else : + ## L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + ## L2Hypo = EFMultiMuHypo_DiMu_noVtx("L2MultiMuTrkHypo_DiMu_noVtx_24invm60") + ## L2Hypo.bphysCollectionKey = "MultiTrkFex" + ## L2Hypo.LowerMassCut= 24000. + ## L2Hypo.UpperMassCut= 60000. EFFex = EFBMuMuFex_DiMu_24invm60_noOS() EFHypo = EFBMuMuHypo_DiMu_24invm60_noVtx() @@ -436,32 +650,47 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta EFHypo.bphysCollectionKey = "EFMultiMuFex" elif ('bDimu' in topoAlgs) & ('novtx' in topoAlgs) & ('noos' in topoAlgs) & ('noL2' in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_passL2 - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_noVtx - L2Fex = L2BMuMuFex_DiMu_passL2() - L2Hypo = L2BMuMuHypo_DiMu_passL2() + if not doL2MultiTrack : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_passL2 + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 + L2Fex = L2BMuMuFex_DiMu_passL2() + L2Hypo = L2BMuMuHypo_DiMu_passL2() + else : + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_DiMu_noOS() EFHypo = EFBMuMuHypo_DiMu_noVtx() elif ('bDimu' in topoAlgs) & ('novtx' in topoAlgs) & ('noos' in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_noOS - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_noVtx + if not doL2MultiTrack : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_noOS + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_noVtx + L2Fex = L2BMuMuFex_DiMu_noOS() + L2Hypo = L2BMuMuHypo_DiMu_noVtx() + else : + L2Fex = TrigMultiTrkFex_DiMu_noVtx_noOS() + L2Hypo = EFMultiMuHypo_DiMu_noVtx("L2MultiMuTrkHypo_noVtx") + L2Hypo.bphysCollectionKey = "MultiTrkFex" from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_noOS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_noVtx - L2Fex = L2BMuMuFex_DiMu_noOS() - L2Hypo = L2BMuMuHypo_DiMu_noVtx() EFFex = EFBMuMuFex_DiMu_noOS() EFHypo = EFBMuMuHypo_DiMu_noVtx() elif ('bDimu' in topoAlgs) & ('noinvm' in topoAlgs) & ('novtx' in topoAlgs) & ('ss' in topoAlgs): - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_noinvm_SS - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_noinvm_noVtx from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu_noinvm_SS from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_noinvm_noVtx - L2Fex = L2BMuMuFex_DiMu_noinvm_SS() - L2Hypo = L2BMuMuHypo_DiMu_noinvm_noVtx() + if not doL2MultiTrack : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_noinvm_SS + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_noinvm_noVtx + L2Fex = L2BMuMuFex_DiMu_noinvm_SS() + L2Hypo = L2BMuMuHypo_DiMu_noinvm_noVtx() + else : + L2Fex = TrigMultiTrkFex_DiMu_noVtx_noM_SS() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_DiMu_noinvm_SS() - EFHypo = EFBMuMuHypo_DiMu_noinvm_noVtx() + EFHypo = EFBMuMuHypo_DiMu_noinvm_noVtx() elif ('bJpsimumu' in topoAlgs) & ('noid' in topoAlgs): from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_noId from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi_noId @@ -476,8 +705,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu - L2Fex = L2BMuMuFex_DiMu_passL2() - L2Hypo = L2BMuMuHypo_DiMu_passL2() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_DiMu_passL2() + L2Hypo = L2BMuMuHypo_DiMu_passL2() + else : + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_DiMu() EFHypo = EFBMuMuHypo_DiMu() if ('nscan' in chainDict['chainName'] ): # do not do L2 at all; expect one TE @@ -490,8 +724,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi_passL2 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Jpsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Jpsi - L2Fex = L2BMuMuFex_Jpsi_passL2() - L2Hypo = L2BMuMuHypo_Jpsi_passL2() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_Jpsi_passL2() + L2Hypo = L2BMuMuHypo_Jpsi_passL2() + else : + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_Jpsi() EFHypo = EFBMuMuHypo_Jpsi() if ('nscan' in chainDict['chainName'] ): # do not do L2 at all; expect one TE @@ -504,8 +743,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_B from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_B - L2Fex = L2BMuMuFex_DiMu_passL2() - L2Hypo = L2BMuMuHypo_DiMu_passL2() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_DiMu_passL2() + L2Hypo = L2BMuMuHypo_DiMu_passL2() + else : + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_B() EFHypo = EFBMuMuHypo_B() elif ('bDimu' in topoAlgs) & ('noEFbph' in topoAlgs): @@ -513,8 +757,14 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_passEF from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_passEF - L2Fex = L2BMuMuFex_DiMu() - L2Hypo = L2BMuMuHypo_DiMu() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_DiMu() + L2Hypo = L2BMuMuHypo_DiMu() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + EFFex = EFBMuMuFex_passEF() EFHypo = EFBMuMuHypo_passEF() elif ('bJpsimumu' in topoAlgs) & ('noEFbph' in topoAlgs): @@ -522,8 +772,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_passEF from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_passEF - L2Fex = L2BMuMuFex_Jpsi() - L2Hypo = L2BMuMuHypo_Jpsi() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_Jpsi() + L2Hypo = L2BMuMuHypo_Jpsi() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_passEF() EFHypo = EFBMuMuHypo_passEF() # Tight Chi2 variants @@ -532,8 +787,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Jpsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Jpsi_tightChi2 - L2Fex = L2BMuMuFex_Jpsi() - L2Hypo = L2BMuMuHypo_Jpsi() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_Jpsi() + L2Hypo = L2BMuMuHypo_Jpsi() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_Jpsi() EFHypo = EFBMuMuHypo_Jpsi_tightChi2() elif ('bDimu' in topoAlgs) & ('tightChi2' in topoAlgs): @@ -541,8 +801,14 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_tightChi2 - L2Fex = L2BMuMuFex_DiMu() - L2Hypo = L2BMuMuHypo_DiMu() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_DiMu() + L2Hypo = L2BMuMuHypo_DiMu() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + EFFex = EFBMuMuFex_DiMu() EFHypo = EFBMuMuHypo_DiMu_tightChi2() elif ('bBmumu' in topoAlgs) & ('tightChi2' in topoAlgs): @@ -550,8 +816,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_B from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_B from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_B_tightChi2 - L2Fex = L2BMuMuFex_B() - L2Hypo = L2BMuMuHypo_B() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_B() + L2Hypo = L2BMuMuHypo_B() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_BMeson("L2MultiMuTrkHypo_BMeson") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_B() EFHypo = EFBMuMuHypo_B_tightChi2() elif ('bUpsimumu' in topoAlgs) & ('tightChi2' in topoAlgs): @@ -559,8 +830,14 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Upsi from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Upsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Upsi_tightChi2 - L2Fex = L2BMuMuFex_Upsi() - L2Hypo = L2BMuMuHypo_Upsi() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_Upsi() + L2Hypo = L2BMuMuHypo_Upsi() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Upsi("L2MultiMuTrkHypo_Upsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + EFFex = EFBMuMuFex_Upsi() EFHypo = EFBMuMuHypo_Upsi_tightChi2() # Lxy > 0 variants @@ -569,8 +846,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Jpsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Jpsi_Lxy0 - L2Fex = L2BMuMuFex_Jpsi() - L2Hypo = L2BMuMuHypo_Jpsi() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_Jpsi() + L2Hypo = L2BMuMuHypo_Jpsi() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_Jpsi() EFHypo = EFBMuMuHypo_Jpsi_Lxy0() elif ('bDimu' in topoAlgs) & ('Lxy0' in topoAlgs): @@ -578,8 +860,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_DiMu from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_DiMu_Lxy0 - L2Fex = L2BMuMuFex_DiMu() - L2Hypo = L2BMuMuHypo_DiMu() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_DiMu() + L2Hypo = L2BMuMuHypo_DiMu() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_DiMu("L2MultiMuTrkHypo_DiMu") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_DiMu() EFHypo = EFBMuMuHypo_DiMu_Lxy0() elif ('bBmumu' in topoAlgs) & ('Lxy0' in topoAlgs): @@ -587,8 +874,13 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_B from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_B from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_B_Lxy0 - L2Fex = L2BMuMuFex_B() - L2Hypo = L2BMuMuHypo_B() + if not doL2MultiTrack : + L2Fex = L2BMuMuFex_B() + L2Hypo = L2BMuMuHypo_B() + else : + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_BMeson("L2MultiMuTrkHypo_BMeson") + L2Hypo.bphysCollectionKey = "MultiTrkFex" EFFex = EFBMuMuFex_B() EFHypo = EFBMuMuHypo_B_Lxy0() # legacy vertexing @@ -615,6 +907,58 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta ################################################################################### +################################################################################### +def bMuTrackPEB(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): + + EFChainName = "EF_" + chainDict['chainName'] + topoAlgs = chainDict["topo"] + + mtopo = topoAlgs[0] + TEname = findL2teBaseName(chainDict['chainName'],topoAlgs) + L2TEname = "L2_" + TEname+'_'+mtopo+'_'+chainDict['L1item'] + + #--- 1: L2 first add large cone before duing superEF + #[trkfast, trkprec] = TrigInDetSequence("Bphysics", "bphysics", "IDTrig").getSequence() + [trkfast, trkprec] = TrigInDetSequence("BphysHighPt", "bphysHighPt", "IDTrig").getSequence() + L2TEcount = 0; L2outTEsfast = []; L2outTEsprec = []; + for L2inputTE in inputTEsL2: + L2TEcount = L2TEcount + 1 + L2outputTEfast = L2inputTE+'_idfast_'+str(L2TEcount) + L2outTEsfast.append(L2outputTEfast) + theChainDef.addSequence(trkfast,L2inputTE, L2outputTEfast) + if not "L2Trk2" in chainDict['chainName'] : + L2outputTEprec = L2inputTE+'_idprec_'+str(L2TEcount) + L2outTEsprec.append(L2outputTEprec) + theChainDef.addSequence(trkprec,L2outputTEfast, L2outputTEprec) + + theChainDef.addSignatureL2( L2outTEsfast) + theChainDef.addSignatureL2( L2outTEsprec) + theChainDef.addSequence([L2outTEsfast,L2outTEsprec],L2outputTEprec, L2TEname+"Trk") + + + #--- 2: then add L2 multi trk fex+hypo for Jpsi + + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_Jpsi + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_Jpsi + L2Fex = TrigMultiTrkFex_Jpsi() + #L2Fex.trackCollectionKey = "InDetTrigTrackingxAODCnv_Bphysics_IDTrig" + L2Hypo = EFMultiMuHypo_Jpsi("L2MultiMuTrkHypo_Jpsi") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + theChainDef.addSequence([L2Fex, L2Hypo], L2outTEsprec , L2TEname+"MultiTrk") + theChainDef.addSignatureL2([L2TEname+"MultiTrk"]) + + + #---- 3 : last step - setup PEB + from TrigDetCalib.TrigDetCalibConfig import TrigCheckForMuons_peb075 + bphysROBWriter = TrigCheckForMuons_peb075("bphysROBWriter_peb075") + + EFTEname = "EF_" + chainDict['chainName']+"_1" + inputTEsEF = theChainDef.signatureList[-1]['listOfTriggerElements'] + theChainDef.addSequence([bphysROBWriter],inputTEsEF, EFTEname) + theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFTEname]) + + return theChainDef + ################################################################################### def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): @@ -626,7 +970,7 @@ def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): if ('bJpsi' in topoAlgs) & ('Trkloose' in topoAlgs): from TrigBphysHypo.TrigEFTrkMassFexConfig import EFTrkMassFex_Jpsimumu_loose - from TrigBphysHypo.TrigEFTrkMassHypoConfig import EFTrkMassHypo_Jpsimumu_loose + from TrigBphysHypo.TrigEFTrkMassHypoConfig import EFTrkMassHypo_Jpsimumu_loose EFFex = EFTrkMassFex_Jpsimumu_loose() EFHypo = EFTrkMassHypo_Jpsimumu_loose() @@ -639,31 +983,30 @@ def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): # L2TEcount = L2TEcount+1 # L2outputTE = L2inputTE+'_idl2fast_'+str(L2TEcount) # L2outTEs.append(L2outputTE) - # #theChainDef.addSequence([theTrigIdscan],L2inputTE, L2outputTE) - # theChainDef.addSequence(trkfast,L2inputTE, L2outputTE) + # #theChainDef.addSequence([theTrigIdscan],L2inputTE, L2outputTE) # theChainDef.addSignatureL2(L2outTEs) - # + # # theChainDef.addSequence( [L2Fex, L2Hypo], L2outTEs, L2ChainName) ## theChainDef.addSequence( [L2Fex, L2Hypo], inputTEsL2, L2ChainName) # theChainDef.addSignatureL2([L2ChainName]) # # # - # EFTEcount = 0; EFoutTEsprec = []; + # EFTEcount = 0; EFoutTEsprec = []; # for EFinputTE in inputTEsEF: - # EFTEcount = EFTEcount + 1 + # EFTEcount = EFTEcount + 1 # EFoutputTEprec = EFinputTE+'_idefprec_'+str(EFTEcount) # EFoutTEsprec.append(EFoutputTEprec) # theChainDef.addSequence(trkprec,EFinputTE, EFoutputTEprec) # theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, EFoutTEsprec) # # theChainDef.addSequence([EFFex, EFHypo],EFoutTEsprec,EFChainName) - # theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName]) + # theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName]) # Sequence where only the EF mu+track stage is run. FTF+prec tracking run first #------- EF Sequences ------- - EFTEcount = 0; EFoutTEsfast = []; + EFTEcount = 0; EFoutTEsfast = []; for EFinputTE in inputTEsEF: EFTEcount = EFTEcount + 1 EFoutputTEfast = EFinputTE+'_idfast_'+str(EFTEcount) @@ -671,10 +1014,10 @@ def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): theChainDef.addSequence(trkfast,EFinputTE, EFoutputTEfast) theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, EFoutTEsfast) - - EFTEcount = 0; EFoutTEsprec = []; + + EFTEcount = 0; EFoutTEsprec = []; for EFinputTE in inputTEsEF: - EFTEcount = EFTEcount + 1 + EFTEcount = EFTEcount + 1 EFinputTEprec = EFinputTE+'_idfast_'+str(EFTEcount) EFoutputTEprec = EFinputTE+'_idprec_'+str(EFTEcount) EFoutTEsprec.append(EFoutputTEprec) @@ -691,7 +1034,7 @@ def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): ################################################################################### ################################################################################### -def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): +def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom, doL2MultiTrack = False): L2ChainName = "L2_" + chainDict['chainName'] EFChainName = "EF_" + chainDict['chainName'] topoAlgs = chainDict["topo"] @@ -708,6 +1051,8 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): L2TEname = "L2_" + TEname+myTopoString+'_tsf_'+chainDict['L1item'] topo2StartFrom = L2TEname + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu,TrigMultiTrkFex_DiMu_noCut,TrigMultiTrkFex_DiMu_noVtx_noOS,TrigMultiTrkFex_DiMu_noVtx_noM_SS + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_DiMu_noCut,EFMultiMuHypo_DiMu_noVtx,EFMultiMuHypo_DiMu,EFMultiMuHypo_BMeson,EFMultiMuHypo_Jpsi,EFMultiMuHypo_Upsi,EFMultiMuHypo_2700, EFMultiMuHypo_Bmumux # replace L2 Te (and EF tsf) with bBmumuxv2 naming # same underlying sequence is used # Warning if ever switch to v3 implementation -- this should be changed / tested @@ -742,55 +1087,40 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): # from InDetTrigRecExample.EFInDetConfig import * # theTrigEFIDInsideOut = TrigEFIDInsideOut_Bphysics().getSequence() - #JWW: Remove Bmumux L2 Fex and Hypo. Use a simple BMuMu Fex and Hypo instead - #from TrigBphysHypo.TrigL2BMuMuXHypoConfig import L2BMuMuXHypo_1 - #L2Hypo = L2BMuMuXHypo_1() if 'BcmumuDsloose' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_BcMuMuDs from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_BcMuMuDs from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_BcMuMuDs - #L2Fex = L2BMuMuXFex_BcMuMuDs() EFFex = EFBMuMuXFex_BcMuMuDs() EFHypo = EFBMuMuXHypo_BcMuMuDs() elif 'LbmumuLambda' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_BcMuMuDs from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_LbMuMuLambda from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_LbMuMuLambda - #L2Fex = L2BMuMuXFex_BcMuMuDs() EFFex = EFBMuMuXFex_LbMuMuLambda() EFHypo = EFBMuMuXHypo_LbMuMuLambda() elif 'BpmumuKp' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_BplusMuMuKplus from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_BplusMuMuKplus from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_BplusMuMuKplus - #L2Fex = L2BMuMuXFex_BplusMuMuKplus() EFFex = EFBMuMuXFex_BplusMuMuKplus() EFHypo = EFBMuMuXHypo_BplusMuMuKplus() elif 'BsmumuPhi' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_BplusMuMuKplus from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_BsMuMuPhi from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_BsMuMuPhi - #L2Fex = L2BMuMuXFex_BplusMuMuKplus() EFFex = EFBMuMuXFex_BsMuMuPhi() EFHypo = EFBMuMuXHypo_BsMuMuPhi() elif 'BsJpsiPhi' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_BplusMuMuKplus from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_BsJpsiPhi from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_BsJpsiPhi - #L2Fex = L2BMuMuXFex_BplusMuMuKplus() EFFex = EFBMuMuXFex_BsJpsiPhi() EFHypo = EFBMuMuXHypo_BsJpsiPhi() elif 'Taumumux' in topoAlgs: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_TauMuMuX from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_TauMuMuX from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_TauMuMuX - #L2Fex = L2BMuMuXFex_TauMuMuX() EFFex = EFBMuMuXFex_TauMuMuX() EFHypo = EFBMuMuXHypo_TauMuMuX() @@ -808,12 +1138,8 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): EFFex = EFBMuMuXFex_FTK() EFHypo = EFBMuMuXHypo_FTK() else: - #from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_1 - #from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_1 from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_1 from TrigBphysHypo.TrigEFBMuMuXHypoConfig import EFBMuMuXHypo_1 - #L2Fex = L2BMuMuFex_1() - #L2Hypo = L2BMuMuHypo_1() EFFex = EFBMuMuXFex_1() EFHypo = EFBMuMuXHypo_1() # legacy vertexing @@ -822,41 +1148,54 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom): EFFex = EFBMuMuXFex_1_legacyVtx() elif 'bBmumuxv3' in topoAlgs: - print 'MOOOO in bBmumuxv3' +# print 'MOOOO in bBmumuxv3' from TrigBphysHypo.TrigL2BMuMuXHypoConfig import L2BMuMuXHypo_EF from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_EF EFFex = L2BMuMuXFex_EF() EFHypo = L2BMuMuXHypo_EF() else: - #from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_1 from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_Jpsi from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_Jpsi - #L2Fex = L2BMuMuXFex_1() EFFex = EFBMuMuFex_Jpsi() EFHypo = EFBMuMuHypo_Jpsi() + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_Bmumux # Use simple di-muon fex/hypo for L2 # Note - may need to change oppsign and vtx requirements - if 'bBmumuxv3' in topoAlgs: - print 'MOOOO2 in bBmumuxv3' + # noL2 option to skip dimuon selection at L2 + + if 'noL2' in topoAlgs: + if doL2MultiTrack : + L2Fex = TrigMultiTrkFex_DiMu_noCut() + L2Hypo = EFMultiMuHypo_DiMu_noCut("L2MultiMuTrkHypo_DiMu_noCut") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_passL2 + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 + L2Fex = L2BMuMuFex_DiMu_passL2() + L2Hypo = L2BMuMuHypo_DiMu_passL2() + elif 'bBmumuxv3' in topoAlgs: +# print 'MOOOO2 in bBmumuxv3' from TrigBphysHypo.TrigL2BMuMuXHypoConfig import L2BMuMuXHypo_1 from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_1 L2Fex = L2BMuMuXFex_1() L2Hypo = L2BMuMuXHypo_1() - else: - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_1 - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_1 - L2Fex = L2BMuMuFex_1() - L2Hypo = L2BMuMuHypo_1() + + else : + if doL2MultiTrack : + from TrigBphysHypo.TrigMultiTrkFexConfig import TrigMultiTrkFex_DiMu + from TrigBphysHypo.TrigEFMultiMuHypoConfig import EFMultiMuHypo_Bmumux + L2Fex = TrigMultiTrkFex_DiMu() + L2Hypo = EFMultiMuHypo_Bmumux("EFMultiMuHypo_Bmumux") + L2Hypo.bphysCollectionKey = "MultiTrkFex" + else : + from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_1 + from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_1 + L2Fex = L2BMuMuFex_1() + L2Hypo = L2BMuMuHypo_1() - # noL2 option to skip dimuon selection at L2 - if 'noL2' in topoAlgs: - from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_passL2 - from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2 - L2Fex = L2BMuMuFex_DiMu_passL2() - L2Hypo = L2BMuMuHypo_DiMu_passL2() if 'bBmumuxv3' in topoAlgs: L2TEcount = 0; L2outTEs = [] diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/MC_pp_v7.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/MC_pp_v7.py index 7584b1c9bb34..b0d79b41c458 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/MC_pp_v7.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/MC_pp_v7.py @@ -1299,6 +1299,16 @@ def setupMenu(): ['3mu6_wOvlpRm_bDimu', 'L1_3MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['2mu4_wOvlpRm_bDimu_noinvm_novtx_ss', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + # chains with smart overlap removal , based on EF muons + ['mu4_bNocut', 'L1_MU4', [], [PhysicsStream], ['RATE:SingleMuon', 'BW:Muon'], -1], + ['2mu4_bNocut', 'L1_2MU4', [], [PhysicsStream], ['RATE:MultiMuon', 'BW:Muon'], -1], + ['3mu4_bNocut', 'L1_3MU4', [], [PhysicsStream], ['RATE:MultiMuon', 'BW:Muon'], -1], + ['3mu4_mu2noL1_bNocut', 'L1_3MU4', ['L1_3MU4',''], [PhysicsStream], ['RATE:MultiMuon','BW:Muon'], -1,['serial',-1,['3mu4','mu2noL1']]], + ['2mu4_mu3_mu2noL1_bNocut_L13MU4', 'L1_3MU4', ['L1_2MU4','L1_MU4',''], [PhysicsStream], ['RATE:MultiMuon','BW:Muon'], -1,['serial',-1,['2mu4','mu3','mu2noL1']]], + ['3mu3_mu3noL1_bNocut_L13MU4', 'L1_3MU4', ['L1_3MU4',''], [PhysicsStream], ['RATE:MultiMuon','BW:Muon'], -1,['serial',-1,['3mu3','mu3noL1']]], + ['3mu4_mu4noL1_bNocut', 'L1_3MU4', ['L1_3MU4',''], [PhysicsStream], ['RATE:MultiMuon','BW:Muon'], -1,['serial',-1,['3mu4','mu4noL1']]], + ['4mu4_bNocut', 'L1_4MU4', ['L1_4MU4',''], [PhysicsStream], ['RATE:MultiMuon','BW:Muon'], -1,['serial',-1,['4mu4','']]], + # chains with EF B-physics selection skipped ['2mu4_bJpsimumu_noEFbph', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['mu6_mu4_bJpsimumu_noEFbph', 'L1_MU6_2MU4', ['L1_MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], @@ -1473,8 +1483,8 @@ def setupMenu(): ['mu6_mu4_bJpsimumu_noL2', 'L1_MU6_2MU4', ['L1_MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['2mu6_bDimu_noL2', 'L1_2MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['2mu6_bJpsimumu_noL2', 'L1_2MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], - ## moved to phys (ATR-14352) ['mu11_nomucomb_2mu4noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu11_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','2mu4noL1_nscan03']]], - ## moved to phys (ATR-14352) ['mu11_nomucomb_mu6noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu6_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03']]], + ## moved to phys (ATR-14352) ['mu11_2mu4noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu11'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','2mu4noL1_nscan03']]], + ## moved to phys (ATR-14352) ['mu11_mu6noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1_nscan03']]], # L1 topo # Simple OneBarrel and BarrelOnly # @@ -1654,9 +1664,9 @@ def setupMenu(): ['mu6_mu4_bDimu_L1BPH-2M9-MU6MU4_BPH-0DR15-MU6MU4','L1_BPH-2M9-MU6MU4_BPH-0DR15-MU6MU4', ['L1_MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], ['mu6_mu4_bDimu_novtx_noos_L1BPH-2M9-MU6MU4_BPH-0DR15-MU6MU4','L1_BPH-2M9-MU6MU4_BPH-0DR15-MU6MU4', ['L1_MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], - ['2mu6_nomucomb_L1LFV-MU6_bTau_delayed', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], - ['2mu6noL1_nomucomb_nscan03_L1LFV-MU6_bTau_delayed', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], - ['2mu6_nomucomb_L1LFV-MU6_bPhi', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], + ['2mu6_bTau_L1LFV-MU6_delayed', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], + ['2mu6noL1_bTau_L1LFV-MU6_delayed', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], + ['2mu6_bPhi_L1LFV-MU6', 'L1_LFV-MU6', ['L1_2MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], ### ATR-15263 ['2mu4_bBmumux_LbmumuLambda', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7.py index 7b1a6b2e1ef9..693c98251cd5 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/Physics_pp_v7.py @@ -1840,15 +1840,14 @@ def setupMenu(): TriggerFlags.BphysicsSlice.signatures = [ - ['2mu6_nomucomb_bPhi', 'L1_2MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], - ['mu11_nomucomb_mu6_nomucomb_bPhi', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6_nomucomb_bPhi']]], - ['mu11_nomucomb_mu6noL1_nscan03_L1MU11_2MU6_bPhi', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03_bPhi']]], + ['2mu6_bPhi', 'L1_2MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bPhi', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','mu6_bPhi']]], + ['mu11_mu6noL1_bPhi_L1MU11_2MU6', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1_bPhi']]], ['mu6_mu4_bBmumux_BsmumuPhi_delayed', 'L1_MU6_2MU4', ['L1_MU6','L1_MU4'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['2mu6_bBmumux_BsmumuPhi_delayed', 'L1_2MU6', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['mu10_mu6_bBmumux_BsmumuPhi_delayed', 'L1_MU10_2MU6', ['L1_MU10','L1_MU6'],['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], - ['3mu4_nomucomb_bTau', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics', 'BW:Bphys'], -1], ['2mu4_bDimu', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['2mu4_bDimu_noinvm_novtx_ss', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['2mu4_bDimu_novtx_noos', 'L1_2MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], @@ -1894,6 +1893,7 @@ def setupMenu(): ['3mu4_bDimu', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['3mu4_bJpsi', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['3mu4_bTau', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['3mu4_nomucomb_bTau', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['3mu4_bUpsi', 'L1_3MU4', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['3mu6_bDimu', 'L1_3MU6', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], @@ -1959,14 +1959,14 @@ def setupMenu(): ['2mu10_bUpsimumu', 'L1_2MU10', [], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], - ['mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6_bTau', 'L1_MU11_2MU6', ['L1_MU11','L2_mu11_nomucomb'], [PhysicsStream, 'express'], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','2mu4noL1_nscan03']]], - ['mu11_nomucomb_mu6noL1_nscan03_L1MU11_2MU6_bTau', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03']]], - ['mu20_nomucomb_mu6noL1_nscan03_bTau', 'L1_MU20', ['L1_MU20','L2_mu20_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu20_nomucomb','mu6noL1_nscan03']]], + ['mu11_2mu4noL1_bTau_L1MU11_2MU6', 'L1_MU11_2MU6', ['L1_MU11','L2_mu11'], [PhysicsStream, 'express'], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','2mu4noL1']]], + ['mu11_mu6noL1_bTau_L1MU11_2MU6', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1']]], + ['mu20_mu6noL1_bTau', 'L1_MU20', ['L1_MU20','L2_mu20'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu20','mu6noL1']]], ## LFV topo based nscan (ATR-14352) - ['mu11_nomucomb_2mu4noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu11_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','2mu4noL1_nscan03']]], + ['mu11_2mu4noL1_bTau_L1LFV-MU', 'L1_LFV-MU', ['L1_MU10','L2_mu11'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','2mu4noL1']]], - ['mu6_nomucomb_2mu4_nomucomb_bTau_L1MU6_3MU4' , 'L1_MU6_3MU4', ['L1_MU6','L1_2MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], - ['2mu6_nomucomb_mu4_nomucomb_bTau_L12MU6_3MU4', 'L1_2MU6_3MU4', ['L1_2MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu6_2mu4_bTau_L1MU6_3MU4' , 'L1_MU6_3MU4', ['L1_MU6','L1_2MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['2mu6_mu4_bTau_L12MU6_3MU4', 'L1_2MU6_3MU4', ['L1_2MU6','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], ['mu6_iloose_mu6_24invm60_noos_L1DY-BOX-2MU6', 'L1_DY-BOX-2MU6', ['L1_MU6','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1, False], ['mu4_iloose_mu4_11invm60_noos_L1MU6_2MU4', 'L1_MU6_2MU4', ['L1_MU4','L1_MU4'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], @@ -2159,17 +2159,29 @@ def setupMenu(): ['3mu4_bUpsi_delayed', 'L1_3MU4', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['mu6_2mu4_bJpsi_delayed', 'L1_MU6_3MU4', ['L1_MU6','L1_3MU4'], ['BphysDelayed'], ['RATE:BphysDelayed', 'BW:Bphys'], -1], ['mu6_2mu4_bUpsi_delayed', 'L1_MU6_3MU4', ['L1_MU6','L1_3MU4'], ['BphysDelayed'], ['RATE:BphysDelayed', 'BW:Bphys'], -1], - ['mu11_nomucomb_mu6noL1_nscan03_L1MU11_2MU6_bTau_delayed', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6_nomucomb'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03']]], - #moved to muons slice ['mu6_nomucomb_2mu4_nomucomb_delayed_L1MU6_3MU4', 'L1_MU6_3MU4', ['L1_MU6','L1_2MU4'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], + ['mu11_mu6noL1_bTau_L1MU11_2MU6_delayed', 'L1_MU11_2MU6', ['L1_MU11','L2_mu6'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1']]], + #moved to muons slice ['mu6_2mu4_delayed_L1MU6_3MU4', 'L1_MU6_3MU4', ['L1_MU6','L1_2MU4'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['2mu10_bBmumux_BcmumuDsloose_delayed', 'L1_2MU10', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['2mu10_bJpsimumu_delayed', 'L1_2MU10', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['2mu10_bUpsimumu_delayed', 'L1_2MU10', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ['2mu10_bBmumuxv2_delayed', 'L1_2MU10', [], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1], ## LFV topo based *delayed* nscan (ATR-14352) - ## original proposed item: ['mu11_nomucomb_mu6noL1_nscan03_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu6_nomucomb'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03']]], - ['mu11_nomucomb_mu6noL1_nscan03_L1LFV-MU_bTau_delayed', 'L1_LFV-MU', ['L1_MU10','L2_mu6_nomucomb'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1,['serial',-1,['mu11_nomucomb','mu6noL1_nscan03']]], - ] + ## original proposed item: ['mu11_mu6noL1_L1LFV-MU_bTau', 'L1_LFV-MU', ['L1_MU10','L2_mu6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1']]], + ['mu11_mu6noL1_bTau_L1LFV-MU_delayed', 'L1_LFV-MU', ['L1_MU10','L2_mu6'], ['BphysDelayed'], ['RATE:BphysDelayed','BW:Bphys'], -1,['serial',-1,['mu11','mu6noL1']]], + + + # new baseline triggers, ATR-15503 + ['mu11_mu6_bBmumuxv2', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bBmumux_BcmumuDsloose', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bBmumux_BpmumuKp', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bJpsimumu_Lxy0', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bJpsimumu', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bUpsimumu', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bDimu_noinvm_novtx_ss', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + ['mu11_mu6_bDimu_novtx_noos', 'L1_MU11_2MU6', ['L1_MU11','L1_MU6'], [PhysicsStream], ['RATE:Bphysics','BW:Bphys'], -1], + + ] TriggerFlags.CombinedSlice.signatures = [ diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py index 87f31fce9cff..f2a69836400f 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py @@ -54,7 +54,7 @@ ChainDictTemplate = { AllowedTopos_e = ["Jpsiee","Zeg","Zee","Heg"] AllowedTopos_mu = ['Jpsimumu'] AllowedTopos_xe = ['1dphi10', '2dphi05', '6dphi05', '6dphi15', '2dphi05', '2dphi15', 'mt25', 'mt35', 'razor140', 'razor170', 'razor200','razor220','razor100','razor185','razor195'] -AllowedTopos_bphys = ['bJpsi', 'bTau', 'bDimu', +AllowedTopos_bphys = ['bJpsi', 'bTau', 'bDimu', 'bNocut', 'bJpsimumu', 'bUpsimumu', 'bBmumu', 'bBmumux', 'bBmumuxv2', 'bBmumuxv3', @@ -62,7 +62,7 @@ AllowedTopos_bphys = ['bJpsi', 'bTau', 'bDimu', 'BcmumuDs' , 'BcmumuDsloose' , '7invm9', 'noos', 'noid', 'novtx', '11invm60','18invm60', 'bUpsi', - 'Trkloose', 'Zmumu', 'noL2', 'noEFbph', + 'Trkloose', 'TrkPEB', 'Zmumu', 'noL2', 'noEFbph', 'noinvm', 'ss', 'BpmumuKp', 'Taumumux', 'Dsmumux', 'LbmumuLambda', 'trkTau', 'bTauTrk', 'bDsPhiX', 'bPhi','bDsPhiXtight', '11invm24', '24invm60', @@ -243,11 +243,13 @@ MuonChainParts_Default = { BphysicsChainParts = deepcopy(MuonChainParts) #BphysicsChainParts['bTracking'] = ['FTK'] BphysicsChainParts['signature'] = ['Bphysics'] +BphysicsChainParts['peb'] = ['peb075'] BphysicsChainParts['topo'] = AllowedTopos_bphys # ---- Bphysics Dictinary of default Values ---- BphysicsChainParts_Default = deepcopy(MuonChainParts_Default) BphysicsChainParts_Default['signature'] = ['Bphysics'] BphysicsChainParts_Default['topo'] = [] +BphysicsChainParts['peb'] = [] BphysicsChainParts_Default['overlapRemoval'] = ['noOvlpRm'] #========================================================== diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/StreamInfo.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/StreamInfo.py index f5eb3c833cb0..22e8da8d8e63 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/StreamInfo.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/StreamInfo.py @@ -58,7 +58,8 @@ calibStreams = [ 'IDFwd', 'BeamSpot', 'zdcCalib', - 'AFP' + 'AFP', + 'BphysPEB' ] ##NOTE: DataScouting_xx_NAME: diff --git a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py index adae3518e4d2..7593f1f3bb15 100755 --- a/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/muon/MuonDef.py @@ -49,7 +49,7 @@ class L2EFChain_mu(L2EFChainDef): fullScanSeqMap = getFullScanCaloSequences() # ---------------------------------------------------------------- - def __init__(self, chainDict, asymDiMuonChain = False, AllMuons = []): + def __init__(self, chainDict, asymDiMuonChain = False, AllMuons = [], thisIsBphysChain=False): self.L2sequenceList = [] self.EFsequenceList = [] self.L2signatureList = [] @@ -79,6 +79,9 @@ class L2EFChain_mu(L2EFChainDef): # --- used to configure hypos for FS muon chains self.allMuThrs=AllMuons + # --- used to set default for Bphys chains + self.thisIsBphysChain = thisIsBphysChain + # --- when to run with ovlp removal --- self.ovlpRm = self.chainPart['overlapRemoval'] self.asymDiMuonChain = asymDiMuonChain @@ -90,7 +93,7 @@ class L2EFChain_mu(L2EFChainDef): self.setup_muXX_noL1FTK() elif (self.mult > 1) & ('wOvlpRm' in self.ovlpRm): self.doOvlpRm = True - elif "bJpsi" in self.chainName or "bDimu" in self.chainName or "bUpsi" in self.chainName : + elif "bJpsi" in self.chainName or "bDimu" in self.chainName or "bUpsi" in self.chainName or self.thisIsBphysChain : self.doOvlpRm = False elif (self.asymDiMuonChain) and (self.mult > 1) and not self.chainPart['extra'] and not self.chainPart['reccalibInfo'] : self.doOvlpRm = True @@ -102,7 +105,8 @@ class L2EFChain_mu(L2EFChainDef): and not self.chainPart['FSinfo'] \ and not self.chainPart['hypoInfo'] \ and not self.chainPart['reccalibInfo'] \ - and "cosmicEF" not in self.chainPart['addInfo']: + and "cosmicEF" not in self.chainPart['addInfo'] \ + and not self.thisIsBphysChain : self.setup_muXX_ID() elif "muL2" in self.chainPart['reccalibInfo']: self.setup_muXX_muL2() @@ -132,6 +136,8 @@ class L2EFChain_mu(L2EFChainDef): elif self.chainPart['reccalibInfo'] == "muoncalib" and "cosmicEF" not in self.chainPart['addInfo'] \ and "ds3" in self.chainPart['addInfo'] : self.setup_muXX_muoncalib_ds3() + elif self.thisIsBphysChain and "cosmicEF" not in self.chainPart['addInfo'] : ## Keep this at the end, in case non-default chain is requested + self.setup_muXX_nomucomb() elif "cosmicEF" in self.chainPart['addInfo']: self.setup_muXX_cosmicEF() elif "mucombTag" in self.chainPart['reccalibInfo'] and "noEF" in self.chainPart['addInfo'] : @@ -2127,17 +2133,12 @@ class L2EFChain_mu(L2EFChainDef): [theTrigMuSuperEF, theTrigMuonEFCombinerHypoConfig], 'EF_mu_step2']] - self.EFsequenceList += [[['EF_mu_step2'], - [theTrigMuonIDTrackMultiHypoConfig_Muon], - 'EF_mu_step3']] - self.L2signatureList += [ [['L2_mu_step1']*self.mult] ] self.L2signatureList += [ [['L2_mu_step2']*self.mult] ] self.L2signatureList += [ [['L2_mu_step3'] ] ] self.EFsignatureList += [ [['EF_mu_step1']*self.mult] ] self.EFsignatureList += [ [['EF_mu_step2']*self.mult] ] - self.EFsignatureList += [ [['EF_mu_step3'] ] ] self.TErenamingDict = { 'L2_mu_step1': mergeRemovingOverlap('L2_mu_SA_', L2AlgName+muFastThresh+'_'+self.L2InputTE), @@ -2149,6 +2150,16 @@ class L2EFChain_mu(L2EFChainDef): #--> replaced 'EF_mu_step3': mergeRemovingOverlap('EF_mutrkmulti_', idmulti+'_'+self.chainPartNameNoMult+'_'+self.L2InputTE), 'EF_mu_step1': mergeRemovingOverlap('EF_EFIDInsideOut_', idmulti+'_'+self.chainPartNameNoMult.replace(self.chainPart['specialStream'], '')+'_'+self.L2InputTE).replace('__', '_'), 'EF_mu_step2': mergeRemovingOverlap('EF_SuperEF_', idmulti+'_'+self.chainPartNameNoMult.replace(self.chainPart['specialStream'], '')+'_'+self.L2InputTE).replace('__', '_'), - 'EF_mu_step3': mergeRemovingOverlap('EF_mutrkmulti_', idmulti+'_'+self.chainPartNameNoMult.replace(self.chainPart['specialStream'], '')+'_'+self.L2InputTE).replace('__', '_'), } - + + # OI this makes no sense , as we already cut on good tracks at L2, there is no rejection, skip it (at least in 2017) + from TriggerJobOpts.TriggerFlags import TriggerFlags + if TriggerFlags.run2Config=='2016': + self.EFsequenceList += [[['EF_mu_step2'], + [theTrigMuonIDTrackMultiHypoConfig_Muon], + 'EF_mu_step3']] + self.EFsignatureList += [ [['EF_mu_step3'] ] ] + self.TErenamingDict += { + 'EF_mu_step3': mergeRemovingOverlap('EF_mutrkmulti_', idmulti+'_'+self.chainPartNameNoMult.replace(self.chainPart['specialStream'], '')+'_'+self.L2InputTE).replace('__', '_'), + } + diff --git a/Trigger/TriggerCommon/TriggerMenu/python/muon/generateMuonChainDefs.py b/Trigger/TriggerCommon/TriggerMenu/python/muon/generateMuonChainDefs.py index 12eee488766a..f2f778cecb89 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/muon/generateMuonChainDefs.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/muon/generateMuonChainDefs.py @@ -40,7 +40,7 @@ def GetAllMuonThresholds(chainDict): return muons -def generateChainDefs(chainDict): +def generateChainDefs(chainDict, thisIsBphysChain=False): listOfChainDicts = splitChainDict(chainDict) listOfChainDefs = [] @@ -62,7 +62,7 @@ def generateChainDefs(chainDict): else: AllMuons=[] - Muon = L2EFChain_mu(subChainDict, asymDiMuonChain, AllMuons) + Muon = L2EFChain_mu(subChainDict, asymDiMuonChain, AllMuons, thisIsBphysChain) listOfChainDefs += [Muon.generateHLTChainDef()] -- GitLab