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

L1CommonCore to CTPFragment migration (TriggerMenu-00-08-60)

	* L1CommonCore to CTPFragment migration
	* TriggerMenu-00-08-60

2015-03-18 Yu Nakahama
	* Aligned the KF-XE thresholds (ATR-10301)
	* TriggerMenu-00-08-59

2015-03-18 Iwona Grabowska-Bold
        * fix of hi_v2/3 triggers in HIV3 (ATR-10480)
	* also HI electron sequence relaxed
        * TriggerMenu-00-08-57

2015-03-17 Moritz Backes
	* add missing import (ATR-10514)
	* TriggerMenu-00-08-56

2015-03-17 Iwona Grabowska-Bold
        * implementation of hi_v2/3 triggers in HIV3 (needs TrigHIHypo-00-00-46) (ATR-10480)
	* TriggerMenu-00-08-55

...
(Long ChangeLog diff - truncated)
parent 08d6af4d
......@@ -27,6 +27,7 @@ apply_pattern declare_python_submodule files="*.py" submodule=bjet
apply_pattern declare_python_submodule files="*.py" submodule=met
apply_pattern declare_python_submodule files="*.py" submodule=tau
apply_pattern declare_python_submodule files="*.py" submodule=minbias
apply_pattern declare_python_submodule files="*.py" submodule=heavyion
apply_pattern declare_python_submodule files="*.py" submodule=bphysics
apply_pattern declare_python_submodule files="*.py" submodule=calibcosmicmon
apply_pattern declare_python_submodule files="*.py" submodule=test
......@@ -38,7 +39,7 @@ apply_pattern declare_python_submodule files="*.py" submodule=combined
apply_pattern declare_xmls
apply_pattern declare_scripts files="-s=../scripts generate*Menu.py"
apply_pattern declare_scripts files="-s=../scripts generate*Menu.py menuTestTMC.sh"
## at the moment these scripts conflict with those in the old TMP and are not useful anyway with the new TM (JS)
#apply_pattern declare_scripts \
......
......@@ -231,24 +231,7 @@ class TriggerConfigLVL1:
# build list of items for the menu from the list of requested names
itemsForMenu = []
itemsToRemove =[]
for index, itemName in enumerate(Lvl1Flags.items()):
for olditem in Lvl1Flags.ItemMap():
if (olditem == itemName) and (Lvl1Flags.ItemMap()[olditem] == ''):
itemsToRemove.append(index)
for i in reversed(itemsToRemove):
del Lvl1Flags.items()[i]
for item_index, itemName in enumerate(Lvl1Flags.items()):
#Beam splash: add here the remapping list!
for olditem in Lvl1Flags.ItemMap():
if (olditem == itemName) and (Lvl1Flags.ItemMap()[olditem] != ''):
#log.info("Remapping item %s as defined in the menu" %(itemName, str(Lvl1Flags.ItemMap()[olditem])))
Lvl1Flags.items()[item_index] = Lvl1Flags.ItemMap()[olditem]
itemName = Lvl1Flags.ItemMap()[olditem]
registeredItem = self.getRegisteredItem(itemName)
if registeredItem == None:
log.fatal("LVL1 item '%s' has not been registered" % itemName)
......@@ -288,13 +271,6 @@ class TriggerConfigLVL1:
undefined_thr = False
for index, thresholdName in enumerate(Lvl1Flags.thresholds()):
#Beam splash: add here the remapping list!
if (Lvl1Flags.ThresholdMap() != {}):
for olditem in (Lvl1Flags.ThresholdMap()):
if olditem == thresholdName:
#log.info("Remapping thresholds as defined in the menu")
Lvl1Flags.thresholds()[index] = Lvl1Flags.ThresholdMap()[olditem]
thresholdName = Lvl1Flags.ThresholdMap()[olditem]
if thresholdName in self.menu.thresholds:
continue
......
......@@ -56,8 +56,6 @@ def generateChainDefs(chainDict):
#----------------------------------------------------------------------------
print 'MEOW getMultThreshBtagInfo(cDict):', getMultThreshBtagInfo(chainDict)
#----------------------------------------------------------------------------
# --- build the jet chain, then pass JetChainDef and bjetchainDictionaries to build bjet chains ---
theAllJetChainDef = genJetChainDefs(jetchainDict)
......@@ -312,20 +310,20 @@ def myBjetConfig1(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=1):
#------- 2012 EF Sequences based on j35 intput TE-------
# TE naming
ef2 ='HLT_BjetSeed'
ef3 ='HLT_BjetSeed_EtCut%sGeV' % btagthresh
ef2 ='HLT_Bj'
ef3 ='HLT_Bj_EtCut%s' % btagthresh
if ('EFID' in chainParts['bTracking']):
ef4 ='HLT_BjetSeed_EtCut%sGeV_EFID' % btagthresh
ef5 ='HLT_BjetSeed_EtCut%sGeV_AllTEPrmVtx_EFID' % btagthresh
ef6 ='HLT_BjetSeed_EtCut%sGeV_ComboPrmVtx_EFID' % btagthresh
ef4 ='HLT_Bj_EtCut%s_EFID' % btagthresh
ef5 ='HLT_Bj_EtCut%s_AllTEPrmVtx_EFID' % btagthresh
ef6 ='HLT_Bj_EtCut%s_ComboPrmVtx_EFID' % btagthresh
else:
ef4 ='HLT_BjetSeed_EtCut%sGeV_IDTrig' % btagthresh
ef5 ='HLT_BjetSeed_EtCut%sGeV_AllTEPrmVtx_IDTrig' % btagthresh
ef6 ='HLT_BjetSeed_EtCut%sGeV_ComboPrmVtx_IDTrig' % btagthresh
ef4 ='HLT_Bj_EtCut%s_IDTrig' % btagthresh
ef5 ='HLT_Bj_EtCut%s_AllTEPrmVtx_IDTrig' % btagthresh
ef6 ='HLT_Bj_EtCut%s_ComboPrmVtx_IDTrig' % btagthresh
if (btagmult == '1'):
ef7 = 'EF_b%s_%s_%s_VxSecondaryAndBTagHypo' % (btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""), )
ef7 = 'EF_b%s_%s_%s_SecVxBhypo' % (btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""), )
else:
ef7 = 'EF_%sb%s_%s_%s_VxSecondaryAndBTagHypo' % (btagmult, btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""))
ef7 = 'EF_%sb%s_%s_%s_SecVxBhypo' % (btagmult, btagthresh, btagcut, chainParts['chainPartName'].replace("_"+chainParts['bTracking'],""))
theChainDef.addSequence([ef_bjetSequence], inputTEsEF, ef2)
theChainDef.addSequence(ef_ethypo_startseq, ef2, ef3)
......@@ -334,7 +332,7 @@ def myBjetConfig1(theChainDef, chainDict, inputTEsEF,numberOfSubChainDicts=1):
theChainDef.addSequence([EFHistoPrmVtxCombo_Jet()], [ef4, ef5], ef6)
#theChainDef.addSequence([ef_EtHypo_Btagging], ef6, ef7)
theChainDef.addSequence([ef_VxSecondary_EF,ef_EtHypo_Btagging], ef6, ef7)
lastTEout = "EF_bjet_"+chainParts['chainPartName'] if numberOfSubChainDicts>1 else EFChainName
lastTEout = "EF_bj_"+chainParts['chainPartName'] if numberOfSubChainDicts>1 else EFChainName
theChainDef.addSequence([ef_bjet, ef_hypo], ef7, lastTEout)
theChainDef.addSignature(theChainDef.signatureList[-1]['signature_counter']+1, [lastTEout]*int(btagmult))
......
......@@ -200,18 +200,18 @@ class L2EFChain_CosmicTemplate(L2EFChainDef):
if 'pixel' in self.chainPart['purpose']:
if 'noise' in self.chainPart['addInfo']:
l2_pixelSubDetListWriter = TrigSubDetListWriter("CosmicPixelNoiseSubDetListWriter")
l2_pixelSubDetListWriter.Subdetectors = "Pixel"
l2_pixelSubDetListWriter.extraROBs = []
theRobWriter = [l2_pixelSubDetListWriter]
elif 'beam' in self.chainPart['addInfo']:
l2_pixelSCTSubDetListWriter = TrigSubDetListWriter("CosmicPixelSCTNoiseSubDetListWriter")
l2_pixelSCTSubDetListWriter.Subdetectors = "Pixel,SCT"
l2_pixelSCTSubDetListWriter.extraROBs = []
theRobWriter = [l2_pixelSCTSubDetListWriter]
l2_IDSubDetListWriter = TrigSubDetListWriter("CosmicIDSubDetListWriter")
l2_IDSubDetListWriter.Subdetectors = "Pixel,SCT,DBM"
l2_IDSubDetListWriter.extraROBs = []
theRobWriter = [l2_IDSubDetListWriter]
#if ('noise' in self.chainPart['addInfo']):
# elif 'beam' in self.chainPart['addInfo']:
# l2_IDSubDetListWriter = TrigSubDetListWriter("CosmicIDSubDetListWriter")
# l2_IDSubDetListWriter.Subdetectors = "Pixel,SCT,DBM"
# l2_IDSubDetListWriter.extraROBs = []
# theRobWriter = [l2_IDSubDetListWriter]
elif ('sct' in self.chainPart['purpose']) \
& ('noise' in self.chainPart['addInfo']):
l2_SCTSubDetListWriter = TrigSubDetListWriter("CosmicSCTNoiseSubDetListWriter")
......
......@@ -278,11 +278,11 @@ def _addMatching(theChainDef,chainDicts,listOfChainDefs):
superTE = inputTEsEF[0]+'_sRoi'
superTrackingTE = superTE+'_sTrk'
prmVertexTE = superTrackingTE+'_prmVtx'
comboPrmVtxTE = inputTEsEF[0]+'_sRoisTrkVtx'
jetSplitTE=comboPrmVtxTE+'_jetSplit'
jetEtHypoTE=jetSplitTE+'_bjetHypo'+hypoThresh
jetTrackTE=jetEtHypoTE+'bjettrk'
secVtxTE=comboPrmVtxTE+'bj'+hypoThresh+'Vxsec'
comboPrmVtxTE = inputTEsEF[0]+'_sRoiTrkVtx'
jetSplitTE=comboPrmVtxTE+'_jSplit'
jetEtHypoTE=jetSplitTE+'_hypo'+hypoThresh
jetTrackTE=jetEtHypoTE+'bjtrk'
secVtxTE=comboPrmVtxTE+hypoThresh+'SecVtx'
# Vertexing part of the chain
......
......@@ -475,11 +475,11 @@ class L2EFChain_e(L2EFChainDef):
theTrigL2SiTrackFinder_eGammaC=TrigL2SiTrackFinder_eGammaC()
# EF Calo
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_fullcalo
theFSCellMaker = TrigCaloCellMaker_fullcalo("TrigCaloCellMakerFullCalo_eGamma_heavyIon")
from TrigHIHypo.UE import theUEMaker, theFSCellMaker, theTrigCaloCellMaker_eGamma
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_eGamma, TrigCaloTowerMaker_eGamma, TrigCaloClusterMaker_slw
theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
#theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma("TrigCaloTowerMaker_eGamma_heavyIon")
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw("TrigCaloClusterMaker_slw_heavyIon")
......@@ -507,14 +507,14 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_EtCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theEFElectronHypo = TrigEFElectronHypo_e_EtCut("TrigEFElectronHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold)
elif self.chainPart['IDinfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_e_ID
theL2CaloHypo = L2CaloHypo_e_ID("TrigL2CaloHypo_e"+str(threshold)+"_"+str(IDinfo),threshold,IDinfo)
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_e_ID
# EF Calo
theTrigEFCaloHypo = TrigEFCaloHypo_e_ID("TrigEFCaloHypo_e"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_ID_CaloOnly
theEFElectronHypo = \
TrigEFElectronHypo_e_ID_CaloOnly("TrigEFElectronHypo_e"+str(threshold)+"_"+str(IDinfo)+"_CaloOnly_heavyIon",threshold,IDinfo)
......@@ -538,6 +538,9 @@ class L2EFChain_e(L2EFChainDef):
self.EFsequenceList += [[['L2_e_step1'],
[theFSCellMaker], 'EF_e_step1_fs']]
self.EFsequenceList += [[['EF_e_step1_fs'],
[theUEMaker], 'EF_e_step1_ue']]
self.EFsequenceList += [[['L2_e_step1'],
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_e_step1']]
......@@ -569,7 +572,8 @@ class L2EFChain_e(L2EFChainDef):
########### Signatures ###########
self.L2signatureList += [ [['L2_e_step1']*self.mult] ]
self.L2signatureList += [ [['EF_e_step1_fs']*self.mult] ]
self.L2signatureList += [ [['EF_e_step1_fs']] ]
self.L2signatureList += [ [['EF_e_step1_ue']] ]
#self.L2signatureList += [ [['L2_e_step2']*self.mult] ]
#self.L2signatureList += [ [['L2_e_step3']*self.mult] ]
self.EFsignatureList += [ [['EF_e_step1']*self.mult] ]
......@@ -582,6 +586,7 @@ class L2EFChain_e(L2EFChainDef):
self.TErenamingDict = {
'L2_e_step1': mergeRemovingOverlap('L2_', self.chainPartNameNoMult+'cl'),
'EF_e_step1_fs': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'fs'),
'EF_e_step1_ue': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'ue'),
'EF_e_step1': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'cl'),
'EF_e_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'calocalib'),
'EF_e_step3': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'trk'),
......@@ -1088,11 +1093,10 @@ class L2EFChain_e(L2EFChainDef):
theL2ElectronFex = L2ElectronFex_1()
# EF Calo
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_fullcalo
theFSCellMaker = TrigCaloCellMaker_fullcalo("TrigCaloCellMakerFullCalo_eGamma_heavyIon")
from TrigHIHypo.UE import theUEMaker, theFSCellMaker, theTrigCaloCellMaker_eGamma
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_eGamma, TrigCaloTowerMaker_eGamma, TrigCaloClusterMaker_slw
theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
#theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma("TrigCaloTowerMaker_eGamma_heavyIon")
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw("TrigCaloClusterMaker_slw_heavyIon")
......@@ -1116,10 +1120,10 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigL2ElectronHypoConfig import L2ElectronHypo_e_NoCut
from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e_NoCut
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_EtCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_All
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
theL2ElectronHypo = L2ElectronHypo_e_NoCut("L2ElectronHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_All_heavyIon",threshold);
theEFTrackHypo = EFTrackHypo_e_NoCut("EFTrackHypo_e"+str(threshold)+"_NoCut_heavyIon",threshold)
theEFElectronHypo = TrigEFElectronHypo_e_EtCut("TrigEFElectronHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold)
elif 'perf' in self.chainPart['addInfo']:
......@@ -1140,7 +1144,7 @@ class L2EFChain_e(L2EFChainDef):
logElectronDef.debug('chain suffix: %s', algoSuffix)
#if 'mvt' in algoSuffix:
# algoSuffix = algoSuffix.replace('mvt','')
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_e_ID
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigL2ElectronHypoConfig import L2ElectronHypo_e_ID
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_ID
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_Iso
......@@ -1149,19 +1153,19 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_LH_Iso
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_ID_EtIsEM_Iso
from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_e_ID
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_All
# L2 Calo
if 'ringer' in self.chainPart['addInfo']:
theL2CaloHypo = TrigRingerNeuralHypoConfig("TrigRingerNeuralHypo_e"+str(threshold) )
theL2ElectronFex = L2ElectronFex_Ringer("L2ElectronFex_Ringer_e"+str(threshold) )
else:
theL2CaloHypo = L2CaloHypo_e_ID("TrigL2CaloHypo_e"+str(threshold)+"_"+str(IDinfo),threshold,IDinfo)
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
# L2 Electron
theL2ElectronHypo = L2ElectronHypo_e_ID("TrigL2ElectronHypo_e"+str(threshold)+"_"+str(IDinfo),threshold,IDinfo)
# EF Calo
theTrigEFCaloHypo = TrigEFCaloHypo_e_ID("TrigEFCaloHypo_e"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_heavyIon",threshold);
# EF Track
theEFTrackHypo = EFTrackHypo_e("EFTrackHypo_e"+str(threshold)+"_"+str(IDinfo),threshold)
......@@ -1225,6 +1229,9 @@ class L2EFChain_e(L2EFChainDef):
self.EFsequenceList += [[['L2_e_step3'],
[theFSCellMaker], 'EF_e_step1_fs']]
self.EFsequenceList += [[['EF_e_step1_fs'],
[theUEMaker], 'EF_e_step1_ue']]
self.EFsequenceList += [[['L2_e_step3'],
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_e_step1']]
......@@ -1252,7 +1259,8 @@ class L2EFChain_e(L2EFChainDef):
self.L2signatureList += [ [['L2_e_step1']*self.mult] ]
self.L2signatureList += [ [['L2_e_step2']*self.mult] ]
self.L2signatureList += [ [['L2_e_step3']*self.mult] ]
self.EFsignatureList += [ [['EF_e_step1_fs']*self.mult] ]
self.EFsignatureList += [ [['EF_e_step1_fs']] ]
self.EFsignatureList += [ [['EF_e_step1_ue']] ]
self.EFsignatureList += [ [['EF_e_step1']*self.mult] ]
self.EFsignatureList += [ [['EF_e_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_e_step3']*self.mult] ]
......@@ -1264,6 +1272,7 @@ class L2EFChain_e(L2EFChainDef):
'L2_e_step2': mergeRemovingOverlap('L2_', self.chainPartNameNoMult+'id'),
'L2_e_step3': mergeRemovingOverlap('L2_', self.chainPartNameNoMult),
'EF_e_step1_fs': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'fs'),
'EF_e_step1_ue': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'ue'),
'EF_e_step1': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'calo'),
'EF_e_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'calocalib'),
'EF_e_step3': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'id'),
......
......@@ -140,6 +140,8 @@ class L2EFChain_g(L2EFChainDef):
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma()
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw()
from TrigEgammaHypo.TrigEFCaloCalibFexConfig import TrigEFCaloCalibFex_Photon
theTrigEFCaloCalibFex = TrigEFCaloCalibFex_Photon()
......@@ -220,6 +222,12 @@ class L2EFChain_g(L2EFChainDef):
[theTrigEgammaFex, theEFPhotonHypo],
'EF_g_step3']]
if 'larpeb' in self.chainPart['addInfo']:
from TrigDetCalib.TrigDetCalibConfig import LArEFROBListWriter
self.EFsequenceList += [[['EF_g_step3'],
[ LArEFROBListWriter('LArEFROBListWriter_' + self.chainName, addCTPResult = True, addL2Result = True, addEFResult = True) ],
'EF_g_step4']]
########### Signatures ###########
self.L2signatureList += [ [['L2_g_step1']*self.mult] ]
......@@ -227,6 +235,9 @@ class L2EFChain_g(L2EFChainDef):
self.EFsignatureList += [ [['EF_g_step1']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step3']*self.mult] ]
if 'larpeb' in self.chainPart['addInfo']:
self.EFsignatureList += [ [['EF_g_step4']*self.mult] ]
########### TE renaming ###########
......@@ -238,6 +249,10 @@ class L2EFChain_g(L2EFChainDef):
'EF_g_step3': mergeRemovingOverlap('EF_', self.chainPartNameNoMult),
}
if 'larpeb' in self.chainPart['addInfo']:
self.TErenamingDict ['EF_g_step4']= mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_larpeb')
def setup_gXX_ID_heavyIon(self):
threshold = self.chainPart['threshold']
IDinfo = self.chainPart['IDinfo']
......@@ -263,11 +278,10 @@ class L2EFChain_g(L2EFChainDef):
from TrigEgammaHypo.TrigL2PhotonFexConfig import L2PhotonFex_1
theL2PhotonFex = L2PhotonFex_1()
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_fullcalo
theFSCellMaker = TrigCaloCellMaker_fullcalo("TrigCaloCellMakerFullCalo_eGamma_heavyIon")
from TrigHIHypo.UE import theUEMaker, theFSCellMaker, theTrigCaloCellMaker_eGamma
from TrigCaloRec.TrigCaloRecConfig import TrigCaloCellMaker_eGamma, TrigCaloTowerMaker_eGamma, TrigCaloClusterMaker_slw
theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
#theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma("TrigCaloCellMaker_eGamma_heavyIon")
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma("TrigCaloTowerMaker_eGamma_heavyIon")
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw("TrigCaloClusterMaker_slw_heavyIon")
......@@ -343,6 +357,9 @@ class L2EFChain_g(L2EFChainDef):
self.EFsequenceList += [[['L2_g_step2'],
[theFSCellMaker], 'EF_g_step1_fs']]
self.EFsequenceList += [[['EF_g_step1_fs'],
[theUEMaker], 'EF_g_step1_ue']]
self.EFsequenceList += [[['L2_g_step2'],
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_g_step1']]
......@@ -359,7 +376,8 @@ class L2EFChain_g(L2EFChainDef):
self.L2signatureList += [ [['L2_g_step1']*self.mult] ]
self.L2signatureList += [ [['L2_g_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step1_fs']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step1_fs']] ]
self.EFsignatureList += [ [['EF_g_step1_ue']] ]
self.EFsignatureList += [ [['EF_g_step1']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step3']*self.mult] ]
......@@ -370,6 +388,7 @@ class L2EFChain_g(L2EFChainDef):
'L2_g_step1': mergeRemovingOverlap('L2_', self.chainPartNameNoMult+'_calo'),
'L2_g_step2': mergeRemovingOverlap('L2_', self.chainPartNameNoMult),
'EF_g_step1_fs': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_fs'),
'EF_g_step1_ue': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_ue'),
'EF_g_step1': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_calo'),
'EF_g_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_calocalib'),
'EF_g_step3': mergeRemovingOverlap('EF_', self.chainPartNameNoMult),
......@@ -459,7 +478,12 @@ class L2EFChain_g(L2EFChainDef):
theTrigCaloCellMaker_eGamma = TrigCaloCellMaker_eGamma()
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma()
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw()
from TrigEgammaHypo.TrigEFCaloCalibFexConfig import TrigEFCaloCalibFex_Photon
theTrigEFCaloCalibFex = TrigEFCaloCalibFex_Photon()
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_All
# EF Calo
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_g_hiptrt_NoCut",0);
# if 'hiptrt' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_g_nocut
......@@ -487,21 +511,29 @@ class L2EFChain_g(L2EFChainDef):
'EF_g_step1']]
self.EFsequenceList += [[['EF_g_step1'],
[theTrigEgammaRec_NoIDEF_eGamma, theEFPhotonHypo],
# [theTrigEgammaRec_NoIDEF_eGamma, theEFPhotonHypo],
[theTrigEFCaloCalibFex,theTrigEFCaloHypo],
'EF_g_step2']]
self.EFsequenceList += [[['EF_g_step2'],
[theTrigEgammaRec_NoIDEF_eGamma, theEFPhotonHypo],
'EF_g_step3']]
########### Signatures ###########
self.L2signatureList += [ [['L2_g_step1']*self.mult] ]
self.L2signatureList += [ [['L2_g_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step1']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step2']*self.mult] ]
self.EFsignatureList += [ [['EF_g_step3']*self.mult] ]
########### TE renaming ###########
self.TErenamingDict = {
'L2_g_step1': mergeRemovingOverlap('L2_', self.chainPartNameNoMult+'_calo'),
'L2_g_step2': mergeRemovingOverlap('L2_', self.chainPartNameNoMult),
'EF_g_step1': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_calo'),
'EF_g_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult),
# 'EF_g_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult),
'EF_g_step2': mergeRemovingOverlap('EF_', self.chainPartNameNoMult+'_calocalib'),
'EF_g_step3': mergeRemovingOverlap('EF_', self.chainPartNameNoMult),
}
......@@ -9,6 +9,7 @@ from AthenaCommon.Logging import logging
log = logging.getLogger( 'TriggerMenu.egamma.generateElectronChainDefs' )
log.info("Importing %s",__name__)
import traceback
from TriggerMenu.egamma.ElectronDef import L2EFChain_e as L2EFChain_e
try:
......
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
########################################################################
#
# SliceDef file for heavy ion chains/signatures
#
#########################################################################
from AthenaCommon.Logging import logging
logging.getLogger().info("Importing %s",__name__)
logHeavyIonDef = logging.getLogger("TriggerMenu.heavyion.HeavyIonDef")
from AthenaCommon import CfgGetter
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
import re
from TriggerJobOpts.TriggerFlags import TriggerFlags
from TriggerMenu.heavyion.HeavyIonSliceFlags import HeavyIonSliceFlags
from TriggerMenu.menu.HltConfig import *
from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo
#theTrigEFIDInsideOut_FullScan = TrigEFIDSequence("FullScan","fullScan")
from TrigT2MinBias.TrigT2MinBiasConfig import *
from InDetTrigRecExample.EFInDetConfig import TrigEFIDSequence
#fexes.efid = TrigEFIDSequence("minBias","minBias","InsideOut").getSequence()
#fexes.efid2P = TrigEFIDSequence("minBias2P","minBias2","InsideOutLowPt").getSequence()
efiddataprep = TrigEFIDSequence("minBias","minBias","DataPrep").getSequence()
efid = TrigEFIDSequence("minBias","minBias","InsideOut").getSequence()
efid_heavyIon = TrigEFIDSequence("heavyIonFS","heavyIonFS","InsideOut").getSequence()
efid2P = TrigEFIDSequence("minBias2P","minBias2","InsideOutLowPt").getSequence()
from TrigMinBias.TrigMinBiasConfig import *
from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo as DummyRoI
from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo
dummyRoI=DummyRoI(name='MinBiasDummyRoI', createRoIDescriptors = True, NumberOfOutputTEs=1)
terminateAlgo = PrescaleAlgo('terminateAlgo')
# for HI
from TrigHIHypo.TrigHIHypoConfig import HIEFTrackHypo_AtLeastOneTrack
atLeastOneTrack = HIEFTrackHypo_AtLeastOneTrack(name='HIEFTrackHypo_AtLeastOneTrack')
from TrigHIHypo.TrigHIHypoConfig import *
#hypos.update(hi_hypos)
#L2 pileup suppression
from TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config import TrigL2SiTrackFinder_FullScan_ZF_OnlyA #TrigL2SiTrackFinder_FullScanA_ZF_OnlyA
theL2PileupSup = TrigL2SiTrackFinder_FullScan_ZF_OnlyA()
###########################################################################
# All min bias
###########################################################################
class L2EFChain_HI(L2EFChainDef):
def __init__(self, chainDict):
self.L2sequenceList = []
self.EFsequenceList = []
self.L2signatureList = []
self.EFsignatureList = []
self.TErenamingDict = []
self.chainPart = chainDict['chainParts']
self.chainL1Item = chainDict['L1item']
self.chainPartL1Item = self.chainPart['L1item']
self.chainCounter = chainDict['chainCounter']
self.L2Name = 'L2_'+self.chainPart['chainPartName']
self.EFName = 'EF_'+self.chainPart['chainPartName']
#self.mult = int(self.chainPart['multiplicity'])
self.chainName = chainDict['chainName']
self.chainPartName = self.chainPart['chainPartName']
#self.chainPartNameNoMult = self.chainPartName[1:] if self.mult > 1 else self.chainPartName
self.L2InputTE = self.chainPartL1Item or self.chainL1Item
# cut of L1_, _EMPTY,..., & multiplicity
self.L2InputTE = self.L2InputTE.replace("L1_","")
self.L2InputTE = self.L2InputTE.split("_")[0]
self.L2InputTE = self.L2InputTE[1:] if self.L2InputTE[0].isdigit() else self.L2InputTE
if "v2" in self.chainPart['eventShape']:
self.setup_hi_eventshape()
elif "v3" in self.chainPart['eventShape']:
self.setup_hi_eventshape()
L2EFChainDef.__init__(self, self.chainName, self.L2Name, self.chainCounter, self.chainL1Item, self.EFName, self.chainCounter, self.L2InputTE)
def defineSequences(self):
for sequence in self.L2sequenceList:
self.addL2Sequence(*sequence)
for sequence in self.EFsequenceList:
self.addEFSequence(*sequence)
def defineSignatures(self):
for signature in self.L2signatureList:
self.addL2Signature(*signature)
for signature in self.EFsignatureList:
self.addEFSignature(*signature)
def defineTErenaming(self):
self.TErenamingMap = self.TErenamingDict
############################### HELPER FUNCTIONS ##############################
def setup_hi_eventshape(self):
EShypo_temp = self.chainPart['extra']
ESth=EShypo_temp.lstrip('th')
#print 'igb: ES threshold:', ESth
if 'v2' in self.chainPart['eventShape']:
from TrigHIHypo.VnHypos import V2
chainSuffix = 'v2_th'+ESth