Skip to content
Snippets Groups Projects
Commit 2f548720 authored by Francesca Pastore's avatar Francesca Pastore Committed by Frank Winklmeier
Browse files

HLT: Fix Met combined chains in Control Flow

parent 040ec0d6
No related branches found
No related tags found
No related merge requests found
Showing
with 167 additions and 122 deletions
......@@ -60,6 +60,8 @@ TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_trac
TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM decisions 34 12 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 0 0 0 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 decisions 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE100 0 0 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 0 0 0 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 decisions 0 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 0 0 0 0 0 0 0 0
......
......@@ -14,7 +14,6 @@ def generateL1DecoderAndChains():
AlgScheduler.ShowDataFlow( True )
# 4 events
data = {'noreco': [';', ';', ';',';']} # in the lists there are the events
data['emclusters'] = [ ';',
......@@ -107,11 +106,11 @@ def generateL1DecoderAndChains():
MuChains = [
Chain(name='HLT_mu8_1step_L1MU6', L1Item="L1_MU6", ChainSteps=[step_mu11]),
Chain(name='HLT_mu20_L1MU10', L1Item="L1_MU10", ChainSteps=[step_mu11 , step_mu21 , step_mu31] ),
Chain(name='HLT_mu10_L1MU10', L1Item="L1_MU10", ChainSteps=[step_mu11 , step_mu22 , step_mu31] ),
Chain(name='HLT_mu8_L1MU10', L1Item="L1_MU10", ChainSteps=[step_mu11 , step_mu21 , step_mu32, step_mu41] ),
Chain(name='HLT_mu6_L1MU6', L1Item="L1_MU6", ChainSteps=[step_mu11 , step_empy , step_mu32, step_mu41] ),
Chain(name='HLT_mu8_1step_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[step_mu11]),
Chain(name='HLT_mu20_L1MU10', L1Item="L1_MU10", L1Thresholds=["MU10"], ChainSteps=[step_mu11 , step_mu21 , step_mu31] ),
Chain(name='HLT_mu10_L1MU10', L1Item="L1_MU10", L1Thresholds=["MU10"], ChainSteps=[step_mu11 , step_mu22 , step_mu31] ),
Chain(name='HLT_mu8_L1MU10', L1Item="L1_MU10", L1Thresholds=["MU10"], ChainSteps=[step_mu11 , step_mu21 , step_mu32, step_mu41] ),
Chain(name='HLT_mu6_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[step_mu11 , step_empy , step_mu32, step_mu41] ),
# Chain(name='HLT_mu6_1step_L1MU6', L1Item="L1_MU6", ChainSteps=[step_mu11 , step_empy , step_mu31]),
# Chain(name='HLT_2mu6_L12MU6', L1Item="L1_2MU6", ChainSteps=[ChainStep("Step_2muSA", [muSA,muSA]) ] )
]
......@@ -137,11 +136,11 @@ def generateL1DecoderAndChains():
ElChains = [
Chain(name='HLT_e5_L1EM7' , L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em21", [el21]) ] ),
Chain(name='HLT_e5_v2_L1EM7', L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em22", [el22]) ] ),
Chain(name='HLT_e5_v3_L1EM7', L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em23", [el23]) ] ),
Chain(name='HLT_e8_L1EM7' , L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em21", [el21]), ChainStep("Step_em31", [el31]) ] ),
Chain(name='HLT_g5_L1EM7' , L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_gam11", [gamm11]) ] )
Chain(name='HLT_e5_L1EM7' , L1Item="L1_EM7", L1Thresholds=["EM7"], ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em21", [el21]) ] ),
Chain(name='HLT_e5_v2_L1EM7', L1Item="L1_EM7", L1Thresholds=["EM7"], ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em22", [el22]) ] ),
Chain(name='HLT_e5_v3_L1EM7', L1Item="L1_EM7", L1Thresholds=["EM7"], ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em23", [el23]) ] ),
Chain(name='HLT_e8_L1EM7' , L1Item="L1_EM7", L1Thresholds=["EM7"], ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em21", [el21]), ChainStep("Step_em31", [el31]) ] ),
Chain(name='HLT_g5_L1EM7' , L1Item="L1_EM7", L1Thresholds=["EM7"], ChainSteps=[ ChainStep("Step_gam11", [gamm11]) ] )
]
HLTChains += ElChains
......@@ -179,15 +178,15 @@ def generateL1DecoderAndChains():
# in symmetric chains, multiplicity=2 but only one sequence is used
CombChains =[
Chain(name='HLT_mu8_e8_L1MU6_EM7', L1Item="L1_MU6_EM7", ChainSteps=[ ChainStep("Step1_mu_em", [mu11, el11], multiplicity=2),
Chain(name='HLT_mu8_e8_L1MU6_EM7', L1Item="L1_MU6_EM7", L1Thresholds=["MU6","EM7"], ChainSteps=[ ChainStep("Step1_mu_em", [mu11, el11], multiplicity=2),
ChainStep("Step2_mu_em", [mu21, el21], multiplicity=2)] ),
Chain(name='HLT_e5_e8_L1EM3_EM5', L1Item="L1_EM3_EM5", ChainSteps=[ ChainStep("Step1_2em", [el11, el11], multiplicity=2),
Chain(name='HLT_e5_e8_L1EM3_EM5', L1Item="L1_EM3_EM5", L1Thresholds=["EM3","EM5"], ChainSteps=[ ChainStep("Step1_2em", [el11, el11], multiplicity=2),
ChainStep("Step2_2em", [el21, el21], multiplicity=2) ]),
Chain(name='HLT_2mu6_L12MU6', L1Item="L1_2MU6", ChainSteps=[ ChainStep("Step1_2mu", [mu11], multiplicity=2),
Chain(name='HLT_2mu6_L12MU6', L1Item="L1_2MU6", L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu", [mu11], multiplicity=2),
ChainStep("Step2_2mu", [mu21], multiplicity=2) ]),
Chain(name='HLT_2mu6Comb_L12MU6', L1Item="L1_2MU6", ChainSteps=[ ChainStep("Step1_2mu_empty", multiplicity=2),
Chain(name='HLT_2mu6Comb_L12MU6', L1Item="L1_2MU6", L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu_empty", multiplicity=2),
ChainStep("Step2_2mu", [mu21], multiplicity=2) ]),
Chain(name='HLT_2mu4_bDimu_L12MU4', L1Item="L1_2MU4", ChainSteps=[ ChainStep("Step1_2mu", [mu11], multiplicity=2),
Chain(name='HLT_2mu4_bDimu_L12MU4', L1Item="L1_2MU4", L1Thresholds=["MU4"], ChainSteps=[ ChainStep("Step1_2mu", [mu11], multiplicity=2),
step_mu22,
ChainStep("Step3_2mu", [mu31], multiplicity=2)] )
]
......
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
from TriggerMenuMT.HLTMenuConfig.Jet.JetMenuSequences import jetMenuSequence, jetRecoSequence
from TriggerMenuMT.HLTMenuConfig.Jet.JetMenuSequences import jetMenuSequence, jetCFSequence
def jetDictFromString(jet_def_string):
""" Function to retrieve the jet dictionaory from string"""
......@@ -22,10 +22,10 @@ def jetDictFromString(jet_def_string):
}
return jetRecoDict
def jetRecoSequenceFromString(jet_def_string):
def jetCFSequenceFromString(jet_def_string):
""" Function to retrieve jet Reco sequence from string"""
jetRecoDict=jetDictFromString(jet_def_string)
return jetRecoSequence(None,**jetRecoDict)
return jetCFSequence(None,**jetRecoDict)
def jetMenuSequenceFromString(jet_def_string):
......
......@@ -34,7 +34,7 @@ def generateChains(chain_names):
from TrigUpgradeTest.HLTSignatureConfig import genMenuSequence
nsteps=2
seed = "L1_EM7"
seed = "EM7"
chains = []
for chain in chain_names:
......@@ -61,7 +61,7 @@ def generateChains(chain_names):
step = ChainStep(seq.name, [seq])
chainSteps.append(step)
# el21 = elMenuSequence(step="2",reconame="v1", hyponame="v1")
chainObj=Chain(name=chain , L1Item=seed, ChainSteps=chainSteps )
chainObj=Chain(name=chain , L1Item="L1_"+seed, L1Thresholds=[seed], ChainSteps=chainSteps )
log.debug("adding chain %s",chainObj)
chains.append(chainObj)
# Chain(name='HLT_e5' , L1Item="L1_EM7", ChainSteps=[ ChainStep("Step_em11", [el11]), ChainStep("Step_em21", [el21]) ] ),
......
......@@ -9,13 +9,13 @@ from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
CTPToChainMapping = {"HLT_e3_etcut": "L1_EM3",
"HLT_e5_etcut": "L1_EM3",
"HLT_e7_etcut": "L1_EM7",
"HLT_2e3_etcut": "L1_2EM3",
"HLT_e3_e5_etcut":"L1_2EM3"}
CTPToChainMapping = {"HLT_e3_etcut_L1EM3": "L1_EM3",
"HLT_e5_etcut_L1EM3": "L1_EM3",
"HLT_e7_etcut_L1EM7": "L1_EM7",
"HLT_2e3_etcut_L1EM3": "L1_2EM3",
"HLT_e3_e5_etcut_L1EM3":"L1_2EM3"}
topSequence.L1Decoder.prescaler.Prescales = ["HLT_e3_etcut:2", "HLT_2e3_etcut:2.5"]
topSequence.L1Decoder.prescaler.Prescales = ["HLT_e3_etcut_L1EM3:2", "HLT_2e3_etcut_L1EM3:2.5"]
# this is a temporary hack to include only new test chains
testChains =[x for x, y in CTPToChainMapping.items()]
......
......@@ -7,6 +7,7 @@ TriggerSummaryStep1 0 0 DEBUG +++ HLT_xe30_tcpufit_L1
TriggerSummaryStep1 0 0 DEBUG +++ HLT_xe30_cell_L1XE10 ID#1649696554
TriggerSummaryStep1 0 0 DEBUG +++ HLT_e7_etcut_L1EM3 ID#1959043579
TriggerSummaryStep1 0 0 DEBUG +++ HLT_j35_gsc45_boffperf_split_L1J20 ID#2603162203
TriggerSummaryStep1 0 0 DEBUG +++ HLT_xe30_cell_xe30_tcpufit_L1XE10 ID#3768353779
TriggerSummaryStep1 0 0 DEBUG +++ HLT_j35_gsc45_bmv2c1070_split_L1J20 ID#3815360851
TriggerSummaryStep2 0 0 DEBUG +++ HLT_e5_etcut_L1EM3 ID#324908483
TriggerSummaryStep2 0 0 DEBUG +++ HLT_g5_etcut_L1EM3 ID#471243435
......@@ -27,6 +28,7 @@ TriggerSummaryStep1 1 0 DEBUG +++ HLT_xe30_tcpufit_L1
TriggerSummaryStep1 1 0 DEBUG +++ HLT_xe30_cell_L1XE10 ID#1649696554
TriggerSummaryStep1 1 0 DEBUG +++ HLT_e7_etcut_L1EM3 ID#1959043579
TriggerSummaryStep1 1 0 DEBUG +++ HLT_j35_gsc45_boffperf_split_L1J20 ID#2603162203
TriggerSummaryStep1 1 0 DEBUG +++ HLT_xe30_cell_xe30_tcpufit_L1XE10 ID#3768353779
TriggerSummaryStep1 1 0 DEBUG +++ HLT_j35_gsc45_bmv2c1070_split_L1J20 ID#3815360851
TriggerSummaryStep2 1 0 DEBUG +++ HLT_e5_etcut_L1EM3 ID#324908483
TriggerSummaryStep2 1 0 DEBUG +++ HLT_g5_etcut_L1EM3 ID#471243435
......@@ -60,6 +62,7 @@ TriggerSummaryStep1 3 0 DEBUG +++ HLT_xe30_tcpufit_L1
TriggerSummaryStep1 3 0 DEBUG +++ HLT_xe30_cell_L1XE10 ID#1649696554
TriggerSummaryStep1 3 0 DEBUG +++ HLT_e7_etcut_L1EM3 ID#1959043579
TriggerSummaryStep1 3 0 DEBUG +++ HLT_j35_gsc45_boffperf_split_L1J20 ID#2603162203
TriggerSummaryStep1 3 0 DEBUG +++ HLT_xe30_cell_xe30_tcpufit_L1XE10 ID#3768353779
TriggerSummaryStep1 3 0 DEBUG +++ HLT_j35_gsc45_bmv2c1070_split_L1J20 ID#3815360851
TriggerSummaryStep2 3 0 DEBUG +++ HLT_e5_etcut_L1EM3 ID#324908483
TriggerSummaryStep2 3 0 DEBUG +++ HLT_g5_etcut_L1EM3 ID#471243435
......@@ -373,6 +376,8 @@ TrigSignatureMoniMT INFO HLT_mu6noL1_L1MU6
TrigSignatureMoniMT INFO HLT_mu6noL1_L1MU6 decisions 4 1 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 20 20 12 0 0 0 0 12
TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 decisions 12 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE1020 20 12 0 0 0 0 3
TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions 18 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 20 20 3 0 0 0 0 3
TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 decisions 3 0 0 0 0
TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 20 20 3 0 0 0 0 3
......
......@@ -43,10 +43,10 @@ if opt.doElectronSlice == True:
PrecisionCaloStep = ChainStep("ElectronPrecisionCaloStep", [precisionCaloSeq])
egammaChains = [
Chain(name='HLT_e3_etcut1step_L1EM3', L1Item="L1_EM3", ChainSteps=[FastCaloStep] ),
Chain(name='HLT_e3_etcut_L1EM3', L1Item="L1_EM3", ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] ),
Chain(name='HLT_e5_etcut_L1EM3', L1Item="L1_EM3", ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] ),
Chain(name='HLT_e7_etcut_L1EM3', L1Item="L1_EM3", ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] )
Chain(name='HLT_e3_etcut1step_L1EM3', L1Item="L1_EM3", L1Thresholds=["EM3"], ChainSteps=[FastCaloStep] ),
Chain(name='HLT_e3_etcut_L1EM3', L1Item="L1_EM3", L1Thresholds=["EM3"], ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] ),
Chain(name='HLT_e5_etcut_L1EM3', L1Item="L1_EM3", L1Thresholds=["EM3"], ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] ),
Chain(name='HLT_e7_etcut_L1EM3', L1Item="L1_EM3", L1Thresholds=["EM3"], ChainSteps=[FastCaloStep, FastElectronStep, PrecisionCaloStep] )
]
# DiEleStep1=ChainStep("DiEleStep1",[fastCaloSeq, fastCaloSeq], multiplicity=2) #same step
......@@ -71,7 +71,7 @@ if opt.doPhotonSlice == True:
precisionCaloPhotonStep = ChainStep("precisionCaloPhotonStep", [precisionCaloPhotonSeq])
photonChains = [
Chain(name='HLT_g5_etcut_L1EM3', L1Item="L1_EM3", ChainSteps=[ FastCaloStep, fastPhotonStep, precisionCaloPhotonStep] )
Chain(name='HLT_g5_etcut_L1EM3', L1Item="L1_EM3", L1Thresholds=["EM3"], ChainSteps=[ FastCaloStep, fastPhotonStep, precisionCaloPhotonStep] )
]
testChains += photonChains
......@@ -94,33 +94,47 @@ if opt.doMuonSlice == True:
step3muIso =ChainStep("Step3_muIso", [ muIsoSequence() ])
# step4
step4muEFCB=ChainStep("Step4_muEFCB", [ muEFCBSequence() ])
# Full scan MS tracking step
stepFSmuEFSA=ChainStep("Step_FSmuEFSA", [muEFSAFSSequence()])
stepFSmuEFCB=ChainStep("Step_FSmuEFCB", [muEFCBFSSequence()])
emptyStep=ChainStep("Step2_empty")
## single muon trigger
MuonChains += [Chain(name='HLT_mu6fast_L1MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast ])]
MuonChains += [Chain(name='HLT_mu6Comb_L1MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast, step2muComb ])]
MuonChains += [Chain(name='HLT_mu6_L1MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast, step2muComb, step3muEFSA, step4muEFCB ])]
MuonChains += [Chain(name='HLT_mu6msonly_L1MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast, emptyStep, step3muEFSA ])] # removed due to muEFSA isuue(?)
MuonChains += [Chain(name='HLT_mu20_ivar_L1MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast, step2muComb, step3muIso ])]
MuonChains += [Chain(name='HLT_mu6fast_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast ])]
MuonChains += [Chain(name='HLT_mu6Comb_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast, step2muComb ])]
MuonChains += [Chain(name='HLT_mu6_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast, step2muComb, step3muEFSA, step4muEFCB ])]
MuonChains += [Chain(name='HLT_mu6msonly_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast, emptyStep, step3muEFSA ])] # removed due to muEFSA isuue(?)
MuonChains += [Chain(name='HLT_mu20_ivar_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast, step2muComb, step3muIso ])]
# multi muon trigger
# 2muons
# 2muons symmetric
step1_2mufast_sym= ChainStep("Step1_2muFast_sym", [ muFastSequence()], multiplicity=2)
step2_2muComb_sym= ChainStep("Step1_2muComb_sym", [ muCombSequence()], multiplicity=2)
step3_2muEFSA_sym= ChainStep("Step3_2muEFSA_sym", [ muEFSASequence()], multiplicity=2)
step4_2muEFCB_sym= ChainStep("Step4_2muEFCB_sym", [ muEFCBSequence()], multiplicity=2)
MuonChains += [Chain(name='HLT_2mu6Comb_L12MU6', L1Item="L1_2MU6", ChainSteps=[ step1_2mufast_sym, step2_2muComb_sym ])]
MuonChains += [Chain(name='HLT_2mu6_L12MU6', L1Item="L1_2MU6", ChainSteps=[ step1_2mufast_sym, step2_2muComb_sym, step3_2muEFSA_sym, step4_2muEFCB_sym ])]
MuonChains += [Chain(name='HLT_2mu6Comb_L12MU6', L1Item="L1_2MU6", L1Thresholds=["MU6"], ChainSteps=[ step1_2mufast_sym, step2_2muComb_sym ])]
# 2muons asymmetric (this will change): 2 sequences, 2 seeds
step1_2mufast_asym= ChainStep("Step1_2muFast_asym", [ muFastSequence(), muFastSequence()], multiplicity=2)
step2_2muComb_asym= ChainStep("Step1_2muComb_asym", [ muCombSequence(), muCombSequence()], multiplicity=2)
step3_2muEFSA_asym= ChainStep("Step3_2muEFSA_asym", [ muEFSASequence(), muEFSASequence()], multiplicity=2)
step4_2muEFCB_asym= ChainStep("Step4_2muEFCB_asym", [ muEFCBSequence(), muEFCBSequence()], multiplicity=2)
MuonChains += [Chain(name='HLT_mu6_mu4_L12MU4', L1Item="L1_2MU4",
L1Thresholds=["MU4", "MU4"],
ChainSteps=[ step1_2mufast_asym, step2_2muComb_asym ])]
MuonChains += [Chain(name='HLT_mu6_mu4_L1MU4_MU6', L1Item="L1_MU4_MU6",
L1Thresholds=["MU4", "MU6"],
ChainSteps=[ step1_2mufast_asym, step2_2muComb_asym ])]
#FS Muon trigger
MuonChains += [Chain(name='HLT_mu6nol1_L1MU6', L1Item="L1_MU6", ChainSteps=[stepFSmuEFSA, stepFSmuEFCB])]
# Full scan MS tracking step
stepFSmuEFSA=ChainStep("Step_FSmuEFSA", [muEFSAFSSequence()])
stepFSmuEFCB=ChainStep("Step_FSmuEFCB", [muEFCBFSSequence()])
MuonChains += [Chain(name='HLT_mu6nol1_L1MU6', L1Item="L1_MU6", L1Thresholds=["MU6"], ChainSteps=[stepFSmuEFSA, stepFSmuEFCB])]
testChains += MuonChains
......@@ -131,7 +145,7 @@ if opt.doMuonSlice == True:
if opt.doJetSlice == True:
from TrigUpgradeTest.jetMenuHelper import jetMenuSequenceFromString
# small-R jets, different calibrations
# small-R jets, different calibrations HLT_AntiKt4EMTopoJets_subjesIS
jetSeq_a4_tc_em = jetMenuSequenceFromString("a4_tc_em_subjesIS")
step_a4_tc_em =ChainStep("Step_jet_a4_tc_em", [jetSeq_a4_tc_em])
......@@ -141,8 +155,8 @@ if opt.doJetSlice == True:
jetSeq_a4_tc_em_nocalib = jetMenuSequenceFromString("a4_tc_em_nojcalib")
step_a4_tc_em_nocalib=ChainStep("Step_jet_a4_nojcalib_tc_em", [jetSeq_a4_tc_em_nocalib])
jetSeq_a4_tc_lcw = jetMenuSequenceFromString("a4_tc_lcw_subjesIS")
step_a4_tc_lcw=ChainStep("Step_jet_a4_tc_lcw", [jetSeq_a4_tc_lcw])
# jetSeq_a4_tc_lcw = jetMenuSequenceFromString("a10_tc_lcw_subjesIS")
# step_a4_tc_lcw=ChainStep("Step_jet_a10_tc_lcw", [jetSeq_a4_tc_lcw])
# large-R jets
jetSeq_a10_tc_lcw_subjes = jetMenuSequenceFromString("a10_tc_lcw_subjes")
......@@ -152,16 +166,16 @@ if opt.doJetSlice == True:
step_a10r=ChainStep("Step_jet_a10r", [jetSeq_a10r])
jetChains = [
Chain(name='HLT_j45_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j85_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j420_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j260_320eta490_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j45_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j85_L1J20', L1Item="L1_J20", L1Thresholds=["J20"],ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j420_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j260_320eta490_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ),
# Chain(name='HLT_j225_gsc420_boffperf_split', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j460_a10_lcw_subjes_L1J20', L1Item="L1_J20", ChainSteps=[step_a10_tc_lcw_subjes] ),
Chain(name='HLT_j460_a10r_L1J20', L1Item="L1_J20", ChainSteps=[step_a10r] ),
Chain(name='HLT_3j200_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_5j70_0eta240_L1J20', L1Item="L1_J20", ChainSteps=[step_a4_tc_em] ), # 5j70_0eta240_L14J15 (J20 until multi-object L1 seeds supported)
Chain(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_j460_a10_lcw_subjes_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a10_tc_lcw_subjes] ),
Chain(name='HLT_j460_a10r_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a10r] ),
Chain(name='HLT_3j200_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ),
Chain(name='HLT_5j70_0eta240_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em] ), # 5j70_0eta240_L14J15 (J20 until multi-object L1 seeds supported)
]
testChains += jetChains
......@@ -177,9 +191,9 @@ if opt.doBjetSlice == True:
step2 = ChainStep("Step2_bjet", [getBJetSequence('gsc')])
bjetChains = [
Chain(name='HLT_j35_gsc45_boffperf_split_L1J20' , L1Item="L1_J20", ChainSteps=[step1,step2] ),
Chain(name='HLT_j35_gsc45_bmv2c1070_split_L1J20', L1Item="L1_J20", ChainSteps=[step1,step2] ),
Chain(name='HLT_j35_gsc45_bmv2c1070_L1J20' , L1Item="L1_J20", ChainSteps=[step1,step2] )
Chain(name='HLT_j35_gsc45_boffperf_split_L1J20' , L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step1,step2] ),
Chain(name='HLT_j35_gsc45_bmv2c1070_split_L1J20', L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step1,step2] ),
Chain(name='HLT_j35_gsc45_bmv2c1070_L1J20' , L1Item="L1_J20", L1Thresholds=["J20"], ChainSteps=[step1,step2] )
]
testChains += bjetChains
......@@ -197,9 +211,9 @@ if opt.doTauSlice == True:
tauChains = [
Chain(name='HLT_tau0_perf_ptonly_L1TAU12', L1Item="L1_TAU12", ChainSteps=[step1, step2] ),
Chain(name='HLT_tau25_medium1_tracktwo_L1TAU12IM', L1Item="L1_TAU12IM", ChainSteps=[step1, step2TP] ),
Chain(name='HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM', L1Item="L1_TAU20IM", ChainSteps=[step1MVA, step2PT]),
Chain(name='HLT_tau0_perf_ptonly_L1TAU12', L1Item="L1_TAU12", L1Thresholds=["TAU12"], ChainSteps=[step1, step2] ),
Chain(name='HLT_tau25_medium1_tracktwo_L1TAU12IM', L1Item="L1_TAU12IM", L1Thresholds=["TAU12IM"], ChainSteps=[step1, step2TP] ),
Chain(name='HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM', L1Item="L1_TAU20IM", L1Thresholds=["TAU20IM"], ChainSteps=[step1MVA, step2PT]),
]
testChains += tauChains
......@@ -207,15 +221,23 @@ if opt.doTauSlice == True:
# MET chains
##################################################################
if opt.doMETSlice == True:
from TriggerMenuMT.HLTMenuConfig.MET.METMenuSequences import metCellMenuSequence
from TriggerMenuMT.HLTMenuConfig.MET.METMenuSequences import metCellMenuSequence, metClusterPufitMenuSequence
metCellSeq = metCellMenuSequence()
metClusterPufitSeq = metClusterPufitMenuSequence()
metCellStep = ChainStep("Step1_met_cell", [metCellSeq])
metClusterPufitStep = ChainStep("Step1_met_clusterpufit", [metClusterPufitSeq])
comboStep_cell_clusterpufit = ChainStep("Step1_combo_cell_clusterpufit", [metCellSeq, metClusterPufitSeq], multiplicity=2)
metChains = [
Chain(name="HLT_xe65_L1XE50", L1Item="L1_XE50", ChainSteps=[metCellStep]),
Chain(name="HLT_xe30_L1XE10", L1Item="L1_XE10", ChainSteps=[metCellStep])
Chain(name="HLT_xe65_L1XE50", L1Item="L1_XE50", L1Thresholds=["XE50"], ChainSteps=[metCellStep]),
Chain(name="HLT_xe30_L1XE10", L1Item="L1_XE10", L1Thresholds=["XE10"], ChainSteps=[metCellStep]),
Chain(name="HLT_xe30_tcpufit_L1XE10", L1Item="L1_XE10", L1Thresholds=["XE10"], ChainSteps=[metClusterPufitStep]),
Chain(name='HLT_xe30_cell_xe30_tcpufit_L12XE10', L1Item="L1_2XE10", L1Thresholds=["XE10","XE10"], ChainSteps=[comboStep_cell_clusterpufit ])
]
testChains += metChains
##################################################################
......@@ -235,11 +257,11 @@ if opt.doBphysicsSlice == True:
step4muEFCB=ChainStep("Step4_muEFCB", [ muEFCBSequence() ])
step5EFDimu=ChainStep("Step5_EFDimu", [ dimuEFSequence() ])
BphysChains += [Chain(name='HLT_2mu4_bDimu_L12MU4', L1Item="L1_MU4", ChainSteps=[ step1mufast, step2L2Dimu, step3muEFSA, step4muEFCB, step5EFDimu])]
BphysChains += [Chain(name='HLT_2mu6_bJpsimumu_L12MU6', L1Item="L1_MU6", ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bBmumu_L12MU4', L1Item="L1_MU4", ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bUpsimumu_L12MU4', L1Item="L1_MU4", ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bJpsimumu_L12MU4', L1Item="L1_MU4", ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bDimu_L12MU4', L1Item="L1_2MU4", L1Thresholds=["MU4"], ChainSteps=[ step1mufast, step2L2Dimu, step3muEFSA, step4muEFCB, step5EFDimu])]
BphysChains += [Chain(name='HLT_2mu6_bJpsimumu_L12MU6', L1Item="L1_2MU6", L1Thresholds=["MU6"], ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bBmumu_L12MU4', L1Item="L1_2MU4", L1Thresholds=["MU4"], ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bUpsimumu_L12MU4', L1Item="L1_2MU4", L1Thresholds=["MU4"], ChainSteps=[ step1mufast, step2L2Dimu])]
BphysChains += [Chain(name='HLT_2mu4_bJpsimumu_L12MU4', L1Item="L1_2MU4", L1Thresholds=["MU4"], ChainSteps=[ step1mufast, step2L2Dimu])]
#BphysChains += [Chain(name='HLT_mu6_mu4_bJpsimumu_L1MU6_2MU4', L1Item="L1_MU4", ChainSteps=[ step1mufast, step2L2Dimu])]
#to come: step3muEFSA, step4muEFCB, step5EFJpsi])]
......@@ -257,12 +279,13 @@ if opt.doCombinedSlice == True:
from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import electronFastCaloCfg
fastCaloSeq = RecoFragmentsPool.retrieve( electronFastCaloCfg, None )
from TriggerMenuMT.HLTMenuConfig.Muon.MuonSequenceSetup import muFastSequence
comboStep_et_mufast = ChainStep("Step1_et_mufast", [fastCaloSeq, muFastSequence()], multiplicity=2)
comboStep_mufast_etcut1_step1 = ChainStep("Step1_mufast_etcut1", [muFastSequence(), fastCaloSeq], multiplicity=2)
comboChains = [Chain(name='HLT_e3_etcut_mu6_L1EM8I_MU10', L1Item="L1_EM8I_MU10", ChainSteps=[comboStep_et_mufast ])]
comboChains = [Chain(name='HLT_e3_etcut_mu6_L1EM8I_MU10', L1Item="L1_EM8I_MU10", L1Thresholds=["EM8I", "MU10"], ChainSteps=[comboStep_et_mufast ])]
# comboChains += [Chain(name='HLT_mu8fast_e8_etcut1step', L1Item="L1_MU6_EM7", ChainSteps=[ comboStep_mufast_etcut1_step1 ])]
testChains += comboChains
......
......@@ -26,8 +26,8 @@ svcMgr.TrigCaloDataAccessSvc.MonTool = mon
from L1Decoder.L1DecoderConf import CreateFullScanRoI
topSequence += CreateFullScanRoI()
from TrigUpgradeTest.jetMenuHelper import jetRecoSequenceFromString
(jetSequence, InputMakerAlg, jetsKey) = jetRecoSequenceFromString("a4_tc_em_subjes")
from TrigUpgradeTest.jetMenuHelper import jetCFSequenceFromString
(jetSequence, InputMakerAlg, jetsKey) = jetCFSequenceFromString("a4_tc_em_subjes")
topSequence += jetSequence
......
......@@ -48,8 +48,8 @@ if TriggerFlags.doCalo:
filterL1RoIsAlg.Chains = testChains
from TrigUpgradeTest.jetMenuHelper import jetRecoSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetRecoSequenceFromString("a4_tc_em_subjes")
from TrigUpgradeTest.jetMenuHelper import jetCFSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetCFSequenceFromString("a4_tc_em_subjes")
inputRoIs= InputMakerAlg.RoIs
hypoDecisions= InputMakerAlg.InputMakerOutputDecisions[0]
......
......@@ -31,8 +31,8 @@ def getBJetSequence( step ):
def bJetStep1Sequence():
from TrigUpgradeTest.jetMenuHelper import jetRecoSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetRecoSequenceFromString("a4_tc_em_subjes")
from TrigUpgradeTest.jetMenuHelper import jetCFSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetCFSequenceFromString("a4_tc_em_subjes")
# Start with b-jet-specific algo sequence
......@@ -100,8 +100,8 @@ def bJetStep1Sequence():
def bJetStep1SequenceALLTE():
# Construct jets
from TrigUpgradeTest.jetMenuHelper import jetRecoSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetRecoSequenceFromString("a4_tc_em_subjes")
from TrigUpgradeTest.jetMenuHelper import jetCFSequenceFromString
(recoSequence, InputMakerAlg, sequenceOut) = jetCFSequenceFromString("a4_tc_em_subjes")
# Start with b-jet-specific algo sequence
# Construct RoI. Needed input for Fast Tracking
......
......@@ -76,6 +76,10 @@ def generateChains( flags, chainDict ):
CA = accTrk)
fastInDetStep = ChainStep( secondStepName, [fastInDetSequence] )
l1Thresholds=[]
for part in chainDict['chainParts']:
l1Thresholds.append(part['L1threshold'])
# # # EF calo
......@@ -83,5 +87,6 @@ def generateChains( flags, chainDict ):
# # # offline egamma
chain = Chain( chainDict['chainName'], chainDict['L1item'], [fastCaloStep, fastInDetStep] )
chain = Chain( chainDict['chainName'], chainDict['L1item'], L1Thresholds=l1Thresholds, ChainSteps=[fastCaloStep, fastInDetStep] )
return chain
......@@ -4,7 +4,7 @@
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import RecoFragmentsPool, MenuSequence
from TriggerMenuMT.HLTMenuConfig.Jet.JetRecoSequences import jetAthSequence, jetRecoDictToString
def jetRecoSequence(dummyFlags,**recoDict):
def jetCFSequence(dummyFlags,**recoDict):
""" Function to create the jet Menu Sequence"""
## RoIs = 'FSJETRoI'
......@@ -13,7 +13,7 @@ def jetRecoSequence(dummyFlags,**recoDict):
return (JetAthSequence, InputMakerAlg, sequenceOut)
def jetMenuSequence(dummyFlags,**recoDict):
(JetAthSequence, InputMakerAlg, sequenceOut)= jetRecoSequence(dummyFlags,**recoDict)
(JetAthSequence, InputMakerAlg, sequenceOut)= jetCFSequence(dummyFlags,**recoDict)
#hypo
from TrigHLTJetHypo.TrigHLTJetHypoConf import TrigJetHypoAlgMT
from TrigHLTJetHypo.TrigJetHypoToolConfig import trigJetHypoToolFromDict
......
......@@ -73,11 +73,15 @@ def generateChains( flags, chainDict ):
jetStep = ChainStep(stepName, [jetSequence])
l1Thresholds=[]
for part in chainDict['chainParts']:
l1Thresholds.append(part['L1threshold'])
import pprint
pprint.pprint(chainDict)
acc.printConfig()
chain = Chain( chainDict['chainName'], chainDict['L1item'], [ jetStep ] )
chain = Chain( chainDict['chainName'], chainDict['L1item'], L1Thresholds=l1Thresholds, ChainSteps=[ jetStep ] )
return chain
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainDict
from TriggerMenuMT.HLTMenuConfig.MET.METChainDef import MetChainConfiguration as MetChainConfiguration
from TriggerMenuMT.HLTMenuConfig.MET.METChainConfiguration import MetChainConfiguration as MetChainConfiguration
from TriggerMenuMT.HLTMenuConfig.Menu.ChainMerging import mergeChainDefs
......@@ -17,6 +17,8 @@ def generateChainConfigs( chainDict ):
listOfChainDicts = splitChainDict(chainDict)
log.debug("Implement case for met chain with %d legs ",len(listOfChainDicts))
listOfChainDefs = []
for subChainDict in listOfChainDicts:
......@@ -28,7 +30,7 @@ def generateChainConfigs( chainDict ):
if len(listOfChainDefs)>1:
log.warning("Implement case for mulit-step met chain!!")
log.debug("Implement case for mulit-leg met chain")
theChainDef = mergeChainDefs(listOfChainDefs, chainDict)
else:
theChainDef = listOfChainDefs[0]
......
......@@ -2,11 +2,10 @@
from AthenaCommon.Logging import logging
logging.getLogger().info("Importing %s",__name__)
log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.MET.METChainDef")
log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.MET.METChainConfiguration")
from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
from TriggerMenuMT.HLTMenuConfig.MET.METMenuSequences import metCellMenuSequence, metClusterPufitMenuSequence#, metJetMenuSequence
......@@ -49,7 +48,7 @@ class MetChainConfiguration(ChainConfigurationBase):
"tcpufit":[self.getMetClusterPufitStep()],
# "mht":[self.getMetJetStep()],
}
key = self.chainPart['EFrecoAlg']
steps=stepDictionary[key]
......@@ -58,17 +57,15 @@ class MetChainConfiguration(ChainConfigurationBase):
myChain = self.buildChain(chainSteps)
return myChain
# --------------------
# Configuration of cell chain
# --------------------
def getMetCellStep(self):
stepName = "Step1_met_cell"
log.debug("Configuring step " + stepName)
metCellSeq = metCellMenuSequence()
chainStep =ChainStep(stepName, [metCellSeq])
log.debug("Returning chainStep from getMetCellStep function: " + stepName)
return chainStep
return self.getStep(1,"met_cell", [MetCellSequenceCfg] )
# --------------------
# Configuration of Jet chain
......@@ -85,13 +82,8 @@ class MetChainConfiguration(ChainConfigurationBase):
# Configuration of pufit chain
# --------------------
def getMetClusterPufitStep(self):
stepName = "Step1_met_clusterpufit"
log.debug("Configuring step " + stepName)
metClusterPufitSeq = metClusterPufitMenuSequence()
chainStep =ChainStep(stepName, [metClusterPufitSeq])
log.debug("Returning chainStep from getMetClusterPufitStep function: " + stepName)
return chainStep
return self.getStep(1,"met_clusterpufit", [MetClusterPufitSequenceCfg] )
......
......@@ -3,17 +3,19 @@
#
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence, RecoFragmentsPool
from AthenaConfiguration.AllConfigFlags import ConfigFlags
from TrigMissingETHypo.TrigMissingETHypoConfigMT import TrigMETCellHypoToolFromDict
from TrigMissingETHypo.TrigMissingETHypoConf import TrigMissingETHypoAlgMT
def metCellMenuSequence():
# menu components
# retrieve the reco seuqnece
from TriggerMenuMT.HLTMenuConfig.MET.METSequences import metCellAthSequence
from TriggerMenuMT.HLTMenuConfig.MET.METRecoSequences import metCellAthSequence
(metCellSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(metCellAthSequence,ConfigFlags)
#hypo
from TrigMissingETHypo.TrigMissingETHypoConfigMT import MissingETHypoAlgMT, TrigMETCellHypoToolFromDict
metHypoAlg = MissingETHypoAlgMT("METHypoAlg_cell")
metHypoAlg = TrigMissingETHypoAlgMT("METHypoAlg_cell")
metHypoAlg.METContainerKey=sequenceOut
return MenuSequence( Sequence = metCellSequence,
......@@ -25,13 +27,11 @@ def metCellMenuSequence():
def metClusterMenuSequence():
# menu components
# retrieve the reco seuqnece
from TriggerMenuMT.HLTMenuConfig.MET.METSequences import metClusterAthSequence
from TriggerMenuMT.HLTMenuConfig.MET.METRecoSequences import metClusterAthSequence
(metClusterSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(metClusterAthSequence,ConfigFlags)
#hypo
from TrigMissingETHypo.TrigMissingETHypoConfigMT import MissingETHypoAlgMT, TrigMETCellHypoToolFromDict
metHypoAlg = MissingETHypoAlgMT("METHypoAlg_tc")
metHypoAlg = TrigMissingETHypoAlgMT("METHypoAlg_tc")
metHypoAlg.METContainerKey=sequenceOut
return MenuSequence( Sequence = metClusterSequence,
......@@ -43,13 +43,11 @@ def metClusterMenuSequence():
def metClusterPufitMenuSequence():
# menu components
# retrieve the reco seuqnece
from TriggerMenuMT.HLTMenuConfig.MET.METSequences import metClusterPufitAthSequence
from TriggerMenuMT.HLTMenuConfig.MET.METRecoSequences import metClusterPufitAthSequence
(metClusterPufitSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(metClusterPufitAthSequence,ConfigFlags)
#hypo
from TrigMissingETHypo.TrigMissingETHypoConfigMT import MissingETHypoAlgMT, TrigMETCellHypoToolFromDict
metHypoAlg = MissingETHypoAlgMT("METHypoAlg_tcpufit")
metHypoAlg = TrigMissingETHypoAlgMT("METHypoAlg_tcpufit")
metHypoAlg.METContainerKey=sequenceOut
return MenuSequence( Sequence = metClusterPufitSequence,
......@@ -63,7 +61,7 @@ def metClusterPufitMenuSequence():
# menu components
# retrieve the reco seuqnece
# from TriggerMenuMT.HLTMenuConfig.MET.METSequences import metJetAthSequence
# from TriggerMenuMT.HLTMenuConfig.MET.METRecoSequences import metJetAthSequence
# (metJetSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(metJetAthSequence,ConfigFlags)
#hypo
......
......@@ -3,7 +3,8 @@
from AthenaCommon.Logging import logging
log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase' )
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain, RecoFragmentsPool
from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain, ChainStep, RecoFragmentsPool
#----------------------------------------------------------------
# Base class to configure chain
......@@ -37,9 +38,18 @@ class ChainConfigurationBase(object):
mySequence = RecoFragmentsPool.retrieve(mySequenceCfg, None) # the None will be used for flags in future
return mySequence
def getStep(self, stepID, stepPartName, sequenceCfgArray):
stepName = 'Step%d'%stepID + '_%d'%self.mult + stepPartName
log.debug("Configuring step " + stepName)
seqArray = []
for sequenceCfg in sequenceCfgArray:
seqArray.append( RecoFragmentsPool.retrieve( sequenceCfg, None))
return ChainStep(stepName, seqArray, self.mult)
def buildChain(self, chainSteps):
myChain = Chain(name = self.chainName,
L1Item = self.chainL1Item,
ChainSteps = chainSteps, L1Thresholds=[self.L1Threshold] )
ChainSteps = chainSteps,
L1Thresholds = [self.L1Threshold] )
return myChain
......@@ -33,6 +33,7 @@ def mergeParallel(chainDefList, chainL1Item, offset):
chainName = ''
#l1Seed = ''
l1Seed = chainL1Item
l1Thresholds = []
for cConfig in chainDefList:
......@@ -48,6 +49,7 @@ def mergeParallel(chainDefList, chainL1Item, offset):
allSteps.append(cConfig.steps)
nSteps.append(len(cConfig.steps))
l1Thresholds.extend(cConfig.vseeds)
from itertools import izip_longest
orderedSteps = list(izip_longest(*allSteps))
......@@ -66,7 +68,8 @@ def mergeParallel(chainDefList, chainL1Item, offset):
else:
log.debug("Have to deal with uneven number of chain steps, there might be none's appearing in sequence list => to be fixed")
combinedChainDef = Chain(chainName, l1Seed, combChainSteps)
combinedChainDef = Chain(chainName, L1Item=l1Seed, ChainSteps=combChainSteps, L1Thresholds=l1Thresholds)
for step in combinedChainDef.steps:
log.debug(' Step %s', step)
......
......@@ -340,9 +340,11 @@ class DictFromChainName(object):
assert len(L1thresholds) == len(multichainparts), 'ERROR IN CHAIN {} definition, l1 thresholds specified {} have different length than chain parts {}'\
.format(chainName, str(L1thresholds), str(multichainparts) )
if len(L1thresholds) == 0:
assert len( getUniqueThresholdsFromItem( L1item )) == len(multichainparts), 'ERROR IN CHAIN {} definition, l1 thresholds extracted from the L1 item name {} have different length than chain parts {}, set L1 thresholds ChainProp'\
.format( chainName, str( getUniqueThresholdsFromItem( L1item ) ), str(multichainparts))
# tmp removed this check since the L1seeds depend on sym or asym cases
# if len(L1thresholds) == 0:
# getAllThresholdsFromItem, getUniqueThresholdsFromItem
# assert len( getAllThresholdsFromItem( L1item )) == len(multichainparts), 'ERROR IN CHAIN {} definition, l1 thresholds extracted from the L1 item name {} have different length than chain parts {}, set L1 thresholds ChainProp'\
# .format( chainName, str( getAllThresholdsFromItem( L1item ) ), str(multichainparts))
# check the case when _L1 appears more than once in the name
if chainName.count("_L1") > 1:
......@@ -360,7 +362,7 @@ class DictFromChainName(object):
if len(L1thresholds) != 0:
chainProperties['L1threshold'] = L1thresholds[chainindex]
else:
chainProperties['L1threshold'] = getUniqueThresholdsFromItem( L1item )[chainindex]
chainProperties['L1threshold'] = getAllThresholdsFromItem ( L1item )[chainindex] #replced getUniqueThresholdsFromItem
chainpartsNoL1 = chainparts
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment