def get_monitoring_mode(self): self.__logger.info("TrigTauMonToolBuilder.get_monitoring_mode()") self.data_type = dqflags.monManDataType() if self.data_type == 'monteCarlo': self.mc_mode = True return True elif self.data_type == 'collisions': self.pp_mode = True return True elif self.data_type == 'cosmics': self.cosmic_mode = True return True else: return False
def get_monitoring_mode(self): self.data_type = dqflags.monManDataType() if self.data_type == 'monteCarlo': self.mc_mode = True return True elif self.data_type == 'collisions': self.pp_mode = True return True elif self.data_type == 'heavyioncollisions': self.HI_mode = True self.pPb_mode = True return True elif self.data_type == 'cosmics': self.cosmic_mode = True return True else: return False
def get_monitoring_mode(self): log_trigeg.info("TrigEgammaMonToolBuilder.get_monitoring_mode()") self.data_type = dqflags.monManDataType() if self.data_type == 'monteCarlo': self.mc_mode = True return True elif self.data_type == 'collisions': self.pp_mode = True return True elif self.data_type == 'heavyioncollisions': self.HI_mode = True self.pPb_mode = True return True elif self.data_type == 'cosmics': self.cosmic_mode = True return True else: return False
def get_monitoring_mode(self): # Set monitoring mode self.data_type = DQMonFlags.monManDataType() if self.data_type == 'monteCarlo': self.mc_mode = True return True elif self.data_type == 'collisions': #singlebeam is included in collisions self.pp_mode = True return True elif self.data_type == 'heavyioncollisions': #heavy ion is pPb or PbPb self.HI_mode = True return True elif self.data_type == 'cosmics': self.cosmic_mode = True return True else: return False
#SCTMonMan.FileKey = "GLOBAL" #SCTMonMan.ManualDataTypeSetup = True #SCTMonMan.DataType= "monteCarlo" #SCTMonMan.Environment = "user" #SCTMonMan.ManualRunLBSetup = True #SCTMonMan.Run = 1 #SCTMonMan.LumiBlock = 1 #Changed at the insistence of [email protected] #from DataQualityTools.DQMonFlags import DQMonFlags from AthenaMonitoring.DQMonFlags import DQMonFlags SCTMonMan.FileKey = DQMonFlags.monManFileKey() SCTMonMan.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() SCTMonMan.ManualRunLBSetup = DQMonFlags.monManManualRunLBSetup() SCTMonMan.DataType = DQMonFlags.monManDataType() SCTMonMan.Environment = DQMonFlags.monManEnvironment() SCTMonMan.Run = DQMonFlags.monManRun() SCTMonMan.LumiBlock = DQMonFlags.monManLumiBlock() #Currently this takes the latest/default tag of the db #Check with Shaun as to which one we need for first data, and for M6. #twiki somewhere ? #include("SCT_Monitoring/SCT_Monitoring_ConditionsAccess.py") ######################################################################## # Conditions access # These lines were previously in SCT_Monitoring_ConditionsAccess.py ######################################################################## from IOVDbSvc.CondDB import conddb
HLTMonFlags.doJet = True HLTMonFlags.doBjet = True HLTMonFlags.doTau = True HLTMonFlags.doMuon = True HLTMonFlags.doIDtrk = True HLTMonFlags.doCalo = True HLTMonFlags.doBphys = False HLTMonFlags.doMinBias = False #-- setup DQTDataFlow ------------------------------------------------------------------------------ from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager topSequence += AthenaMonManager( "GlobalMonManager" ) ManagedAthenaGlobalMon = topSequence.GlobalMonManager ManagedAthenaGlobalMon.FileKey = "GLOBAL" ManagedAthenaGlobalMon.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() ManagedAthenaGlobalMon.DataType = DQMonFlags.monManDataType() ManagedAthenaGlobalMon.Environment = DQMonFlags.monManEnvironment() from DataQualityTools.DataQualityToolsConf import DQTDataFlowMonTool import os if 'AtlasProject' in os.environ and 'AtlasVersion' in os.environ: releaseString = '%s-%s' % (os.environ['AtlasProject'], os.environ['AtlasVersion']) else: releaseString = 'Unknown' DQTDataFlowMon = DQTDataFlowMonTool(name = 'DQTDataFlowMon', histoPathBase = '/GLOBAL/DQTDataFlow', releaseString = releaseString) #ToolSvc += DQTDataFlowMon #bugfix ATR-20161 ManagedAthenaGlobalMon.AthenaMonTools += [ DQTDataFlowMon ]
doAside = True, # obsolete doCside = True, # obsolete doStraws = True, doChips = True, doShift = True, doDiagnostic = True, # obsolete EventBurstCut = eventBurstCut, # default = 200 DoRDOsMon = True, DoGeoMon = False, DoTracksMon = True, doExpert = athenaCommonFlags.isOnline(), IsCosmics = InDetFlags.doCosmics(), InDetTRT_DAQ_ConditionsSvc = InDetTRT_DAQ_ConditionsSvc, doEfficiency = False, # ME: turn off TRT hole search, it fails Tier-0 every_xth_track = 25, whatdatatype = DQMonFlags.monManDataType(), MinTRTHitCut = 10, max_abs_d0 = 10 * Units.mm, max_abs_z0 = 300 * Units.mm, max_abs_eta = 2.5, MinTrackP = 0.0 * Units.GeV, min_pT = minTrkPtCut, # default = 0.5 GeV min_si_hits = minSiHitCut, # default = 3 min_pixel_hits = minPixHitCut, # default = 1 min_sct_hits = 0, min_trt_hits = 10 ) if jobproperties.Beam.beamType()=='collisions' and hasattr(ToolSvc, 'DQFilledBunchFilterTool'): InDetTRT_Monitoring_Tool.FilterTools.append(monFilledBunchFilterTool)
L1JetEfficienciesMonTool = JetEfficienciesMonTool ( name = "JetEfficienciesMonTool", TriggerStrings = trigstring ) ToolSvc += L1JetEfficienciesMonTool L1CaloManD.AthenaMonTools += [ L1JetEfficienciesMonTool ] if not hasattr( #ToolSvc, "TrigDecisionTool" ): from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool tdt = Trig__TrigDecisionTool('TrigDecisionTool') ToolSvc += tdt #================================================================================= # FileKey must match that given to THistSvc L1CaloMan0A1.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A1.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A1.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A1.DataType = DQMonFlags.monManDataType() L1CaloMan0A2.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A2.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A2.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A2.DataType = DQMonFlags.monManDataType() L1CaloMan0A3.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A3.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A3.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A3.DataType = DQMonFlags.monManDataType() L1CaloMan0A4.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A4.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A4.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A4.DataType = DQMonFlags.monManDataType() # Make sure we run these before RoIBResultToAOD as it also accesses # TriggerTowers and JetElements index = 0
from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() from AthenaMonitoring.DQMonFlags import DQMonFlags if not 'rec' in dir(): from RecExConfig.RecFlags import rec from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager ManagedAthenaTileMon = AthenaMonManager( "ManagedAthenaTileMon" ) #topSequence.ManagedAthenaTileMon from AthenaCommon.AppMgr import ServiceMgr ManagedAthenaTileMon.FileKey = DQMonFlags.monManFileKey() ManagedAthenaTileMon.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() ManagedAthenaTileMon.DataType = DQMonFlags.monManDataType() ManagedAthenaTileMon.Environment = DQMonFlags.monManEnvironment() ManagedAthenaTileMon.ManualRunLBSetup = DQMonFlags.monManManualRunLBSetup() ManagedAthenaTileMon.Run = DQMonFlags.monManRun() ManagedAthenaTileMon.LumiBlock = DQMonFlags.monManLumiBlock() if DQMonFlags.monManEnvironment() == 'tier0Raw': tileRawMon=True tileESDMon=False elif DQMonFlags.monManEnvironment() == 'tier0ESD': tileRawMon=False tileESDMon=True else: # it should be 'tier0' tileRawMon=True tileESDMon=True
# #=============================== Jet Efficiencies ================================ # #================================================================================= # trigstring = ['EF_.*'] # from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import LVL1__JetEfficienciesMonTool # from JetSelectorTools.ConfiguredJetCleaningTools import * # L1JetEfficienciesMonTool = LVL1__JetEfficienciesMonTool ( name = "JetEfficienciesMonTool", # TriggerStrings = trigstring # ) # from AthenaCommon.AppMgr import ToolSvc # ToolSvc += JetCleaningTool('JetCleaningLooseTool') # # ToolSvc += JetCleaningTool('JetCleaningMediumTool') # ToolSvc += JetCleaningTool('JetCleaningTightTool') # L1JetEfficienciesMonTool.JetCleaningLooseTool = ConfiguredJetCleaningTool_Loose("JetCleaningLooseTool") # # L1JetEfficienciesMonTool.JetCleaningMediumTool = ConfiguredJetCleaningTool_Medium("JetCleaningMediumTool") # L1JetEfficienciesMonTool.JetCleaningTightTool = ConfiguredJetCleaningTool_Tight("JetCleaningTightTool") # ToolSvc += L1JetEfficienciesMonTool # L1CaloMan.AthenaMonTools += [ L1JetEfficienciesMonTool ] # if not hasattr( ToolSvc, "TrigDecisionTool" ): # from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool # tdt = Trig__TrigDecisionTool('TrigDecisionTool') # ToolSvc += tdt #================================================================================= # FileKey must match that given to THistSvc L1CaloMan.FileKey = DQMonFlags.monManFileKey() L1CaloMan.Environment = DQMonFlags.monManEnvironment() L1CaloMan.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan.DataType = DQMonFlags.monManDataType() topSequence += L1CaloMan
from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool tdt = Trig__TrigDecisionTool('TrigDecisionTool') ToolSvc += tdt if isData and isCalo and Offline and (rec.triggerStream() == "Egamma" or rec.triggerStream() == "Muons" or rec.triggerStream() == "express"): #================================================================================= #=============================== Jet Efficiencies ================================ #================================================================================= trigstring = ['EF_.*'] from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import JetEfficienciesMonTool L1JetEfficienciesMonTool = JetEfficienciesMonTool ( name = "JetEfficienciesMonTool", TriggerStrings = trigstring ) ToolSvc += L1JetEfficienciesMonTool L1CaloMan.AthenaMonTools += [ L1JetEfficienciesMonTool ] if not hasattr( ToolSvc, "TrigDecisionTool" ): from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool tdt = Trig__TrigDecisionTool('TrigDecisionTool') ToolSvc += tdt #================================================================================= # FileKey must match that given to THistSvc L1CaloMan.FileKey = DQMonFlags.monManFileKey() L1CaloMan.Environment = DQMonFlags.monManEnvironment() L1CaloMan.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan.DataType = DQMonFlags.monManDataType() topSequence += L1CaloMan
def TrigIDPhysValMonitoringTool(): from AthenaCommon.Constants import INFO,ERROR,FALSE,TRUE,DEBUG,VERBOSE # dataTypes: userDefined = 0, monteCarlo, collisions, cosmics if not 'DQMonFlags' in dir(): from AthenaMonitoring.DQMonFlags import DQMonFlags dataType = DQMonFlags.monManDataType() if not 'rec' in dir(): from RecExConfig.RecFlags import rec outputlist = [] if rec.doInDet: from TrigInDetAnalysisExample.TrigInDetAnalysisExampleConf import TrigTestPhysValMon from AthenaCommon.AppMgr import release_metadata d = release_metadata() def makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic = False): Monname = "TestIDPhysValMon" + name TestIDPhysValMon = TrigTestPhysValMon(name=Monname) TestIDPhysValMon.SliceTag = "HLT/IDMon/" + name TestIDPhysValMon.OutputLevel = INFO TestIDPhysValMon.UseHighestPT = useHighestPT try: TestIDPhysValMon.EnableLumi = False except: pass TestIDPhysValMon.buildNtuple = False TestIDPhysValMon.AnalysisConfig = "Tier0" #T0 Analysis # TestIDPhysValMon.AnalysisConfig = "nTuple" #nTuple Analysis if (rec.doTruth == True): TestIDPhysValMon.mcTruth = True TestIDPhysValMon.ntupleChainNames = ['Truth'] TestIDPhysValMon.sctHitsOffline = -1 TestIDPhysValMon.pixHitsOffline = -1 if (pdgid != 0): TestIDPhysValMon.SelectTruthPdgId = pdgid elif (cosmic): TestIDPhysValMon.mcTruth = False TestIDPhysValMon.ntupleChainNames = ['Offline'] TestIDPhysValMon.sctHitsOffline = -1 TestIDPhysValMon.pixHitsOffline = -1 else: TestIDPhysValMon.mcTruth = False TestIDPhysValMon.ntupleChainNames = ['Offline',name] # use default values ? # TestIDPhysValMon.sctHitsOffline = 1 # TestIDPhysValMon.pixHitsOffline = 1 TestIDPhysValMon.ntupleChainNames += chainnames TestIDPhysValMon.releaseMetaData = d['nightly name'] + " " + d['nightly release'] + " " + d['date'] + " " + d['platform'] + " " + d['release'] from AthenaCommon.AppMgr import ToolSvc ToolSvc += TestIDPhysValMon Monname = "TrigTestPhysValMon/" + Monname return Monname ############### Electrons ############### name = "Electron" pdgid = 11 useHighestPT = True chainnames = [ "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_IDTrig", "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_FTF" ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )] ############### Muons ############### name = "Muon" pdgid = 13 useHighestPT = True chainnames = [ "HLT_mu.*idperf.*:InDetTrigTrackingxAODCnv_Muon_IDTrig", "HLT_mu.*idperf.*:InDetTrigTrackingxAODCnv_Muon_FTF" ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )] ############### Taus ############### name = "Tau" pdgid = 15 useHighestPT = True chainnames = [ "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_Tau_IDTrig:roi=forID3", "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_Tau_FTF:roi=forID", "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_TauCore_FTF:roi=forID1", "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_TauIso_FTF:roi=forID3" ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )] ############### Bjets ############### name = "Bjet" pdgid = 5 useHighestPT = False chainnames = [ "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=TrigSuperRoi", "HLT_j.*b.*perf_split:InDetTrigTrackingxAODCnv_Bjet_IDTrig", "HLT_j.*b.*perf_split:InDetTrigTrackingxAODCnv_Bjet_FTF", "HLT_mu.*b.*perf_dr05:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=TrigSuperRoi", "HLT_mu.*b.*perf_dr05:InDetTrigTrackingxAODCnv_Bjet_IDTrig", "HLT_mu.*b.*perf_dr05:InDetTrigTrackingxAODCnv_Bjet_FTF" ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )] ############### Bphys ############### name = "Bphys" pdgid = 0 # Doesn't make sense useHighestPT = False chainnames = [ "HLT_.*Bmumux.*:InDetTrigTrackingxAODCnv_Bphysics_IDTrig", "HLT_.*Bmumux.*:InDetTrigTrackingxAODCnv_Bphysics_FTF" ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )] ############### Cosmics ############### name = "Cosmic" useHighestPT = False pdgid = 0 # Not used for cosmic chainnames = [ 'HLT_.*id.*cosmic.*:InDetTrigTrackingxAODCnvIOTRT_CosmicsN_EFID', 'HLT_.*id.*cosmic.*:InDetTrigTrackingxAODCnv_CosmicsN_EFID' ] outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic=True)] return outputlist
#################################################### # # # InDetGlobalManager top algorithm # # # #################################################### if InDetFlags.doMonitoringGlobal() or InDetFlags.doMonitoringPrimaryVertexingEnhanced(): from AthenaMonitoring.DQMonFlags import DQMonFlags from InDetGlobalMonitoring.InDetGlobalMonitoringConf import InDetGlobalManager InDetGlobalManager=InDetGlobalManager( name = "InDetGlobalManager", TRT_DriftCircleName = InDetKeys.TRT_DriftCircles(), FileKey = DQMonFlags.monManFileKey(), ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup(), ManualRunLBSetup = DQMonFlags.monManManualRunLBSetup(), DataType = DQMonFlags.monManDataType(), Environment = DQMonFlags.monManEnvironment(), Run = DQMonFlags.monManRun(), LumiBlock = DQMonFlags.monManLumiBlock(), doTopBottom = True, AthenaMonTools = []) # these are set at the end if InDetFlags.doMonitoringGlobal(): ####################################################### # # # LVL1 & BC ID monitoring - only for real data # # # ####################################################### from InDetGlobalMonitoring.InDetGlobalMonitoringConf import InDetGlobalSynchMonTool InDetGlobalSynchMonTool = InDetGlobalSynchMonTool( name = "InDetGlobalSynchMonTool", histoPathBase = "/GLOBAL", checkRate = 2000)
doAside = True, # obsolete doCside = True, # obsolete doStraws = True, doChips = True, doShift = True, doDiagnostic = True, # obsolete EventBurstCut = eventBurstCut, # default = 200 DoRDOsMon = True, DoGeoMon = False, DoTracksMon = True, doExpert = athenaCommonFlags.isOnline(), IsCosmics = InDetFlags.doCosmics(), InDetTRT_DAQ_ConditionsSvc = InDetTRT_DAQ_ConditionsSvc, doEfficiency = False, # ME: turn off TRT hole search, it fails Tier-0 every_xth_track = 25, whatdatatype = DQMonFlags.monManDataType(), MinTRTHitCut = 10, max_abs_d0 = 10 * Units.mm, max_abs_z0 = 300 * Units.mm, max_abs_eta = 2.5, MinTrackP = 0.0 * Units.GeV, min_pT = minTrkPtCut, # default = 0.5 GeV min_si_hits = minSiHitCut, # default = 1 min_pixel_hits = 0, min_sct_hits = 0, min_trt_hits = 10 ) if jobproperties.Beam.beamType()=='collisions' and hasattr(ToolSvc, 'DQFilledBunchFilterTool'): InDetTRT_Monitoring_Tool.FilterTools.append(monFilledBunchFilterTool)
L1Man1.AthenaMonTools += [L1CaloCTPMonTool] ####################### L1Calo->Level-2 ################################ from TrigT1Monitoring.TrigT1MonitoringConf import LVL1__L1CaloLevel2Mon L1CaloLevel2MonTool = LVL1__L1CaloLevel2Mon(name="L1CaloLevel2MonTool", #OutputLevel = DEBUG, ) #ToolSvc += L1CaloLevel2MonTool L1Man2.AthenaMonTools += [L1CaloLevel2MonTool] ########################################################################## # FileKey must match that given to THistSvc L1Man0A.FileKey = DQMonFlags.monManFileKey() L1Man0A.Environment = DQMonFlags.monManEnvironment() L1Man0A.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1Man0A.DataType = DQMonFlags.monManDataType() L1Man0B.FileKey = DQMonFlags.monManFileKey() L1Man0B.Environment = DQMonFlags.monManEnvironment() L1Man0B.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1Man0B.DataType = DQMonFlags.monManDataType() L1Man0C.FileKey = DQMonFlags.monManFileKey() L1Man0C.Environment = DQMonFlags.monManEnvironment() L1Man0C.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1Man0C.DataType = DQMonFlags.monManDataType() L1Man1.FileKey = DQMonFlags.monManFileKey() L1Man1.Environment = DQMonFlags.monManEnvironment() L1Man1.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1Man1.DataType = DQMonFlags.monManDataType() L1Man2.FileKey = DQMonFlags.monManFileKey() L1Man2.Environment = DQMonFlags.monManEnvironment() L1Man2.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup()
L1JetEfficienciesMonTool = JetEfficienciesMonTool ( name = "JetEfficienciesMonTool", TriggerStrings = trigstring ) ToolSvc += L1JetEfficienciesMonTool L1CaloManD.AthenaMonTools += [ L1JetEfficienciesMonTool ] if not hasattr( ToolSvc, "TrigDecisionTool" ): from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool tdt = Trig__TrigDecisionTool('TrigDecisionTool') ToolSvc += tdt #================================================================================= # FileKey must match that given to THistSvc L1CaloMan0A1.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A1.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A1.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A1.DataType = DQMonFlags.monManDataType() L1CaloMan0A2.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A2.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A2.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A2.DataType = DQMonFlags.monManDataType() L1CaloMan0A3.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A3.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A3.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A3.DataType = DQMonFlags.monManDataType() L1CaloMan0A4.FileKey = DQMonFlags.monManFileKey() L1CaloMan0A4.Environment = DQMonFlags.monManEnvironment() L1CaloMan0A4.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup() L1CaloMan0A4.DataType = DQMonFlags.monManDataType() # Make sure we run these before RoIBResultToAOD as it also accesses # TriggerTowers and JetElements index = 0