Commit c49aba61 authored by Joerg Stelzer's avatar Joerg Stelzer Committed by Graeme Stewart
Browse files

Swap ALFA and TOPO cables (ALFA,TOPO1,TOPO2) (TriggerMenu-00-07-17)

	* Swap ALFA and TOPO cables (ALFA,TOPO1,TOPO2)
	* TriggerMenu-00-06-17

2015-02-12 Catrin Bernius
	* Added all L1Topo seeded bphys chains back to MC menu(ATR-9888)
	* TriggerMenu-00-07-16

2015-02-11 Catrin Bernius
	* corrected met chain naming: xe*_L1XE*_wEFMu to xe*_wEFMu_L1XE*
	* fix in way the chain parts of combined items are analysed in case of L1Topo items
	* added one bphysics chains seeding of L1 topo, using topo_starts_from (ATR-9888)
	* change in TE naming for dphi chains to not use the L1Topo
	* TriggerMenu-00-07-15

2015-02-11  Arantxa Ruiz Martinez  <aranzazu.ruiz.martinez@cern.ch>
	* Prescale set in new HLT streamers (ATR-9520)
	* TriggerMenu-00-07-14

2015-02-11  Arantxa Ruiz Martinez  <aranzazu.ruiz.martinez@cern.ch>
	* L1Topo streamers added in MC_pp_v5 menu (ATR-9520)
