Commit aa0b667c authored by Elisabetta Pianori's avatar Elisabetta Pianori Committed by Graeme Stewart
Browse files

commnet out ALFA thr definition (TriggerMenu-00-06-67)

	* comment out threshold definition for ALFA (ATR-9924)
	* TriggerMenu-00-06-67

2015-01-30  Arantxa Ruiz Martinez  <aranzazu.ruiz.martinez@cern.ch>
	* VBF triggers implemented in MC_pp_v5 menu (ATR-9520)
	* TriggerMenu-00-06-66

2015-01-30 Elisabetta Pianori
	* update e/gamma menu (ATR-9981)
	* implement threshold definition for ALFA (ATR-9924)
	* add L1Mu6 warning for xe and te chains to ConsistentyChecker  exceptions
	* TriggerMenu-00-06-65

2015-01-30 Yu Nakahama
	* L1Topo M8 menu: changed INVM with EMall to EMs, fixed max value on Sebastian's request
	* TriggerMenu-00-06-64

2015-01-30  Arantxa Ruiz Martinez  <aranzazu.ruiz.martinez@cern.ch>
	* Jet triggers added in Physics_pp_v5 menu for M8 (ATR-9948)
	* TriggerMenu-00-06-63
...
(Long ChangeLog diff - truncated)
parent 6ee72af1
......@@ -11,16 +11,15 @@
<exceptions>
<test name="ThrSeqMismatch">
<ex name="HLT_.*xe.*->MU6"/>
<ex name="HLT_e5_etcut_L110MINDPHI-AJj15s2-XE0->EM3"/>
<ex name="HLT_e5_etcut_L120MINDPHI-AJjs6-XE0->EM3"/>
<ex name="HLT_e5_etcut_L120MINDPHI-AJj15s2-XE0->EM3"/>
<ex name="HLT_e5_etcut_L105RATIO-XE0-HT0-AJj15all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L108RATIO-XE0-HT0-AJj0all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L140RATIO-XE0-HT0-AJj15all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L190RATIO-XE0-HT0-AJj0all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L1HT20-AJj0all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L1NOT-02MATCH-EM9s1-AJj15all.ETA49->EM3"/>
<ex name="HLT_e5_etcut_L1NOT-02MATCH-EM9s1-AJj15all.ETA49_05RATIO-XE0-SUM0-EM9s1-HT0-AJj15all.ETA49->EM3"/>
<ex name="HLT_.*te.*->MU6"/>
<ex name="HLT_.*xs.*->MU6"/>
<ex name="HLT_e5_etcut_L110.*->EM3"/>
<ex name="HLT_e5_etcut_L120.*->EM3"/>
<ex name="HLT_e5_etcut_L10.*->EM3"/>
<ex name="HLT_e5_etcut_L14.*->EM3"/>
<ex name="HLT_e5_etcut_L19.*->EM3"/>
<ex name="HLT_e5_etcut_L1HT20.*->EM3"/>
<ex name="HLT_e5_etcut_L1NOT.*->EM3"/>
<ex name="HLT_e12_loose_2mu10->EM8VH"/>
<ex name="HLT_e12_medium_2mu10->EM8VH"/>
<ex name="HLT_e12_lhloose_2mu10->EM8VH"/>
......
......@@ -44,6 +44,22 @@ class TriggerConfigL1Topo:
self.registerMenu()
# remove prescale suffixes
@staticmethod
def getMenuBaseName(menuName):
import re
pattern = re.compile('_v\d+|DC14')
patternPos = pattern.search(menuName)
if patternPos:
menuName=menuName[:patternPos.end()]
else:
log.info('Can\'t find pattern to shorten menu name, either non-existent in name or not implemented.')
return menuName
def registerAlgo(self, algo):
""" Add a L1Topo algo to the set of algos which are registered for further use"""
......@@ -104,13 +120,10 @@ class TriggerConfigL1Topo:
Menu.defineMenu() defines the menu via L1TopoFlags
"""
#from TriggerConfigLVL1 import TriggerConfigLVL1
#tcl1 = TriggerConfigLVL1()
#menuName = tcl1.getMenuBaseName(menuName)
menuName = TriggerConfigL1Topo.getMenuBaseName(menuName)
from TriggerJobOpts.TriggerFlags import TriggerFlags
menumodule = __import__('l1topomenu.Menu_%s' % menuName.replace('_tight_mc_prescale','').replace('_loose_mc_prescale','').replace('_special_mc_prescale','').replace('_no_prescale',''), globals(), locals(), ['defineMenu'], -1)
#menumodule = __import__('l1topomenu.Menu_%s' % menuName, globals(), locals(), ['defineMenu'], -1)
menumodule = __import__('l1topomenu.Menu_%s' % menuName, globals(), locals(), ['defineMenu'], -1)
menumodule.defineMenu()
log.info("%s menu contains %i algos." % ( menuName, len(L1TopoFlags.algos()) ))
......
......@@ -57,19 +57,6 @@ class TriggerConfigLVL1:
# registers all items ever defined
self.registerMenu()
# remove prescale suffixes
def getMenuBaseName(self, menuName):
#import re
#pattern = re.compile('_v\d+|DC14')
#patternPos = pattern.search(menuName)
#if m:
# menuName=menuName[:patternPos.end()]
#else:
# log.info('Can\'t find pattern to shorten menu name, either non-existent in name or not implemented.')
#return menuName
return menuName.replace("_tight_mc_prescale","").replace("_loose_mc_prescale","").replace("_special_mc_prescale","").replace("_no_prescale","")
## L1 Topo connection
def getL1TopoTriggerLines(self, menu):
......@@ -82,7 +69,7 @@ class TriggerConfigLVL1:
else:
triggerLines = None
try:
tpcl1 = TriggerConfigL1Topo( menuName = self.getMenuBaseName(menu) )
tpcl1 = TriggerConfigL1Topo( menuName = TriggerConfigL1Topo.getMenuBaseName(menu) )
tpcl1.generateMenu()
triggerLines = tpcl1.menu.getTriggerLines()
#for tr in triggerLines:
......@@ -198,9 +185,8 @@ class TriggerConfigLVL1:
if not menuName:
menuName = TriggerFlags.triggerMenuSetup()
#menuName=self.getMenuBaseName(menuName)
#menumodule = __import__('l1menu.Menu_%s' % menuName, globals(), locals(), ['defineMenu'], -1)
menumodule = __import__('l1menu.Menu_%s' % menuName.replace("_tight_mc_prescale","").replace("_loose_mc_prescale","").replace("_special_mc_prescale","").replace("_no_prescale",""), globals(), locals(), ['defineMenu'], -1)
menuName=TriggerConfigL1Topo.getMenuBaseName(menuName)
menumodule = __import__('l1menu.Menu_%s' % menuName, globals(), locals(), ['defineMenu'], -1)
menumodule.defineMenu()
log = logging.getLogger('TriggerConfigLVL1.defineMenu')
log.info("menu %s contains %i items and %i thresholds" % ( menuName, len(Lvl1Flags.items()), len(Lvl1Flags.thresholds()) ) )
......
......@@ -448,7 +448,7 @@ def _prepareJetChainDict(cdict):
###########################################################################
def get_j35_ChainDef():
return theDictFromChainName.getChainDict( ['j35', 21, '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!!!
......
......@@ -242,8 +242,17 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF):
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()
EFFex = EFBMuMuFex_DiMu_noinvm_SS()
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
......@@ -305,6 +314,14 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF):
EFFex = EFBMuMuXFex_BcMuMuDs()
EFHypo = EFBMuMuXHypo_BcMuMuDs()
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 'bBmumuxv2' in topoAlgs:
from TrigBphysHypo.TrigL2BMuMuXFexConfig import L2BMuMuXFex_1
from TrigBphysHypo.TrigEFBMuMuXFexConfig import EFBMuMuXFex_1
......
......@@ -43,6 +43,7 @@ class L2EFChain_Beamspot(L2EFChainDef):
self.eventBuildType = self.chainPart['eventBuildType']
self.L2InputTE = self.chainPartL1Item or self.chainL1Item
self.L2InputTE = self.L2InputTE.replace("L1_","")
if ('trkFS' in self.chainPart['addInfo']) \
or ('activeTE' in self.chainPart['addInfo'] )\
......@@ -102,29 +103,33 @@ class L2EFChain_Beamspot(L2EFChainDef):
#commenting out because of ATR-8976 (removal of package)
#if ('L2StarB' in self.l2IDAlg):
# from TrigSiTrack.TrigSiTrack_Config import TrigSiTrack_BeamSpot
# TrigL2SiTrackFinder_Config = __import__('TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config', fromlist=[""])
# trk_alg = getattr(TrigL2SiTrackFinder_Config, "TrigL2SiTrackFinder_BeamSpotB")
# teaddition = 'L2StarB'
#else:
# mlog.error('Cannot assemble chain %s - only configured for L2StarB' % (self.chainPartName))
self.L2sequenceList +=[[ self.L2InputTE, [theFex], 'L2_fex']]
if ('L2StarB' in self.l2IDAlg):
#from TrigSiTrack.TrigSiTrack_Config import TrigSiTrack_BeamSpot
TrigL2SiTrackFinder_Config = __import__('TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config', fromlist=[""])
trk_alg = getattr(TrigL2SiTrackFinder_Config, "TrigL2SiTrackFinder_BeamSpotB")
teaddition = 'L2StarB'
else:
mlog.error('Cannot assemble chain %s - only configured for L2StarB' % (self.chainPartName))
from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo
self.L2sequenceList += [ [[""], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo"), trk_alg()], 'L2_BeamSpottracks']]
# self.L2sequenceList +=[[ self.L2InputTE, [theFex], 'L2_fex']]
# self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']]
#
self.L2sequenceList +=[[['L2_BeamSpottracks'], [theFex], 'L2_fex']]
self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']]
#from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo
#self.L2sequenceList += [ [[""], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo"), trk_alg()], 'L2_BeamSpottracks']]
self.L2signatureList += [ [['L2_BeamSpottracks']] ]
self.L2signatureList += [ [['L2_fex']] ]
self.L2signatureList += [ [['L2_']] ]
#self.L2signatureList += [ [['L2_BeamSpottracks']] ]
self.TErenamingDict = {
'L2_fex' : mergeRemovingOverlap('L2_', self.chainName+'_fex'),
'L2_' : mergeRemovingOverlap('L2_', self.chainName),
#'L2_BeamSpottracks': mergeRemovingOverlap('L2_', 'BeamSpottracks'+teaddition),
'L2_' : mergeRemovingOverlap('L2_', self.chainName+self.chainPart['addInfo'][0]),
'L2_BeamSpottracks': mergeRemovingOverlap('L2_', self.chainName+'_BeamSpottracks'),
}
......
......@@ -111,8 +111,8 @@ class L2EFChain_CalibTemplate(L2EFChainDef):
self.setupL1CaloCalibrationChains()
elif 'alfacalib' in self.chainPart['purpose']:
self.setupL1ALFACalibrationChains()
#elif '
elif 'larnoiseburst' in self.chainPart['purpose']:
self.setupLarNoiseBurstChains()
else:
mlog.error('Chain %s could not be assembled' % (self.chainPartName))
return False
......@@ -240,3 +240,33 @@ class L2EFChain_CalibTemplate(L2EFChainDef):
'L2_': 'L2_l1ALFAcalib',
}
###########################################################################
# LarNoiseBurst chains
###########################################################################
def setupLarNoiseBurstChains(self):
from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo as DummyAlgo
theDummyRoiCreator = DummyAlgo('RoiCreator')
efht_thresh = '10'
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_jet_fullcalo
theTrigCaloCellMaker_jet_fullcalo = TrigCaloCellMaker_jet_fullcalo("CellMakerFullCalo_topo", doNoise=0, AbsE=True, doPers=True)
from TrigJetHypo.TrigJetHypoConfig import EFJetHypoNoiseConfig
theJetHypo = EFJetHypoNoiseConfig()
self.L2sequenceList += [['', [theDummyRoiCreator], 'EF_full']]
self.EFsequenceList += [[['EF_full'], [theTrigCaloCellMaker_jet_fullcalo ], 'EF_full_noise']]
self.EFsequenceList += [[['EF_full_noise'],[theJetHypo], 'jet_hypo']]
self.L2signatureList += [ [['EF_full']] ]
self.EFsignatureList += [ [['EF_full_noise']] ]
self.EFsignatureList += [ [['jet_hypo']] ]
antiktsize = 0
self.TErenamingDict = {
'EF_full_noise' : mergeRemovingOverlap('HLT_full__cluster__', 'jr_antikt'+str(antiktsize)+'tc_had' ),
'jet_hypo' : mergeRemovingOverlap('HLT_full__cluster__', 'jr_antikt'+str(antiktsize)+'tc_had_noiseHypo' ),
}
......@@ -18,10 +18,16 @@ from TriggerJobOpts.TriggerFlags import TriggerFlags
###################################################################################
def getInputTEfromL1Item(item):
L1Map = {'L1_CALREQ2': ['NIM30'],
#'L1_RD0_EMPTY': [''],
'L1_TAU8_EMPTY': ['HA8'],
}
L1Map = {#'L1_RD0_EMPTY': [''],
'L1_TAU8_EMPTY': ['HA8'],
}
if TriggerFlags.triggerMenuSetup() == 'LS1_v1':
L1Map['L1_CALREQ2']=['NIM30']
else:
L1Map['L1_CALREQ2']=['CAL2']
if item in L1Map:
return L1Map[item]
......@@ -76,6 +82,9 @@ class L2EFChain_CosmicTemplate(L2EFChainDef):
elif 'larps' in self.chainPart['purpose']:
self.setupCosmicLArPreSNoise()
elif 'larhec' in self.chainPart['purpose']:
self.setupCosmicLArHECNoise()
elif ('pixel' in self.chainPart['purpose']) \
| ('sct' in self.chainPart['purpose']):
self.setupCosmicIDNoiseCalibration()
......@@ -145,6 +154,7 @@ class L2EFChain_CosmicTemplate(L2EFChainDef):
theTrigT2CaloEgammaFex = T2CaloEgamma_All()
from TrigEgammaHypo.TrigL2CaloHypoConfig import TrigL2CaloLayersHypo_PreS_080
self.L2sequenceList += [[ self.L2InputTE,
[theTrigT2CaloEgammaFex,
TrigL2CaloLayersHypo_PreS_080('TrigL2CaloLayersHypo_'+self.chainName+'_080')],
......@@ -155,10 +165,35 @@ class L2EFChain_CosmicTemplate(L2EFChainDef):
'L2_step1': mergeRemovingOverlap('L2_','TrigL2CaloLayersHypo_'+self.chainName+'_080'),
}
##################################################################
def setupCosmicLArHECNoise(self):
from TrigDetCalib.TrigDetCalibConfig import EtaHypo_HEC,LArL2ROBListWriter
self.L2sequenceList += [[ '',
[ EtaHypo_HEC('EtaHypo_HEC_' + self.chainPartName),],
'L2_step1']]
self.L2sequenceList += [[ 'L2_step1',
[LArL2ROBListWriter('LArL2ROBListWriter_' + self.chainName, addCTPResult = True, addL2Result = True,etaWidth = 0.2, phiWidth = 0.2),],
'L2_step2']]
self.L2signatureList+=[ [['L2_step1']*self.mult] ]
self.L2signatureList+=[ [['L2_step2']*self.mult] ]
self.TErenamingDict = {
'L2_step1': mergeRemovingOverlap('L2_','EtaHypo_HEC_'+self.chainName),
'L2_step2': mergeRemovingOverlap('L2_','LArL2ROBListWriter_'+self.chainName),
}
##################################################################
def setupCosmicIDNoiseCalibration(self):
from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
......
......@@ -51,8 +51,6 @@ class EgammaSlice(JobPropertyContainer, CommonSliceHelper):
from TriggerJobOpts.TriggerFlags import TriggerFlags
TriggerFlags.add_Container(EgammaSlice)
from TriggerMenu.menu.Lvl1Flags import Lvl1Flags
# add common slice flags
TriggerFlags.EgammaSlice.import_JobProperties('TriggerMenu.menu.CommonSliceFlags')
......
......@@ -12,7 +12,6 @@ logElectronDef = logging.getLogger("TriggerMenu.egamma.ElectronDef")
from TriggerJobOpts.TriggerFlags import TriggerFlags
from TriggerMenu.menu.HltConfig import L2EFChainDef, mergeRemovingOverlap
from TriggerMenu.menu.Lvl1Flags import Lvl1Flags
#from TrigT2CaloEgamma.TrigT2CaloEgammaConfig import T2CaloEgamma_cells
......@@ -346,6 +345,9 @@ class L2EFChain_e(L2EFChainDef):
# EF Tracking
from InDetTrigRecExample.EFInDetConfig import TrigEFIDInsideOut_Electron
theEFElectronIDFex = TrigEFIDInsideOut_Electron("Electron").getSequence()
# GSF refit
#from TrigEgammaHypo.TrigGSFTrackFexConfig import TrigGSFTrackFex_Electron
#theGSFtrackfex = TrigGSFTrackFex_Electron()
# Ringer FEX for L2 Calo
from TrigT2CaloEgamma.TrigT2CaloEgammaConfig import T2CaloEgamma_Ringer
......@@ -405,6 +407,11 @@ class L2EFChain_e(L2EFChainDef):
[theTrigL2SiTrackFinder_eGammaB]+theL2StarxAOD+
[theTrigL2SiTrackFinder_eGammaC]+theL2StarxAOD+theEFElectronIDFex,
'EF_e_step3']]
elif 'gsf' in self.chainPart['addInfo']:
logElectronDef.error("GSF chains are not configured yet")
# self.EFsequenceList += [[['EF_e_step2'],
# trkseq + [theGSFTrackFex],
# 'EF_e_step3']]
else:
self.EFsequenceList += [[['EF_e_step2'],
trkseq,
......@@ -737,6 +744,10 @@ class L2EFChain_e(L2EFChainDef):
# EF Tracking
theEFElectronIDFex = theTrigEFIDInsideOutMerged_Electron
# GSF refit
#from TrigEgammaHypo.TrigGSFTrackFexConfig import TrigGSFTrackFex_Electron
#theGSFTrackFex = TrigGSFTrackFex_Electron()
# EF Electron FEX
#from TrigEgammaRec.TrigEgammaRecConfig import TrigEgammaRec
#theTrigEgammaRec_eGamma = TrigEgammaRec(name = "TrigEgammaRec_eGamma")
......@@ -861,11 +872,16 @@ class L2EFChain_e(L2EFChainDef):
self.EFsequenceList += [[['EF_e_step1'],
[theTrigEFCaloCalibFex,theTrigEFCaloHypo],
'EF_e_step2']]
self.EFsequenceList += [[['EF_e_step2'],
theEFElectronIDFex+[ theEFTrackHypo],
#trkcombfull+[ theEFTrackHypo],
'EF_e_step3']]
if 'gsf' in self.chainPart['addInfo']:
logElectronDef.error("GSF chains are not configured yet")
# self.EFsequenceList += [[['EF_e_step2'],
# theEFElectronIDFex+[ theGSFTrackFex],
# 'EF_e_step3']]
else:
self.EFsequenceList += [[['EF_e_step2'],
theEFElectronIDFex+[ theEFTrackHypo],
#trkcombfull+[ theEFTrackHypo],
'EF_e_step3']]
self.EFsequenceList += [[['EF_e_step3'],
[theTrigEgammaFex, theEFElectronHypo],
......
......@@ -12,7 +12,6 @@ logElectronDef = logging.getLogger("TriggerMenu.egamma.ElectronDef")
from TriggerJobOpts.TriggerFlags import TriggerFlags
from TriggerMenu.menu.HltConfig import L2EFChainDef, mergeRemovingOverlap
from TriggerMenu.menu.Lvl1Flags import Lvl1Flags
##########################################################################################
#
......
......@@ -6,7 +6,8 @@ __doc__=""
__version__="Implementation of Electron Slice single electron signatures"
from AthenaCommon.Logging import logging
logging.getLogger().info("Importing %s",__name__)
log = logging.getLogger( 'TriggerMenu.egamma.generateElectronChainDefs' )
log.info("Importing %s",__name__)
from TriggerMenu.egamma.ElectronDef import L2EFChain_e as L2EFChain_e
......@@ -95,6 +96,23 @@ def _addTopoInfo(theChainDef,chainDict,doAtL2AndEF=True):
theChainDef.addSequence([EFFex, EFHypo],inputTEsEF,EFChainName)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [EFChainName])
elif "Zee" in chainDict["topo"]:
from TrigEgammaHypo.TrigL2DielectronMassHypoConfig import TrigL2DielectronMassFex_Zee, TrigL2DielectronMassHypo_ZeeTight
from TrigEgammaHypo.TrigEFDielectronMassHypoConfig import TrigEFDielectronMassFex_Zee, TrigEFDielectronMassHypo_ZeeTight
L2Fex = TrigL2DielectronMassFex_Zee()
L2Hypo = TrigL2DielectronMassHypo_ZeeTight()
EFFex = TrigEFDielectronMassFex_Zee()
EFHypo = TrigEFDielectronMassHypo_ZeeTight()
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
......
......@@ -88,7 +88,6 @@ class Alg(object):
args.extend(self.kargs)
args = [str(a) for a in args]
args = ', '.join(args)
# import pdb; pdb.set_trace()
s = '%s(%s)' % (self.factory, args)
return s
......@@ -102,6 +101,7 @@ class AlgFactory(object):
self.cluster_params = self.menu_data.cluster_params
self.fex_params = self.menu_data.fex_params
self.recluster_params = self.menu_data.recluster_params
self.hypo_params = self.menu_data.hypo_params
def tt_unpacker(self):
return Alg('T2L1Unpacking_TT', (), {})
......@@ -184,22 +184,34 @@ class AlgFactory(object):
return Alg(factory, (), kwds)
def jr_hypo_single(self):
hd = self.chain_config.menu_data.hypo_params
assert len(hd.jet_attributes) == 1
ja = hd.jet_attributes[0]
chain_name = hd.chain_name
chain_name = chain_name.replace("_boffperf","")
chain_name = chain_name.replace("_bperf","")
chain_name = chain_name.replace("_split","")
chain_name = chain_name.replace("_EFID","")
# make a new hypo instance by specifying a unique name
name = '"EFJetHypo_ef_%s"' % chain_name
# Gaudi does not allow '.' in instance names
name = name.replace('.', '_')
"""
Skype discussion RC/P Sherwood
[21/01/15, 18:44:50] Ricardo Goncalo:
hypo parameters: ET, eta min, eta max
recoAlg: 'a4', 'a10', 'a10r'
dataType: 'TT', 'tc', 'cc'
calib: 'had', 'lcw', 'em'
jetCalob: 'jes', 'sub', 'subjes', 'nocalib'
scan: 'FS','PS'
j65_btight_split_3j65_L13J25.0ETA22 ->
EFJetHypo_65000_0eta320_a4_tc_em_subjes_FS
"""
assert len(self.hypo_params.jet_attributes) == 1
ja = self.hypo_params.jet_attributes[0]
name_extension = '_'.join([str(e) for e in
(int(ja.threshold * GeV),
ja.eta_range,
self.fex_params.fex_alg_name,
self.fex_params.data_type,
self.cluster_params.cluster_calib,
self.fex_params.jet_calib,
self.menu_data.scan_type)])
name = '"EFJetHypo_j%s"' % name_extension
etaMin = str(ja.eta_min)
etaMax = str(ja.eta_max)
......@@ -210,7 +222,38 @@ class AlgFactory(object):
return Alg('EFJetHypo', args, kargs)
def jr_hypo_multi(self):
"""
Skype discussion RC/P Sherwood
[21/01/15, 18:44:50] Ricardo Goncalo:
hypo parameters: ET, eta min, eta max
recoAlg: 'a4', 'a10', 'a10r'
dataType: 'TT', 'tc', 'cc'
calib: 'had', 'lcw', 'em'
jetCalob: 'jes', 'sub', 'subjes', 'nocalib'
scan: 'FS','PS'
j65_btight_split_3j65_L13J25.0ETA22 ->
EFJetHypo_65000_0eta320_a4_tc_em_subjes_FS
"""
mult = len(self.hypo_params.jet_attributes)
assert mult > 1
mult = str(mult)
ja = self.hypo_params.jet_attributes[0]
name_extension = '_'.join([str(e) for e in
(mult + 'j' + str(int(ja.threshold)),
ja.eta_range,
self.fex_params.fex_alg_name,
self.fex_params.data_type,
self.cluster_params.cluster_calib,
self.fex_params.jet_calib,
self.menu_data.scan_type)])
name = '"EFCentFullScanMultiJetHypo_%s"' % name_extension
hypo = self.menu_data.hypo_params
etaMin = hypo.jet_attributes[0].eta_min
......@@ -222,16 +265,6 @@ class AlgFactory(object):
'etaMax': etaMax,
}
str_mult = hypo.jet_attributes_tostring()
# make a new hypo instance by specifying a unique name
name = '"EFCentFullScanMultiJetHypo_ef_%s"' % (
self.chain_config.chain_name)
# Gaudi does not allow '.' in instance names
name = name.replace('.', '_')
return Alg(
'EFCentFullScanMultiJetHypo',
(name,),
......@@ -294,14 +327,14 @@ class AlgFactory(object):
return Alg(factory, (), {})
def jetRecDiagnostics(self):
chain_name = self.chain_config.chain_name
chain_name = self.chain_config.chain_name.replace('.', '_')
factory = 'TrigHLTJetDiagnostics_named'
kwds = {'name': "'TrigHLTJetDiagnostics_%s'" % chain_name,
'chain_name': "'%s'" % chain_name}
return Alg(factory, (), kwds)
def jetHypoDiagnostics(self):
chain_name =