diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py index c38a1369e6512972e8af6164a352a822b662499e..3b2963a414dfa0951fa56e9c6d2ff2ca9afeb031 100644 --- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py +++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py @@ -14,6 +14,7 @@ __author__ = "Jiri Masik" __doc__ = "InDetTrigSliceSettings" __all__ = [ "InDetTrigSliceSettings" ] + class InDetTrigSliceSettingsDB: """ keeps a dictionary of quantities which may vary slice by slice with @@ -26,302 +27,19 @@ class InDetTrigSliceSettingsDB: """ def __init__(self): from AthenaCommon.SystemOfUnits import GeV - _slices = ['electron','photon', - 'muon', 'muonFS', 'muonCore', 'muonLate', 'muonIso', - 'tau', 'tauCore', 'tauIso', - # nonsense duplicated tau instances - # "tauId", "tauEF", "tauTrk", "tauTrkTwo", - 'bjet', 'bjetVtx', - 'bphysics', - 'fullScan', - 'fullScan2', #2GeV threshold for MET - 'minBias', 'beamgas', - 'minBias2', #two pass (low-pt tracking) - 'minBias400', #another minBias with 400MeV threshold - 'cosmicsN', 'lowPt', #these are not real slices, rather different setups of tools - 'hadCalib', 'fullScan500', #hadCalib instances - 'heavyIon', 'heavyIonFS', #RoI and FS instances for the heavy ion - 'beamSpot', 'cosmics', - 'bphysHighPt', - 'electronLRT', 'muonLRT', 'tauLRT', 'fullScanLRT', 'bjetLRT' - ] + _slices = ['lowPt'] self.db = {} ptmin = {} - etahalf = {} - phihalf = {} - fullscan= {} - monps = {} - monptmin = {} - - #FTF-specific settings - drdoubletmax = {} - seedradbinwidth = {} - d0seedmax = {} - d0seedppsmax = {} - checkseedredundancy = {} - dospphifiltering = {} - dozfinder = {} - docloneremoval = {} - doresmon = {} - dotrigindettrack = {} - dopps = {} - - #ptmin for i in _slices: ptmin[i] = 1.*GeV - ptmin['tau']= 0.8 * GeV - ptmin['minBias'] = 0.2 * GeV - ptmin['minBias2'] = 0.5 * GeV - ptmin['cosmicsN'] = 0.5 * GeV - #ptmin['fullScan'] = 0.5 * GeV #comparison with the offline - ptmin['beamgas'] = 0.1 * GeV ptmin['lowPt'] = 0.1 * GeV - ptmin['heavyIonFS'] = 0.4 * GeV - ptmin['hadCalib'] = 0.5 * GeV - ptmin['fullScan500'] = 0.5 * GeV - ptmin['fullScan2'] = 2. * GeV - ptmin['minBias400'] = 0.39 * GeV - ptmin['bphysHighPt'] = 2. * GeV - ptmin['bjetVtx'] = 5. * GeV self.db['pTmin']=ptmin - for i in _slices: - d0seedmax[i] = 4.0 - d0seedppsmax[i] = 1.7 - - d0seedmax['bphysics'] = 10.0 - d0seedmax['bphysHighPt'] = 10.0 - d0seedmax['muon'] = 10.0 - d0seedmax['muonFS'] = 10.0 - d0seedmax['muonCore'] = 10.0 - d0seedmax['muonLate'] = 10.0 - # muonIso instance has default 4.0 mm setting - - d0seedmax['cosmics'] = 1000.0 - d0seedppsmax['cosmics'] = 1000.0 - - for i in ["fullScanLRT", "electronLRT", "muonLRT", "tauLRT", "bjetLRT"]: - d0seedmax[i] = 300. - - self.db['d0SeedMax']=d0seedmax - self.db['d0SeedPPSMax']=d0seedppsmax - - for i in _slices: - dozfinder[i] = False - dotrigindettrack[i] = False - dozfinder['beamSpot'] = True - self.db['doZFinder']=dozfinder - self.db['doTrigInDetTrack']=dotrigindettrack - - for i in _slices: - doresmon[i] = False - doresmon['muon'] = True - self.db['doResMon']=doresmon - - for i in _slices: - dopps[i] = True - dopps['fullScan'] = False - self.db['DoPPS'] = dopps - - for i in _slices: - dospphifiltering[i] = True - # Turn off spacepoint phi filtering for muons - dospphifiltering['muon'] = False - dospphifiltering['muonFS'] = False - dospphifiltering['muonCore'] = False - dospphifiltering['muonLate'] = False - # muonIso instance has default sp filtering value of True - - dospphifiltering['bphysics'] = False - dospphifiltering['bphysHighPt'] = False - self.db['doSpPhiFiltering'] = dospphifiltering - - for i in _slices: - docloneremoval[i] = True - docloneremoval['electron'] = False - self.db['doCloneRemoval'] = docloneremoval - - - - for i in _slices: - checkseedredundancy[i] = False - checkseedredundancy['electron'] = True - checkseedredundancy['muon'] = True - checkseedredundancy['muonFS'] = True - checkseedredundancy['muonLate'] = True - checkseedredundancy['muonCore'] = True - # muonIso instance has default seed redundency of False - - checkseedredundancy['bphysics'] = True - checkseedredundancy['beamSpot'] = True - checkseedredundancy["fullScanLRT"] = True - - self.db['checkRedundantSeeds'] = checkseedredundancy - - - for i in _slices: - drdoubletmax[i] = 270 - seedradbinwidth[i] = 2 - - drdoubletmax['beamSpot'] = 200 - seedradbinwidth['beamSpot'] = 10 - drdoubletmax['fullScan'] = 200 - seedradbinwidth['fullScan'] = 10 - self.db['dRdoubletMax'] = drdoubletmax - self.db['seedRadBinWidth'] = seedradbinwidth - - - - #etaHalfWidth - etahalf = { - 'electron' : 0.1, - 'photon' : 0.1, - 'muon' : 0.1, - 'muonFS' : 0.1, - 'muonCore' : 0.1, - 'muonLate' : 0.1, - 'muonIso' : 0.35, - 'tau' : 0.4, - 'bjet' : 0.2, - 'bphysics' : 0.75, - 'bphysHighPt' : 0.75, - 'hadCalib' : 0.4, - 'fullScan' : 3.0, - 'fullScan500': 3.0, - 'fullScan2' : 3.0, - 'minBias' : 3.0, - 'minBias2' : 3.0, - 'beamgas' : 3.0, - 'cosmicsN' : 3.0, - 'cosmics' : 3.0, - 'lowPt' : 3.0, - 'heavyIonFS': 3.0, - 'heavyIon' : 0.1, - 'minBias400': 3.0, - 'tauCore' : 0.1, - 'tauIso' : 0.4, - 'beamSpot' : 3.0, - 'bjetVtx' : 0.2, - 'electronLRT': 0.1, - 'muonLRT': 0.1, - 'tauLRT': 0.4, - 'fullScanLRT': 3, - 'bjetLRT': 0.2 - } - self.db['etaHalfWidth']=etahalf - - #phiHalfWidth - phihalf = { - 'electron' : 0.1, - 'photon' : 0.1, - 'muon' : 0.1, - 'muonFS' : 0.1, - 'muonCore' : 0.1, - 'muonLate' : 0.1, - 'muonIso' : 0.35, - 'tau' : 0.4, - 'bjet' : 0.201, - 'bphysics' : 0.75, - 'bphysHighPt' : 0.75, - 'hadCalib' : 0.4, - 'fullScan' : 3.14159, - 'fullScan500' : 3.14159, - 'fullScan2' : 3.14159, - 'minBias' : 3.14159, - 'minBias2' : 3.14159, - 'beamgas' : 3.14159, - 'cosmicsN' : 3.14159, - 'cosmics' : 3.14159, - 'lowPt' : 3.14159, - 'heavyIonFS': 3.14159, - 'heavyIon' : 0.1, - 'minBias400': 3.14159, - 'tauCore' : 0.1, - 'tauIso' : 0.4, - 'beamSpot' : 3.14159, - 'bjetVtx' : 0.201, - 'electronLRT': 0.1, - 'muonLRT': 0.1, - 'tauLRT': 0.4, - 'fullScanLRT': 3.14159, - 'bjetLRT': 0.201 - } - self.db['phiHalfWidth']=phihalf - - #doFullScan - for i in _slices: - fullscan[i] = False - fullscan['fullScan'] = True - fullscan['fullScan2']= True - fullscan['fullScan500'] = True - fullscan['minBias'] = True - fullscan['minBias2'] = True - fullscan['beamgas'] = True - fullscan['cosmicsN'] = True - fullscan['cosmics'] = True - fullscan['lowPt'] = True - fullscan['heavyIonFS']=True - fullscan['minBias400']=True - fullscan['beamSpot'] =True - fullscan['fullScanLRT'] = True - - self.db['doFullScan']=fullscan - - - #Monitoring Prescales - for i in _slices: - monps[i] = 1 - monps['tau']= 1 - self.db['monPS']=monps - - #Monitoring pT min - for i in _slices: - monptmin[i] = 1 * GeV - monptmin['muon'] = 12 * GeV - self.db['monPtMin']=monptmin - - #TRT extension - dotrt = {} - for i in _slices: - dotrt[i] = False - - dotrt["tauIso"] = True - dotrt["tauCore"] = True - dotrt["tau"] = True - dotrt["electron"] = True - dotrt["tauLRT"] = True - - self.db['doTRT'] = dotrt - - - #d0 track max, z0 track max and usepixelsp - d0trackmax = {} - z0trackmax = {} - usepixelsp = {} - - for i in _slices: - d0trackmax[i] = 20. - z0trackmax[i] = 300. - usepixelsp[i] = True - - d0trackmax["cosmics"] = 1000. - z0trackmax["cosmics"] = 1000. - - for i in ["fullScanLRT", "electronLRT", "muonLRT", "tauLRT", "bjetLRT"]: - d0trackmax[i] = 300. - z0trackmax[i] = 500. - usepixelsp[i] = False - - - - self.db["d0TrackMax"] = d0trackmax - self.db["z0TrackMax"] = z0trackmax - self.db["usePixelSP"] = usepixelsp def __getitem__(self, p): (quantity, slice) = p @@ -334,10 +52,10 @@ class InDetTrigSliceSettingsDB: except Exception: print ('get InDetTrigSliceSettingsDB has no slice %s configured' % slice) except Exception: - print ('get InDetTrigSliceSettingsDB has no quantity %s configured' % quantity) - + print ('get InDetTrigSliceSettingsDB has no quantity %s configured' % quantity) return v + def __setitem__(self, p, value): (quantity, slice) = p try: diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py index 520b38dacbcbdc68a97468735513b58a4508591f..0b4bc5a82bad377662ab9cd81b4eb1594dd20460 100755 --- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py +++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py @@ -176,14 +176,14 @@ remap = { "Muon" : "muon", "MuonFS" : "muon", "MuonLate" : "muon", - "MuonCore" : "muonCore", + "MuonCore" : "muon", "MuonIso" : "muonIso", "eGamma" : "electron", "Electron" : "electron", "Tau" : "tau", "TauCore" : "tauCore", "TauIso" : "tauIso", - "Jet" : "bjet", + "Jet" : "Bjet", "JetFS" : "fullScan", "FS" : "fullScan", "bjetVtx" : "bjetVtx", @@ -204,16 +204,17 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): TrigFastTrackFinder.__init__(self,name) #Remapping should be now covered by SliceConfigurationSetting - remapped_type = slice_name + + from TrigInDetConfig.ConfigSettings import getInDetTrigConfig + + config = getInDetTrigConfig( slice_name ) + + remapped_type = config.name + if slice_name == "fullScanUTT" : self.doJseedHitDV = True self.dodEdxTrk = True - #There are still some places which relies on this remapping such as: - #https://gitlab.cern.ch/atlas/athena/-/blob/master/Trigger/TrigTools/TrigInDetConf/python/TrigInDetSequence.py - #I guess eventually this should be removed - if slice_name in remap: - remapped_type = remap[slice_name] isLRT = False @@ -233,8 +234,6 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): ToolSvc += numberingTool self.LayerNumberTool = numberingTool - from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings - # GPU offloading config begins self.useGPU = False @@ -249,7 +248,9 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): # GPU offloading config ends - self.doResMon = InDetTrigSliceSettings[('doResMon',remapped_type)] + self.doResMon = config.doResMon + + # switch between Run-2/3 monitoring self.MonTool = TrigFastTrackFinderMonitoring(slice_name, self.doResMon) @@ -261,13 +262,13 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): #Spacepoint conversion from TrigOnlineSpacePointTool.TrigOnlineSpacePointToolConf import TrigSpacePointConversionTool spTool = TrigSpacePointConversionTool().clone('TrigSpacePointConversionTool_' + remapped_type) - spTool.DoPhiFiltering = InDetTrigSliceSettings[('doSpPhiFiltering',remapped_type)] + spTool.DoPhiFiltering = config.DoPhiFiltering spTool.UseNewLayerScheme = self.useNewLayerNumberScheme spTool.UseBeamTilt = False spTool.PixelSP_ContainerName = TrigPixelKeys.SpacePoints spTool.SCT_SP_ContainerName = TrigSCTKeys.SpacePoints spTool.layerNumberTool = numberingTool - spTool.UsePixelSpacePoints = InDetTrigSliceSettings[('usePixelSP',remapped_type)] + spTool.UsePixelSpacePoints = config.UsePixelSpacePoints from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel from RegionSelector.RegSelToolConfig import makeRegSelTool_SCT @@ -275,7 +276,6 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): spTool.RegSelTool_Pixel = makeRegSelTool_Pixel() spTool.RegSelTool_SCT = makeRegSelTool_SCT() - spTool.UsePixelSpacePoints=InDetTrigSliceSettings[('usePixelSP',remapped_type)] ToolSvc += spTool self.SpacePointProviderTool=spTool @@ -289,17 +289,17 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): self.LRT_Mode = isLRT self.Triplet_MaxBufferLength = 3 - self.doSeedRedundancyCheck = InDetTrigSliceSettings[('checkRedundantSeeds',remapped_type)] - self.Triplet_D0Max = InDetTrigSliceSettings[('d0SeedMax',remapped_type)] - self.Triplet_D0_PPS_Max = InDetTrigSliceSettings[('d0SeedPPSMax',remapped_type)] - self.TrackInitialD0Max = InDetTrigSliceSettings[('d0TrackMax',remapped_type)] - self.TrackZ0Max = InDetTrigSliceSettings[('z0TrackMax',remapped_type)] - - self.TripletDoPPS = InDetTrigSliceSettings[('DoPPS',remapped_type)] - self.TripletDoPSS = False - self.pTmin = InDetTrigSliceSettings[('pTmin',remapped_type)] - self.DoubletDR_Max = InDetTrigSliceSettings[('dRdoubletMax',remapped_type)] - self.SeedRadBinWidth = InDetTrigSliceSettings[('seedRadBinWidth',remapped_type)] + self.doSeedRedundancyCheck = config.doSeedRedundancyCheck + self.Triplet_D0Max = config.Triplet_D0Max + self.Triplet_D0_PPS_Max = config.Triplet_D0_PPS_Max + self.TrackInitialD0Max = config.TrackInitialD0Max + self.TrackZ0Max = config.TrackZ0Max + + self.TripletDoPPS = config.TripletDoPPS + self.TripletDoPSS = False + self.pTmin = config.pTmin + self.DoubletDR_Max = config.DoubletDR_Max + self.SeedRadBinWidth = config.SeedRadBinWidth if remapped_type=="cosmics": self.Doublet_FilterRZ = False @@ -343,7 +343,7 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): TrackMaker_FTF = InDet__SiTrackMaker_xk(name = 'InDetTrigSiTrackMaker_FTF_'+slice_name, RoadTool = InDetTrigSiDetElementsRoadMaker_FTF, CombinatorialTrackFinder = InDetTrigSiComTrackFinder_FTF, - pTmin = InDetTrigSliceSettings[('pTmin',remapped_type)], + pTmin = config.pTmin, nClustersMin = TrackingCuts.minClusters(), nHolesMax = TrackingCuts.nHolesMax(), nHolesGapMax = TrackingCuts.nHolesGapMax(), @@ -383,8 +383,9 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): ToolSvc += theTrigInDetTrackFitterBrem self.trigInDetTrackFitter = theTrigInDetTrackFitterBrem - self.doZFinder = InDetTrigSliceSettings[('doZFinder',remapped_type)] + self.doZFinder = config.doZFinder if (self.doZFinder): + self.doZFinderOnly = config.doZFinderOnly from IDScanZFinder.IDScanZFinderConf import TrigZFinder theTrigZFinder = TrigZFinder( name="TrigZFinder_"+remapped_type ) theTrigZFinder.NumberOfPeaks = 3 @@ -403,19 +404,31 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder): self.doFastZVertexSeeding = True self.zVertexResolution = 1 - TrackMaker_FTF.InputClusterContainerName = "" - TrackMaker_FTF.InputHadClusterContainerName = "" + if not config.doZFinderOnly: + TrackMaker_FTF.InputClusterContainerName = "" + TrackMaker_FTF.InputHadClusterContainerName = "" - from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool - self.TrackSummaryTool = InDetTrigFastTrackSummaryTool - if remapped_type == "tauCore": - from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigTrackSummaryToolWithHoleSearch - self.TrackSummaryTool = InDetTrigTrackSummaryToolWithHoleSearch + from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool + self.TrackSummaryTool = InDetTrigFastTrackSummaryTool + + if config.holeSearch_FTF : + from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigTrackSummaryToolWithHoleSearch + self.TrackSummaryTool = InDetTrigTrackSummaryToolWithHoleSearch - self.doCloneRemoval = InDetTrigSliceSettings[('doCloneRemoval',remapped_type)] + self.doCloneRemoval = config.doCloneRemoval + self.TracksName = config.trkTracks_FTF() + if config.name == 'fullScanUTT' : + self.RecJetRoI = "HLT_RecJETRoIs" + self.HitDVSeed = "HLT_HitDVSeed" + self.HitDVTrk = "HLT_HitDVTrk" + self.HitDVSP = "HLT_HitDVSP" + self.dEdxTrk = "HLT_dEdxTrk" + self.dEdxHit = "HLT_dEdxHit" + + class TrigFastTrackFinder_Muon(TrigFastTrackFinderBase): def __init__(self, name = "TrigFastTrackFinder_Muon"): diff --git a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py index c09e1aadd450264f33882b79f57f0d650707154d..dd7683276e5ffbc6c6377fe2f9bb86fadaaa4641 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettings.py @@ -5,846 +5,374 @@ __doc__ = "ConfigSettings" __all__ = [ "getInDetTrigConfig" ] - +from TrigInDetConfig.ConfigSettingsBase import _ConfigSettingsBase +from TrigEDMConfig.TriggerEDMRun3 import recordable from AthenaCommon.SystemOfUnits import GeV -#This function is a wrapper around functions that return name of collections -#It checks whether the collection is specified to be recorded into EDM and if so it marks it to be recordable -#Collection has to be defined in EDM! see: -#https://gitlab.cern.ch/atlas/athena/-/blob/master/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py -#Maybe overkill? -def makeRecordable(getName): - def recordCollection(*args, **kwargs): - #Retrieve record decision - record=kwargs.pop("doRecord",False) - - #Get the name of the collection - collectionName = getName(*args, **kwargs) - - from TrigEDMConfig.TriggerEDMRun3 import recordable - if record: - return recordable( collectionName ) - else: - return collectionName - return recordCollection - - - -# Configuration of Tracking parameters for different signatures -#----------------------------------------------------------------------------- - -class _Settings : - def __init__(self, name = "Settings") : - self._name = name - - # default values - self._pTmin = 1.*GeV - self._d0SeedMax = 4.0 - self._d0SeedPPSMax = 1.7 - self._doZFinder = False - self._doResMon = False - self._doSpPhiFiltering = True - self._doCloneRemoval = True - self._checkRedundantSeeds = False - self._dRdoubletMax = 270 - self._seedRadBinWidth = 2 - self._etaHalfWidth = 0.1 - self._phiHalfWidth = 0.1 - self._doFullScan = False - self._monPS = 1 - self._monPtMin = 1*GeV - self._doTRT = False #Apply TRT extension sequence after ambiguity solving - self._keepTrackParameters = False #Keep track parameters in conversion to TrackParticles - self._usePixelSP = True - self._d0TrackMax = 20.0 - self._z0TrackMax = 300.0 - self._isLRT = False - -#Previous version in: -#https://gitlab.cern.ch/atlas/athena/-/blob/master/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigSliceSettings.py#L70 - - @property - def name(self): - return self._name - - @property - def pTmin(self): - return self._pTmin - - @property - def d0SeedMax(self): - return self._d0SeedMax - - @property - def d0SeedPPSMax(self): - return self._d0SeedPPSMax - - @property - def doZFinder(self): - return self._doZFinder - - @property - def doResMon(self): - return self._doResMon - - @property - def doSpPhiFiltering(self): - return self._doSpPhiFiltering - - @property - def doCloneRemoval(self): - return self._doCloneRemoval - - @property - def checkRedundantSeeds(self): - return self._checkRedundantSeeds - - @property - def dRdoubletMax(self): - return self._dRdoubletMax - - @property - def seedRadBinWidth(self): - return self._seedRadBinWidth - - @property - def etaHalfWidth(self): - return self._etaHalfWidth - - @property - def phiHalfWidth(self): - return self._phiHalfWidth - - @property - def doFullScan(self): - return self._doFullScan - - @property - def monPS(self): - return self._monPS - - @property - def monPtMin(self): - return self._monPtMin - - @property - def doTRT(self): - return self._doTRT - - @property - def keepTrackParameters(self): - return self._keepTrackParameters - - @property - def usePixelSP(self): - return self._usePixelSP - - @property - def d0TrackMax(self): - return self._d0TrackMax - - @property - def z0TrackMax(self): - return self._z0TrackMax - - @property - def isLRT(self): - return self._isLRT - - def printout(self): - print( self._name, " :") # noqa: ATL901 - print( " pTmin : ", self._pTmin ) # noqa: ATL901 - print( " d0SeedMax : ", self._d0SeedMax ) # noqa: ATL901 - print( " d0SeedPPSMax : ", self._d0SeedPPSMax ) # noqa: ATL901 - print( " doZFinder : ", self._doZFinder ) # noqa: ATL901 - print( " doResMon : ", self._doResMon ) # noqa: ATL901 - print( " doSpPhiFiltering : ", self._doSpPhiFiltering ) # noqa: ATL901 - print( " doCloneRemoval : ", self._doCloneRemoval ) # noqa: ATL901 - print( " checkRedundantSeeds : ", self._checkRedundantSeeds ) # noqa: ATL901 - print( " dRdoubletMax : ", self._dRdoubletMax ) # noqa: ATL901 - print( " seedRadBinWidth : ", self._seedRadBinWidth ) # noqa: ATL901 - print( " etaHalfWidth : ", self._etaHalfWidth ) # noqa: ATL901 - print( " phiHalfWidth : ", self._phiHalfWidth ) # noqa: ATL901 - print( " doFullScan : ", self._doFullScan ) # noqa: ATL901 - print( " monPS : ", self._monPS ) # noqa: ATL901 - print( " monPtMin : ", self._monPtMin ) # noqa: ATL901 - - -#Tracking configuration for different signatures -class _Tracking_electron( _Settings ): + + +# Function that returns specific signature setting/configuration +# Rename to InDetTrigSignatureConfig ? +def getInDetTrigConfig( name ): + if name in _ConfigSettings : + config = _ConfigSettings[name] + # keep a record of the configuration that is input + # will use this to uniquely identify the algorithms + config._input_name = name + return config + else : + # don't just return None, and do nothing as this + # will just hide the error until people try to use + # the bad slice configuration + raise Exception( "getInDetTrigConfig() called with non existent slice: "+name ) + return None + + +class _ConfigSettings_electron( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "electron" + self._suffix = "Electron" + self._roi = "HLT_Roi_Electron" self._doCloneRemoval = True #Previously False in Run2! - self._checkRedundantSeeds = True + self._doSeedRedundancyCheck = True self._doTRT = True self._keepTrackParameters = True -class _Tracking_tauCore( _Settings ): + +class _ConfigSettings_muon( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) - self._doTRT = True + _ConfigSettingsBase.__init__(self) + self._name = "muon" + self._suffix = "Muon" + self._roi = "HLT_Roi_Muon" + self._Triplet_D0Max = 10.0 + self._doResMon = True + self._DoPhiFiltering = False + self._doSeedRedundancyCheck = True + self._monPtMin = 12*GeV + -class _Tracking_tauIso( _Settings ): +class _ConfigSettings_muonIso( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) - self._etaHalfWidth = 0.4 - self._phiHalfWidth = 0.4 - self._doTRT = True + _ConfigSettingsBase.__init__(self) + self._name = "muonIso" + self._suffix = "MuonIso" + self._roi = "HLT_Roi_MuonIso" + self._etaHalfWidth = 0.35 + self._phiHalfWidth = 0.35 + -class _Tracking_tau( _Settings ): +class _ConfigSettings_tau( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "tau" + self._suffix = "Tau" + self._roi = "HLT_Roi_Tau" + self._vertex = "HLT_IDVertex_Tau" + self._adaptiveVertex = True self._pTmin = 0.8*GeV self._etaHalfWidth = 0.4 self._phiHalfWidth = 0.4 - self._doTRT = True + self._doTRT = True -class _Tracking_muon( _Settings ): - def __init__( self ): - _Settings.__init__(self) - self._d0SeedMax = 10.0 - self._doResMon = True - self._doSpPhiFiltering = False - self._checkRedundantSeeds = True - self._monPtMin = 12*GeV - self._doTRT = False -class _Tracking_muonCore( _Settings ): - def __init__( self ): - _Settings.__init__(self) - self._d0SeedMax = 10.0 - self._doSpPhiFiltering = False - self._checkRedundantSeeds = True - self._doTRT = False +class _ConfigSettings_tauCore( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "tauCore" + self._suffix = "TauCore" + self._roi = "HLT_Roi_TauCore" + self._doTRT = True + self._holeSearch_FTF = True + +class _ConfigSettings_tauIso( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "tauIso" + self._suffix = "TauIso" + self._roi = "RoiForTauIso" + self._etaHalfWidth = 0.4 + self._phiHalfWidth = 0.4 + self._doTRT = True + self._adaptiveVertex = True + self._addSingleTrackVertices = True + self._vertex = "HLT_IDVertex_Tau" -class _Tracking_muonIso( _Settings ): - def __init__( self ): - _Settings.__init__(self) - self._etaHalfWidth = 0.35 - self._phiHalfWidth = 0.35 - self._doTRT = False + def tracks_IDTrig(self): + if self._doRecord: + return recordable('HLT_IDTrack_Tau_IDTrig') + else: + return 'HLT_IDTrack_Tau_IDTrig' + + -class _Tracking_bjet( _Settings ): +class _ConfigSettings_bjet( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "bjet" + self._suffix = "Bjet" + self._roi = "HLT_Roi_Bjet" self._etaHalfWidth = 0.4 self._phiHalfWidth = 0.4 + + + +class _ConfigSettings_minBias( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "minBias" + self._suffix = "MinBias" + self._roi = "HLT_Roi_MinBias" + self._doFullScan = True + self._pTmin = 0.2*GeV # TODO: double check + self._etaHalfWidth = 3 + self._phiHalfWidth = 3.14159 + self._doZFinder = True + self._doZFinderOnly = True + + + +class _ConfigSettings_beamSpot( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "beamSpot" + self._suffix = "BeamSpot" + self._roi = "HLT_Roi_FS" + self._doFullScan = True + self._doZFinder = True + self._DoubletDR_Max = 200 + self._SeedRadBinWidth = 10 + self._etaHalfWidth = 3 + self._phiHalfWidth = 3.14159 self._doTRT = False + self._doSeedRedundancyCheck = True + self._doRecord = False + -class _Tracking_fullScan( _Settings ): +class _ConfigSettings_fullScan( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "fullScan" + self._suffix = "FS" + self._roi = "HLT_Roi_FS" + self._vertex = "HLT_IDVertex_FS" + self._adaptiveVertex = False + self._vertex_jet = "HLT_IDVertex_ITFS" + self._adaptiveVertex_jet = False + self._doFullScan = True self._etaHalfWidth = 3. self._phiHalfWidth = 3.14159 self._doTRT = False - self._dRdoubletMax = 200 - self._seedRadBinWidth = 10 + self._DoubletDR_Max = 200 + self._SeedRadBinWidth = 10 self._doPPS = False self._minCluster = 8 self._roadWidth = 5 + -class _Tracking_fullScanUTT( _Settings ): +class _ConfigSettings_beamSpotFS( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "fullScan" + self._suffix = "FS" + self._roi = "HLT_Roi_FS" + self._doFullScan = True self._etaHalfWidth = 3. self._phiHalfWidth = 3.14159 self._doTRT = False - self._dRdoubletMax = 200 - self._seedRadBinWidth = 10 + self._DoubletDR_Max = 200 + self._SeedRadBinWidth = 10 self._doPPS = False self._minCluster = 8 self._roadWidth = 5 + self._doRecord = False + -class _Tracking_minBias( _Settings ): +class _ConfigSettings_fullScanPreLRT( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) - self._doFullScan = True - self._pTmin = 0.2*GeV # TODO: double check - self._etaHalfWidth = 3 - self._phiHalfWidth = 3.14159 - self._doTRT = False + _ConfigSettingsBase.__init__(self) + self._name = "fullScanPreLRT" + self._suffix = "FS" + self._roi = "HLT_Roi_FS" + self._doFullScan = True + self._vertex = "HLT_IDVertex_FS" -class _Tracking_beamSpot( _Settings ): + +class _ConfigSettings_fullScanUTT( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "fullScanUTT" + self._suffix = "FS" + self._roi = "HLT_Roi_FS" self._doFullScan = True - self._doZFinder = True - self._dRdoubletMax = 200 - self._seedRadBinWidth = 10 - self._etaHalfWidth = 3 + self._etaHalfWidth = 3. self._phiHalfWidth = 3.14159 self._doTRT = False + self._DoubletDR_Max = 200 + self._SeedRadBinWidth = 10 + self._doPPS = False + self._minCluster = 8 + self._roadWidth = 5 + self._vertex = "HLT_IDVertex_FS" + -class _Tracking_cosmic( _Settings ): +class _ConfigSettings_cosmics( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) + _ConfigSettingsBase.__init__(self) + self._name = "cosmics" + self._suffix = "Cosmic" + self._roi = "HLT_Roi_Cosmics" + self._Triplet_D0Max = 1000.0 + self._Triplet_D0_PPS_Max = 1000.0 + self._TrackInitialD0Max = 1000. + self._TrackZ0Max = 1000. self._doFullScan = True - self._d0SeedMax = 1000.0 - self._d0SeedPPSMax = 1000.0 self._etaHalfWidth = 3 self._phiHalfWidth = 3.14159 - self._doTRT = False -class _Tracking_bphysics( _Settings ): + +class _ConfigSettings_bmumux( _ConfigSettingsBase ): def __init__( self ): - _Settings.__init__(self) - self._d0SeedMax = 10. - self._doSpPhiFiltering = False + _ConfigSettingsBase.__init__(self) + self._name = "bphysics" + self._suffix = "Bmumux" + self._roi = "HLT_Roi_Bmumux" + self._Triplet_D0Max = 10. + self._DoPhiFiltering = False self._etaHalfWidth = 0.75 self._phiHalfWidth = 0.75 - self._checkRedundantSeeds = True - self._doTRT = False - -class _Tracking_electronLRT(_Settings): - def __init__(self): - _Settings.__init__(self) - self._usePixelSP = False - self._d0SeedMax = 300. - self._d0TrackMax = 300. - self._z0TrackMax = 500. - self._isLRT = True - -class _Tracking_muonLRT(_Settings): - def __init__(self): - _Settings.__init__(self) - self._usePixelSP = False - self._etaHalfWidth = 0.2 - self._phiHalfWidth = 0.2 - self._d0SeedMax = 300. - self._d0TrackMax = 300. - self._z0TrackMax = 500. - self._isLRT = True - -class _Tracking_tauLRT( _Settings ): - def __init__( self ): - _Settings.__init__(self) - self._pTmin = 0.8*GeV - self._etaHalfWidth = 0.4 - self._phiHalfWidth = 0.4 - self._doTRT = True - self._usePixelSP = False - self._d0SeedMax = 300. - self._d0TrackMax = 300. - self._z0TrackMax = 500. - self._isLRT = True - + self._doSeedRedundancyCheck = True + + +class _ConfigSettings_electronLRT( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "electronLRT" + self._suffix = "ElectronLRT" + self._roi = "HLT_Roi_Electron" + self._UsePixelSpacePoints = False + self._Triplet_D0Max = 300. + self._TrackInitialD0Max = 300. + self._TrackZ0Max = 500. + self._isLRT = True + + +class _ConfigSettings_muonLRT( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "muonLRT" + self._suffix = "MuonLRT" + self._roi = "HLT_Roi_Muon" + self._UsePixelSpacePoints = False + self._etaHalfWidth = 0.2 + self._phiHalfWidth = 0.2 + self._Triplet_D0Max = 300. + self._TrackInitialD0Max = 300. + self._TrackZ0Max = 500. + self._isLRT = True + -class _Tracking_fullScanLRT( _Settings ): - def __init__( self ): - _Settings.__init__(self) +class _ConfigSettings_tauLRT( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "tauLRT" + self._suffix = "TauLRT" + self._roi = "HLT_Roi_TauCore" + self._pTmin = 0.8*GeV + self._etaHalfWidth = 0.4 + self._phiHalfWidth = 0.4 + self._doTRT = True + self._UsePixelSpacePoints = False + self._Triplet_D0Max = 300. + self._TrackInitialD0Max = 300. + self._TrackZ0Max = 500. + self._isLRT = True + + +class _ConfigSettings_bjetLRT( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "bjetLRT" + self._suffix = "BjetLRT" + self._roi = "HLT_Roi_Bjet" + self._etaHalfWidth = 0.4 + self._phiHalfWidth = 0.4 + self._UsePixelSpacePoints = False + self._Triplet_D0Max = 300. + self._TrackInitialD0Max = 300. + self._TrackZ0Max = 500. + self._isLRT = True + + +class _ConfigSettings_fullScanLRT( _ConfigSettingsBase ): + def __init__( self ): + _ConfigSettingsBase.__init__(self) + self._name = "fullScanLRT" + self._suffix = "FSLRT" + self._roi = "HLT_Roi_FS" + self._doFullScan = True self._etaHalfWidth = 3. self._phiHalfWidth = 3.14159 self._doTRT = False - self._checkRedundantSeeds = True - self._usePixelSP = False - self._d0SeedMax = 300. - self._d0TrackMax = 300. - self._z0TrackMax = 500. - self._d0SeedPPSMax = 300. - self._doFullScan = True - self._isLRT = True - -class _Tracking_bjetLRT(_Settings): - def __init__(self): - _Settings.__init__(self) - self._etaHalfWidth = 0.4 - self._phiHalfWidth = 0.4 - self._doTRT = False - self._usePixelSP = False - self._d0SeedMax = 300. - self._d0TrackMax = 300. - self._z0TrackMax = 500. - self._isLRT = True - -#Map to retrieve available configurations of Tracking -_TrackingConfigSettings = { - "electron" : _Tracking_electron(), - - #Muon signatures - "muon" : _Tracking_muon(), - "muonIso" : _Tracking_muonIso(), - "muonCore" : _Tracking_muonCore(), - - "tau" : _Tracking_tau(), - "tauCore" : _Tracking_tauCore(), - "tauIso" : _Tracking_tauIso(), - - "bjet" : _Tracking_bjet(), - "fullScan" : _Tracking_fullScan(), - "fullScanUTT" : _Tracking_fullScanUTT(), - - "minBias400" : _Tracking_minBias(), - "beamSpot" : _Tracking_beamSpot(), - "cosmics" : _Tracking_cosmic(), - "bphysics" : _Tracking_bphysics(), - - "electronLRT" : _Tracking_electronLRT(), - "muonLRT" : _Tracking_muonLRT(), - "tauLRT" : _Tracking_tauLRT(), - "bjetLRT" : _Tracking_bjetLRT(), - "fullScanLRT" : _Tracking_fullScanLRT(), -} - - -#Function that returns specific configuration of tracking cuts and flags -def getInDetTrigTrackingConfig( name ) : - if name in _TrackingConfigSettings : - return _TrackingConfigSettings[name] - else : - # don't just return None, and do nothing as this - # will just hide the error until people try to use - # the bad slice configuration - raise Exception( "getInDetTrigTrackingConfig() called with incorrect non existent slice: "+name ) - return None - - + self._doSeedRedundancyCheck = True + self._UsePixelSpacePoints = False + self._Triplet_D0Max = 300. + self._TrackInitialD0Max = 300. + self._TrackZ0Max = 500. + self._Triplet_D0_PPS_Max = 300. + self._isLRT = True -# Full Signature Configuration of ID Trig -#----------------------------------------------------------------------------- - -class _FastTracking(): - def __init__( self, signatureType, nameSuffix ) : - self._signatureType = signatureType #Steer which cuts,flags to load - self._config = getInDetTrigTrackingConfig( signatureType ) - self._suffix = nameSuffix - - #Retrieve trackCollection key - @makeRecordable #Allows to record collection if doRecord = True - def trkTracksFTF(self, doRecord=False): - return 'HLT_IDTrkTrack_{}_FTF'.format( self._suffix ) - - #Retrieve TrackParticle key - @makeRecordable #Allows to record collection if doRecord = True - def tracksFTF(self, doRecord = True): - return 'HLT_IDTrack_{}_FTF'.format( self._suffix ) - - #Retrieve TrackParticle key - @property - def setting(self): - return self._config - - def isSignature(self, signature): - return (self._signatureType == signature) - - @property - def signatureType(self): - return self._signatureType - -class _PrecisionTracking(): - def __init__( self, signatureType, nameSuffix ) : - self._signatureType = signatureType #Steer which cuts,flags to load - self._config = getInDetTrigTrackingConfig( signatureType ) #This might not be needed in the future as most likely the setting will be the same between FT and PT - self._suffix = nameSuffix - - #Retrieve final precision trackCollection - @makeRecordable - def trkTracksPT(self, doRecord = False): - return 'HLT_IDTrkTrack_{}_IDTrig'.format( self._suffix ) - - #Retrieve final TrackParticle key - @makeRecordable - def tracksPT(self, doRecord = False): - return 'HLT_IDTrack_{}_IDTrig'.format( self._suffix ) - #Retrieve trackCollection from Ambiguity solving stage - #AS might not be very descriptive, should we switch to AmbiSol at least? - @makeRecordable - def trkTracksAS(self, doRecord = False): - return 'HLT_IDTrkTrack_{}_AmbSol'.format( self._suffix ) - #Retrieve trackCollection from TRT track extension stage - #TE might not be very descriptive, should we switch to TRTExt at least? - @makeRecordable - def trkTracksTE(self, doRecord = False): - return 'HLT_IDTrkTrack_{}_TRTExt'.format( self._suffix ) - #Retrieve TrackParticle key - @property - def setting(self): - return self._config - - def isSignature(self, signature): - return (self._signatureType == signature) - -class _EFIDTracking(): - def __init__( self, signatureType, nameSuffix ) : - self._signatureType = signatureType #Steer which cuts,flags to load - self._config = getInDetTrigTrackingConfig( signatureType ) - self._suffix = nameSuffix - - #Retrieve trackCollection key - @makeRecordable #Allows to record collection if doRecord = True - def trkTracksEFID(self, doRecord=False): - return 'HLT_IDTrkTrack_{}_EFID'.format( self._suffix ) - - #Retrieve TrackParticle key - @makeRecordable #Allows to record collection if doRecord = True - def tracksEFID(self, doRecord = True): - return 'HLT_IDTrack_{}_EFID'.format( self._suffix ) - - @property - def setting(self): - return self._config - - def isSignature(self, signature): - return (self._signatureType == signature) +_ConfigSettings = { + "electron" : _ConfigSettings_electron(), + "Electron" : _ConfigSettings_electron(), - @property - def signatureType(self): - return self._signatureType + "muon" : _ConfigSettings_muon(), + "muonIso" : _ConfigSettings_muonIso(), + "muonCore" : _ConfigSettings_muon(), + "muonFS" : _ConfigSettings_muon(), + "muonLate" : _ConfigSettings_muon(), -class _GlobalSettings() : - def __init__( self ) : - self._name = "" #To be appended to alg names - self._roi = "" - self._configFT = None #Fast tracking configuration - self._configPT = None #Precision tracking configuration - self._doRecord = False #Allow recording of track collections - self._isLRT = False - self._adaptiveVertex = False - self._vertex = None - self._addSingleTrackVertices = False - - - @property - def FT(self): - return self._configFT - - @property - def PT(self): - return self._configPT - - @property - def RoI(self): - return self._roi - - @property - def name(self): - return self._name - - @property - def isRecordable(self): - return self._doRecord - - @property - def isLRT(self): - return self._isLRT - - @property - def adaptiveVertex(self): - return self._adaptiveVertex - - @property - def vertex(self): - return self._vertex - - @property - def addSingleTrackVertices(self): - return self._addSingleTrackVertices - - - -class _Settings_electron( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "electron" #To be appended to alg names - self._roi = "HLT_Roi_Electron" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'electron', nameSuffix = 'Electron' ) - self._configPT = _PrecisionTracking( signatureType = 'electron', nameSuffix = 'Electron' ) - self._doRecord = True #Allow recording of track collections + "Muon" : _ConfigSettings_muon(), + "MuonIso" : _ConfigSettings_muonIso(), + "MuonCore" : _ConfigSettings_muon(), + "MuonFS" : _ConfigSettings_muon(), + "MuonLate" : _ConfigSettings_muon(), + "tau" : _ConfigSettings_tau(), + "tauTau" : _ConfigSettings_tau(), + "tauCore" : _ConfigSettings_tauCore(), + "tauIso" : _ConfigSettings_tauIso(), + "tauIsoBDT" : _ConfigSettings_tauIso(), -class _Settings_muon( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muon" #To be appended to alg names - self._roi = "HLT_Roi_Muon" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muon', nameSuffix = 'Muon' ) - self._configPT = _PrecisionTracking( signatureType = 'muon', nameSuffix = 'Muon' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_muonIso( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muonIso" #To be appended to alg names - self._roi = "HLT_Roi_MuonIso" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muonIso', nameSuffix = 'MuonIso' ) - self._configPT = _PrecisionTracking( signatureType = 'muonIso', nameSuffix = 'MuonIso' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_muonLate( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muonLate" #To be appended to alg names - self._roi = "HLT_Roi_Muon" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muon', nameSuffix = 'MuonLate' ) - self._configPT = _PrecisionTracking( signatureType = 'muon', nameSuffix = 'MuonLate' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_muonFS( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muonFS" #To be appended to alg names - self._roi = "HLT_Roi_Muon" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muon', nameSuffix = 'MuonFS' ) - self._configPT = _PrecisionTracking( signatureType = 'muon', nameSuffix = 'MuonFS' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_muonCore( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muonCore" #To be appended to alg names - self._roi = "HLT_Roi_Muon" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muonCore', nameSuffix = 'MuonCore' ) - self._configPT = _PrecisionTracking( signatureType = 'muonCore', nameSuffix = 'MuonCore' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_tauTau( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "tauTau" #To be appended to alg names - self._roi = "HLT_Roi_Tau" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'tau', nameSuffix = 'Tau' ) - #There should not be a need for tauCore PT! - self._configPT = _PrecisionTracking( signatureType = 'tau', nameSuffix = 'Tau' ) - self._doRecord = True #Allow recording of track collections - self._vertex = "HLT_IDVertex_Tau" - self._adaptiveVertexing = True - -class _Settings_tauCore( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "tauCore" #To be appended to alg names - self._roi = "HLT_Roi_TauCore" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'tauCore', nameSuffix = 'TauCore' ) - #There should not be a need for tauCore PT! - #self._configPT = #_PrecisionTracking( signatureType = 'tauCore', nameSuffix = 'TauCore' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_tauIso( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "tauIso" #To be appended to alg names - self._roi = "RoiForTauIso" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'tauIso', nameSuffix = 'TauIso' ) - self._configPT = _PrecisionTracking( signatureType = 'tauIso', nameSuffix = 'Tau' ) #Final collection is being renamed to just tau apparently... - self._doRecord = True #Allow recording of track collections - self._vertex = "HLT_IDVertex_Tau" - self._adaptiveVertex = True - self._addSingleTrackVertices = True + "bjet" : _ConfigSettings_bjet(), + "Bjet" : _ConfigSettings_bjet(), -#This might be redundant but lets keep them for the time being... -class _Settings_tauIsoBDT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "tauIsoBDT" #To be appended to alg names - self._roi = "HLT_Roi_TauIsoBDT" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'tauIso', nameSuffix = 'TauIso' ) # - self._configPT = _PrecisionTracking( signatureType = 'tauIso', nameSuffix = 'Tau' ) #Final collection is being renamed to just tau apparently... - self._doRecord = False #FIXME: Do I need to record these? - self._vertex = "HLT_IDVertex_Tau" - self._adaptiveVertexing = True + "jet" : _ConfigSettings_fullScan(), + # "jet" : _ConfigSettings_bjet(), + "fullScan" : _ConfigSettings_fullScan(), + "FS" : _ConfigSettings_fullScan(), + "beamSpot" : _ConfigSettings_beamSpot(), + "BeamSpot" : _ConfigSettings_beamSpot(), + "beamSpotFS" : _ConfigSettings_beamSpotFS(), -class _Settings_bjet( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "bjet" #To be appended to alg names - self._roi = "HLT_Roi_Bjet" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'bjet', nameSuffix = 'Bjet' ) - self._configPT = _PrecisionTracking( signatureType = 'bjet', nameSuffix = 'Bjet' ) - self._doRecord = True - -class _Settings_jet( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "jet" #To be appended to alg names - self._roi = "HLT_Roi_jetFS" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'fullScan', nameSuffix = 'FS' ) # - self._configPT = _PrecisionTracking( signatureType = 'fullScan', nameSuffix = 'FS' ) #Final collection is being renamed to just tau apparently... - self._doRecord = True - self._vertex = "HLT_IDVertex_FS" - self._adaptiveVertex = False - -class _Settings_minBias( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "minBias" #To be appended to alg names - self._roi = "HLT_Roi_MinBias" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'minBias400', nameSuffix = 'MinBias' ) # - self._configPT = _PrecisionTracking( signatureType = 'minBias400', nameSuffix = 'MinBias' ) #Final collection is being renamed to just tau apparently... - self._doRecord = True - -class _Settings_beamSpot( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "beamSpot" #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'beamSpot', nameSuffix = 'BeamSpot' ) # - #PT probably isn't necessary for BS - #self._configPT = _PrecisionTracking( signatureType = 'beamSpot', nameSuffix = 'BeamSpot' ) #Final collection is being renamed to just tau apparently... - self._doRecord = False - -class _Settings_fullScan( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "fullScan" #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'fullScan', nameSuffix = 'FS' ) # - self._doRecord = False - -class _Settings_fullScanCustomName( _GlobalSettings ): - def __init__( self, name ): - _GlobalSettings.__init__(self) - self._name = name #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME: possibly different! - self._configFT = _FastTracking( signatureType = 'fullScan', nameSuffix = 'FS' ) # - self._doRecord = False - -class _Settings_fullScanPreLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "fullScanPreLRT" #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME: possibly different! - self._configFT = _FastTracking( signatureType = 'fullScan', nameSuffix = 'FS' ) # - self._doRecord = False + "cosmics" : _ConfigSettings_cosmics(), + "bmumux" : _ConfigSettings_bmumux(), + "bphysics" : _ConfigSettings_bmumux(), + "minBias" : _ConfigSettings_minBias(), + "electronLRT" : _ConfigSettings_electronLRT(), + "muonLRT" : _ConfigSettings_muonLRT(), + "tauLRT" : _ConfigSettings_tauLRT(), + "bjetLRT" : _ConfigSettings_bjetLRT(), + "fullScanLRT" : _ConfigSettings_fullScanLRT(), + "fullScanPreLRT" : _ConfigSettings_fullScanPreLRT() } -class _Settings_fullScanUTT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "fullScanUTT" #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME: possibly different! - self._configFT = _FastTracking( signatureType = 'fullScanUTT', nameSuffix = 'FS' ) # - self._doRecord = False + -class _Settings_cosmics( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "cosmics" #To be appended to alg names - self._roi = "HLT_Roi_Cosmics" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'cosmics', nameSuffix = 'Cosmic' ) - self._configPT = _PrecisionTracking( signatureType = 'cosmics', nameSuffix = 'Cosmic' ) - self._configEFID = _EFIDTracking( signatureType = 'cosmics', nameSuffix = 'Cosmic' ) - self._doRecord = True - -class _Settings_bmumux( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "bmumux" #To be appended to alg names - self._roi = "HLT_Roi_Bmumux" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'bphysics', nameSuffix = 'Bmumux' ) - self._configPT = _PrecisionTracking( signatureType = 'bphysics', nameSuffix = 'Bmumux' ) - self._doRecord = True #Allow recording of track collections - -class _Settings_electronLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "electronLRT" #To be appended to alg names - self._roi = "HLT_Roi_Electron" - self._configFT = _FastTracking( signatureType = 'electronLRT', nameSuffix = 'ElectronLRT' ) - self._configPT = _PrecisionTracking( signatureType = 'electronLRT', nameSuffix = 'Electron' ) - self._doRecord = True #Allow recording of track collections - self._isLRT = True - -class _Settings_muonLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "muonLRT" #To be appended to alg names - self._roi = "HLT_Roi_Muon" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'muonLRT', nameSuffix = 'MuonLRT' ) - self._configPT = _PrecisionTracking( signatureType = 'muonLRT', nameSuffix = 'Muon' ) - self._doRecord = True #Allow recording of track collections - self._isLRT = True - -class _Settings_tauLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "tauLRT" #To be appended to alg names - self._roi = "HLT_Roi_TauCore" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'tauLRT', nameSuffix = 'TauLRT' ) - #There should not be a need for tauCore PT! - #self._configPT = #_PrecisionTracking( signatureType = 'tauCore', nameSuffix = 'TauCore' ) - self._doRecord = True #Allow recording of track collections - self._isLRT = True - -class _Settings_bjetLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "bjetLRT" #To be appended to alg names - self._roi = "HLT_Roi_Bjet" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'bjetLRT', nameSuffix = 'BjetLRT' ) - self._configPT = _PrecisionTracking( signatureType = 'bjetLRT', nameSuffix = 'BjetLRT' ) - self._isLRT = True - self._doRecord = True - -class _Settings_fullScanLRT( _GlobalSettings ): - def __init__( self ): - _GlobalSettings.__init__(self) - self._name = "fullScanLRT" #To be appended to alg names - self._roi = "HLT_Roi_FS" #FIXME ATR-22755 - self._configFT = _FastTracking( signatureType = 'fullScanLRT', nameSuffix = 'FSLRT' ) # - self._doRecord = True #record track collections - self._isLRT = True -_ConfigSettings = { - "electron" : _Settings_electron(), - - "muon" : _Settings_muon(), - "muonIso" : _Settings_muonIso(), - "muonCore" : _Settings_muonCore(), - "muonFS" : _Settings_muonFS(), - "muonLate" : _Settings_muonLate(), - - "tauTau" : _Settings_tauTau(), - "tauCore" : _Settings_tauCore(), - "tauIso" : _Settings_tauIso(), - "tauIsoBDT" : _Settings_tauIsoBDT(), - - "bjet" : _Settings_bjet(), - "jet" : _Settings_jet(), - - "fullScan" : _Settings_fullScan(), - "fullScanPreLRT": _Settings_fullScanPreLRT(), - - "beamSpot" : _Settings_beamSpot(), - "beamSpotFS" : _Settings_fullScanCustomName("beamSpotFS"), - "cosmics" : _Settings_cosmics(), - "bmumux" : _Settings_bmumux(), - "minBias" : _Settings_minBias(), - - "electronLRT" : _Settings_electronLRT(), - "muonLRT" : _Settings_muonLRT(), - "tauLRT" : _Settings_tauLRT(), - "bjetLRT" : _Settings_bjetLRT(), - "fullScanLRT" : _Settings_fullScanLRT(), - } - -#FTF Remap which eventually will be dropped once naming is aligned with signature settings -remap = { - "FS" : "fullScan", - "BeamSpot" : "beamSpot", -} - -def remap_type( signature ): - if signature in remap: - return remap[signature] - else: - return signature - - - -#Function that returns specific signature setting/configuration -#Rename to InDetTrigSignatureConfig ? -def getInDetTrigConfig( name ): -#Most of the remapping has been removed, should we also replace FS & BeamSpot? - rName = remap_type( name ) - if rName in _ConfigSettings : - return _ConfigSettings[rName] - else : - # don't just return None, and do nothing as this - # will just hide the error until people try to use - # the bad slice configuration - raise Exception( "getInDetTrigConfig() called with incorrect non existent slice: "+rName ) - return None diff --git a/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py new file mode 100644 index 0000000000000000000000000000000000000000..4613fe24e886d599da4eeb8e2a53bd8f836e96b4 --- /dev/null +++ b/Trigger/TrigTools/TrigInDetConfig/python/ConfigSettingsBase.py @@ -0,0 +1,264 @@ +# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration + +__author__ = "Mark Sutton, Matous Vozak" +__doc__ = "ConfigSettingsBase" + + + + +from TrigEDMConfig.TriggerEDMRun3 import recordable +from AthenaCommon.SystemOfUnits import GeV + +class _ConfigSettingsBase() : + def __init__( self ) : + # default values + self._input_name = None + self._name = None + self._suffix = None + self._pTmin = 1.*GeV + self._TripletDoPPS = True + self._Triplet_D0Max = 4.0 + self._Triplet_D0_PPS_Max = 1.7 + self._DoPhiFiltering = True + self._doZFinder = False + self._doZFinderOnly = False + self._doResMon = False + self._doCloneRemoval = True + self._doSeedRedundancyCheck = False + self._DoubletDR_Max = 270 + self._SeedRadBinWidth = 2 + self._holeSearch_FTF = False + self._etaHalfWidth = 0.1 + self._phiHalfWidth = 0.1 + self._doFullScan = False + self._monPS = 1 + self._monPtMin = 1*GeV + self._doTRT = False #Apply TRT extension sequence after ambiguity solving + self._keepTrackParameters = False #Keep track parameters in conversion to TrackParticles + self._UsePixelSpacePoints = True + self._TrackInitialD0Max = 20.0 + self._TrackZ0Max = 300.0 + self._isLRT = False + self._roi = None + self._isLRT = False + self._doRecord = True + self._adaptiveVertex = False + self._vertex = None + self._adaptiveVertex_jet = False + self._vertex_jet = None + self._addSingleTrackVertices = False + + def tracks_FTF(self): + if self._suffix is None: + raise Exception( "ID Trigger configuration: called with non existent slice: ", self._name, self._input_name ) + if self._doRecord: + return recordable('HLT_IDTrack_{}_FTF'.format( self._suffix )) + else: + return 'HLT_IDTrack_{}_FTF'.format( self._suffix ) + + def tracks_IDTrig(self): + if self._doRecord: + return recordable('HLT_IDTrack_{}_IDTrig'.format( self._suffix )) + else: + return 'HLT_IDTrack_{}_IDTrig'.format( self._suffix ) + + + def trkTracks_FTF(self): + return 'HLT_IDTrkTrack_{}_FTF'.format( self._suffix ) + + def trkTracks_IDTrig(self): + return 'HLT_IDTrkTrack_{}_IDTrig'.format( self._suffix ) + + def tracks_EFID(self): + if self._doRecord: + return recordable('HLT_IDTrack_{}_EFID'.format( self._suffix )) + else: + return 'HLT_IDTrack_{}_EFID'.format( self._suffix ) + + def trkTracks_EFID(self): + return 'HLT_IDTrkTrack_{}_EFID'.format( self._suffix ) + + + @property + def name(self): + return self._name + + @property + def input_name(self): + return self._input_name + + @property + def suffix(self): + return self._suffix + + @property + def pTmin(self): + return self._pTmin + + @property + def TripletDoPPS(self): + return self._TripletDoPPS + + @property + def Triplet_D0Max(self): + return self._Triplet_D0Max + + @property + def Triplet_D0_PPS_Max(self): + return self._Triplet_D0_PPS_Max + + @property + def DoPhiFiltering(self): + return self._DoPhiFiltering + + @property + def doZFinder(self): + return self._doZFinder + + @property + def doZFinderOnly(self): + return self._doZFinderOnly + + @property + def doResMon(self): + return self._doResMon + + @property + def doCloneRemoval(self): + return self._doCloneRemoval + + @property + def doSeedRedundancyCheck(self): + return self._doSeedRedundancyCheck + + @property + def DoubletDR_Max(self): + return self._DoubletDR_Max + + @property + def SeedRadBinWidth(self): + return self._SeedRadBinWidth + + @property + def etaHalfWidth(self): + return self._etaHalfWidth + + @property + def phiHalfWidth(self): + return self._phiHalfWidth + + @property + def doFullScan(self): + return self._doFullScan + + @property + def monPS(self): + return self._monPS + + @property + def monPtMin(self): + return self._monPtMin + + @property + def doTRT(self): + return self._doTRT + + @property + def keepTrackParameters(self): + return self._keepTrackParameters + + @property + def UsePixelSpacePoints(self): + return self._UsePixelSpacePoints + + @property + def TrackInitialD0Max(self): + return self._TrackInitialD0Max + + @property + def holeSearch_FTF(self): + return self._holeSearch_FTF + + @property + def TrackZ0Max(self): + return self._TrackZ0Max + + @property + def isLRT(self): + return self._isLRT + + @property + def roi(self): + return self._roi + + @property + def isRecordable(self): + return self._doRecord + + @property + def doRecord(self): + return self._doRecord + + @property + def vertex(self): + if self._vertex is None: + raise Exception( "ID Trigger configuration: vertex not defined for slice: ", self._name, self._input_name ) + if self._doRecord: + return recordable(self._vertex) + else: + return self._vertex + + @property + def vertex_jet(self): + if self._vertex_jet is None: + raise Exception( "ID Trigger configuration: vertex_jet not defined for slice: ", self._name, self._input_name ) + if self._doRecord: + return recordable(self._vertex_jet) + else: + return self._vertex_jet + + @property + def adaptiveVertex(self): + return self._adaptiveVertex + + @property + def addSingleTrackVertices(self): + return self._addSingleTrackVertices + + + def printout(self): + from AthenaCommon.Logging import logging + log = logging.getLogger("InDetTrigConfig: ") + + log.info( " {} :".format( self._name ) ) # noqa: ATL901 + log.info( " {} :".format( self._input_name ) ) # noqa: ATL901 + log.info( " pTmin : {}".format( self._pTmin ) ) # noqa: ATL901 + log.info( " TripletDoPPS : {}".format( self._TripletD0PPS ) ) # noqa: ATL901 + log.info( " Triplet_D0Max : {}".format( self._Triplet_D0Max ) ) # noqa: ATL901 + log.info( " Triplet_D0_PPS_Max : {}".format( self._Triplet_D0_PPS_Max ) ) # noqa: ATL901 + log.info( " doZFinder : {}".format( self._doZFinder ) ) # noqa: ATL901 + log.info( " doResMon : {}".format( self._doResMon ) ) # noqa: ATL901 + log.info( " DoPhiFiltering : {}".format( self._DoPhiFiltering ) ) # noqa: ATL901 + log.info( " doCloneRemoval : {}".format( self._doCloneRemoval ) ) # noqa: ATL901 + log.info( " doSeedRedundancyCheck : {}".format( self._doSeedRedundancyCheck ) ) # noqa: ATL901 + log.info( " DoubletDR_Max : {}".format( self._DoubletDR_Max ) ) # noqa: ATL901 + log.info( " SeedRadBinWidth : {}".format( self._SeedRadBinWidth ) ) # noqa: ATL901 + log.info( " etaHalfWidth : {}".format( self._etaHalfWidth ) ) # noqa: ATL901 + log.info( " phiHalfWidth : {}".format( self._phiHalfWidth ) ) # noqa: ATL901 + log.info( " doFullScan : {}".format( self._doFullScan ) ) # noqa: ATL901 + log.info( " monPS : {}".format( self._monPS ) ) # noqa: ATL901 + log.info( " monPtMin : {}".format( self._monPtMin ) ) # noqa: ATL901 + log.info( " doTRT : {}".format( self._doTRT ) ) + log.info( " keepTrackParameters : {}".format( self._keepTrackParameters ) ) + log.info( " UsePixelSpacePoints : {}".format( self._UsePixelSpacePoints ) ) + log.info( " TrackInitialD0Max : {}".format( self._TrackInitialD0Max ) ) + log.info( " TrackZ0Max : {}".format( self._TrackZ0Max ) ) + log.info( " adaptiveVertex : {}".format( self._adaptiveVertex ) ) + log.info( " isLRT : {}".format( self._isLRT ) ) + log.info( " doJseedHitDV : {}".format( self._doJseedHitDV ) ) + log.info( " nClustersMin : {}".format( self._nClustersMin ) ) + log.info( " useBremModel : {}".format( self._useBremModel ) ) + log.info( " suffix : {}".format( self._suffix ) ) + log.info( " record : {}".format( self._record ) ) + log.info( " Roi : {}".format( self._Roi ) ) + log.info( " addSingleTrackVertices: {}".format( self._addSingleTrackVertices ) ) diff --git a/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py b/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py index 8e5f068c0c18a5cca28681a71b3a44be1a12730c..510f73c468ec41a0be33b973a2e438ff92dac00e 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/EFIDTracking.py @@ -84,7 +84,7 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier' ): dataVerifier = None if verifier: - dataVerifier = get_idtrig_view_verifier(verifier+config.name) + dataVerifier = get_idtrig_view_verifier(verifier+config.input_name) viewAlgs.append( dataVerifier ) #FIXME: eventually adapt the cuts in the configsetting ATR-22755 @@ -153,12 +153,12 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier' ): from .InDetTrigCommon import siSPSeededTrackFinder_builder, get_full_name - siSPSeededTrackFinder = siSPSeededTrackFinder_builder( name = get_full_name( 'siSPSeededTrackFinder', config.name ), + siSPSeededTrackFinder = siSPSeededTrackFinder_builder( name = get_full_name( 'siSPSeededTrackFinder', config.input_name ), config = config, - outputTracks = config.PT.trkTracksPT(), + outputTracks = config.trkTracks_IDTrig(), trackingCuts = trackingCuts, usePrdAssociationTool = usePrdAssociationTool, - nameSuffix = config.name ) + nameSuffix = config.input_name ) viewAlgs.append( siSPSeededTrackFinder ) @@ -170,8 +170,8 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier' ): #from .InDetTrigCommon import trackParticleCnv_builder #trackParticleCnvAlg = trackParticleCnv_builder(name = get_full_name( 'xAODParticleCreatorAlg',config.name + '_EFID' ), # config = config, - # inTrackCollectionKey = config.PT.trkTracksPT(),#config.EFID.trkTracksEFID(), - # outTrackParticlesKey = config.EFID.tracksEFID( doRecord = config.isRecordable), + # inTrackCollectionKey = config.trkTracks_IDTrig(), + # outTrackParticlesKey = config.tracks_EFID(), # ) #----------------------------------------------------------------------------- @@ -180,7 +180,7 @@ def makeInDetPatternRecognition( config, verifier = 'IDTrigViewDataVerifier' ): #Verifier should not be necessary when both patt. rec. and PT runs in the same view -> None #Also provides particle cnv alg inside precisionAlgs = ambiguitySolverForIDPatternRecognition(config = config, - inputTracks = config.PT.trkTracksPT(), + inputTracks = config.trkTracks_IDTrig(), verifier = None ) @@ -205,18 +205,18 @@ def ambiguitySolverForIDPatternRecognition( config, inputTracks,verifier = None # Ambiguity solving stage from .InDetTrigCommon import ambiguityScoreAlg_builder, ambiguitySolverAlg_builder, get_full_name, get_scoremap_name - ambiguityScoreAlg = ambiguityScoreAlg_builder( name = get_full_name( core = 'TrkAmbiguityScore', suffix = config.name ), + ambiguityScoreAlg = ambiguityScoreAlg_builder( name = get_full_name( core = 'TrkAmbiguityScore', suffix = config.input_name ), config = config, inputTrackCollection = inputTracks, - outputTrackScoreMap = get_scoremap_name( config.name ), #Map of tracks and their scores + outputTrackScoreMap = get_scoremap_name( config.input_name ), #Map of tracks and their scores ) ptAlgs.append( ambiguityScoreAlg ) #FIXME: these alg internally don't expect EFID setting (but FTF), have to take into consideration - ambiguitySolverAlg = ambiguitySolverAlg_builder( name = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.name ), + ambiguitySolverAlg = ambiguitySolverAlg_builder( name = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.input_name ), config = config, - inputTrackScoreMap = get_scoremap_name( config.name ), #Map of tracks and their scores, - outputTrackCollection = config.PT.trkTracksPT()+"_Amb" ) #FIXME: for now keep PT but if TRT added this will ahve to become intermediate collection + inputTrackScoreMap = get_scoremap_name( config.input_name ), #Map of tracks and their scores, + outputTrackCollection = config.trkTracks_IDTrig()+"_Amb" ) #FIXME: for now keep PT but if TRT added this will ahve to become intermediate collection ptAlgs.append( ambiguitySolverAlg ) @@ -225,8 +225,8 @@ def ambiguitySolverForIDPatternRecognition( config, inputTracks,verifier = None from .InDetTrigCommon import trackParticleCnv_builder trackParticleCnvAlg = trackParticleCnv_builder(name = get_full_name( 'xAODParticleCreatorAlg',config.name + '_IDTrig' ), config = config, - inTrackCollectionKey = config.PT.trkTracksPT()+"_Amb", - outTrackParticlesKey = config.PT.tracksPT( doRecord = config.isRecordable), + inTrackCollectionKey = config.trkTracks_IDTrig()+"_Amb", + outTrackParticlesKey = config.tracks_IDTrig(), ) ptAlgs.append( trackParticleCnvAlg ) diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py index 3d289dbc5005dead242873969053240ec07f0ac9..5428ba12a3b09bef1a5cd00e19469edc2a3fcfcf 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetPT.py @@ -24,16 +24,16 @@ def makeInDetPrecisionTracking( config = None, #----------------------------------------------------------------------------- # Naming conventions - doTRT = config.PT.setting.doTRT + doTRT = config.doTRT algNamePrefix = "InDetTrigMT" #Add suffix to the algorithms - signature = "_{}".format( config.name ) + signature = "_{}".format( config.input_name ) #Name settings for output Tracks/TrackParticles - outTrkTracks = config.PT.trkTracksPT() #Final output Track collection - outTrackParticles = config.PT.tracksPT( doRecord = config.isRecordable ) #Final output xAOD::TrackParticle collection - ambiTrackCollection = config.PT.trkTracksAS() #Ambiguity solver tracks + outTrkTracks = config.trkTracks_IDTrig() #Final output Track collection + outTrackParticles = config.tracks_IDTrig() #Final output xAOD::TrackParticle collection + ambiTrackCollection = config.trkTracks_IDTrig()+"_Amb" #Ambiguity solver tracks #Atm there are mainly two output track collections one from ambiguity solver stage and one from trt, #we want to have the output name of the track collection the same whether TRT was run or not, @@ -49,7 +49,7 @@ def makeInDetPrecisionTracking( config = None, #NOTE: this seems necessary only when PT is called from a different view than FTF otherwise causes stalls if verifier: verifier.DataObjects += [( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+' + TrigPixelKeys.PixelClusterAmbiguitiesMap ), - ( 'TrackCollection' , 'StoreGateSvc+' + config.FT.trkTracksFTF() )] + ( 'TrackCollection' , 'StoreGateSvc+' + config.trkTracks_FTF() )] from AthenaCommon.AppMgr import ToolSvc @@ -84,15 +84,15 @@ def makeInDetPrecisionTracking( config = None, # Ambiguity solving stage from .InDetTrigCommon import ambiguityScoreAlg_builder, ambiguitySolverAlg_builder, get_full_name, get_scoremap_name ambSolvingStageAlgs = [ - ambiguityScoreAlg_builder( name = get_full_name( core = 'TrkAmbiguityScore', suffix = config.name ), + ambiguityScoreAlg_builder( name = get_full_name( core = 'TrkAmbiguityScore', suffix = config.input_name ), config = config, - inputTrackCollection = config.FT.trkTracksFTF(), - outputTrackScoreMap = get_scoremap_name( config.name ), #Map of tracks and their scores + inputTrackCollection = config.trkTracks_FTF(), + outputTrackScoreMap = get_scoremap_name( config.input_name ), #Map of tracks and their scores ), - ambiguitySolverAlg_builder( name = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.name ), + ambiguitySolverAlg_builder( name = get_full_name( core = 'TrkAmbiguitySolver', suffix = config.input_name ), config = config, - inputTrackScoreMap = get_scoremap_name( config.name ), #Map of tracks and their scores, + inputTrackScoreMap = get_scoremap_name( config.input_name ), #Map of tracks and their scores, outputTrackCollection = ambiTrackCollection ) ] @@ -147,15 +147,14 @@ def makeInDetPrecisionTracking( config = None, from InDetTrigRecExample.InDetTrigCommonTools import InDetTrigTRT_DriftCircleTool - #from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings from InDetPrepRawDataFormation.InDetPrepRawDataFormationConf import InDet__TRT_RIO_Maker InDetTrigTRTRIOMaker = InDet__TRT_RIO_Maker( name = "%sTRTDriftCircleMaker%s"%(algNamePrefix, signature), TRTRIOLocation = TrigTRTKeys.DriftCircles, TRTRDOLocation = TRT_RDO_Key, #FIXME: - #EtaHalfWidth = InDetTrigSliceSettings[('etaHalfWidth',signature)], - #PhiHalfWidth = InDetTrigSliceSettings[('phiHalfWidth',signature)], - #doFullScan = InDetTrigSliceSettings[('doFullScan',signature)], + # EtaHalfWidth = config.etaHalfWidth + # PhiHalfWidth = config.phiHalfWidth + # doFullScan = configdoFullScan TRT_DriftCircleTool = InDetTrigTRT_DriftCircleTool ) InDetTrigTRTRIOMaker.isRoI_Seeded = True InDetTrigTRTRIOMaker.RoIs = rois @@ -252,7 +251,7 @@ def makeInDetPrecisionTracking( config = None, DriftCircleCutTool = InDetTrigTRTDriftCircleCut, ) - InDetTrigExtScoringTool.minPt = config.PT.setting.pTmin + InDetTrigExtScoringTool.minPt = config.pTmin ToolSvc += InDetTrigExtScoringTool @@ -283,7 +282,7 @@ def makeInDetPrecisionTracking( config = None, # # from .InDetTrigCommon import trackParticleCnv_builder - trackParticleCnvAlg = trackParticleCnv_builder(name = get_full_name( 'xAODParticleCreatorAlg',config.name + '_IDTrig' ), #IDTrig suffix signifies that this is for precision tracking + trackParticleCnvAlg = trackParticleCnv_builder(name = get_full_name( 'xAODParticleCreatorAlg',config.input_name + '_IDTrig' ), #IDTrig suffix signifies that this is for precision tracking config = config, inTrackCollectionKey = outTrkTracks, outTrackParticlesKey = outTrackParticles, diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py index 17b314032cc4d44d557eceeaefa87fd73361f3c6..5ca8c5732e54c8bb90540f0c56262f1500e00509 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetSetup.py @@ -20,7 +20,7 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie if config is None : raise ValueError('makeInDetAlgs() No config provided!') #Add suffix to the algorithms - signature = '_{}'.format( config.name ) + signature = '_{}'.format( config.input_name ) #Global keys/names for Trigger collections from .InDetTrigCollectionKeys import TrigPixelKeys, TrigSCTKeys @@ -45,7 +45,7 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie ( 'IDCInDetBSErrContainer_Cache' , InDetCacheNames.SCTFlaggedCondCacheKey ), ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), ( 'TagInfo' , 'DetectorStore+ProcessingTags' )] - if doFTF and config.FT.signatureType == 'fullScanUTT' : + if doFTF and config.name == 'fullScanUTT' : ViewDataVerifier.DataObjects += [ ( 'DataVector< LVL1::RecJetRoI >' , 'StoreGateSvc+HLT_RecJETRoIs' ) ] @@ -301,72 +301,57 @@ def makeInDetAlgs( config = None, rois = 'EMViewRoIs', doFTF = True, viewVerifie #FIXME have a flag for now set for True( as most cases call FTF) but potentially separate #do not add if the config is LRT if doFTF: - #Load signature configuration (containing cut values, names of collections, etc) - #from .InDetTrigConfigSettings import getInDetTrigConfig - #configSetting = getInDetTrigConfig( whichSignature ) + if config is None: raise ValueError('makeInDetAlgs() No signature config specified') from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinderBase #TODO: eventually adapt IDTrigConfig also in FTF configuration (pass as additional param) - theFTF = TrigFastTrackFinderBase("TrigFastTrackFinder_" + signature, config.FT.signatureType, + theFTF = TrigFastTrackFinderBase("TrigFastTrackFinder_" + signature, config.input_name, conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged ) theFTF.RoIs = rois - theFTF.TracksName = config.FT.trkTracksFTF() - theFTF.doCloneRemoval = config.FT.setting.doCloneRemoval - if config.FT.signatureType == 'fullScanUTT' : - theFTF.RecJetRoI = "HLT_RecJETRoIs" - theFTF.HitDVSeed = "HLT_HitDVSeed" - theFTF.HitDVTrk = "HLT_HitDVTrk" - theFTF.HitDVSP = "HLT_HitDVSP" - theFTF.dEdxTrk = "HLT_dEdxTrk" - theFTF.dEdxHit = "HLT_dEdxHit" - viewAlgs.append(theFTF) - - from TrigInDetConf.TrigInDetPostTools import InDetTrigParticleCreatorToolFTF - from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT - - - - theTrackParticleCreatorAlg = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature, - TrackName = config.FT.trkTracksFTF(), - ParticleCreatorTool = InDetTrigParticleCreatorToolFTF) - - - #In general all FTF trackParticle collections are recordable except beamspot to save space - theTrackParticleCreatorAlg.TrackParticlesName = config.FT.tracksFTF( doRecord = config.isRecordable ) - - viewAlgs.append(theTrackParticleCreatorAlg) - - if secondStageConfig is not None: - #have been supplied with a second stage config, create another instance of FTF - theFTF2 = TrigFastTrackFinderBase("TrigFastTrackFinder_" + secondStageConfig.name, secondStageConfig.FT.signatureType, - conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged ) - theFTF2.RoIs = rois - theFTF2.TracksName = secondStageConfig.FT.trkTracksFTF() - theFTF2.inputTracksName = config.FT.trkTracksFTF() - theFTF2.doCloneRemoval = secondStageConfig.FT.setting.doCloneRemoval - - viewAlgs.append(theFTF2) - + if not config.doZFinderOnly: from TrigInDetConf.TrigInDetPostTools import InDetTrigParticleCreatorToolFTF from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT - - - theTrackParticleCreatorAlg2 = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg_" + secondStageConfig.FT.signatureType, - TrackName = secondStageConfig.FT.trkTracksFTF(), + theTrackParticleCreatorAlg = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature, + TrackName = config.trkTracks_FTF(), ParticleCreatorTool = InDetTrigParticleCreatorToolFTF) - #In general all FTF trackParticle collections are recordable except beamspot to save space - theTrackParticleCreatorAlg2.TrackParticlesName = secondStageConfig.FT.tracksFTF( doRecord = secondStageConfig.isRecordable ) - - viewAlgs.append(theTrackParticleCreatorAlg2) + theTrackParticleCreatorAlg.TrackParticlesName = config.tracks_FTF() + + viewAlgs.append(theTrackParticleCreatorAlg) + + if secondStageConfig is not None: + #have been supplied with a second stage config, create another instance of FTF + theFTF2 = TrigFastTrackFinderBase("TrigFastTrackFinder_" + secondStageConfig.input_name, secondStageConfig.input_name, + conditionsTool = InDetSCT_ConditionsSummaryToolWithoutFlagged ) + theFTF2.RoIs = rois + theFTF2.inputTracksName = config.trkTracks_FTF() + + + viewAlgs.append(theFTF2) + + + from TrigInDetConf.TrigInDetPostTools import InDetTrigParticleCreatorToolFTF + from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT + + + + theTrackParticleCreatorAlg2 = InDet__TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg_" + secondStageConfig.input_name, + TrackName = secondStageConfig.trkTracks_FTF(), + ParticleCreatorTool = InDetTrigParticleCreatorToolFTF) + + + #In general all FTF trackParticle collections are recordable except beamspot to save space + theTrackParticleCreatorAlg2.TrackParticlesName = secondStageConfig.tracks_FTF() + + viewAlgs.append(theTrackParticleCreatorAlg2) return viewAlgs, ViewDataVerifier diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py index 049f1be1cb055c1fede2a65a498142a665c20bd8..985ead1cd772af5ade93e0bf160af2a51a5c4101 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py @@ -60,8 +60,8 @@ def trackParticleCreatorTool_builder(name, config): """Tool with functionality to convert Trk:Tracks into xAOD::TrackParticles""" from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool return Trk__TrackParticleCreatorTool(name = name, - KeepParameters = config.PT.setting.keepTrackParameters, - TrackSummaryTool = trackSummaryTool_getter( config.PT.setting.doTRT ) ) + KeepParameters = config.keepTrackParameters, + TrackSummaryTool = trackSummaryTool_getter( config.doTRT ) ) @makePublicTool @@ -102,10 +102,10 @@ def getTrackingSuffix( name ): def trackParticleCnv_builder(name, config, inTrackCollectionKey, outTrackParticlesKey ): """Alg that stages conversion of Trk::TrackCollection into xAOD::TrackParticle container""" - trackParticleCreatorTool = trackParticleCreatorTool_builder( name = get_full_name( 'TrackParticleCreatorTool',config.name), + trackParticleCreatorTool = trackParticleCreatorTool_builder( name = get_full_name( 'TrackParticleCreatorTool',config.input_name), config = config ) - trackCollectionCnvTool = trackCollectionCnvTool_builder( name = get_full_name( 'xAODTrackCollectionCnvTool',config.name), + trackCollectionCnvTool = trackCollectionCnvTool_builder( name = get_full_name( 'xAODTrackCollectionCnvTool',config.input_name), trackParticleCreatorTool = trackParticleCreatorTool, config = config ) @@ -119,7 +119,7 @@ def trackParticleCnv_builder(name, config, inTrackCollectionKey, outTrackParticl TrackParticleCreator = trackParticleCreatorTool, #Add track monitoring DoMonitoring = True, - TrackMonTool = trackMonitoringTool_builder( config.name + getTrackingSuffix(name) ), + TrackMonTool = trackMonitoringTool_builder( config.input_name + getTrackingSuffix(name) ), # Properties below are used for obsolete: Rec:TrackParticle, aod -> xAOD::TrackParticle (Turn off) ConvertTrackParticles = False, # Retrieve of Rec:TrackParticle, don't need this atm xAODContainerName = '', @@ -159,9 +159,9 @@ def ambiguityScoringTool_builder(name, config): kwargs = setDefaults( kwargs, Extrapolator = InDetTrigExtrapolator, DriftCircleCutTool = InDetTrigTRTDriftCircleCut, - SummaryTool = trackSummaryTool_getter( config.PT.setting.doTRT ), + SummaryTool = trackSummaryTool_getter( config.doTRT ), #to have a steeper turn-n curve - minPt = config.PT.setting.pTmin, #TODO: double check values, implement 0.95 for MinBias? #InDetTrigCutValues.minPT(), #config.pTmin(), + minPt = config.pTmin, #TODO: double check values, implement 0.95 for MinBias? #InDetTrigCutValues.minPT(), #config.pTmin(), maxRPhiImp = InDetTrigCutValues.maxPrimaryImpact(), maxZImp = InDetTrigCutValues.maxZImpact(), maxEta = InDetTrigCutValues.maxEta(), @@ -179,7 +179,7 @@ def ambiguityScoringTool_builder(name, config): ) #Change some of the parameters in case of beamgas signature - if config.PT.isSignature('beamgas'): + if config.name == 'beamgas': from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCutsBeamGas kwargs = setDefaults( kwargs, minPt = EFIDTrackingCutsBeamGas.minPT(), @@ -275,12 +275,12 @@ def ambiguityProcessorTool_builder( name, config): #Set/Get subtools #trackFitterTool = trackFitterTool_getter(config), - scoringTool = ambiguityScoringTool_getter( name = get_full_name( 'AmbiguityScoringTool',config.name), + scoringTool = ambiguityScoringTool_getter( name = get_full_name( 'AmbiguityScoringTool',config.input_name), config = config) associationTool = associationTool_getter() - trackSummaryTool = trackSummaryTool_getter( config.PT.setting.doTRT ) + trackSummaryTool = trackSummaryTool_getter( config.doTRT ) trackSelectionTool = trackSelectionTool_getter(config) @@ -317,7 +317,7 @@ from TrkAmbiguitySolver.TrkAmbiguitySolverConf import Trk__TrkAmbiguitySolver def ambiguitySolverAlg_builder(name, config, inputTrackScoreMap, outputTrackCollection): #Set/Get subtools - ambiguityProcessor = ambiguityProcessorTool_builder( name = get_full_name( 'AmbiguityProcessor', config.name), + ambiguityProcessor = ambiguityProcessorTool_builder( name = get_full_name( 'AmbiguityProcessor', config.input_name), config = config ) return Trk__TrkAmbiguitySolver( name = name, @@ -336,7 +336,7 @@ def ambiguityScoreProcessorTool_builder( name, config): #----------------------- #Set/Get subtools - scoringTool = ambiguityScoringTool_getter( name = get_full_name( 'AmbiguityScoringTool',config.name ), + scoringTool = ambiguityScoringTool_getter( name = get_full_name( 'AmbiguityScoringTool',config.input_name ), config = config) associationTool = associationTool_getter() @@ -359,7 +359,7 @@ def ambiguityScoreAlg_builder(name, config, inputTrackCollection, outputTrackSco #----------------------- #Disable processor, see: https://gitlab.cern.ch/atlas/athena/-/merge_requests/36431 #Set/Get subtools - #ambiguityScoreProcessor = ambiguityScoreProcessorTool_builder( name = get_full_name( 'AmbiguityScoreProcessorTool', config.name()), + #ambiguityScoreProcessor = ambiguityScoreProcessorTool_builder( name = get_full_name( 'AmbiguityScoreProcessorTool', config.input_name()), # config = config ) return Trk__TrkAmbiguityScore( name = name, diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py index 407f002da6ef2711a443ffd6bef8e9dd45947f78..258036ee16899353f266b31ac73228c29cb43b4b 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py @@ -4,7 +4,6 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory -from TrigEDMConfig.TriggerEDMRun3 import recordable from InDetRecExample.InDetKeys import InDetKeys @@ -563,9 +562,6 @@ def spacePointsMakingCfg(flags, signature): return acc -def __trackCollName(signatureName): - return "HLT_IDTrkTrack_"+signatureName+"_FTF" - def ftfCfg(flags, roisKey, signature, signatureName): acc = ComponentAccumulator() @@ -579,6 +575,7 @@ def ftfCfg(flags, roisKey, signature, signatureName): pixRegSelTool = acc.popToolsAndMerge( regSelTool_Pixel_Cfg( flags) ) sctRegSelTool = acc.popToolsAndMerge( regSelTool_SCT_Cfg( flags) ) + from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg acc.merge( TrackingGeometrySvcCfg( flags ) ) acc.addPublicTool( CompFactory.TrigL2LayerNumberTool( name = "TrigL2LayerNumberTool_FTF", @@ -601,6 +598,9 @@ def ftfCfg(flags, roisKey, signature, signatureName): ReadKey = "PixelDetectorElementCollection", WriteKey = "PixelDetElementBoundaryLinks_xk") ) + from TrigInDetConfig.ConfigSettings import getInDetTrigConfig + config = getInDetTrigConfig(signatureName) + ftf = CompFactory.TrigFastTrackFinder( name = "TrigFastTrackFinder_" + signature, LayerNumberTool = acc.getPublicTool( "TrigL2LayerNumberTool_FTF" ), SpacePointProviderTool = acc.getPublicTool( "TrigSpacePointConversionTool" + signature ), @@ -613,7 +613,7 @@ def ftfCfg(flags, roisKey, signature, signatureName): doZFinder = False, SeedRadBinWidth = flags.InDet.Tracking.seedRadBinWidth, TrackInitialD0Max = 1000. if flags.InDet.Tracking.extension == 'cosmics' else 20.0, - TracksName = __trackCollName(signatureName), + TracksName = config.trkTracks_FTF(), TripletDoPSS = False, Triplet_D0Max = flags.InDet.Tracking.d0SeedMax, Triplet_D0_PPS_Max = flags.InDet.Tracking.d0SeedPPSMax, @@ -648,6 +648,9 @@ def TrigTrackToVertexCfg(flags, name = 'TrigTrackToVertexTool', **kwargs ): def trackConverterCfg(flags, signature, signatureName): acc = ComponentAccumulator() + from TrigInDetConfig.ConfigSettings import getInDetTrigConfig + config = getInDetTrigConfig(signatureName) + acc.merge( TrackSummaryToolCfg(flags, name="InDetTrigFastTrackSummaryTool") ) track_to_vertex = acc.popToolsAndMerge( TrigTrackToVertexCfg(flags) ) creatorTool = CompFactory.Trk.TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolFTF", @@ -658,8 +661,8 @@ def trackConverterCfg(flags, signature, signatureName): ExtraSummaryTypes = ['eProbabilityComb', 'eProbabilityHT', 'TRTTrackOccupancy', 'TRTdEdx', 'TRTdEdxUsedHits']) acc.addPublicTool(creatorTool) trackParticleCnv=CompFactory.InDet.TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature, - TrackName = __trackCollName(signatureName), - TrackParticlesName = recordable("HLT_IDTrack_"+signatureName+"_FTF"), + TrackName = config.trkTracks_FTF(), + TrackParticlesName = config.tracks_FTF(), ParticleCreatorTool = creatorTool) acc.addEventAlgo(trackParticleCnv) diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py index 8371b1f3229b6eb9ce9024bf8b331985e9be8f9f..08d48f813cadaa7607d6f78897c9b7c50ecd673a 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetPriVtxConfig.py @@ -317,7 +317,7 @@ def adaptiveMultiVertexFinderTool_builder( signature ) : from InDetPriVxFinderTool.InDetPriVxFinderToolConf import InDet__InDetAdaptiveMultiPriVxFinderTool from TrigInDetConfig.ConfigSettings import getInDetTrigConfig - singleTrackVertices= getInDetTrigConfig( signature ).addSingleTrackVertices + singleTrackVertices = getInDetTrigConfig( signature ).addSingleTrackVertices vertexFinderTool = InDet__InDetAdaptiveMultiPriVxFinderTool(name = "InDetTrigAdaptiveMultiPriVxFinderTool" + signature, diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref index 4867a23e0987fd484d556125855c771cc9e696f4..86a0d0bb0536820f8402350d1310da21fb2917aa 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref @@ -157,7 +157,7 @@ HLT_2j35_ftf_bmv2c1060_split_3j35_ftf_0eta320_L15J15p0ETA25: stepFeatures: 0: 4 1: 51 - 2: 8 + 2: 9 HLT_2j35_ftf_bmv2c1070_split_2j35_ftf_bmv2c1085_split_L14J15p0ETA25: eventCount: 5 stepCounts: @@ -167,37 +167,37 @@ HLT_2j35_ftf_bmv2c1070_split_2j35_ftf_bmv2c1085_split_L14J15p0ETA25: stepFeatures: 0: 6 1: 81 - 2: 37 + 2: 36 HLT_2j35_pf_ftf_bdl1r60_split_3j35_pf_ftf_0eta320_L15J15p0ETA25: - eventCount: 1 + eventCount: 2 stepCounts: 0: 4 1: 2 - 2: 1 + 2: 2 stepFeatures: 0: 4 1: 33 - 2: 3 + 2: 6 HLT_2j35_pf_ftf_bdl1r70_split_2j35_pf_ftf_bdl1r85_split_L14J15p0ETA25: - eventCount: 2 + eventCount: 3 stepCounts: 0: 6 1: 3 - 2: 2 + 2: 3 stepFeatures: 0: 6 1: 48 - 2: 24 + 2: 26 HLT_2j45_ftf_bmv2c1050_split_2j45_ftf_0eta320_L14J15p0ETA25: - eventCount: 3 + eventCount: 4 stepCounts: 0: 6 1: 4 - 2: 3 + 2: 4 stepFeatures: 0: 6 1: 54 - 2: 9 + 2: 10 HLT_2j45_ftf_bmv2c1060_split_3j45_ftf_0eta320_L15J15p0ETA25: eventCount: 2 stepCounts: @@ -207,17 +207,17 @@ HLT_2j45_ftf_bmv2c1060_split_3j45_ftf_0eta320_L15J15p0ETA25: stepFeatures: 0: 4 1: 30 - 2: 5 + 2: 6 HLT_2j45_pf_ftf_bdl1r60_split_3j45_pf_ftf_0eta320_L15J15p0ETA25: - eventCount: 1 + eventCount: 2 stepCounts: 0: 4 1: 2 - 2: 1 + 2: 2 stepFeatures: 0: 4 1: 30 - 2: 3 + 2: 5 HLT_2j55_ftf_bmv2c1060_split_2j55_ftf_0eta320_L14J15p0ETA25: eventCount: 2 stepCounts: @@ -227,7 +227,7 @@ HLT_2j55_ftf_bmv2c1060_split_2j55_ftf_0eta320_L14J15p0ETA25: stepFeatures: 0: 6 1: 27 - 2: 7 + 2: 5 HLT_2j55_pf_ftf_bdl1r60_split_2j55_pf_ftf_0eta320_L14J15p0ETA25: eventCount: 2 stepCounts: @@ -237,7 +237,7 @@ HLT_2j55_pf_ftf_bdl1r60_split_2j55_pf_ftf_0eta320_L14J15p0ETA25: stepFeatures: 0: 6 1: 27 - 2: 5 + 2: 6 HLT_2j60_L1J15: eventCount: 0 HLT_2mu10_bJpsimumu_L12MU10: @@ -549,7 +549,7 @@ HLT_3j35_ftf_bmv2c1070_split_j35_ftf_0eta320_L14J15p0ETA25: stepFeatures: 0: 6 1: 81 - 2: 15 + 2: 14 HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25: eventCount: 3 stepCounts: @@ -559,7 +559,7 @@ HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25: stepFeatures: 0: 6 1: 48 - 2: 11 + 2: 12 HLT_3j65_ftf_bmv2c1077_split_L1J20: eventCount: 3 stepCounts: @@ -569,17 +569,17 @@ HLT_3j65_ftf_bmv2c1077_split_L1J20: stepFeatures: 0: 19 1: 14 - 2: 13 + 2: 12 HLT_3j65_pf_ftf_bdl1r77_split_L1J20: - eventCount: 2 + eventCount: 3 stepCounts: 0: 19 1: 4 - 2: 2 + 2: 3 stepFeatures: 0: 19 1: 15 - 2: 11 + 2: 13 HLT_3mu4_bJpsi_L13MU4: eventCount: 0 HLT_3mu4_bPhi_L13MU4: @@ -611,25 +611,25 @@ HLT_4j120_subresjesgscIS_ftf_L13J50: stepFeatures: 0: 1 HLT_4j35_ftf_bmv2c1077_split_L1J20: - eventCount: 2 + eventCount: 1 stepCounts: 0: 19 1: 13 - 2: 2 + 2: 1 stepFeatures: 0: 19 1: 68 - 2: 33 + 2: 31 HLT_4j35_pf_ftf_bdl1r77_split_L1J20: - eventCount: 1 + eventCount: 2 stepCounts: 0: 19 1: 8 - 2: 1 + 2: 2 stepFeatures: 0: 19 1: 39 - 2: 20 + 2: 21 HLT_4mu4_L14MU4: eventCount: 0 HLT_4mu4_bDimu6000_L14MU4: @@ -709,29 +709,29 @@ HLT_6j25_ftf_0eta240_L14J15: 0: 9 1: 85 HLT_6j25_pf_ftf_0eta240_010jvt_L14J15: - eventCount: 4 + eventCount: 5 stepCounts: 0: 9 - 1: 4 + 1: 5 stepFeatures: 0: 9 - 1: 30 + 1: 34 HLT_6j25_pf_ftf_0eta240_020jvt_L14J15: - eventCount: 4 + eventCount: 3 stepCounts: 0: 9 - 1: 4 + 1: 3 stepFeatures: 0: 9 - 1: 29 + 1: 22 HLT_6j25_pf_ftf_0eta240_050jvt_L14J15: - eventCount: 4 + eventCount: 3 stepCounts: 0: 9 - 1: 4 + 1: 3 stepFeatures: 0: 9 - 1: 27 + 1: 21 HLT_6j25_pf_ftf_0eta240_L14J15: eventCount: 5 stepCounts: @@ -739,7 +739,7 @@ HLT_6j25_pf_ftf_0eta240_L14J15: 1: 5 stepFeatures: 0: 9 - 1: 37 + 1: 35 HLT_6j35_0eta240_L14J15: eventCount: 1 stepCounts: @@ -2386,15 +2386,15 @@ HLT_j0_fbdjshared_L1J20: HLT_j0_perf_L1J12_EMPTY: eventCount: 0 HLT_j110_subjesgscIS_ftf_bdl1r60_split_j45_subjesgscIS_ftf_bdl1r70_split_L1J50: - eventCount: 2 + eventCount: 3 stepCounts: 0: 14 1: 6 - 2: 2 + 2: 3 stepFeatures: 0: 14 1: 53 - 2: 13 + 2: 18 HLT_j110_subjesgscIS_ftf_j45_subjesgscIS_ftf_L1J50: eventCount: 6 stepCounts: @@ -2412,15 +2412,15 @@ HLT_j150_ftf_0eta320_2j55_ftf_bmv2c1070_split_L1J85_3J30: stepFeatures: 0: 3 HLT_j150_pf_ftf_0eta320_2j55_pf_ftf_bdl1r70_split_L1J85_3J30: - eventCount: 2 + eventCount: 1 stepCounts: 0: 3 - 1: 2 - 2: 2 + 1: 1 + 2: 1 stepFeatures: 0: 3 - 1: 16 - 2: 5 + 1: 7 + 2: 3 HLT_j150_subresjesgscIS_ftf_2j55_subresjesgscIS_ftf_L1J85_3J30: eventCount: 0 stepCounts: @@ -2590,7 +2590,7 @@ HLT_j45_pf_ftf_010jvt_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 56 + 1: 57 HLT_j45_pf_ftf_020jvt_L1J15: eventCount: 19 stepCounts: @@ -2598,7 +2598,7 @@ HLT_j45_pf_ftf_020jvt_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 56 + 1: 57 HLT_j45_pf_ftf_050jvt_L1J15: eventCount: 19 stepCounts: @@ -2606,7 +2606,7 @@ HLT_j45_pf_ftf_050jvt_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 54 + 1: 55 HLT_j45_pf_ftf_L1J15: eventCount: 19 stepCounts: @@ -2614,7 +2614,7 @@ HLT_j45_pf_ftf_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 57 + 1: 58 HLT_j45_pf_ftf_preselj20_L1J15: eventCount: 19 stepCounts: @@ -2622,7 +2622,7 @@ HLT_j45_pf_ftf_preselj20_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 57 + 1: 58 HLT_j45_pf_nojcalib_ftf_L1J15: eventCount: 18 stepCounts: @@ -2640,15 +2640,15 @@ HLT_j45_pf_subjesgscIS_ftf_L1J15: 0: 20 1: 51 HLT_j45_pf_subjesgscIS_ftf_bdl1r70_split_L1J20: - eventCount: 10 + eventCount: 11 stepCounts: 0: 19 1: 18 - 2: 10 + 2: 11 stepFeatures: 0: 19 1: 48 - 2: 22 + 2: 25 HLT_j45_pf_subjesgscIS_ftf_boffperf_split_L1J20: eventCount: 18 stepCounts: @@ -2674,7 +2674,7 @@ HLT_j45_pf_subresjesgsc_ftf_L1J15: 1: 19 stepFeatures: 0: 20 - 1: 57 + 1: 58 HLT_j45_sk_nojcalib_L1J15: eventCount: 15 stepCounts: @@ -2722,15 +2722,15 @@ HLT_j45_subjesgscIS_ftf_L1J15: 0: 20 1: 47 HLT_j45_subjesgscIS_ftf_bdl1r70_split_L1J20: - eventCount: 9 + eventCount: 10 stepCounts: 0: 19 1: 19 - 2: 9 + 2: 10 stepFeatures: 0: 19 1: 46 - 2: 18 + 2: 22 HLT_j45_subjesgscIS_ftf_bmv2c1070_split_L1J20: eventCount: 14 stepCounts: @@ -2740,7 +2740,7 @@ HLT_j45_subjesgscIS_ftf_bmv2c1070_split_L1J20: stepFeatures: 0: 19 1: 46 - 2: 27 + 2: 26 HLT_j45_subjesgscIS_ftf_boffperf_split_L1J20: eventCount: 19 stepCounts: @@ -2928,7 +2928,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1J45p0ETA21_3J15p0ETA25: 1: 6 stepFeatures: 0: 7 - 1: 215 + 1: 218 HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU10_2J15_J20: eventCount: 5 stepCounts: @@ -2936,7 +2936,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU10_2J15_J20: 1: 5 stepFeatures: 0: 8 - 1: 218 + 1: 210 HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU20: eventCount: 5 stepCounts: @@ -2944,7 +2944,7 @@ HLT_j80_pf_ftf_j55_pf_ftf_j28_pf_ftf_j20_pf_ftf_L1MU20: 1: 5 stepFeatures: 0: 8 - 1: 218 + 1: 210 HLT_j85_050momemfrac100SEPmomhecfrac010_L1J20: eventCount: 9 stepCounts: @@ -4588,21 +4588,21 @@ HLT_xe110_mht_L1XE50: stepFeatures: 0: 6 HLT_xe110_pfsum_L1XE50: - eventCount: 5 + eventCount: 4 stepCounts: 0: 10 - 1: 5 + 1: 4 stepFeatures: 0: 10 - 1: 5 + 1: 4 HLT_xe110_pfsum_cssk_L1XE50: - eventCount: 3 + eventCount: 2 stepCounts: 0: 10 - 1: 3 + 1: 2 stepFeatures: 0: 10 - 1: 3 + 1: 2 HLT_xe110_pfsum_vssk_L1XE50: eventCount: 3 stepCounts: diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref index 3982d2553a513e7ddc2be5d6ecc017a0de579513..ffb87de9253685e00f284d293ee2d40f8a452e87 100644 --- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref +++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref @@ -264,6 +264,7 @@ HLT_3j35_ftf_bmv2c1070_split_j35_ftf_0eta320_L14J15p0ETA25: stepFeatures: 0: 20 1: 11 + 2: 1 HLT_3j35_pf_ftf_bdl1r70_split_j35_pf_ftf_0eta320_L14J15p0ETA25: eventCount: 0 stepCounts: @@ -1376,13 +1377,13 @@ HLT_j45_pf_nojcalib_ftf_L1J15: 0: 7 1: 4 HLT_j45_pf_subjesgscIS_ftf_L1J15: - eventCount: 7 + eventCount: 6 stepCounts: 0: 7 - 1: 7 + 1: 6 stepFeatures: 0: 7 - 1: 7 + 1: 6 HLT_j45_pf_subjesgscIS_ftf_bdl1r70_split_L1J20: eventCount: 0 stepCounts: @@ -1402,13 +1403,13 @@ HLT_j45_pf_subjesgscIS_ftf_boffperf_split_L1J20: 1: 5 2: 5 HLT_j45_pf_subjesgsc_ftf_L1J15: - eventCount: 7 + eventCount: 6 stepCounts: 0: 7 - 1: 7 + 1: 6 stepFeatures: 0: 7 - 1: 7 + 1: 6 HLT_j45_pf_subresjesgsc_ftf_L1J15: eventCount: 7 stepCounts: diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py index 2720e72a95eba9e4c132214d8f33e09dca6761bb..814598b767b0b9cc2bc400cb10b4844a12fc7b9e 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py @@ -211,20 +211,12 @@ TriggerHLTListRun3 = [ # Muon # Id track particles - ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCombViewRoIs'), + ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCombViewRoIs,MUCBFSViews,MUEFLATEViewRoIs'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Muon_FTFAux.', 'BS ESD AODFULL', 'Muon'), - ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLRT_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCombLRTViewRoIs'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLRT_FTFAux.', 'BS ESD AODFULL', 'Muon'), - - ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_IDTrig', 'BS ESD AODFULL AODSLIM', 'Muon', 'inViews:MUEFCBViewRoIs'), + ('xAOD::TrackParticleContainer#HLT_IDTrack_Muon_IDTrig', 'BS ESD AODFULL AODSLIM', 'Muon', 'inViews:MUEFCBViewRoIs,MUCBFSViews,MUEFLATEViewRoIs'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Muon_IDTrigAux.', 'BS ESD AODFULL AODSLIM', 'Muon'), - ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_FTFAux.', 'BS ESD AODFULL', 'Muon'), - - ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_IDTrig', 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_IDTrigAux.', 'BS ESD AODFULL', 'Muon'), ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonIso_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFIsoViewRoIs'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonIso_FTFAux.', 'BS ESD AODFULL', 'Muon'), @@ -232,12 +224,27 @@ TriggerHLTListRun3 = [ ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonIso_IDTrig', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFIsoViewRoIs'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonIso_IDTrigAux.', 'BS ESD AODFULL', 'Muon'), - ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_FTFAux.', 'BS ESD AODFULL', 'Muon'), + ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLRT_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCombLRTViewRoIs'), + ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLRT_FTFAux.', 'BS ESD AODFULL', 'Muon'), + + +# These extra muon collections have all be removed now, as they all have identical +# reconstruction as the standard Muon collections so unique collections names should +# not be needed. Once we are sure that there are no affected clients these commented +# collections can be removed + +# ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'), +# ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_FTFAux.', 'BS ESD AODFULL', 'Muon'), + +# ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonFS_IDTrig', 'BS ESD AODFULL', 'Muon', 'inViews:MUCBFSViews'), +# ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonFS_IDTrigAux.', 'BS ESD AODFULL', 'Muon'), + +# ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_FTF', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'), +# ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_FTFAux.', 'BS ESD AODFULL', 'Muon'), - ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_IDTrig', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_IDTrigAux.', 'BS ESD AODFULL', 'Muon'), +# ('xAOD::TrackParticleContainer#HLT_IDTrack_MuonLate_IDTrig', 'BS ESD AODFULL', 'Muon', 'inViews:MUEFLATEViewRoIs'), +# ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MuonLate_IDTrigAux.', 'BS ESD AODFULL', 'Muon'), # Bphysics Dimuon chains @@ -580,11 +587,6 @@ TriggerHLTListRun3 = [ ('xAOD::TrackParticleContainer#HLT_IDTrack_Cosmic_IDTrig', 'BS ESD AODFULL', 'Cosmic'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Cosmic_IDTrigAux.', 'BS ESD AODFULL', 'Cosmic'), - # ID - # Requested by TrigUpgradeTest/IDCalo.py - # what are these ??? - ('xAOD::TrackParticleContainer#HLT_IDTrack', 'BS ESD AODFULL', 'ID'), - ('xAOD::TrackParticleAuxContainer#HLT_IDTrackAux.', 'BS ESD AODFULL', 'ID'), ('ROIB::RoIBResult#*', 'ESD', 'Misc'), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py index 5ad3b0f0d02e13438b76a216b61547a3696718a6..ede1b85b91abaa4c65277472299757616788dfb0 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/BeamspotChainConfiguration.py @@ -45,7 +45,7 @@ def allTE_trkfast( signature="FS" ): viewAlgs, viewVerify = makeInDetAlgs( config = IDTrigConfig, rois=inputMakerAlg.InViewRoIs) vertexAlg = T2VertexBeamSpot_activeAllTE( "vertex_"+signature ) - vertexAlg.TrackCollection = IDTrigConfig.FT.trkTracksFTF() + vertexAlg.TrackCollection = IDTrigConfig.trkTracks_FTF() viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+beamspotViewRoI_'+signature ), ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py index b9d5b83ef4b0f5bfd882c86a616243ed376cace1..112ba553331239356e281463efdff4e4f03a3a3c 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py @@ -23,7 +23,7 @@ def JetTrackingSequence(dummyFlags,trkopt,RoIs): from TrigInDetConfig.InDetSetup import makeInDetAlgsNoView viewAlgs = makeInDetAlgsNoView( config = IDTrigConfig, rois=RoIs) jetTrkSeq += viewAlgs - tracksname = IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) + tracksname = IDTrigConfig.tracks_FTF() if IDTrigConfig.vertex is not None: verticesname = recordable(IDTrigConfig.vertex) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py index 1e6ff10965b35fb9b97d8f1b5b2751bd6a26c082..e0d53da27cbde0907b5f7d84fbb91ca76ae15366 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py @@ -32,6 +32,9 @@ from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedInDe from TrigMuonEF.TrigMuonEFConfig_newJO import TrigMuonEFTrackIsolationAlgCfg, MuonFilterAlgCfg, MergeEFMuonsAlgCfg from AthenaCommon.CFElements import seqAND, parOR, seqOR +from TrigInDetConfig.ConfigSettings import getInDetTrigConfig + + import pprint from AthenaCommon.Logging import logging log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Muon.generateMuon' ) @@ -41,6 +44,7 @@ def fakeHypoAlgCfg(flags, name="FakeHypoForMuon"): return HLTTest__TestHypoAlg( name, Input="" ) def EFMuonCBViewDataVerifierCfg(name): + config = getInDetTrigConfig( "muon" ) EFMuonCBViewDataVerifier = CompFactory.AthViews.ViewDataVerifier("VDVEFCBMuon_"+name) EFMuonCBViewDataVerifier.DataObjects = [( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ), ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_Measurements' ), @@ -53,7 +57,7 @@ def EFMuonCBViewDataVerifierCfg(name): EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' )] else: EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates' ), - ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_Muon_FTF' ), + ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+config.tracks_FTF() ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] @@ -389,10 +393,13 @@ def muEFCBStep(flags, chainDict, name='RoI'): #EF combined muons selAccEFCB = SelectionCA("EFCBMuon_"+name) + config = getInDetTrigConfig( "muon" ) + viewName = 'EFMuCBReco_'+name - trackName = "HLT_IDTrack_Muon_FTF" + trackName = config.tracks_FTF() muonCandName = "MuonCandidates" if 'FS' in name: + config = getInDetTrigConfig( "muonFS" ) muonCandName = "MuonCandidates_FS" ViewCreatorCentredOnIParticleROITool=CompFactory.ViewCreatorCentredOnIParticleROITool roiTool = ViewCreatorCentredOnIParticleROITool(RoisWriteHandleKey="MuonCandidates_FS_ROIs") @@ -410,7 +417,7 @@ def muEFCBStep(flags, chainDict, name='RoI'): recoCB = InViewRecoCA("EFMuCBReco_"+name, viewMaker=viewMakerAlg) #ID tracking recoCB.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoCB.inputMaker().InViewRoIs, signatureName="MuonFS" )) - trackName = "HLT_IDTrack_MuonFS_FTF" + trackName = config.tracks_FTF() else: recoCB = InViewRecoCA(viewName) recoCB.inputMaker().RequireParentView = True @@ -488,9 +495,10 @@ def muEFIsoStep(flags, chainDict): ViewNodeName = viewName+"InView") recoIso = InViewRecoCA("EFMuIsoReco", viewMaker=viewMakerAlg) #ID tracking + config = getInDetTrigConfig( "muonIso" ) recoIso.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoIso.inputMaker().InViewRoIs, signatureName="MuonIso" )) recoIso.mergeReco(MuIsoViewDataVerifierCfg()) - recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles="HLT_IDTrack_MuonIso_FTF", MuonEFContainer="InViewIsoMuons", ptcone02Name="InViewIsoMuons.ptcone02", ptcone03Name="InViewIsoMuons.ptcone03")) + recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles=config.tracks_FTF(), MuonEFContainer="InViewIsoMuons", ptcone02Name="InViewIsoMuons.ptcone02", ptcone03Name="InViewIsoMuons.ptcone03")) selAccEFIso.mergeReco(recoIso) efmuIsoHypo = efMuIsoHypoCfg( flags, diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py index d65bc0d0cd2455c0997b8cb38e5cb6312a270d94..c898c70df752c2581a8b93f53e344ba02cd51616 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py @@ -244,10 +244,10 @@ def preSelSequence( RoIs, name): tauPreSelSequence += ViewVerifyPreSel if "TrackInView" in name: - tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.FT.tracksFTF(), step = "Track") + tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_FTF(), step = "Track") ViewVerifyPreSel.DataObjects += [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_Tau_FTF' )] if "TrackTwo" in name: - tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.FT.tracksFTF(), step = "TrackTwo") + tauPreselectionAlg = _algoTauPreselection(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_FTF(), step = "TrackTwo") ViewVerifyPreSel.DataObjects += [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+HLT_IDTrack_TauIso_FTF' )] tauPreSelSequence += tauPreselectionAlg @@ -271,24 +271,24 @@ def tauIdSequence( RoIs, name): ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ), ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_dummy' ), ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' ), - ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.PT.tracksPT() )] + ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+IDTrigConfig.tracks_IDTrig() )] tauIdSequence+= ViewVerifyId tauPrecisionAlg = "" if "TrackInView" in name: - tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "Track") + tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "Track") ViewVerifyId.DataObjects += [( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_Presel'), ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_Presel' )] elif "TrackTwo" in name: - tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "TrackTwo") + tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "TrackTwo") ViewVerifyId.DataObjects += [( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_Presel'), ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_Presel' )] elif "EF" in name: - tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "EF") + tauPrecisionAlg = _algoTauPrecision(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "EF") elif "MVA" in name: - tauPrecisionAlg = _algoTauPrecisionMVA(inputRoIs = RoIs, tracks = IDTrigConfig.PT.tracksPT(), step = "PrecisionMVA") + tauPrecisionAlg = _algoTauPrecisionMVA(inputRoIs = RoIs, tracks = IDTrigConfig.tracks_IDTrig(), step = "PrecisionMVA") tauIdSequence += tauPrecisionAlg @@ -304,14 +304,14 @@ def precTrackSequence( RoIs , name): IDTrigConfig = getInDetTrigConfig( signatureNameID ) ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("tauViewDataVerifier_"+signatureName) - ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() ), + ViewVerifyTrk.DataObjects = [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.tracks_FTF() ), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+HLT_TAURoI' ), ( 'xAOD::TauTrackContainer' , 'StoreGateSvc+HLT_tautrack_dummy' ), ( 'xAOD::TauJetContainer' , 'StoreGateSvc+HLT_TrigTauRecMerged_CaloOnly' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData_TRIG' ), - ( 'xAOD::IParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.FT.tracksFTF() )] + ( 'xAOD::IParticleContainer' , 'StoreGateSvc+%s' % IDTrigConfig.tracks_FTF() )] # Make sure the required objects are still available at whole-event level from AthenaCommon.AlgSequence import AlgSequence @@ -336,7 +336,7 @@ def precTrackSequence( RoIs , name): from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices vtxAlg = makeVertices( whichSignature = signatureName, - inputTrackCollection = IDTrigConfig.PT.tracksPT(), + inputTrackCollection = IDTrigConfig.tracks_IDTrig(), outputVtxCollection = IDTrigConfig.vertex, config = IDTrigConfig, adaptiveVertexing = True ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py index f35648ecf45460fff5dc95cacec2f79831ff67aa..f51ba7ff4e8263276d34246b3799b3bbddf8a87d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/FullScanLRTTrackingConfiguration.py @@ -21,7 +21,7 @@ def FullScanLRTTriggerSequence(ConfigFlags): TrkSeq = parOR("UncTrkrecoSeqFSLRT", [im_alg, reco_algs]) - sequenceOut = lrtcfg.FT.tracksFTF( doRecord = lrtcfg.isRecordable ) + sequenceOut = lrtcfg.tracks_FTF() return (TrkSeq,im_alg, sequenceOut) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py index 18da83ea13ea8578d280031eb669fc58318a4cd8..8c73c81c3d2b8dbecf8c2ae3072721e388a91da6 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/UnconventionalTracking/IsoHighPtTrackTriggerConfiguration.py @@ -23,11 +23,11 @@ def FTFTrackSequence(ConfigFlags): from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices verticesname = recordable("HLT_IDVertex_FS") - vtxAlgs = makeVertices( "jet", IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) , verticesname, IDTrigConfig ) + vtxAlgs = makeVertices( "jet", IDTrigConfig.tracks_FTF() , verticesname, IDTrigConfig ) prmVtx = vtxAlgs[-1] TrkSeq = [InputMakerAlg,TrkInputNoViewAlg, prmVtx] - sequenceOut = IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) + sequenceOut = IDTrigConfig.tracks_FTF() return (TrkSeq, InputMakerAlg, sequenceOut) @@ -42,7 +42,7 @@ def IsoHPtTrackTriggerHypoSequence(): # Get sequence name from TrigInDetConfig.ConfigSettings import getInDetTrigConfig IDTrigConfig = getInDetTrigConfig( 'jet' ) - sequenceOut = IDTrigConfig.FT.tracksFTF( doRecord = IDTrigConfig.isRecordable ) + sequenceOut = IDTrigConfig.tracks_FTF() #Setup the hypothesis algorithm theIsoHPtTrackTriggerHypo = TrigIsoHPtTrackTriggerHypoAlgMT("L2IsoHPtTrack")