...
(Long ChangeLog diff - truncated)
parent 32246439
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % input_name '(SLOT7 | SLOT8 | SLOT9 | CTPCORE) "SLOT9"'>
<!ENTITY % type_name '(ELECTRICAL | OPTICAL) "ELECTRICAL"'>
<!ENTITY % cable_name '(CON0 | CON1 | CON2 | CON3) "CON0"'>
<!ENTITY % counter_name '(CTPIN | CTPMON | CORETBP | CORETAP | CORETAV) "CTPIN"'>
<!ENTITY % trigger_name '(BGRP0 | BGRP1 | BGRP2 | BGRP3 | BGRP4 | BGRP5 | BGRP6 | BGRP7 | BGRP8 | BGRP9 | BGRP10 | BGRP11 | BGRP12 | BGRP13 | BGRP14 | BGRP15 | RNDM0 | RNDM1 | RNDM2 | RNDM3) '>
<!ELEMENT LVL1Config (TriggerMenu,PrescaleSet,TriggerCounterList?,TriggerThresholdList,Random,BunchGroupSet,PrescaledClock,CaloInfo,MuctpiInfo)>
<!ATTLIST LVL1Config
name CDATA #IMPLIED
ctpVersion CDATA #IMPLIED
l1Version CDATA #IMPLIED
id CDATA #IMPLIED>
<!ELEMENT TriggerMenu (TriggerItem)*>
<!ATTLIST TriggerMenu
name ID #REQUIRED
version CDATA #IMPLIED
phase CDATA #IMPLIED>
<!ELEMENT TriggerItem (AND|OR|NOT|TriggerCondition|InternalTrigger)>
<!ATTLIST TriggerItem
id CDATA #IMPLIED
name CDATA #REQUIRED
version CDATA #IMPLIED
ctpid CDATA #REQUIRED
partition CDATA #IMPLIED
complex_deadtime CDATA #IMPLIED
definition CDATA #IMPLIED
trigger_type CDATA #IMPLIED
monitor CDATA #IMPLIED>
<!ELEMENT AND (AND|OR|NOT|TriggerCondition|InternalTrigger)+>
<!ELEMENT OR (AND|OR|NOT|TriggerCondition|InternalTrigger)+>
<!ELEMENT NOT (AND|OR|NOT|TriggerCondition|InternalTrigger)>
<!ELEMENT TriggerCondition EMPTY>
<!ATTLIST TriggerCondition
id CDATA #IMPLIED
name CDATA #REQUIRED
version CDATA #IMPLIED
triggerthreshold CDATA #REQUIRED
multi CDATA #REQUIRED>
<!ELEMENT InternalTrigger EMPTY>
<!ATTLIST InternalTrigger
id CDATA #IMPLIED
name %trigger_name; #REQUIRED>
<!ELEMENT TriggerThresholdList (TriggerThreshold*)>
<!ELEMENT TriggerThreshold (TriggerThresholdValue*, Cable)>
<!ATTLIST TriggerThreshold
id CDATA #IMPLIED
name CDATA #REQUIRED
version CDATA #IMPLIED
type CDATA #REQUIRED
bitnum CDATA #REQUIRED
OPL CDATA "NO"
confirm CDATA "0"
active CDATA #IMPLIED
mapping CDATA #IMPLIED
input CDATA #IMPLIED
seed CDATA #IMPLIED
seed_multi CDATA #IMPLIED
bcdelay CDATA #IMPLIED>
<!ELEMENT TriggerThresholdValue EMPTY>
<!ATTLIST TriggerThresholdValue
id CDATA #IMPLIED
name CDATA #REQUIRED
version CDATA #IMPLIED
type CDATA #REQUIRED
thresholdval CDATA #REQUIRED
em_isolation CDATA "5"
had_isolation CDATA "10"
had_veto CDATA "20"
window CDATA "2"
phimin CDATA #REQUIRED
phimax CDATA #REQUIRED
etamin CDATA #REQUIRED
etamax CDATA #REQUIRED
priority CDATA #IMPLIED
isobits CDATA #IMPLIED
windowSize CDATA #IMPLIED>
<!ELEMENT Cable (Signal+)>
<!ATTLIST Cable
name CDATA #REQUIRED
input %input_name;
ctpin CDATA #IMPLIED
type %type_name;
connector %cable_name;>
<!ELEMENT Signal EMPTY>
<!ATTLIST Signal
range_begin CDATA #REQUIRED
range_end CDATA #REQUIRED
clock CDATA #IMPLIED
phase CDATA #IMPLIED>
<!ELEMENT TriggerCounterList (TriggerCounter*)>
<!ELEMENT TriggerCounter (AND|OR|NOT|TriggerCondition)*>
<!ATTLIST TriggerCounter
id CDATA #IMPLIED
name CDATA #REQUIRED
version CDATA #IMPLIED
type %counter_name;>
<!ELEMENT Random EMPTY>
<!ATTLIST Random
name0 CDATA #REQUIRED
cut0 CDATA #REQUIRED
name1 CDATA #REQUIRED
cut1 CDATA #REQUIRED
name2 CDATA #REQUIRED
cut2 CDATA #REQUIRED
name3 CDATA #REQUIRED
cut3 CDATA #REQUIRED>
<!ELEMENT PrescaleSet (Prescale*)>
<!ATTLIST PrescaleSet
name CDATA #REQUIRED
type CDATA #IMPLIED
menuPartition CDATA #IMPLIED>
<!ELEMENT Prescale (#PCDATA)>
<!ATTLIST Prescale
ctpid CDATA #REQUIRED
cut CDATA #IMPLIED
value CDATA #IMPLIED>
<!ELEMENT BunchGroupSet (BunchGroup*,Bunch*)>
<!ATTLIST BunchGroupSet
name CDATA #REQUIRED
menuPartition CDATA #IMPLIED>
<!ELEMENT BunchGroup (Bunch*)>
<!ATTLIST BunchGroup
internalNumber CDATA #REQUIRED
name CDATA #REQUIRED>
<!ELEMENT Bunch EMPTY>
<!ATTLIST Bunch
bunchNumber CDATA #REQUIRED>
<!ELEMENT PrescaledClock EMPTY>
<!ATTLIST PrescaledClock
name CDATA #REQUIRED
clock1 CDATA #REQUIRED
clock2 CDATA #REQUIRED>
<!ELEMENT CaloInfo (METSignificance*,Isolation*,MinimumTOBPt*)>
<!ATTLIST CaloInfo
name CDATA #REQUIRED
global_em_scale CDATA #REQUIRED
global_jet_scale CDATA #REQUIRED>
<!ELEMENT METSignificance (#PCDATA)>
<!ATTLIST METSignificance
xeMin CDATA #REQUIRED
xeMax CDATA #REQUIRED
teSqrtMin CDATA #REQUIRED
teSqrtMax CDATA #REQUIRED
xsSigmaScale CDATA #REQUIRED
xsSigmaOffset CDATA #REQUIRED>
<!ELEMENT Isolation (Parametrization*)>
<!ATTLIST Isolation
thrtype CDATA #REQUIRED>
<!ELEMENT Parametrization (#PCDATA)>
<!ATTLIST Parametrization
isobit CDATA #REQUIRED
offset CDATA #REQUIRED
slope CDATA #REQUIRED
mincut CDATA #REQUIRED
upperlimit CDATA #REQUIRED
etamin CDATA #REQUIRED
etamax CDATA #REQUIRED
priority CDATA #REQUIRED>
<!ELEMENT MinimumTOBPt (#PCDATA)>
<!ATTLIST MinimumTOBPt
thrtype CDATA #REQUIRED
ptmin CDATA #REQUIRED
etamin CDATA #REQUIRED
etamax CDATA #REQUIRED
priority CDATA #REQUIRED
window CDATA #IMPLIED>
<!ELEMENT MuctpiInfo (#PCDATA)>
<!ATTLIST MuctpiInfo
name CDATA #REQUIRED
low_pt CDATA #REQUIRED
high_pt CDATA #REQUIRED
max_cand CDATA #REQUIRED>
......@@ -167,7 +167,7 @@ class TriggerConfigLVL1:
FH.close()
from l1.Lvl1MenuUtil import oldStyle
log.info("Wrote %s in %s" % (self.outputFile, "run 1 style" if oldStyle() else "run 2 style"))
return self.outputFile
......
......@@ -136,6 +136,7 @@ def buildBjetChains(jchaindef,bjetdict,doAtL2AndEF=True,numberOfSubChainDicts=1)
###################################################################################
def myBjetConfig_split(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=1):
L2ChainName = "L2_" + chainDict['chainName']
EFChainName = "EF_" + chainDict['chainName']
HLTChainName = "HLT_" + chainDict['chainName']
......@@ -147,16 +148,23 @@ def myBjetConfig_split(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=
btagcut = btagcut[1:]
btracking = chainParts['bTracking']
#-----------------------------------------------------------------------------------
# Import of algs
#-----------------------------------------------------------------------------------
#--------------------
# jet hypo (can re-use their code)
from TrigJetHypo.TrigJetHypoConfig import EFJetHypo
theJetHypo = EFJetHypo(btagthresh, 0.0, 2.5)
theJetHypo = EFJetHypo("30", 0.0, 2.5)
#--------------------
# Et hypo (doesn't work in superROI mode)
from TrigBjetHypo.TrigBjetEtHypoConfig import getBjetEtHypoInstance
theBjetEtHypo = getBjetEtHypoInstance("EF", "Btagging", btagthresh+"GeV")
################
#--------------------
#jet splitting
from TrigBjetHypo.TrigJetSplitterAllTEConfig import getJetSplitterAllTEInstance
......@@ -171,31 +179,12 @@ def myBjetConfig_split(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=
#--------------------
# tracking
from InDetTrigRecExample.EFInDetConfig import TrigEFIDSequence
if 'EFID' in btracking:
theBjet_tracks = TrigEFIDSequence("Bjet","bjet","InsideOut").getSequence()
else:
from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Jet
theTrigFastTrackFinder_Jet = [TrigFastTrackFinder_Jet()]
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
[theFastTrackFinderxAOD] = TrigInDetSequence("Bjet","bjet","FastxAOD").getSequence()
theBjet_tracks = TrigEFIDSequence("Bjet","bjet","DataPrep").getSequence()
theBjet_tracks += theTrigFastTrackFinder_Jet
theBjet_tracks += theFastTrackFinderxAOD
theBjet_tracks += TrigEFIDSequence("Bjet","bjet","InsideOutMerged").getSequence()
#--------------------
# vertex tracking
# The fast part of the new tracking (no precision stuff)
from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Jet
theTrigFastTrackFinder_Jet = [TrigFastTrackFinder_Jet()]
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
[theFastTrackFinderxAOD] = TrigInDetSequence("BjetPrmVtx","bjet","FastxAOD").getSequence()
theVertex_tracks = TrigEFIDSequence("BjetPrmVtx","bjet","DataPrep").getSequence()
theVertex_tracks += theTrigFastTrackFinder_Jet
theVertex_tracks += theFastTrackFinderxAOD # does this convert to xAOD?
#theVertex_tracks = TrigEFIDSequence("Bjet","bjet","InsideOut").getSequence()
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence # new
[trkvtx, trkftf, trkprec] = TrigInDetSequence("Bjet", "bjet", "IDTrig", "2step").getSequence() # new
# for b-tagging
theBjetTracks = trkftf+trkprec
# for vertexing
theVertexTracks = trkvtx
#--------------------
......@@ -230,38 +219,33 @@ def myBjetConfig_split(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=
# TE naming
#-----------------------------------------------------------------------------------
if ('EFID' in chainParts['bTracking']): tracking = 'EFID'
else: tracking = "IDTrig"
tracking = "IDTrig"
jetHypoTE = "HLT_j"+btagthresh+"_eta"
jetSplitTE = jetHypoTE+"_jsplit"
jetTrackTE = jetSplitTE+"_"+tracking
superTE = "HLT_super"
jetEtHypoTE = "HLT_j"+btagthresh
jetHypoTE = "HLT_j"+btagthresh+"_eta"
jetSplitTE = jetHypoTE+"_jsplit"
jetTrackTE = jetSplitTE+"_"+tracking
superTE = "HLT_super"
superTrackingTE = superTE+tracking
prmVertexTE = superTrackingTE+"_prmVtx"
comboPrmVtxTE = prmVertexTE+"Combo"
secVtxTE = jetTrackTE+"__"+"superVtx"
lastTEout = "HLT_"+chainParts['chainPartName'] if numberOfSubChainDicts>1 else EFChainName
#if (btagmult == '1'):
# ef7 = 'HLT_b%s_%s_%s_VxSecondaryAndBTagHypo' % (btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""), )
#else:
# ef7 = 'HLT_%sb%s_%s_%s_VxSecondaryAndBTagHypo' % (btagmult, btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""))
prmVertexTE = superTrackingTE+"_prmVtx"
comboPrmVtxTE = prmVertexTE+"Combo"
secVtxTE = jetTrackTE+"__"+"superVtx"
lastTEout = "HLT_"+chainParts['chainPartName'] if numberOfSubChainDicts>1 else EFChainName
#-----------------------------------------------------------------------------------
# sequence assembling
#-----------------------------------------------------------------------------------
#theChainDef.addSequence(theJetHypo, inputTEsEF, jetHypoTE)
#theChainDef.addSequence(theJetSplit, jetHypoTE, jetSplitTE)
theChainDef.addSequence(theJetSplit, inputTEsEF, jetSplitTE)
theChainDef.addSequence(theBjet_tracks, jetSplitTE, jetTrackTE)
theChainDef.addSequence(theSuperRoi, inputTEsEF, superTE)
theChainDef.addSequence(theVertex_tracks, superTE, superTrackingTE)
# Vertexing part of the chain
theChainDef.addSequence(theSuperRoi, inputTEsEF, superTE)
theChainDef.addSequence(theVertexTracks, superTE, superTrackingTE) # old
theChainDef.addSequence([EFHistoPrmVtxAllTE_Jet()], superTrackingTE, prmVertexTE)
theChainDef.addSequence([EFHistoPrmVtxCombo_Jet()], [superTrackingTE,prmVertexTE], comboPrmVtxTE)
theChainDef.addSequence([EFHistoPrmVtxCombo_Jet()], [superTrackingTE,prmVertexTE], comboPrmVtxTE)
# b-tagging part of the chain (requires PV)
theChainDef.addSequence(theJetSplit, [inputTEsEF, comboPrmVtxTE], jetSplitTE)
theChainDef.addSequence(theBjetEtHypo, jetSplitTE, jetEtHypoTE) # new
theChainDef.addSequence(theBjetTracks, jetEtHypoTE, jetTrackTE) # new
theChainDef.addSequence(theVxSecondary, [jetTrackTE, comboPrmVtxTE], secVtxTE)
theChainDef.addSequence([theBjetFex, theBtagReq], secVtxTE, lastTEout)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [lastTEout]*int(btagmult))
......@@ -448,7 +432,7 @@ def _prepareJetChainDict(cdict):
###########################################################################
def get_j35_ChainDef():
return theDictFromChainName.getChainDict( ['j35', 'L1_J20', [], ["Main"], ['RATE:SingleJet', 'BW:Jets'], -1],)
return theDictFromChainName.getChainDict( ['j35', 'L1_J20', [], ["Main"], ['RATE:SingleJet', 'BW:Jets'], -1],)
# def get_j35_ChainDef():
# # HACK TO GET j35 chains!!!
......
......@@ -65,13 +65,21 @@ def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True):
SameConfigTopos = ['bJpsi', 'bDimu', 'bTau', 'bBmumu', 'bJpsimumu', 'bUpsimumu', 'Zmumu','bUpsi']
ntopos = len(topoAlgs)
# check if L1 item is L1Topo => then enable topo_starts_from
topoStartsFrom = None
L1item = chainDict['L1item']
L1item = L1item.replace("L1_", "")
if ("-" in L1item):
topoStartsFrom = L1item
if ('bBmumux' in topoAlgs) | ('bBmumuxv2' in topoAlgs):
theChainDef = bBmumuxTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF)
theChainDef = bBmumuxTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartsFrom)
elif ('Trkloose' in topoAlgs):
theChainDef = bMuTrack(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartsFrom)
elif (ntopos ==1) & (topoAlgs[0] in SameConfigTopos):
theChainDef = bSingleOptionTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF)
theChainDef = bSingleOptionTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartsFrom)
else:
theChainDef = bMultipleOptionTopos(theChainDef,chainDict,inputTEsL2, inputTEsEF)
theChainDef = bMultipleOptionTopos(theChainDef,chainDict,inputTEsL2, inputTEsEF, topoStartsFrom)
return theChainDef
......@@ -79,12 +87,12 @@ def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True):
###################################################################################
###################################################################################
def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
L2ChainName = "L2_" + chainDict['chainName']
EFChainName = "EF_" + chainDict['chainName']
HLTChainName = "HLT_" + chainDict['chainName']
def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartsFrom):
topoAlgs = chainDict["topo"]
mtopo = topoAlgs[0]
TEname = chainDict['chainName'].split('_')[0]
L2TEname = "L2_" + TEname+'_'+mtopo
EFTEname = "EF_" +chainDict['chainName']
if (mtopo == 'bJpsi'):
from TrigBphysHypo.TrigL2MultiMuFexConfig import L2MultiMuFex_Jpsi
......@@ -186,10 +194,14 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
logBphysDef.error('Bphysics Chain %s can not be constructed, the given topo algs are not known: %s ' %(chainDict['chainName'], mtopo ))
theChainDef.addSequence([L2Fex, L2Hypo],inputTEsL2,L2ChainName)
theChainDef.addSignatureL2([L2ChainName])
theChainDef.addSequence([EFFex, EFHypo],inputTEsEF,EFChainName)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName])
theChainDef.addSequence([L2Fex, L2Hypo], inputTEsL2, L2TEname, topo_starts_from = topoStartsFrom)
theChainDef.addSignatureL2([L2TEname])
topo2StartsFrom = None
if topoStartsFrom:
topo2StartsFrom = L2TEname
theChainDef.addSequence([EFFex, EFHypo],inputTEsEF, EFTEname, topo_starts_from=topo2StartsFrom)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFTEname])
return theChainDef
......@@ -197,11 +209,19 @@ def bSingleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
###################################################################################
###################################################################################
def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoStartsFrom):
L2ChainName = "L2_" + chainDict['chainName']
EFChainName = "EF_" + chainDict['chainName']
HLTChainName = "HLT_" + chainDict['chainName']
topoAlgs = chainDict["topo"]
TEname = chainDict['chainName'].split('_')[0]
myTopoString = ''
for mtopo in topoAlgs:
myTopoString =myTopoString+'_'+mtopo
L2TEname = "L2_" + TEname+myTopoString
EFTEname = "EF_" + chainDict['chainName']
if ('7invm9' in topoAlgs) & ('noos' in topoAlgs):
from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_7invm9_noOS
......@@ -229,10 +249,7 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
L2Fex = L2BMuMuFex_DiMu_11invm60_noOS()
L2Hypo = L2BMuMuHypo_DiMu_11invm60_noVtx()
EFFex = EFBMuMuFex_DiMu_11invm60_noOS()
EFHypo = EFBMuMuHypo_DiMu_11invm60_noVtx()
EFHypo = EFBMuMuHypo_DiMu_11invm60_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
......@@ -241,8 +258,7 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
L2Fex = L2BMuMuFex_DiMu_noOS()
L2Hypo = L2BMuMuHypo_DiMu_noVtx()
EFFex = EFBMuMuFex_DiMu_noOS()
EFHypo = EFBMuMuHypo_DiMu_noVtx()
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
......@@ -251,8 +267,7 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
L2Fex = L2BMuMuFex_DiMu_noinvm_SS()
L2Hypo = L2BMuMuHypo_DiMu_noinvm_noVtx()
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
......@@ -261,9 +276,38 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
L2Fex = L2BMuMuFex_noId()
L2Hypo = L2BMuMuHypo_Jpsi_noId()
EFFex = EFBMuMuFex_noId()
EFHypo = EFBMuMuHypo_Jpsi()
elif ('bJpsi' in topoAlgs) & ('Trkloose' in topoAlgs):
EFHypo = EFBMuMuHypo_Jpsi()
else:
logBphysDef.error('Bphysics Chain %s can not be constructed, the given topo algs are not known: %s ' %(chainDict['chainName'], topoAlgs ))
theChainDef.addSequence([L2Fex, L2Hypo],inputTEsL2,L2TEname, topo_starts_from = topoStartsFrom)
theChainDef.addSignatureL2([L2TEname])
topo2StartsFrom = None
if topoStartsFrom:
topo2StartsFrom = L2TEname
theChainDef.addSequence([EFFex, EFHypo],inputTEsEF, EFTEname, topo_starts_from = topo2StartsFrom)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFTEname])
return theChainDef
###################################################################################
###################################################################################
def bMuTrack(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartsFrom):
L2ChainName = "L2_" + chainDict['chainName']
EFChainName = "EF_" + chainDict['chainName']
HLTChainName = "HLT_" + chainDict['chainName']
topoAlgs = chainDict["topo"]
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
[trkfast, trkprec] = TrigInDetSequence("Bphysics", "bphysics", "IDTrig").getSequence()
if ('bJpsi' in topoAlgs) & ('Trkloose' in topoAlgs):
from TrigBphysHypo.TrigL2TrkMassFexConfig import L2TrkMassFex_Jpsimumu_loose
from TrigBphysHypo.TrigL2TrkMassHypoConfig import L2TrkMassHypo_Jpsimumu_loose
from TrigBphysHypo.TrigEFTrkMassFexConfig import EFTrkMassFex_Jpsimumu_loose
......@@ -276,33 +320,80 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
else:
logBphysDef.error('Bphysics Chain %s can not be constructed, the given topo algs are not known: %s ' %(chainDict['chainName'], topoAlgs ))
# Commented out section for L2 and EF sequence - not working with current FTF and prec tracking
# L2TEcount = 0; L2outTEs = []
# for L2inputTE in inputTEsL2:
# L2TEcount = L2TEcount+1
# L2outputTE = L2inputTE+'_idl2fast_'+str(L2TEcount)
# L2outTEs.append(L2outputTE)
# #theChainDef.addSequence([theTrigIdscan],L2inputTE, L2outputTE)
# theChainDef.addSequence(trkfast,L2inputTE, L2outputTE)
# theChainDef.addSignatureL2(L2outTEs)
#
# theChainDef.addSequence( [L2Fex, L2Hypo], L2outTEs, L2ChainName)
### theChainDef.addSequence( [L2Fex, L2Hypo], inputTEsL2, L2ChainName)
# theChainDef.addSignatureL2([L2ChainName])
#
#
#
# EFTEcount = 0; EFoutTEsprec = [];
# for EFinputTE in inputTEsEF:
# 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])
#
# Sequence where only the EF mu+track stage is run. FTF+prec tracking run first
#------- EF Sequences -------
EFTEcount = 0; EFoutTEsfast = [];
for EFinputTE in inputTEsEF:
EFTEcount = EFTEcount + 1
EFoutputTEfast = EFinputTE+'_idfast_'+str(EFTEcount)
EFoutTEsfast.append(EFoutputTEfast)
theChainDef.addSequence(trkfast,EFinputTE, EFoutputTEfast)
theChainDef.addSequence([L2Fex, L2Hypo],inputTEsL2,L2ChainName)
theChainDef.addSignatureL2([L2ChainName])
theChainDef.addSequence([EFFex, EFHypo],inputTEsEF,EFChainName)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName])
return theChainDef
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, EFoutTEsfast)
EFTEcount = 0; EFoutTEsprec = [];
for EFinputTE in inputTEsEF:
EFTEcount = EFTEcount + 1
EFinputTEprec = EFinputTE+'_idfast_'+str(EFTEcount)
EFoutputTEprec = EFinputTE+'_idprec_'+str(EFTEcount)
EFoutTEsprec.append(EFoutputTEprec)
theChainDef.addSequence(trkprec,EFinputTEprec, EFoutputTEprec)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, EFoutTEsprec)
theChainDef.addSequence([EFFex, EFHypo], EFoutTEsprec, EFChainName, topo_starts_from = topoStartsFrom)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName])
return theChainDef
###################################################################################
###################################################################################
def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF):
def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartsFrom):
L2ChainName = "L2_" + chainDict['chainName']
EFChainName = "EF_" + chainDict['chainName']
HLTChainName = "HLT_" + chainDict['chainName']
topoAlgs = chainDict["topo"]
from TrigIDSCAN.TrigIDSCAN_Config import TrigIDSCAN_Bphysics