Commit e07505bf authored by Iwona Grabowska-Bold's avatar Iwona Grabowska-Bold Committed by Graeme Stewart
Browse files

2mu4_bDimu, 2mu4_bDimu_novtx_noos added to HIV3 (TriggerMenu-00-14-16)

	* 2mu4_bDimu, 2mu4_bDimu_novtx_noos added to HIV3
        * loose, medium, tight sequences for UPC (ATR-10574)
	* TriggerMenu-00-14-16

2015-10-29 Iwona Grabowska-Bold
        * UPC config class + trigger for rho in HIV3 (ATR-10574)
	* Needs TrigT2MinBias-00-02-20
	* TriggerMenu-00-14-15

2015-10-29 Piotr Janus
        * add mb_idperf_ion_L1MBTS_1_1 to HIV3 (ATR-12268)
	* remove *loose1* and *medium1* triggers from HIV3
	* TriggerMenu-00-14-14

2015-10-28 Iwona Grabowska-Bold
	* fix of L1_TE3_ALFA* -> L1_TE5_ALFA*
	* TriggerMenu-00-14-13

        * muon and photon triggers added to Physics_pp_v5 for pp reference (ATR-12511)
	* TriggerMenu-00-14-12
...
(Long ChangeLog diff - truncated)
parent 1deffd02
......@@ -341,6 +341,24 @@ def bMultipleOptionTopos(theChainDef, chainDict, inputTEsL2, inputTEsEF, topoSta
L2Hypo = L2BMuMuHypo_Jpsi_passL2()
EFFex = EFBMuMuFex_Jpsi()
EFHypo = EFBMuMuHypo_Jpsi()
elif ('bDimu' in topoAlgs) & ('noEFbph' in topoAlgs):
from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu
from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu
from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_passEF
from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_passEF
L2Fex = L2BMuMuFex_DiMu()
L2Hypo = L2BMuMuHypo_DiMu()
EFFex = EFBMuMuFex_passEF()
EFHypo = EFBMuMuHypo_passEF()
elif ('bJpsimumu' in topoAlgs) & ('noEFbph' in topoAlgs):
from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_Jpsi
from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_Jpsi
from TrigBphysHypo.TrigEFBMuMuFexConfig import EFBMuMuFex_passEF
from TrigBphysHypo.TrigEFBMuMuHypoConfig import EFBMuMuHypo_passEF
L2Fex = L2BMuMuFex_Jpsi()
L2Hypo = L2BMuMuHypo_Jpsi()
EFFex = EFBMuMuFex_passEF()
EFHypo = EFBMuMuHypo_passEF()
else:
logBphysDef.error('Bphysics Chain %s can not be constructed, the given topo algs are not known: %s ' %(chainDict['chainName'], topoAlgs ))
......@@ -533,6 +551,13 @@ def bBmumuxTopos(theChainDef,chainDict, inputTEsL2, inputTEsEF, topoStartFrom):
from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_1
L2Fex = L2BMuMuFex_1()
L2Hypo = L2BMuMuHypo_1()
# noL2 option to skip dimuon selection at L2
if 'noL2' in topoAlgs:
from TrigBphysHypo.TrigL2BMuMuFexConfig import L2BMuMuFex_DiMu_passL2
from TrigBphysHypo.TrigL2BMuMuHypoConfig import L2BMuMuHypo_DiMu_passL2
L2Fex = L2BMuMuFex_DiMu_passL2()
L2Hypo = L2BMuMuHypo_DiMu_passL2()
if 'bBmumuxv3' in topoAlgs:
L2TEcount = 0; L2outTEs = []
......
......@@ -192,18 +192,23 @@ class L2EFChain_CalibTemplate(L2EFChainDef):
# TrkCalibChains
###########################################################################
def setupTrkCalibChains(self):
self.AlgoName = self.hypo+'_'+self.location
#self.AlgoName = self.hypo+'_'+self.location
self.AlgoName = self.chainName
self.AlgList = []
self.signatureCounterOffset = 14
from TrigDetCalib.TrigDetCalibConfig import *
trkAlgDict = {
'trk9_central' : CheckForTracks_Trk9_Central('CheckForTracks_Trk9_Central'),
'trk16_central' : CheckForTracks_Trk16_Central('CheckForTracks_Trk16_Central'),
'trk29_central' : CheckForTracks_Trk29_Central('CheckForTracks_Trk29_Central'),
'trk9_fwd' : CheckForTracks_Trk9_Fwd('CheckForTracks_Trk9_Fwd'),
'trk16_fwd' : CheckForTracks_Trk16_Fwd('CheckForTracks_Trk16_Fwd'),
'trk29_fwd' : CheckForTracks_Trk29_Fwd('CheckForTracks_Trk29_Fwd'),
'idcalib_trk9_central' : CheckForTracks_Trk9_Central('CheckForTracks_Trk9_Central'),
'idcalib_trk16_central' : CheckForTracks_Trk16_Central('CheckForTracks_Trk16_Central'),
'idcalib_trk29_central' : CheckForTracks_Trk29_Central('CheckForTracks_Trk29_Central'),
'idcalib_trk9_fwd' : CheckForTracks_Trk9_Fwd('CheckForTracks_Trk9_Fwd'),
'idcalib_trk16_fwd' : CheckForTracks_Trk16_Fwd('CheckForTracks_Trk16_Fwd'),
'idcalib_trk29_fwd' : CheckForTracks_Trk29_Fwd('CheckForTracks_Trk29_Fwd'),
'idcalib_trk9_central_L1J10_VTE100' : CheckForTracks_Trk9_Central_Beamspot('CheckForTracks_Trk9_Central_Beamspot_1'),
'idcalib_trk9_fwd_L1J10_VTE100' : CheckForTracks_Trk9_Fwd_Beamspot('CheckForTracks_Trk9_Fwd_Beamspot_1'),
'idcalib_trk9_central_L1J10_VTE200' : CheckForTracks_Trk9_Central_Beamspot('CheckForTracks_Trk9_Central_Beamspot_2'),
'idcalib_trk9_fwd_L1J10_VTE200' : CheckForTracks_Trk9_Fwd_Beamspot('CheckForTracks_Trk9_Fwd_Beamspot_2'),
}
for name, alg in trkAlgDict.items():
if self.AlgoName == name:
......
......@@ -31,7 +31,7 @@ l1_seeds ={
'L1_MU15','L1_TAU20_2TAU12',
'L1_XE35', 'L1_MU6_2MU4',
'L1_MU6_J20', 'L1_EM7_MU10',
'L1_EM15_MU4', 'L1_EM15VH_3EM7']
'L1_EM15I_MU4', 'L1_EM15VH_3EM7']
}
#########################################################################
......
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
EgammaChainsToKeepMonitoring={
"g40_loose",
"e12_loose",
"2e12_loose_L12EM10VH",
"e12_loose_L1EM10VH",
"2e12_loose_mu10",
"e12_loose_2mu10"
"e24_lhmedium_L1EM18VH",
"e24_lhmedium",
"e24_medium_L1EM18VH",
"e12_lhloose",
"2e12_lhloose_L12EM10VH",
"2e12_loose_L12EM10VH",
"e24_lhmedium_idperf_L1EM20VH",
"e24_medium_L1EM20VH",
"e24_medium_idperf_L1EM20VH",
"e24_medium_idperf",
"e24_lhtight_L1EM20VH_e15_etcut_Zee",
"e24_lhtight_L1EM20VH",
"e15_etcut",
"e5_lhtight_e4_etcut_Jpsiee",
"e5_lhtight",
"e4_etcut",
"g120_loose",
"g35_loose_g25_loose",
"g35_loose",
"g25_loose",
"e24_lhmedium_L1EM20VHI",
"e24_medium_L1EM20VHI_mu8noL1",
"e24_medium_L1EM15VH_g25_medium",
"e24_medium_L1EM20VHI",
"e24_medium_L1EM15VH",
"e24_medium_iloose_L1EM18VH",
"e24_medium_iloose_L1EM20VH",
"e24_lhmedium_iloose_L1EM20VH",
"e24_tight_iloose",
"e24_lhtight_iloose",
"e120_lhloose"
}
......@@ -37,6 +37,9 @@ TrigEgammaRec_eGamma = TrigEgammaRec.copy(name = "TrigEgammaRec
TrigEgammaRec_Conv_eGamma = TrigEgammaRec.copy(name = "TrigEgammaRec_Conv_eGamma", doConversions = True,doPrint=False)
TrigEgammaRec_NoIDEF_eGamma = TrigEgammaRec.copy(name = "TrigEgammaRec_NoIDEF_eGamma",doTrackMatching = False,doTrackIsolation = False,doPrint=False)
from TriggerMenu.egamma.EgammaCleanMonitoring import *
from TriggerMenu.menu.CleanMonitoring import *
from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo
terminateAlgo = PrescaleAlgo('terminateAlgo')
......@@ -216,8 +219,8 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_WTP
theEFElectronHypo = TrigEFElectronHypo_e_WTP("TrigEFElectronHypo_e"+str(threshold)+"_WTP",threshold)
else:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_EtCut
theEFElectronHypo = TrigEFElectronHypo_e_EtCut("TrigEFElectronHypo_e"+str(threshold)+"_EtCut",threshold)
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
elif 'perf' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
......@@ -503,20 +506,20 @@ class L2EFChain_e(L2EFChainDef):
algoSuffix = "e%s_%s()" % (str(threshold),IDinfo)
if 'etcut' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_EtCut
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theEFElectronHypo = TrigEFElectronHypo_e_EtCut("TrigEFElectronHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold)
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut_heavyIon",threshold)
elif self.chainPart['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_All("TrigEFCaloHypo_e"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_ID_CaloOnly
theTrigEFCaloHypo = TrigEFCaloHypo_e_ID("TrigEFCaloHypo_e"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = \
TrigEFElectronHypo_e_ID_CaloOnly("TrigEFElectronHypo_e"+str(threshold)+"_"+str(IDinfo)+"_CaloOnly_heavyIon",threshold,IDinfo)
TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut_heavyIon",threshold)
# EF Electron FEX
if 'conv' in self.chainPart['addInfo']:
......@@ -638,7 +641,13 @@ class L2EFChain_e(L2EFChainDef):
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut",threshold);
theEFTrackHypo = EFTrackHypo_e_NoCut("EFTrackHypo_e"+str(threshold)+"_NoCut",threshold)
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
#theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
if 'trkcut' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_WTP
theEFElectronHypo = TrigEFElectronHypo_e_WTP("TrigEFElectronHypo_e"+str(threshold)+"_WTP",threshold)
else:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
elif 'perf' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e_NoCut
......@@ -775,7 +784,13 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut",threshold);
theEFTrackHypo = EFTrackHypo_e_NoCut("EFTrackHypo_e"+str(threshold)+"_NoCut",threshold)
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
#theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
if 'trkcut' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_WTP
theEFElectronHypo = TrigEFElectronHypo_e_WTP("TrigEFElectronHypo_e"+str(threshold)+"_WTP",threshold)
else:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
elif 'perf' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e_NoCut
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
......@@ -872,7 +887,8 @@ class L2EFChain_e(L2EFChainDef):
logElectronDef.debug('isoInfo: %s',isoInfo)
logElectronDef.debug('IDinfo: %s',IDinfo)
logElectronDef.debug('trkInfo: %s',trkInfo)
disableMon = not KeepMonitoring(self.chainName,EgammaChainsToKeepMonitoring)
# common imports required for EtCut and Electron ID chains
# L2 Calo FEX
from TrigT2CaloEgamma.TrigT2CaloEgammaConfig import T2CaloEgamma_eGamma
......@@ -913,7 +929,7 @@ class L2EFChain_e(L2EFChainDef):
#print 'ESETUP', self.chainPart
# these can be made more configurable later (according to tracking algorithms etc...)
if 'etcut' in self.chainPart['addInfo']:
logElectronDef.debug('setup_eXXvh_ID_run2 etcut')
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigL2ElectronHypoConfig import L2ElectronHypo_e_NoCut
from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e_NoCut
......@@ -923,7 +939,14 @@ class L2EFChain_e(L2EFChainDef):
theL2ElectronHypo = L2ElectronHypo_e_NoCut("L2ElectronHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut",threshold);
theEFTrackHypo = EFTrackHypo_e_NoCut("EFTrackHypo_e"+str(threshold)+"_NoCut",threshold)
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
#theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
if 'trkcut' in self.chainPart['addInfo']:
logElectronDef.debug('setup_eXXvh_ID_run2 etcut_trkcut')
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_WTP
theEFElectronHypo = TrigEFElectronHypo_e_WTP("TrigEFElectronHypo_e"+str(threshold)+"_WTP",threshold)
else:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
elif 'perf' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigL2ElectronHypoConfig import L2ElectronHypo_e_NoCut
......@@ -1002,7 +1025,13 @@ class L2EFChain_e(L2EFChainDef):
trkcomb1st += theFastTrackFinderxAOD
trkcombfull = list(trkcomb1st)
trkcombfull += theTrigEFIDInsideOutMerged_Electron
if ( disableMon ) :
theL2CaloHypo.AthenaMonTools = DisableMonitoringButValAndTime(theL2CaloHypo.AthenaMonTools)
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
[trkfast, trkprec] = TrigInDetSequence("Electron", "electron", "IDTrig").getSequence()
trkseq=trkfast+trkprec
......@@ -1023,7 +1052,10 @@ class L2EFChain_e(L2EFChainDef):
self.L2sequenceList += [[['L2_e_step1'],
trkfast,
'L2_e_step2']]
if ( disableMon ) : theL2ElectronFex.AthenaMonTools=DisableMonitoringButValAndTime(theL2ElectronFex.AthenaMonTools)
if ( disableMon ) : theL2ElectronHypo.AthenaMonTools=DisableMonitoringButValAndTime(theL2ElectronHypo.AthenaMonTools)
self.L2sequenceList += [[['L2_e_step2'],
[theL2ElectronFex, theL2ElectronHypo],
'L2_e_step3']]
......@@ -1032,6 +1064,8 @@ class L2EFChain_e(L2EFChainDef):
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_e_step1']]
if ( disableMon ) : theTrigEFCaloHypo.AthenaMonTools=DisableMonitoringButValAndTime(theTrigEFCaloHypo.AthenaMonTools)
self.EFsequenceList += [[['EF_e_step1'],
[theTrigEFCaloCalibFex,theTrigEFCaloHypo],
'EF_e_step2']]
......@@ -1045,7 +1079,10 @@ class L2EFChain_e(L2EFChainDef):
trkprec+[ theEFTrackHypo],
#trkcombfull+[ theEFTrackHypo],
'EF_e_step3']]
#if ( disableMon ) : theTrigEgammaFex.AthenaMonTools=DisableMonitoringButValAndTime(theTrigEgammaFex.AthenaMonTools)
if ( disableMon ) : theEFElectronHypo.AthenaMonTools=DisableMonitoringButValAndTime(theEFElectronHypo.AthenaMonTools)
self.EFsequenceList += [[['EF_e_step3'],
[theTrigEgammaFex, theEFElectronHypo],
'EF_e_step4']]
......@@ -1130,13 +1167,19 @@ class L2EFChain_e(L2EFChainDef):
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
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_All
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
theL2CaloHypo = L2CaloHypo_NoCut("L2CaloHypo_e"+str(threshold)+"_NoCut",threshold )
theL2ElectronHypo = L2ElectronHypo_e_NoCut("L2ElectronHypo_e"+str(threshold)+"_NoCut",threshold )
theTrigEFCaloHypo = TrigEFCaloHypo_All("TrigEFCaloHypo_e"+str(threshold)+"_All_heavyIon",threshold);
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold);
theEFTrackHypo = EFTrackHypo_e_NoCut("EFTrackHypo_e"+str(threshold)+"_NoCut_heavyIon",threshold)
theEFElectronHypo = TrigEFElectronHypo_e_EtCut("TrigEFElectronHypo_e"+str(threshold)+"_EtCut_heavyIon",threshold)
#theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut_heavyIon",threshold)
if 'trkcut' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_WTP
theEFElectronHypo = TrigEFElectronHypo_e_WTP("TrigEFElectronHypo_e"+str(threshold)+"_WTP",threshold)
else:
from TrigEgammaHypo.TrigEFElectronHypoConfig import TrigEFElectronHypo_e_NoCut
theEFElectronHypo = TrigEFElectronHypo_e_NoCut("TrigEFElectronHypo_e"+str(threshold)+"_NoCut",threshold)
elif 'perf' in self.chainPart['addInfo']:
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_NoCut
from TrigEgammaHypo.TrigL2ElectronHypoConfig import L2ElectronHypo_e_NoCut
......
......@@ -14,6 +14,8 @@ logPhotonDef = logging.getLogger("TriggerMenu.egamma.PhotonDef")
from TriggerJobOpts.TriggerFlags import TriggerFlags
from TriggerMenu.menu.TriggerPythonConfig import *
from TriggerMenu.menu.HltConfig import *
from TriggerMenu.egamma.EgammaCleanMonitoring import *
from TriggerMenu.menu.CleanMonitoring import *
##################
#
......@@ -140,7 +142,7 @@ class L2EFChain_g(L2EFChainDef):
theTrigCaloTowerMaker_eGamma = TrigCaloTowerMaker_eGamma()
theTrigCaloClusterMaker_slw = TrigCaloClusterMaker_slw()
disableMon = not KeepMonitoring(self.chainName,EgammaChainsToKeepMonitoring)
from TrigEgammaHypo.TrigEFCaloCalibFexConfig import TrigEFCaloCalibFex_Photon
theTrigEFCaloCalibFex = TrigEFCaloCalibFex_Photon()
......@@ -192,6 +194,7 @@ class L2EFChain_g(L2EFChainDef):
theTrigEgammaFex = TrigEgammaRec_NoIDEF_eGamma()
########### Sequences ###########
if ( disableMon ) : theL2CaloHypo.AthenaMonTools=DisableMonitoringButValAndTime(theL2CaloHypo.AthenaMonTools)
if 'ringer' in self.chainPart['addInfo']:
self.L2sequenceList += [[self.L2InputTE,
......@@ -214,10 +217,16 @@ class L2EFChain_g(L2EFChainDef):
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_g_step1']]
#if ( disableMon ) : theTrigEFCaloCalibFex.AthenaMonTools=DisableMonitoringButValAndTime(theTrigEFCaloCalibFex.AthenaMonTools)
if ( disableMon ) : theTrigEFCaloHypo.AthenaMonTools=DisableMonitoringButValAndTime(theTrigEFCaloHypo.AthenaMonTools)
self.EFsequenceList += [[['EF_g_step1'],
[theTrigEFCaloCalibFex,theTrigEFCaloHypo],
'EF_g_step2']]
#if ( disableMon ) : theTrigEgammaFex.AthenaMonTools=DisableMonitoringButValAndTime(theTrigEgammaFex.AthenaMonTools)
if ( disableMon ) : theEFPhotonHypo.AthenaMonTools=DisableMonitoringButValAndTime(theEFPhotonHypo.AthenaMonTools)
self.EFsequenceList += [[['EF_g_step2'],
[theTrigEgammaFex, theEFPhotonHypo],
'EF_g_step3']]
......@@ -309,18 +318,18 @@ class L2EFChain_g(L2EFChainDef):
theEFPhotonHypo = EFPhotonHypo_g_NoCut("TrigEFPhotonHypo_g"+str(threshold)+"_NoCut_heavyIon",threshold)
elif self.chainPart['IDinfo']:
from TrigEgammaHypo.TrigEFPhotonHypoConfig import EFPhotonHypo_g_ID_CaloOnly
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_g7
from TrigEgammaHypo.TrigL2PhotonHypoConfig import *
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_g_ID
from TrigEgammaHypo.TrigL2CaloHypoConfig import L2CaloHypo_g_nocut
from TrigEgammaHypo.TrigL2PhotonHypoConfig import L2PhotonHypo_g_EtCut
from TrigEgammaHypo.TrigEFCaloHypoConfig import TrigEFCaloHypo_EtCut
# L2 Calo
if 'ringer' in self.chainPart['addInfo']:
theL2CaloHypo = TrigRingerNeuralHypoConfig("TrigRingerNeuralHypo_g"+str(threshold) )
else:
theL2CaloHypo = L2CaloHypo_g7()
theL2CaloHypo = L2CaloHypo_g_nocut()
#theL2PhotonHypo = eval("L2PhotonHypo_"+algoSuffix)
theL2PhotonHypo = L2PhotonHypo_g_ID("L2PhotonHypo_g"+str(threshold)+"_"+str(IDinfo),threshold,IDinfo)
theL2PhotonHypo = L2PhotonHypo_g_EtCut("L2PhotonHypo_g"+str(threshold)+"_EtCut",threshold )
# EF Calo
theTrigEFCaloHypo = TrigEFCaloHypo_g_ID("TrigEFCaloHypo_g"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo);
theTrigEFCaloHypo = TrigEFCaloHypo_EtCut("TrigEFCaloHypo_g"+str(threshold)+"_EtCut_heavyIon",threshold);
theEFPhotonHypo = EFPhotonHypo_g_ID_CaloOnly("EFPhotonHypo_g"+str(threshold)+"_"+str(IDinfo)+"_heavyIon",threshold,IDinfo)
else:
log.error('Chain %s could not be assembled' % (self.chainPartName))
......@@ -491,6 +500,8 @@ class L2EFChain_g(L2EFChainDef):
from TrigTRTHighTHitCounter.TrigTRTHighTHitCounterConf import TrigTRTHTHCounter,TrigTRTHTHhypo
theL2CaloHypo = L2CaloHypo_g_nocut()
theEFPhotonHypo = EFPhotonHypo_g_NoCut("TrigEFPhotonHypo_g_hiptrt_NoCut",0)
from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
[theTRTDataPrep] = TrigInDetSequence("Electron","electron","TRTdata").getSequence()
theTrigTRTHTHCounter = TrigTRTHTHCounter()
theTrigTRTHTHhypo = TrigTRTHTHhypo()
......@@ -501,16 +512,12 @@ class L2EFChain_g(L2EFChainDef):
########### Sequences ###########
self.L2sequenceList += [[self.L2InputTE,
[theT2CaloEgamma_eGamma, theL2CaloHypo],
'L2_g_step1']]
self.L2sequenceList += [[['L2_g_step1'],
[theTrigTRTHTHCounter, theTrigTRTHTHhypo],
'L2_g_step2']]
theTRTDataPrep+[theTrigTRTHTHCounter, theTrigTRTHTHhypo],
'L2_g_step1']]
self.EFsequenceList += [[['L2_g_step2'],
self.EFsequenceList += [[['L2_g_step1'],
[theTrigCaloCellMaker_eGamma, theTrigCaloTowerMaker_eGamma, theTrigCaloClusterMaker_slw],
'EF_g_step1']]
......@@ -527,15 +534,13 @@ class L2EFChain_g(L2EFChainDef):
########### 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),
'L2_g_step1': 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+'_calocalib'),
......
......@@ -95,6 +95,8 @@ class L2EFChain_HI(L2EFChainDef):
self.setup_hi_eventshape()
elif "ucc" in self.chainPart['recoAlg']:
self.setup_hi_ultracentral()
elif "upc" in self.chainPart['recoAlg']:
self.setup_hi_ultraperipheral()
L2EFChainDef.__init__(self, self.chainName, self.L2Name, self.chainCounter, self.chainL1Item, self.EFName, self.chainCounter, self.L2InputTE)
......@@ -167,19 +169,23 @@ class L2EFChain_HI(L2EFChainDef):
###########################
def setup_hi_ultracentral(self):
if 'perf' in self.chainPart['extra']:
if 'perfzdc' in self.chainPart['extra']:
from TrigHIHypo.UltraCentralHypos import UltraCentral_PT
from TrigT2MinBias.TrigT2MinBiasConfig import L2MbZdcFex_LG, L2MbZdcFex_HG, L2MbZdcHypo_PT
theL2Fex1 = L2MbZdcFex_LG
theL2Fex2 = L2MbZdcFex_HG
theL2Hypo1 = L2MbZdcHypo_PT
chainSuffix = 'perfzdc_ucc'
UChypo=UltraCentral_PT("UltraCentralHypo_PT")
elif 'perf' in self.chainPart['extra']:
from TrigHIHypo.UltraCentralHypos import UltraCentral_PT
chainSuffix = 'perf_ucc'
UChypo=UltraCentral_PT("UltraCentralHypo_PT")
UChypo=UltraCentral_PT("UltraCentralHypo_PT")
else:
from TrigHIHypo.UltraCentralHypos import UltraCentral
UChypo_temp = self.chainPart['hypoEFsumEtInfo']
UCth=UChypo_temp.lstrip('fcalet')
#print 'igb: UCC threshold:', UCth
chainSuffix = 'fcalet'+UCth
UChypo=UltraCentral("UltraCentralHypo_"+UCth, float(UCth)*1000., -1.)
from TrigHIHypo.UltraCentralHypos import UCC_th
threshold = self.chainPart['extra']
UChypo=UCC_th[threshold]
chainSuffix = threshold
from TrigHIHypo.UE import theUEMaker, theFSCellMaker
########### Sequence List ##############
......@@ -194,12 +200,21 @@ class L2EFChain_HI(L2EFChainDef):
self.EFsequenceList += [[['EF_hi_step1_ue'],
[UChypo], 'EF_hi_step2']]
if 'perfzdc' in self.chainPart['extra']:
self.EFsequenceList += [[['EF_hi_step2'],
[theL2Fex1], 'EF_hi_step3']]
self.EFsequenceList += [[['EF_hi_step3'],
[theL2Fex2, theL2Hypo1], 'EF_hi_step4']]
########### Signatures ###########
self.L2signatureList += [ [['L2_hi_step1']] ]
self.EFsignatureList += [ [['EF_hi_step1_fs']] ]
self.EFsignatureList += [ [['EF_hi_step1_ue']] ]
self.EFsignatureList += [ [['EF_hi_step2']] ]
if 'perfzdc' in self.chainPart['extra']:
self.EFsignatureList += [ [['EF_hi_step3']] ]
self.EFsignatureList += [ [['EF_hi_step4']] ]
self.TErenamingDict = {
'L2_hi_step1': mergeRemovingOverlap('L2_hi_step1_', chainSuffix),
......@@ -207,7 +222,67 @@ class L2EFChain_HI(L2EFChainDef):
'EF_hi_step1_ue': mergeRemovingOverlap('EF_hi_ue_', chainSuffix),
'EF_hi_step2': mergeRemovingOverlap('EF_hi_', chainSuffix),
}
if 'perfzdc' in self.chainPart['extra']:
self.TErenamingDict = {
'L2_hi_step1': mergeRemovingOverlap('L2_hi_step1_', chainSuffix),
'EF_hi_step1_fs': mergeRemovingOverlap('EF_hi_fs_', chainSuffix),
'EF_hi_step1_ue': mergeRemovingOverlap('EF_hi_ue_', chainSuffix),
'EF_hi_step2': mergeRemovingOverlap('EF_hi_', chainSuffix),
'EF_hi_step3': mergeRemovingOverlap('EF_hi_hg_', chainSuffix),
'EF_hi_step4': mergeRemovingOverlap('EF_hi_perfzdc_', chainSuffix),
}
###########################
def setup_hi_ultraperipheral(self):
theL2MbtsFex=L2MbMbtsFex
theL2MbtsHypo=MbMbtsHypo("L2MbMbtsHypo_1_1_inn_veto")
theL2PixelFex = L2MbSpFex
if 'loose' in self.chainPart['hypoL2Info']:
minPixel=6
maxPixel=40
chainSuffix = 'loose_upc'
if 'medium' in self.chainPart['hypoL2Info']:
minPixel=6
maxPixel=30
chainSuffix = 'medium_upc'
if 'tight' in self.chainPart['hypoL2Info']:
minPixel=6
maxPixel=25
chainSuffix = 'tight_upc'
theL2PixelHypo = L2MbSpUPC("MbPixelSpUPC_min"+str(minPixel)+'_max'+str(maxPixel), minPixel, maxPixel)
########### Sequence List ##############
self.L2sequenceList += [["",
[dummyRoI],
'L2_hi_step1']]
self.L2sequenceList += [[['L2_hi_step1'],
[theL2MbtsFex, theL2MbtsHypo], 'L2_hi_mbtsveto']]
self.L2sequenceList += [['L2_hi_mbtsveto',
efiddataprep,
'L2_hi_iddataprep']]
self.L2sequenceList += [[['L2_hi_iddataprep'],
[theL2PixelFex, theL2PixelHypo],
'L2_hi_pixel']]
########### Signatures ###########
self.L2signatureList += [ [['L2_hi_step1']] ]
self.L2signatureList += [ [['L2_hi_mbtsveto']] ]
self.L2signatureList += [ [['L2_hi_iddataprep']] ]
self.L2signatureList += [ [['L2_hi_pixel']] ]
self.TErenamingDict = {
'L2_hi_step1': mergeRemovingOverlap('L2_hi_step1_', chainSuffix),
'L2_hi_mbtsveto': mergeRemovingOverlap('EF_hi_mbtsveto_', chainSuffix),
'L2_hi_iddataprep': mergeRemovingOverlap('EF_hi_iddataprep_', chainSuffix),
'L2_hi_pixel': mergeRemovingOverlap('EF_hi_pixel_', chainSuffix),
}
#####################################################################
#if __name__ == '__main__':
......
......@@ -234,6 +234,28 @@ class AlgFactory(object):
}
return [Alg(factory, (), kwds)]
#HI
def hijetrec_hic(self):
"""Instantiate a python object for TrigHLTHIJetRec that will
use xAOD::CaloCluster s as input."""
merge_param_str = str(self.fex_params.merge_param).zfill(2)
factory = 'TrigHLTHIJetRecFromHICluster'
# add factory to instance label to facliltate log file searches
name = '"%s_%s"' %(factory, self.fex_params.fex_label)
kwds = {
'name': name, # instance label
'merge_param': "'%s'" % merge_param_str,
'jet_calib': "'%s'" % self.fex_params.jet_calib,