diff --git a/Calorimeter/CaloCnv/CaloCondAthenaPool/CMakeLists.txt b/Calorimeter/CaloCnv/CaloCondAthenaPool/CMakeLists.txt index b95ae7934287f63f851c203071163f50949ce47a..437693488aa04500a6446f759cbb5ef018d52177 100644 --- a/Calorimeter/CaloCnv/CaloCondAthenaPool/CMakeLists.txt +++ b/Calorimeter/CaloCnv/CaloCondAthenaPool/CMakeLists.txt @@ -10,6 +10,4 @@ atlas_add_poolcnv_library( CaloCondAthenaPoolPoolCnv TYPES_WITH_NAMESPACE CaloRec::ToolConstants CaloRec::CaloCellFactor CaloRec::CaloCellPositionShift LINK_LIBRARIES CaloConditions CaloTriggerToolLib AthenaKernel GaudiKernel AthenaPoolCnvSvcLib ) -# Install files from the package: -atlas_install_joboptions( share/*.py ) diff --git a/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Read.py b/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Read.py deleted file mode 100755 index a90841e169ccfe4fea09660e3be7d7364f6ec71a..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Read.py +++ /dev/null @@ -1,18 +0,0 @@ -############################################################### -# -# Job options fragment to read LArTTCell map from POOL -# -#============================================================== - -# Calo/LAr related -include( "CaloIdCnv/CaloIdCnv_joboptions.py" ) - -# this lib -theApp.Dlls += [ "CaloCondAthenaPoolPoolCnv" ] - -import AthenaPoolCnvSvc.AthenaPool -from AthenaCommon.AppMgr import ServiceMgr as svcMgr - -svcMgr.ProxyProviderSvc.ProviderNames += [ "CondProxyProvider" ] -svcMgr.EventPersistencySvc.CnvServices += [ "AthenaPoolCnvSvc" ] - diff --git a/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Write.py b/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Write.py deleted file mode 100755 index 935cf2811bf737d8684a2ce72217a87bb3f4d50a..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloCnv/CaloCondAthenaPool/share/CaloTTMap_Pool_Write.py +++ /dev/null @@ -1,20 +0,0 @@ -############################################################### -# -# Job options fragment to write LArTTCell map to POOL (no IOV) -# -#============================================================== - -# LAr Ids/Tools (loads Calo Ids/Tools as well) -include( "LArIdCnv/LArIdCnv_joboptions.py" ) -# this lib -theApp.Dlls += [ "CaloCondAthenaPoolPoolCnv" ] - -include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" ) -Stream1.Store="DetectorStore" -Stream1.ItemList += [ "LArTTCellMap#*" ] - - - - - - diff --git a/Calorimeter/CaloCnv/CaloIdCnv/CMakeLists.txt b/Calorimeter/CaloCnv/CaloIdCnv/CMakeLists.txt index 7e37acc4f0d88306b7bcaf449b2ade289dae0dc5..2c48906cf221f8d4642339f1e6414567dffbe7f6 100644 --- a/Calorimeter/CaloCnv/CaloIdCnv/CMakeLists.txt +++ b/Calorimeter/CaloCnv/CaloIdCnv/CMakeLists.txt @@ -8,5 +8,3 @@ atlas_add_component( CaloIdCnv src/*.cxx LINK_LIBRARIES CaloIdentifier AthenaKernel DetDescrCnvSvcLib StoreGateLib IdDictDetDescr Identifier GaudiKernel ) -# Install files from the package: -atlas_install_joboptions( share/*.py ) diff --git a/Calorimeter/CaloCnv/CaloIdCnv/share/CaloIdCnv_joboptions.py b/Calorimeter/CaloCnv/CaloIdCnv/share/CaloIdCnv_joboptions.py deleted file mode 100755 index f2c4f715ebba3f5bea283859d291b1a5310617b6..0000000000000000000000000000000000000000 --- a/Calorimeter/CaloCnv/CaloIdCnv/share/CaloIdCnv_joboptions.py +++ /dev/null @@ -1,9 +0,0 @@ -# Avoid double inclusion: -include.block("CaloIdCnv/CaloIdCnv_joboptions.py") -# -# Joboptions for the loading of the of CaloIdManager are not needed anymore -# after the era of migration to Configurables (theApp.Dll statement not needed anymore) -# Following include inserted only to ease migration of users from CaloIdConv to CaloConditions -include( "CaloConditions/CaloConditions_jobOptions.py" ) - - diff --git a/Control/AthenaCommon/python/AppMgr.py b/Control/AthenaCommon/python/AppMgr.py index f331af3f60509dba55f6fb95d67448a4f444bf9a..307dd2afe3d63b23dfd8d519d57ddcf25f53499e 100755 --- a/Control/AthenaCommon/python/AppMgr.py +++ b/Control/AthenaCommon/python/AppMgr.py @@ -474,10 +474,10 @@ class AthAppMgr( AppMgr ): # dump profiling (if any) in temporary file if self._opts.profile_python: - import cProfile - cProfile._athena_python_profiler.disable() - cProfile._athena_python_profiler.dump_stats( - self._opts.profile_python + ".athena.tmp" ) + i = sys.argv.index( '--profile-python' ) + del sys.argv[i:i+2] # delete argument and its value + from AthenaCommon.Debugging import dumpPythonProfile + dumpPythonProfile(self._opts.profile_python) # fire ourselves up anew Logging.log.info( 'restarting athena.py from %s ... ', fn ) @@ -826,26 +826,6 @@ class AthAppMgr( AppMgr ): import shutil shutil.copy2("MP_PoolFileCatalog.xml", "PoolFileCatalog.xml") - def __report_python_profile( self ): - if self._opts and self._opts.profile_python: - import cProfile, pstats - cProfile._athena_python_profiler.disable() - stats = pstats.Stats(cProfile._athena_python_profiler, - stream=open(self._opts.profile_python, 'w')) - # NOTE: tmpname has to match same in setup() - tmpname = self._opts.profile_python + ".athena.tmp" - try: - added_stats = stats.add( tmpname ) - except (OSError, IOError): - added_stats = None - pos = self._opts.profile_python.rfind('.') - if self._opts.profile_python[pos+1:] == "pkl": - stats.dump_stats( self._opts.profile_python ) - else: - stats.strip_dirs().sort_stats("time").print_stats() - if added_stats: - os.remove( tmpname ) - # exit includes leaving python def exit( self, code = None ): try: @@ -861,7 +841,9 @@ class AthAppMgr( AppMgr ): import traceback traceback.print_exc() # no re-raise to allow sys.exit next - self.__report_python_profile() + if self._opts.profile_python: + from AthenaCommon.Debugging import dumpPythonProfile + dumpPythonProfile(self._opts.profile_python) Logging.log.info( 'leaving with code %d: "%s"', self._exitstate, ExitCodes.what( self._exitstate ) ) diff --git a/Control/AthenaCommon/python/Debugging.py b/Control/AthenaCommon/python/Debugging.py index 278e2da81b8be16adadd6b151f0735029c8e8616..c8cdba7a51b276c8811d1729fcd9877ebfc1c58c 100644 --- a/Control/AthenaCommon/python/Debugging.py +++ b/Control/AthenaCommon/python/Debugging.py @@ -89,3 +89,22 @@ See https://www.kernel.org/doc/Documentation/security/Yama.txt and prctl(2). libc.prctl (0x59616d61, 0xffffffffffffffff) return + + +def dumpPythonProfile(filename): + """Save python profile data of the default athena profiler instance + into filename (.txt or .pkl format). + """ + from AthenaCommon.Logging import log + import cProfile + import pstats + + profiler = cProfile._athena_python_profiler + profiler.disable() + if filename.endswith(".txt"): + stats = pstats.Stats(profiler, stream=open(filename, 'w')) + stats.strip_dirs().sort_stats("time").print_stats() + log.info("Python profile summary stored in %s", filename) + else: + profiler.dump_stats(filename) + log.info("Python profile stored in %s", filename) diff --git a/Control/AthenaConfiguration/python/AthConfigFlags.py b/Control/AthenaConfiguration/python/AthConfigFlags.py index cd8fca9dc8d47df1f9b67ccf69dad6a3e6cd4e6d..6d6a5865827ad248fe0a04e5ba7a138531a8ec70 100644 --- a/Control/AthenaConfiguration/python/AthConfigFlags.py +++ b/Control/AthenaConfiguration/python/AthConfigFlags.py @@ -487,7 +487,7 @@ class AthConfigFlags(object): newflags = flags.cloneAndReplace('Muon', 'Trigger.Offline.Muon') """ - _msg.info("cloning flags and replacing %s by %s", subsetToReplace, replacementSubset) + _msg.debug("cloning flags and replacing %s by %s", subsetToReplace, replacementSubset) self._loadDynaFlags( subsetToReplace ) self._loadDynaFlags( replacementSubset ) @@ -751,21 +751,13 @@ class AthConfigFlags(object): self.Exec.MTEventServiceChannel = args.mtes_channel if args.profile_python is not None: - import cProfile, atexit + from AthenaCommon.Debugging import dumpPythonProfile + import atexit, cProfile, functools cProfile._athena_python_profiler = cProfile.Profile() cProfile._athena_python_profiler.enable() - #Save stats to file at exit - def stop_prof(): - if args.profile_python.endswith(".txt"): - import pstats - pstats.Stats(cProfile._athena_python_profiler, - stream=open(args.profile_python, 'w')).strip_dirs().sort_stats("time").print_stats() - _msg.info("Python profile summary stored in %s", args.profile_python) - else: - cProfile._athena_python_profiler.dump_stats(args.profile_python) - _msg.info("Python profile stored in %s", args.profile_python) - atexit.register(stop_prof) + # Save stats to file at exit + atexit.register(functools.partial(dumpPythonProfile, args.profile_python)) #All remaining arguments are assumed to be key=value pairs to set arbitrary flags: diff --git a/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFiller2DProfile.h b/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFiller2DProfile.h index 24af548f3176e046cc343c4567eb7c6888f638a3..ad7c521bc71574142a797f12294933820043f534 100644 --- a/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFiller2DProfile.h +++ b/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFiller2DProfile.h @@ -53,6 +53,10 @@ namespace Monitored { else return HistogramFiller::fill<TProfile2D>(detail::noWeight, cutMaskAccessor, *vars.var[0], *vars.var[1], *vars.var[2]); } }; + + /// TProfile2D filler with rebinable x-axis + typedef HistogramFillerRebinableAxis<HistogramFiller2DProfile, Axis::X> HistogramFiller2DProfileRebinable; + } #endif /* AthenaMonitoringKernel_HistogramFiller_HistogramFiller2DProfile_h */ diff --git a/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFillerFactory.cxx b/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFillerFactory.cxx index 508632c377f3b5011f976620e059fb9eeac3f91b..f96dc2459849e709d99e9e2e43d384d1b741445d 100644 --- a/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFillerFactory.cxx +++ b/Control/AthenaMonitoringKernel/src/HistogramFiller/HistogramFillerFactory.cxx @@ -49,7 +49,11 @@ HistogramFiller* HistogramFillerFactory::create(const HistogramDef& def) { return new HistogramFillerProfile(def, histogramProvider); } } else if (def.type == "TProfile2D") { - return new HistogramFiller2DProfile(def, histogramProvider); + if (def.kAddBinsDynamically || def.kRebinAxes) { + return new HistogramFiller2DProfileRebinable(def, histogramProvider); + } else { + return new HistogramFiller2DProfile(def, histogramProvider); + } } else if (def.type == "TEfficiency") { return new HistogramFillerEfficiency(def, histogramProvider); } else if (def.type == "TTree") { diff --git a/DataQuality/DataQualityConfigurations/CMakeLists.txt b/DataQuality/DataQualityConfigurations/CMakeLists.txt index e4a2f0547f244f14b8d93e79bbf2b25f0f099a7d..12d0ca51611bede38d8fc592f6fefaf657e52f35 100644 --- a/DataQuality/DataQualityConfigurations/CMakeLists.txt +++ b/DataQuality/DataQualityConfigurations/CMakeLists.txt @@ -60,7 +60,9 @@ foreach( hanfile collisions_run collisions_minutes10 # temporarily disable until we fix the syntax checker # atlas_add_test( ${hanfile}_syntax SCRIPT scripts/han-config-check.sh ${configOutputFile} PROPERTIES TIMEOUT 300 POST_EXEC_SCRIPT nopost.sh ) atlas_add_test( ${hanfile}_topempty SCRIPT test/check_no_top_level_assessments.sh ${outputFile} POST_EXEC_SCRIPT nopost.sh ) - atlas_add_test( ${hanfile}_lark SCRIPT han_lark_tester.py ${configOutputFile} PROPERTIES TIMEOUT 300 POST_EXEC_SCRIPT nopost.sh ) + if ( NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" ) + atlas_add_test( ${hanfile}_lark SCRIPT han_lark_tester.py ${configOutputFile} PROPERTIES TIMEOUT 300 POST_EXEC_SCRIPT nopost.sh ) + endif() atlas_add_test( ${hanfile}_nocrash SOURCES test/check_valid_config.cxx INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} diff --git a/DataQuality/DataQualityConfigurations/config/AFP/collisions_run.config b/DataQuality/DataQualityConfigurations/config/AFP/collisions_run.config index 189700ad9722f444c9cf31beecf4fe8a9f26436a..b803b920a9e80ca5a4a5bcaadaa3e14fa50d1bfe 100644 --- a/DataQuality/DataQualityConfigurations/config/AFP/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/AFP/collisions_run.config @@ -107,7 +107,7 @@ output top_level { } } } - output CrossBar { + output DeltaTime { output side${side} { } } @@ -542,10 +542,10 @@ dir AFP { } } } - dir CrossBar { + dir DeltaTime { dir side(?P<side>A|C) { regex = 1 - output = AFP/ToF/CrossBar/side${side} + output = AFP/ToF/DeltaTime/side${side} hist crossBarDeltaT_(?P=side)_[0123](AB|AC|AD|BC|BD|CD) { } } @@ -848,7 +848,8 @@ algorithm AFPLBsOutOfRange { algorithm AFPToFSiTCorrCheck { libname = libdqm_algorithms.so name = AFP_ToFSiTCorrCheck - pronounciation_level = 1.15 + pronounciation_level_down = 1.15 + pronounciation_level_up = 50 thresholds = AFPToFSiTCorrCheckThreshold algorithm sideA { RANGES = "13,69,73,132,137,238,241,300" diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config index 1701b12ba21a6dd121c5a757135c6d34f86036d0..28abbd8a54eadf94b1c159cafc5b49724f1950a1 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config @@ -70,7 +70,7 @@ output top_level { } ##end output Shift output Expert { - algorithm = TRMUO_AlwaysGreenSummary + algorithm = TRMUO_WorstCaseSummary output Efficiency { algorithm = TRMUO_WorstCaseSummary @@ -929,7 +929,7 @@ compositeAlgorithm BinContentComp&BinContentDump2 { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -938,7 +938,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream MinPoint = 50 ImproveFit = 1.0 @@ -947,7 +947,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -959,7 +959,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream_Fit { # mu50 Shifter algorithm TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -968,7 +968,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESid_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -977,7 +977,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -987,7 +987,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -995,7 +995,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1003,7 +1003,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1013,7 +1013,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream_Fit { # Generic L1 mu15 fit algorithm TRMUO_fermi_fit_L1MU20_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20 MinPoint = 50 ImproveFit = 1.0 @@ -1021,7 +1021,7 @@ algorithm TRMUO_fermi_fit_L1MU20_Fit { algorithm TRMUO_fermi_fit_L1MU20_barrel_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20_barrel MinPoint = 40 ImproveFit = 1.0 @@ -1030,7 +1030,7 @@ algorithm TRMUO_fermi_fit_L1MU20_barrel_Fit { algorithm TRMUO_fermi_fit_L1MU20_endcap_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20_endcap MinPoint = 50 ImproveFit = 1.0 @@ -1040,7 +1040,7 @@ algorithm TRMUO_fermi_fit_L1MU20_endcap_Fit { # for the muChainEFFS1 fit algorithm TRMUO_fermi_fit_mu18_tight_mu8_EFFS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18_tight_mu8_EFFS MinPoint = 50 ImproveFit = 1.0 @@ -1048,7 +1048,7 @@ algorithm TRMUO_fermi_fit_mu18_tight_mu8_EFFS_Fit { algorithm TRMUO_fermi_fit_mu18it_tight_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18it_tight MinPoint = 50 ImproveFit = 1.0 @@ -1056,7 +1056,7 @@ algorithm TRMUO_fermi_fit_mu18it_tight_Fit { algorithm TRMUO_fermi_fit_mu18it_tight_L1_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18it_tight_L1 MinPoint = 50 ImproveFit = 1.0 @@ -1093,7 +1093,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream { # _Fit algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1101,7 +1101,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1109,7 +1109,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1145,7 +1145,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA { # _Fit algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -1154,7 +1154,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS MinPoint = 50 ImproveFit = 1.0 @@ -1163,7 +1163,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA MinPoint = 50 ImproveFit = 1.0 @@ -1218,7 +1218,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFCB_upstream { # _Fit algorithm TRMUO_fermi_fit_mu50_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1226,7 +1226,7 @@ algorithm TRMUO_fermi_fit_mu50_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1234,7 +1234,7 @@ algorithm TRMUO_fermi_fit_mu50_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFMS_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1242,7 +1242,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFSA_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1250,7 +1250,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1300,7 +1300,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFCB { # _Fit algorithm TRMUO_fermi_fit_mu50_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -1309,7 +1309,7 @@ algorithm TRMUO_fermi_fit_mu50_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu50_muComb_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_muComb MinPoint = 50 ImproveFit = 1.0 @@ -1318,7 +1318,7 @@ algorithm TRMUO_fermi_fit_mu50_muComb_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFMS MinPoint = 80 ImproveFit = 1.0 @@ -1326,7 +1326,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFSA MinPoint = 80 ImproveFit = 1.0 @@ -1334,7 +1334,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFSA_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFCB_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFCB MinPoint = 50 ImproveFit = 1.0 @@ -1385,7 +1385,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream { # _Fit algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1393,7 +1393,7 @@ algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1401,7 +1401,7 @@ algorithm TRMUO_fermi_fit_mu24i_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFMS_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1409,7 +1409,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFSA_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1417,7 +1417,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1426,7 +1426,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream_Fit { # _Fit for shifter algorithm TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream MinPoint = 10 ImproveFit = 1.0 @@ -1435,7 +1435,7 @@ algorithm TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_ESid_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1444,7 +1444,7 @@ algorithm TRMUO_fermi_fit_mu24i_ESid_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_ESid_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_MuonEFCB_upstream MinPoint = 110 ImproveFit = 1.0 @@ -1495,7 +1495,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB { # _Fit algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -1504,7 +1504,7 @@ algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu24i_muComb_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_muComb MinPoint = 50 ImproveFit = 1.0 @@ -1513,7 +1513,7 @@ algorithm TRMUO_fermi_fit_mu24i_muComb_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFMS MinPoint = 70 ImproveFit = 1.0 @@ -1521,7 +1521,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFSA MinPoint = 70 ImproveFit = 1.0 @@ -1529,7 +1529,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFCB MinPoint = 50 ImproveFit = 1.0 @@ -1704,8 +1704,8 @@ thresholds th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream { error = 0.899 } limits Threshold { - warning = 8.0 - error = 10.0 + warning = 20.0 + error = 22.0 } limits Resolution { warning = 3.0 @@ -1751,8 +1751,8 @@ thresholds th_TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream { error = 0.979 } limits Threshold { - warning = 8.0 - error = 10.0 + warning = 50.0 + error = 52.0 } limits Resolution { warning = 3.0 @@ -1772,16 +1772,16 @@ thresholds th_TRMUO_fermi_fit_mu50_ESid_muComb_upstream { error = 24.0 } limits Resolution { - warning = 3.0 - error = 4.0 + warning = 5 # 3.0 + error = 6 # 4.0 } } thresholds th_TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream { limits Plateau { - warning = 0.98 - error = 0.979 + warning = 0.969 + error = 0.968 } limits Threshold { warning = 50.0 @@ -1890,12 +1890,12 @@ thresholds th_TRMUO_fermi_fit_L1MU20_endcap { # for mu18_tight_mu8_EFFS thresholds th_TRMUO_fermi_fit_mu18_tight_mu8_EFFS { limits Plateau { - warning = 0.93 - error = 0.92 + warning = 0.89 + error = 0.88 } limits Threshold { - warning = 8.5 ## 8.0 Before 2015Oct25 - error = 11.0 + warning = 20 ##8.5 before 2024 ## 8.0 Before 2015Oct25 + error = 23 ##11.0 before 2024 } limits Resolution { warning = 3.0 @@ -1922,8 +1922,8 @@ thresholds th_TRMUO_fermi_fit_mu18it_tight { thresholds th_TRMUO_fermi_fit_mu18it_tight_L1 { limits Plateau { - warning = 0.96 - error = 0.95 + warning = 0.915 + error = 0.905 } limits Threshold { warning = 23.0 @@ -1945,8 +1945,8 @@ thresholds th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream { error = 0.799 } limits Threshold { - warning = 8.0 - error = 10.0 + warning = 20.0 + error = 30.0 } limits Resolution { warning = 3.0 @@ -2135,8 +2135,8 @@ thresholds th_TRMUO_fermi_fit_mu50_muComb { error = 0.599 } limits Threshold { - warning = 22.0 - error = 24.0 + warning = 23.0 + error = 25.0 } limits Resolution { warning = 2.0 diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config index 4a7b321822ea6f47dc06741d2747500123cc7a08..0dab05979a8ecaee4528b5490465cd909dce342d 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config @@ -546,7 +546,7 @@ compositeAlgorithm BinContentComp&BinContentDump2 { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -555,7 +555,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream MinPoint = 50 ImproveFit = 1.0 @@ -564,7 +564,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -576,7 +576,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream_Fit { # mu50 Shifter algorithm TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -585,7 +585,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESid_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -594,7 +594,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -604,7 +604,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -612,7 +612,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -620,7 +620,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -630,7 +630,7 @@ algorithm TRMUO_fermi_fit_mu50_ESstd_MuonEFCB_upstream_Fit { # Generic L1 mu15 fit algorithm TRMUO_fermi_fit_L1MU20_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20 MinPoint = 50 ImproveFit = 1.0 @@ -638,7 +638,7 @@ algorithm TRMUO_fermi_fit_L1MU20_Fit { algorithm TRMUO_fermi_fit_L1MU20_barrel_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20_barrel MinPoint = 40 ImproveFit = 1.0 @@ -647,7 +647,7 @@ algorithm TRMUO_fermi_fit_L1MU20_barrel_Fit { algorithm TRMUO_fermi_fit_L1MU20_endcap_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_L1MU20_endcap MinPoint = 50 ImproveFit = 1.0 @@ -657,7 +657,7 @@ algorithm TRMUO_fermi_fit_L1MU20_endcap_Fit { # for the muChainEFFS1 fit algorithm TRMUO_fermi_fit_mu18_tight_mu8_EFFS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18_tight_mu8_EFFS MinPoint = 50 ImproveFit = 1.0 @@ -665,7 +665,7 @@ algorithm TRMUO_fermi_fit_mu18_tight_mu8_EFFS_Fit { algorithm TRMUO_fermi_fit_mu18it_tight_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18it_tight MinPoint = 50 ImproveFit = 1.0 @@ -673,7 +673,7 @@ algorithm TRMUO_fermi_fit_mu18it_tight_Fit { algorithm TRMUO_fermi_fit_mu18it_tight_L1_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu18it_tight_L1 MinPoint = 50 ImproveFit = 1.0 @@ -710,7 +710,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream { # _Fit algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -718,7 +718,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream MinPoint = 50 ImproveFit = 1.0 @@ -726,7 +726,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -762,7 +762,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA { # _Fit algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -771,7 +771,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS MinPoint = 50 ImproveFit = 1.0 @@ -780,7 +780,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_MuonEFSA MinPoint = 50 ImproveFit = 1.0 @@ -835,7 +835,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFCB_upstream { # _Fit algorithm TRMUO_fermi_fit_mu50_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -843,7 +843,7 @@ algorithm TRMUO_fermi_fit_mu50_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -851,7 +851,7 @@ algorithm TRMUO_fermi_fit_mu50_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFMS_upstream MinPoint = 40 ImproveFit = 1.0 @@ -859,7 +859,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFSA_upstream MinPoint = 40 ImproveFit = 1.0 @@ -867,7 +867,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -917,7 +917,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFCB { # _Fit algorithm TRMUO_fermi_fit_mu50_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -926,7 +926,7 @@ algorithm TRMUO_fermi_fit_mu50_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu50_muComb_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_muComb MinPoint = 50 ImproveFit = 1.0 @@ -935,7 +935,7 @@ algorithm TRMUO_fermi_fit_mu50_muComb_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFMS MinPoint = 80 ImproveFit = 1.0 @@ -943,7 +943,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFSA MinPoint = 80 ImproveFit = 1.0 @@ -951,7 +951,7 @@ algorithm TRMUO_fermi_fit_mu50_MuonEFSA_Fit { algorithm TRMUO_fermi_fit_mu50_MuonEFCB_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu50_MuonEFCB MinPoint = 50 ImproveFit = 1.0 @@ -1002,7 +1002,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream { # _Fit algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_L2MuonSA_upstream MinPoint = 50 ImproveFit = 1.0 @@ -1010,7 +1010,7 @@ algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1018,7 +1018,7 @@ algorithm TRMUO_fermi_fit_mu24i_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFMS_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1026,7 +1026,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFSA_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1034,7 +1034,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFCB_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1043,7 +1043,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_upstream_Fit { # _Fit for shifter algorithm TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream MinPoint = 10 ImproveFit = 1.0 @@ -1052,7 +1052,7 @@ algorithm TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_ESid_muComb_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_muComb_upstream MinPoint = 40 ImproveFit = 1.0 @@ -1061,7 +1061,7 @@ algorithm TRMUO_fermi_fit_mu24i_ESid_muComb_upstream_Fit { algorithm TRMUO_fermi_fit_mu24i_ESid_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_ESid_MuonEFCB_upstream MinPoint = 110 ImproveFit = 1.0 @@ -1112,7 +1112,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFCB { # _Fit algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_L2MuonSA MinPoint = 50 ImproveFit = 1.0 @@ -1121,7 +1121,7 @@ algorithm TRMUO_fermi_fit_mu24i_L2MuonSA_Fit { algorithm TRMUO_fermi_fit_mu24i_muComb_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_muComb MinPoint = 50 ImproveFit = 1.0 @@ -1130,7 +1130,7 @@ algorithm TRMUO_fermi_fit_mu24i_muComb_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFMS MinPoint = 70 ImproveFit = 1.0 @@ -1138,7 +1138,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFMS_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFSA MinPoint = 70 ImproveFit = 1.0 @@ -1146,7 +1146,7 @@ algorithm TRMUO_fermi_fit_mu24i_MuonEFSA_Fit { algorithm TRMUO_fermi_fit_mu24i_MuonEFCB_Fit { libname = libdqm_algorithms.so - name = Simple_fermi_Fit_Graph + name = Simple_fermi_Fit_TEff thresholds = th_TRMUO_fermi_fit_mu24i_MuonEFCB MinPoint = 50 ImproveFit = 1.0 diff --git a/DataQuality/DataQualityConfigurations/config/MMG/collisions_minutes10.config b/DataQuality/DataQualityConfigurations/config/MMG/collisions_minutes10.config index f212474c1e2bc93bc49b7dc4bf1749a7ec50bbde..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/collisions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/collisions_minutes10.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -60,8 +82,334 @@ dir Muon { dir MuonRawDataMonitoring { #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { diff --git a/DataQuality/DataQualityConfigurations/config/MMG/collisions_run.config b/DataQuality/DataQualityConfigurations/config/MMG/collisions_run.config index f212474c1e2bc93bc49b7dc4bf1749a7ec50bbde..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/collisions_run.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -60,8 +82,334 @@ dir Muon { dir MuonRawDataMonitoring { #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { diff --git a/DataQuality/DataQualityConfigurations/config/MMG/cosmics_minutes10.config b/DataQuality/DataQualityConfigurations/config/MMG/cosmics_minutes10.config index f212474c1e2bc93bc49b7dc4bf1749a7ec50bbde..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/cosmics_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/cosmics_minutes10.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -60,8 +82,334 @@ dir Muon { dir MuonRawDataMonitoring { #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { diff --git a/DataQuality/DataQualityConfigurations/config/MMG/cosmics_run.config b/DataQuality/DataQualityConfigurations/config/MMG/cosmics_run.config index f212474c1e2bc93bc49b7dc4bf1749a7ec50bbde..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/cosmics_run.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/cosmics_run.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -60,8 +82,334 @@ dir Muon { dir MuonRawDataMonitoring { #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { diff --git a/DataQuality/DataQualityConfigurations/config/MMG/heavyions_minutes10.config b/DataQuality/DataQualityConfigurations/config/MMG/heavyions_minutes10.config index f212474c1e2bc93bc49b7dc4bf1749a7ec50bbde..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/heavyions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/heavyions_minutes10.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -60,8 +82,334 @@ dir Muon { dir MuonRawDataMonitoring { #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences - + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { diff --git a/DataQuality/DataQualityConfigurations/config/MMG/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/MMG/heavyions_run.config index 369c4798c0dd275a783d7ac6d3911395482a149c..0a9fec7f668e369658050d43d6c20e04fa175da7 100644 --- a/DataQuality/DataQualityConfigurations/config/MMG/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/MMG/heavyions_run.config @@ -9,7 +9,29 @@ output top_level { output MuonDetectors { output MMG { + output MMGTrigger { output Shifter { + output ART { + } + output ROI { + } + } + output Expert { + output ART { + } + output ROI { + } + output ROIPerSector { + } + output BCPerSector { + output ART { + } + output ROI { + } + } + } + } + output Shifter { output Global { } output OccupancyEA { @@ -59,9 +81,335 @@ output top_level { dir Muon { dir MuonRawDataMonitoring { - #reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences - + #reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences + dir MM { + + dir MMTrigger { + algorithm = MM_GatherData + display = LogZ,Draw=COL0Z + hist trigger_sector_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter + } + hist art_channel_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_channel_vs_layer { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist art_bcid_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist art_layer_vs_Dbcid { + output = MuonDetectors/MMG/MMGTrigger/Expert/ART + } + hist deltaBC_vs_sector_roi { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + hist art_layer_vs_lumiblock { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ART + } + hist sector_roi_vs_lb { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideA { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist roi_x_vs_y_sideC { + output = MuonDetectors/MMG/MMGTrigger/Shifter/ROI + } + hist nROIPerBC_vs_sector { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROI + } + dir ROIPerSector { + hist rID_vs_phiID_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + hist rID_vs_phiID_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/ROIPerSector + } + } + dir BCvsLBPerSector { + hist art_DeltaBC_vs_lb_art_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + hist art_DeltaBC_vs_lb_art_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ART + } + + hist DeltaBC_vs_lb_ROI_ASide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_ASide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector1 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector2 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector3 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector4 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector5 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector6 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector7 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector8 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector9 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector10 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector11 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector12 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector13 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector14 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector15 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + hist DeltaBC_vs_lb_ROI_CSide_Sector16 { + output = MuonDetectors/MMG/MMGTrigger/Expert/BCPerSector/ROI + } + } + } + dir Overview { algorithm = MM_GatherData hist pt { @@ -1134,7 +1482,7 @@ dir Muon { algorithm MM_Histogram_Not_Empty { libname = libdqm_algorithms.so name = Histogram_Not_Empty - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_GatherData { @@ -1149,7 +1497,7 @@ algorithm MMEta12_BinsGreaterThanThreshold { MinBinThreshold = 1 TotalBins = 2048 thresholds = MMEta12_thresholds - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } #algorithm MMEta1_BinsGreaterThanThreshold { @@ -1159,7 +1507,7 @@ algorithm MMEta12_BinsGreaterThanThreshold { # MinBinThreshold = 1 # TotalBins = 640 # thresholds = MMEta1_thresholds -# reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences +# reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences #} #algorithm MMEta2_BinsGreaterThanThreshold { @@ -1178,7 +1526,7 @@ algorithm MM_OccupancyHoleFinder { MinMedian = 50 MedianThreshold = 0.1 thresholds = MMHoleFinder_thresh - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } @@ -1189,7 +1537,7 @@ algorithm MM_BinsOutOfRange_CS_eta1 { RANGE_U = 8 MinStat = -999999 thresholds = range_thresholds_eta1 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_CS_eta2 { @@ -1199,7 +1547,7 @@ algorithm MM_BinsOutOfRange_CS_eta2 { RANGE_U = 8 MinStat = -999999 thresholds = range_thresholds_eta2 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_Ctime_eta1 { @@ -1209,7 +1557,7 @@ algorithm MM_BinsOutOfRange_Ctime_eta1 { RANGE_U = 66 MinStat = -999999 thresholds = range_thresholds_eta1 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_Ctime_eta2 { @@ -1219,7 +1567,7 @@ algorithm MM_BinsOutOfRange_Ctime_eta2 { RANGE_U = 66 MinStat = -999999 thresholds = range_thresholds_eta2 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_Charge { @@ -1229,7 +1577,7 @@ algorithm MM_BinsOutOfRange_Charge { RANGE_U = 49 MinStat = -999999 thresholds = range_thresholds_layer - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_ResMean { @@ -1239,7 +1587,7 @@ algorithm MM_BinsOutOfRange_ResMean { RANGE_U = 1 MinStat = -999999 thresholds = range_thresholds_layer - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_ResSigma { @@ -1249,7 +1597,7 @@ algorithm MM_BinsOutOfRange_ResSigma { RANGE_U = 1 MinStat = -999999 thresholds = range_thresholds_layer - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_Efficiency_eta1 { @@ -1260,7 +1608,7 @@ algorithm MM_BinsOutOfRange_Efficiency_eta1 { MinStat = -999999 MaxPublish = 35 thresholds = range_thresholds_eta1 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } algorithm MM_BinsOutOfRange_Efficiency_eta2 { @@ -1271,7 +1619,7 @@ algorithm MM_BinsOutOfRange_Efficiency_eta2 { MinStat = -999999 MaxPublish = 35 thresholds = range_thresholds_eta2 - reference = stream=physics_Main:CentrallyManagedReferences_Main;stream=physics_HardProbes:CentrallyManagedReferences_HardProbes;stream=physics_UPC:CentrallyManagedReferences_UPC;CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/RootFitTEff.h b/DataQuality/dqm_algorithms/dqm_algorithms/RootFitTEff.h new file mode 100644 index 0000000000000000000000000000000000000000..bc3af873e46b068ed8dfe70989d38869cd50db20 --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/RootFitTEff.h @@ -0,0 +1,40 @@ +/* + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file RootFitTEff.h file declares the dqm_algorithms::RootFitTEff class. + * \author Akimasa Ishikawa (akimasa.ishikawa@cern.ch) 15th Apr 2010 (original TGraph version) + * \author Valerio Ippolito (valerio.ippolito@cern.ch) 14th Mar 2024 (adapted to TEfficiency) +*/ + +#ifndef DQM_ALGORITHMS_ROOTFITTEFF_H +#define DQM_ALGORITHMS_ROOTFITTEFF_H + +#include "CxxUtils/checker_macros.h" + +#include <dqm_core/Algorithm.h> +#include <string> +#include <memory> +#include <iosfwd> + +class TF1; + +namespace dqm_algorithms +{ + struct ATLAS_NOT_THREAD_SAFE RootFitTEff : public dqm_core::Algorithm + // ^ fit of constant graph + { + RootFitTEff( const std::string & name ); + + ~RootFitTEff(); + RootFitTEff * clone( ); + dqm_core::Result * execute( const std::string & , const TObject & , const dqm_core::AlgorithmConfig & ); + using dqm_core::Algorithm::printDescription; + void printDescription(std::ostream& out); + private: + std::string m_name; + std::unique_ptr<TF1> m_func; + }; +} + +#endif // DQM_ALGORITHMS_ROOTFITTEFF_H diff --git a/DataQuality/dqm_algorithms/dqm_algorithms/Simple_fermi_Fit_TEff.h b/DataQuality/dqm_algorithms/dqm_algorithms/Simple_fermi_Fit_TEff.h new file mode 100644 index 0000000000000000000000000000000000000000..8c708c40af2f03ed30842c24a7b79d9c254009e5 --- /dev/null +++ b/DataQuality/dqm_algorithms/dqm_algorithms/Simple_fermi_Fit_TEff.h @@ -0,0 +1,26 @@ +/* + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file Simple_erf_Fit_TEff.h file declares the dqm_algorithms::algorithm::Simple_fermi_Fit_TEff class. \n Format copied from Simple_gaus_Fit.h + * \author Matt King and Akimasa Ishikawa + * \author Valerio Ippolito +*/ + +#ifndef DQM_ALGORITHMS_SIMPLE_FERMI_FIT_TEFF_H +#define DQM_ALGORITHMS_SIMPLE_FERMI_FIT_TEFF_H + +#include <dqm_algorithms/RootFitTEff.h> + +namespace dqm_algorithms +{ + struct Simple_fermi_Fit_TEff : public RootFitTEff + { + Simple_fermi_Fit_TEff(): RootFitTEff("fermi") {}; + + + }; + +} + +#endif // DQM_ALGORITHMS_SIMPLE_FERMI_FIT_TEFF_H diff --git a/DataQuality/dqm_algorithms/src/AFP_ToFSiTCorrCheck.cxx b/DataQuality/dqm_algorithms/src/AFP_ToFSiTCorrCheck.cxx index fdd15388a0bf6b9492a59196645bf2324029edc2..db53b50b3d017f90fe43f4852039d7ee104fdf9d 100644 --- a/DataQuality/dqm_algorithms/src/AFP_ToFSiTCorrCheck.cxx +++ b/DataQuality/dqm_algorithms/src/AFP_ToFSiTCorrCheck.cxx @@ -46,7 +46,8 @@ dqm_algorithms::AFP_ToFSiTCorrCheck::execute( const std::string& name, auto rthreshold_tr = static_cast<uint32_t>( dqm_algorithms::tools::GetFromMap( "NbadTrains", config.getRedThresholds() ) ); auto gthreshold_st = static_cast<uint32_t>( dqm_algorithms::tools::GetFromMap( "NbadStairs", config.getGreenThresholds() ) ); auto rthreshold_st = static_cast<uint32_t>( dqm_algorithms::tools::GetFromMap( "NbadStairs", config.getRedThresholds() ) ); - auto pronounciation_level = static_cast<double>( dqm_algorithms::tools::GetFirstFromMap( "pronounciation_level", config.getParameters() ) ); + auto pronounciation_level_down = static_cast<double>( dqm_algorithms::tools::GetFirstFromMap( "pronounciation_level_down", config.getParameters() ) ); + auto pronounciation_level_up = static_cast<int>( dqm_algorithms::tools::GetFirstFromMap( "pronounciation_level_up", config.getParameters() ) ); const std::string RANGES = dqm_algorithms::tools::GetFirstFromMap( "RANGES", config.getGenericParameters() ); //from string of ranges to int array @@ -106,7 +107,7 @@ dqm_algorithms::AFP_ToFSiTCorrCheck::execute( const std::string& name, if (i != j) { check_devided_bins[i][j] = max_bins_content[i]/all_bins_content[i][j]; - if ((check_devided_bins[i][j] < pronounciation_level) || (check_devided_bins[i][j] > 50)) + if ((check_devided_bins[i][j] < pronounciation_level_down) || (check_devided_bins[i][j] > pronounciation_level_up)) false_bins_devided[i]++; } if (false_bins_devided[i] > 1) @@ -145,6 +146,7 @@ dqm_algorithms::AFP_ToFSiTCorrCheck::execute( const std::string& name, void dqm_algorithms::AFP_ToFSiTCorrCheck::printDescriptionTo( std::ostream& out ) { out << "AFP_ToFSiTCorrCheck: Print out how many stairs are not on their places and how many are not pronounced\n" - << "Required Parameter: pronounciation_level: how pronounced the stair is\n" + << "Required Parameter: pronounciation_level_down: how pronounced the stair is (down limit)\n" + << "Required Parameter: pronounciation_level_up: how pronounced the stair is (upper limit)\n" << "Required Parameter: RANGES: ranges of SiT, corresponding to ToF trains, in bins of hist"<< std::endl; } diff --git a/DataQuality/dqm_algorithms/src/RootFitTEff.cxx b/DataQuality/dqm_algorithms/src/RootFitTEff.cxx new file mode 100644 index 0000000000000000000000000000000000000000..38bdd369fa37d3ad3a558e85bc7fb10de4d2dc4f --- /dev/null +++ b/DataQuality/dqm_algorithms/src/RootFitTEff.cxx @@ -0,0 +1,221 @@ +/* + Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +*/ + +/*! \file RootFitTEff.cxx fits TEfficiency and returns dqm_core::Result + * \author Akimasa Ishikawa (akimasa.ishikawa), 15th Apr 2010 + * \author Valerio Ippolito (valerio.ippolito), 14th Mar 2024 + * based on Fermi fit in RootFit.cxx by Matt King + */ + +#include <dqm_algorithms/RootFitTEff.h> +#include <dqm_algorithms/tools/AlgorithmHelper.h> +#include <TH1.h> +#include <TF1.h> +#include <TEfficiency.h> +#include <TGraphAsymmErrors.h> +#include <TClass.h> +#include <ers/ers.h> +#include <TROOT.h> +#include <dqm_core/AlgorithmManager.h> +#include <cmath> + +namespace +{ + dqm_algorithms::RootFitTEff fermi_fit( "fermi" ); + dqm_algorithms::RootFitTEff erf_fit( "erf" ); + dqm_algorithms::RootFitTEff flat_fit( "flat" ); +} + +dqm_algorithms::RootFitTEff::RootFitTEff( const std::string & name ) + : m_name( name ) +{ + + if (m_name == "fermi"){ + m_func = std::make_unique<TF1> ( "fermi","[0]/(1+exp(([1]-x)/[2]))" ); + } + if (m_name == "erf"){ + m_func = std::make_unique<TF1> ( "erf","[0]*TMath::Erf((x-[1])/(sqrt(2.)*[2]))" ); + } + if (m_name == "flat"){ + m_func = std::make_unique<TF1> ( "flat","[0]" ); + } + dqm_core::AlgorithmManager::instance().registerAlgorithm( "Simple_"+name +"_Fit_TEff", this ); +} + +dqm_algorithms::RootFitTEff::~RootFitTEff() +{ + // totally defeats the purpose of unique_ptr, but fixes a segfault in 5.34 ... + (void)m_func.release(); +} + +dqm_algorithms::RootFitTEff * +dqm_algorithms::RootFitTEff::clone() +{ + return new RootFitTEff( m_name ); +} + + +dqm_core::Result * +dqm_algorithms::RootFitTEff::execute( const std::string & name, + const TObject & object, + const dqm_core::AlgorithmConfig & config ) +{ + + //std::cout<<"ROOTFITTEFF = calling rootfit with name "<<name<<std::endl; + const TEfficiency * eff; + if(object.IsA()->InheritsFrom( "TEfficiency" )) + { + eff = static_cast<const TEfficiency*>(&object); + } + else { + throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TEfficiency" ); + } + + //std::cout<<"ROOTFITTEFF = trying to get parameters"<<std::endl; + Axis_t xmin = dqm_algorithms::tools::GetFirstFromMap( "xmin", config.getParameters(), eff->GetTotalHistogram()->GetXaxis()->GetXmin()); + Axis_t xmax = dqm_algorithms::tools::GetFirstFromMap( "xmax", config.getParameters(), eff->GetTotalHistogram()->GetXaxis()->GetXmax()); + + Axis_t ymin = dqm_algorithms::tools::GetFirstFromMap( "ymin", config.getParameters(), eff->GetTotalHistogram()->GetYaxis()->GetXmin()); + Axis_t ymax = dqm_algorithms::tools::GetFirstFromMap( "ymax", config.getParameters(), eff->GetTotalHistogram()->GetYaxis()->GetXmax()); + + double xaxismean = (xmax + xmin)/2.; + double xdiff = xmax - xmin; + double ydiff = ymax - ymin; + + + const double minpoint = dqm_algorithms::tools::GetFirstFromMap( "MinPoint", config.getParameters(), -1); + const bool verbose = static_cast<bool>(dqm_algorithms::tools::GetFirstFromMap( "Verbose", config.getParameters(), 0)); + const double minSig = dqm_algorithms::tools::GetFirstFromMap( "MinSignificance", config.getParameters(), 0); + const bool improve = static_cast<bool>(dqm_algorithms::tools::GetFirstFromMap( "ImproveFit", config.getParameters(), 0)); + + //std::cout << "verbose " << verbose + //<< " draw " << draw + //<< " lf " << lf << std::endl; + //std::cout<<"ROOTFITTEFF = trying to get num points"<<std::endl; + const TH1* eff_hist = eff->GetTotalHistogram(); + const Int_t eff_points = eff_hist->GetNbinsX(); + if (eff_points < minpoint || eff_points==0) { + if(verbose)std::cout << name << " number of points are too small " << eff_points << std::endl; + dqm_core::Result *result = new dqm_core::Result(dqm_core::Result::Undefined); + result->tags_["InsufficientN"] = eff_points; + return result; + } + if(verbose)std::cout << name << " enough number of points " << eff_points << std::endl; + //std::cout<<"ROOTFITTEFF = trying to get axes"<<std::endl; + const TAxis *x = eff_hist->GetXaxis(); + int nbins = x->GetNbins(); + double high = x->GetBinUpEdge(nbins); + double low = x->GetBinUpEdge(0); + + + if ( xmin>high || xmin<low || xmax>high || xmax<low) { + throw dqm_core::BadConfig( ERS_HERE, name, "xmin and/or xmax value not in eff bin range" ); + } + + std::string option; + //Always set option end to avoid making graphics object and drawing it. + //draw fit curve if DrawFitCurve == 1.0 + if (verbose){ + //if( draw == 1.0 ) option = ""; + //else option="N"; + option="N"; + } else { + //if( draw == 1.0 ) option = "Q"; + //else option = "QN"; + option = "QN"; + } + + //Use Minos technique as recommended for better error calculation, if errors are important: + // if both minos and improve are specified ("EM"), minos is used by ROOT automatically + if ( minSig != 0 ) option += "E"; + if ( improve ) option += "M"; + //show histo name and fit option for verbose mode + if( verbose ){ + std::cout <<" eff name " << eff->GetName() << std::endl; + std::cout <<" fit option " << option << std::endl; + } + //std::cout<<"ROOTFITTEFF = trying to do fits"<<std::endl; + if (m_name == "fermi") { + if(verbose)std::cout << "set "<<name<< " parameters" << std::endl; + m_func->SetParameter(0,ymax*0.9); + m_func->SetParameter(1,xaxismean); + m_func->SetParameter(2,xdiff/50.); + m_func->SetParNames("Plateau","Threshold","Resolution"); + + m_func->SetParLimits(0, ymin - 0.1 * ydiff, ymax + 0.1 * ydiff ); + m_func->SetParLimits(1, xmin, xmax ); + m_func->SetParLimits(2, 0., xdiff/4. ); + } + else if(m_name == "erf") { + if(verbose)std::cout << "set "<<name<< " parameters" << std::endl; + m_func->SetParameter(0,ymax*0.9); + m_func->SetParameter(1,xaxismean); + m_func->SetParameter(2,xdiff/50.); + m_func->SetParNames("Plateau","Threshold","Resolution"); + + m_func->SetParLimits(0, ymin - 0.1 * ydiff, ymax + 0.1 * ydiff ); + m_func->SetParLimits(1, xmin, xmax ); + m_func->SetParLimits(2, 0., xdiff/4. ); + } + else if(m_name == "flat") { + if(verbose)std::cout << "set "<<name<< " parameters" << std::endl; + m_func->SetParNames("Height"); + } +/* + const int numsig = m_func->GetParNumber("Sigma"); + + if (numsig != -1 ){ + double sigmaup = dqm_algorithms::tools::GetFirstFromMap( "Sigma_upperLimit", config.getParameters(), 1000000); + m_func->SetParLimits(numsig, 0., sigmaup); + } + */ + + option += "R"; // we need to specify the fit range to fit the TEfficiency (alternative would have been to use TEfficiency::CreateGraph()) + m_func->SetRange(xmin, xmax); + + if(verbose)std::cout << "fit "<<name<< " with interval cut " << xmin << " - " << xmax << std::endl; + std::shared_ptr<TGraphAsymmErrors> graph(eff->CreateGraph()); // we own this! + graph->Fit( m_func.get(), option.c_str()); + + const int numsig = m_func->GetParNumber("Sigma"); + if (numsig != -1 ){ + double sigma=m_func->GetParameter(numsig); + m_func->SetParameter(numsig,std::abs(sigma)); + } + + try { + dqm_core::Result *result= dqm_algorithms::tools::GetFitResult (m_func.get() , config, minSig ); + return result; + } + catch ( dqm_core::Exception & ex ) { + throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex ); + } +} + +void +dqm_algorithms::RootFitTEff::printDescription(std::ostream& out) +{ + out<<"Simple_"+m_name+"_Fit_TEff: Does simple "+m_name+" fit to eff and checks fit parameters against thresholds\n"<<std::endl; + if (m_name == "fermi" ) { + out<<"The following fit Parameters can be checked with Red and Green Thresholds; only one parameter is needed to get back real result"<<std::endl; + out<<"Green/Red Threshold: Plateau : Plateau fit value to give Green/Red Result"<<std::endl; + out<<"Green/Red Threshold: Threshold : Fermi energy fit value to give Green/Red Result"<<std::endl; + out<<"Green/Red Threshold: Resolution : Templature fit value to give Green/Red Result\n"<<std::endl; + }else if (m_name == "erf" ) { + out<<"The following fit Parameters can be checked with Red and Green Thresholds; only one parameter is needed to get back real result"<<std::endl; + out<<"Green/Red Threshold: Plateau : Plateau fit value to give Green/Red Result"<<std::endl; + out<<"Green/Red Threshold: Threshold : mean of gaussian fit value to give Green/Red Result"<<std::endl; + out<<"Green/Red Threshold: Resolution : sigma of gaussian fit value to give Green/Red Result\n"<<std::endl; + } + out<<"Optional Parameter: Verbose: Write out fit results to log file (set to 1)"<<std::endl; + out<<"Optional Parameter: MinPoint: Minimum eff point needed to perform Algorithm"<<std::endl; + out<<"Optional Parameter: MinSignificance : Minimum multiple of the error in fit paramenter by which the parameter must exceed the thresholds"<<std::endl; + out<<"Optional Parameter: ImproveFit : IMPROVE is used to avoid local minima"<<std::endl; + out<<"Optional Parameter: xmin: minimum x range"<<std::endl; + out<<"Optional Parameter: xmax: maximum x range"<<std::endl; + out<<"Optional Parameter: SubtractFromMean: value subtracted from XMean before test is applied: allows using AbsXMean for non-zero expected mean"<<std::endl; +// out<<"Optional Parameter: Sigma_upperLimit: Upper limit on Sigma- lower limit set to 0. and default upper value is 1e^6\n"<<std::endl; + +} + diff --git a/DetectorDescription/GeoModel/DumpGeo/share/dump-geo_jobOptions_TileGeometry.py b/DetectorDescription/GeoModel/DumpGeo/share/dump-geo_jobOptions_TileGeometry.py deleted file mode 100644 index 67148da6ac12ca8dbe419018996f82b88c632820..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/DumpGeo/share/dump-geo_jobOptions_TileGeometry.py +++ /dev/null @@ -1,119 +0,0 @@ - -#TODO: This test script should be updated to CA! (R.M.B.) - - -# An Athena job to dump a specific, custom TileCal geometry tag -# to a standalone GeoModel SQLite `.db` file. -# The .db file can then be visualized with the GeoModel's -# standalone visualization program `gmex`. -# -# How to run this jobOptions file: -# -# ``` -# setupATLAS -# asetup Athena,master,latest # (or any release where `DumpGeo` is present) -# athena dump-geo_jobOptions_TileGeometry.py -# ``` -# -# At the end, you will find a `geometry.db` file in the run directory. -# You can now open it with `gmex` on any laptop/desktop machine. -# -# ----- -# Note: -# `gmex` is not part of Athena, for the GeoModel suite is now -# standalone and decoupled from Athena completely; -# that lets you visualize the geometry and use the all GeoModel tools -# on your laptop! -# -# More info on `gmex` here: -# https://geomodel.web.cern.ch -# ----- -# -# -# Author: Riccardo Maria BIANCHI, <riccardo.maria.bianchi@cern.ch> -# Initial version: Sep 2021 -# -# - - -############## -# --- MWE -############## -# No input data file here, -# so we set an Athena 'minimal working environment' - -# Create an event selector: -import AthenaCommon.AtlasUnixGeneratorJob -# Configure GlobalFlags -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetGeo.set_Value_and_Lock('atlas') -globalflags.DataSource.set_Value_and_Lock('geant4') - -# Generate one dummy event -from AthenaCommon.AppMgr import AppMgr as appMgr -appMgr.EvtMax = 0 - -# Set conditions tag, to avoid crashes -vp1GlobCond="OFLCOND-SDR-BS7T-05-14" -from IOVDbSvc.CondDB import conddb -conddb.setGlobalTag(vp1GlobCond) - -PoolSvc = Service("PoolSvc") -PoolSvc.SortReplicas = False -# --- MWE (end) -############## - - -############## -# --- GEOMETRY -############## - -#Detector setup: -# Detector flags -from AthenaCommon.DetFlags import DetFlags -DetFlags.Tile_setOn() -DetFlags.Print() - -# GeoModel, minimal setup -# If wanted, here we can set a custom, global geometry tag -globalflags.DetDescrVersion = "ATLAS-R2-2016-01-00-01" -# with this, the default GeoModel tag for the release will be used -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit -from GeoModelSvc.GeoModelSvcConf import GeoModelSvc -GeoModelSvc = GeoModelSvc() - - -# If wanted, we can set a specific tag for a particular sub-system -# Here, we set a specific tag for the TileCal calorimeter -# Get an handle on the TileCal configuration -from TileGeoModel.TileGeoModelConf import TileDetectorTool -GeoModelSvc.DetectorTools += [ TileDetectorTool() ] -from AthenaCommon.GlobalFlags import jobproperties -detDescrVersion = jobproperties.Global.DetDescrVersion() -# Setup geometry versions -GeoModelSvc.AtlasVersion = detDescrVersion -GeoModelSvc.TileVersionOverride = "TileCal-GEO-12" -# --- GEOMETRY (end) -############## - - - -####################### -# --- DumpGeo ALGORITHM -####################### -# Import the Athena's algorithms' scheduler -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -#Import and schedule the DumpGeo algorithm itself: -from DumpGeo.DumpGeoConf import DumpGeo -topSequence += DumpGeo() - -DumpGeo.NoGui=True - -topSequence.TimeOut=0 -# --- DumpGeo ALGORITHM (end) -####################### - - diff --git a/ForwardDetectors/AFP/Run3AFPMonitoring/python/Run3AFPExampleMonitorAlgorithm.py b/ForwardDetectors/AFP/Run3AFPMonitoring/python/Run3AFPExampleMonitorAlgorithm.py index a9f389fce7a335ca4c518dbc329fb8a3e3d0c3b6..58b0cc26ac6f766e341d0eaac01c799c3f34b557 100644 --- a/ForwardDetectors/AFP/Run3AFPMonitoring/python/Run3AFPExampleMonitorAlgorithm.py +++ b/ForwardDetectors/AFP/Run3AFPMonitoring/python/Run3AFPExampleMonitorAlgorithm.py @@ -241,8 +241,8 @@ def Run3AFPExampleMonitoringConfig(inputFlags): chan_combinations_list = [ "0AB", "0AC", "0AD", "0BC", "0BD", "0CD", "1AB", "1AC", "1AD", "1BC", "1BD", "1CD", "2AB", "2AC", "2AD", "2BC", "2BD", "2CD", "3AB", "3AC", "3AD", "3BC", "3BD", "3CD"] arrayToFCrossBarDeltaT = helper.addArray([chan_combinations_list], afpToFAlgorithm, 'AFPToFTool', topPath='AFP/ToF/') - arrayToFCrossBarDeltaT.defineHistogram('crossBarDeltaT_A', title='ToF cross-bar <delta> time (channel combination {0}), side A; <delta> t, [ps]; events', type='TH1D', path='CrossBar/sideA', xbins=400, xmin=-1500.0, xmax=1500.0) - arrayToFCrossBarDeltaT.defineHistogram('crossBarDeltaT_C', title='ToF cross-bar <delta> time (channel combination {0}), side C; <delta> t, [ps]; events', type='TH1D', path='CrossBar/sideC', xbins=400, xmin=-1500.0, xmax=1500.0) + arrayToFCrossBarDeltaT.defineHistogram('crossBarDeltaT_A', title='ToF cross-bar <delta> time (channel combination {0}), side A; <delta> t, [ps]; events', type='TH1D', path='DeltaTime/sideA', xbins=400, xmin=-1500.0, xmax=1500.0) + arrayToFCrossBarDeltaT.defineHistogram('crossBarDeltaT_C', title='ToF cross-bar <delta> time (channel combination {0}), side C; <delta> t, [ps]; events', type='TH1D', path='DeltaTime/sideC', xbins=400, xmin=-1500.0, xmax=1500.0) # Finalize. The return value should be a tuple of the ComponentAccumulator result.merge(helper.result()) return result diff --git a/ForwardDetectors/ZDC/ZdcMonitoring/CMakeLists.txt b/ForwardDetectors/ZDC/ZdcMonitoring/CMakeLists.txt index ae977202364ed642e6f7a2a97917fdf85abfa7fe..a50bc82c56c009e21340f987f0988b7cb05313bc 100644 --- a/ForwardDetectors/ZDC/ZdcMonitoring/CMakeLists.txt +++ b/ForwardDetectors/ZDC/ZdcMonitoring/CMakeLists.txt @@ -1,44 +1,27 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ZdcMonitoring ) # External dependencies: -find_package( ROOT COMPONENTS Core Hist MathCore ) +find_package( ROOT COMPONENTS Core ) # Component(s) in the package: -atlas_add_library( - ZdcMonitoringLib - src/*.cxx - PUBLIC_HEADERS - ZdcMonitoring +atlas_add_component( ZdcMonitoring + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${ROOT_LIBRARIES} - AthenaBaseComps AthenaMonitoringLib - GaudiKernel + AthenaMonitoringKernelLib StoreGateLib - LumiBlockData - TrigAnalysisInterfaces - TrigDecisionInterface - TrigDecisionToolLib - TrigNavToolsLib xAODEventInfo xAODForward xAODHIEvent - ZdcUtilsLib ZdcAnalysisLib + ZdcUtilsLib ) - -atlas_add_component( - ZdcMonitoring - src/components/*.cxx - LINK_LIBRARIES - ZdcMonitoringLib -) - -## Install files from the package: +# Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/ForwardDetectors/ZDC/ZdcRec/test/test_data23hi_ZDCCalib.sh b/ForwardDetectors/ZDC/ZdcRec/test/test_data23hi_ZDCCalib.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f2988e56dea4d0b9ce7dc05ef55d3b18ed53516 --- /dev/null +++ b/ForwardDetectors/ZDC/ZdcRec/test/test_data23hi_ZDCCalib.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# +# art-description: Runs ZDC reconstruction, including time and energy calibration, on ZDCCalib stream, using 2023 HI data. +# art-athena-mt: 8 +# art-type: grid +# art-include: main/Athena +# art-include: 24.0/Athena + +export ATHENA_CORE_NUMBER=8 + +athena ZdcRec/ZdcRecConfig.py --CA --filesInput /eos/atlas/atlascerngroupdisk/data-art/grid-input/ZdcRec/data23_hi.00463427.calibration_ZDCCalib.daq.RAW._lb0000._SFO-19._0001.data --evtMax=10 + +#Remember retval of transform as art result +RES=$? +xAODDigest.py AOD.pool.root digest.txt +echo "art-result: $RES Reco" + diff --git a/HLT/Trigger/TrigControl/TrigServices/python/TriggerUnixStandardSetup.py b/HLT/Trigger/TrigControl/TrigServices/python/TriggerUnixStandardSetup.py index a5ed2937395d23fa71aac4f668ec1813ecb6d057..f57e2805ad5395decaa98cf308eb57966f552011 100644 --- a/HLT/Trigger/TrigControl/TrigServices/python/TriggerUnixStandardSetup.py +++ b/HLT/Trigger/TrigControl/TrigServices/python/TriggerUnixStandardSetup.py @@ -41,7 +41,7 @@ def commonServicesCfg(flags): TopAlg=["AthSequencer/AthMasterSeq"]) ) from AthenaConfiguration.MainServicesConfig import AvalancheSchedulerSvcCfg - cfg.merge( AvalancheSchedulerSvcCfg(flags) ) + cfg.merge( AvalancheSchedulerSvcCfg(flags, maxParallelismExtra=1 if flags.Trigger.enableAsyncIO else 0) ) # SGCommitAuditor to sweep new DataObjects at end of Alg execute cfg.addAuditor( CompFactory.SGCommitAuditor() ) diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/MakeReferenceFile.cxx b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/MakeReferenceFile.cxx index a7458fb132e9e0688f7b8a4160c59fbf513e80d7..9c248622f5ec6ffdc66e3e752e0f864470e659bb 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/MakeReferenceFile.cxx +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/MakeReferenceFile.cxx @@ -29,6 +29,7 @@ #include <stdexcept> #include <ctime> #include <sstream> +#include <unordered_map> #ifdef ATLAS_GCC_CHECKERS #include "CxxUtils/checker_macros.h" @@ -291,15 +292,26 @@ int main(int argc, char *argv[]) FolderSpec fs(folderName, tagName); Folder f(connection, fs); const std::string fileName = tagName + ".log"; - std::ofstream opFile(fileName); - auto objectsIterator = f.objectIterator(true); // True tu use the last IOV + bool useLastIOV = true; + cool::IObjectIteratorPtr objectsIterator = f.objectIterator(useLastIOV); // True to use the last IOV + std::vector<std::string> myIOVs; while (objectsIterator->goToNext()) { - const auto &thisObject = objectsIterator->currentRef(); + const cool::IObject &thisObject = objectsIterator->currentRef(); std::string display = iovToString(thisObject) + " (" + std::to_string(thisObject.channelId()) + ")\n"; display += payloadToString(thisObject); - opFile << display; + myIOVs.push_back(display); + } + + std::ofstream opFile(fileName); + if(!useLastIOV){ + // Saving in file the previous to last IOV - testing only so far. + opFile << myIOVs.at(myIOVs.size()-2); + } + else{ + opFile << myIOVs.back(); } + opFile << std::endl; opFile.close(); return returnCode; diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/FileMerger.py b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/FileMerger.py index a0e55d66dc757d685387aba5cb5a85a39136601e..4f3accede3c69aebbb9c32716afbc4fd6af54c84 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/FileMerger.py +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/FileMerger.py @@ -1,7 +1,7 @@ # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # This function reads the layers that have been recalibrated (using the PixelCalibrationConfig python) and creates a merge file of all of them -# the "layers" aregument is an array i.e: ["Blayer","L1","L2","disk"] meaning that it will look for files like "calibration_Blayer.txt"... etc +# the "layers" argument is an array i.e: ["Blayer","L1","L2","disk"] meaning that it will look for files like "calibration_Blayer.txt"... etc import os.path diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/Recovery.py b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/Recovery.py index 8f984139a0e2729838438d65885f2faf421293bb..d4014e27219c5963821bdff26d605bb499ef3903 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/Recovery.py +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/python/Recovery.py @@ -2,7 +2,7 @@ import json -# Reading from the gerenated file in MakeReferenceFile +# Reading from the generated file in MakeReferenceFile # It converts the DB payload into a python dictionary using json def ReadDbFile(name): mydict = dict() @@ -78,7 +78,7 @@ def avg(a, b): return 1/2*(a + b) -# This fucntion recovers the thresholds for the normal, long and ganged pixels +# This function recovers the thresholds for the normal, long and ganged pixels def recover_thr(thr1, thr2, listarray, ref_val): recovered_value = avg(thr1, thr2) @@ -89,7 +89,7 @@ def recover_thr(thr1, thr2, listarray, ref_val): recovered_value = sum(listarray)/len(listarray) return recovered_value -# This fucntion recovers other than the thresholds +# This function recovers other than the thresholds def recover(listarray, ref_val): if not listarray: @@ -143,7 +143,7 @@ def recover_empties(new_calib, ref_calib): # rest of parameters else: - # itr_par 13 or 16 are the fit parameters for the demominator. Bad values are 0 or -28284.3 so we need to exclude them from the list + # itr_par 13 or 16 are the fit parameters for the denominator. Bad values are 0 or -28284.3 so we need to exclude them from the list if itr_par == 13 or itr_par == 16: new_calib[module][itr_fe][itr_par] = recover(val_list_fit, ref_calib[module][itr_fe][itr_par]) else: @@ -178,7 +178,7 @@ def UpdateAndSave(new_calib, ref_calib): # Commented out since it could be used for comparison - Experts only # Fprint(new_calib , "final_new_calib.txt") # Fprint(ref_calib , "final_ref_calib.txt") - Fprint(updated_calib, "final_calibration_candidate.txt") + Fprint(updated_calib, "FINAL_calibration_candidate.txt") return updated_calib @@ -201,7 +201,7 @@ def UpdateCalib(tag): ref_calib = ReadDbFile(tag+".log") new_calib, read_report = ReadNewCalib("calibration_merged.txt") - # modifying the new_calib dictionary in order to revover the empty FE + # modifying the new_calib dictionary in order to recover the empty FE report, counter_report = recover_empties(new_calib,ref_calib) UpdateAndSave(new_calib,ref_calib) @@ -223,9 +223,9 @@ def UpdateCalib(tag): print("NEW CALIBRATION file to update the DB: final_calibration_candidate.txt") str += """Positions of single 0's: - 0: normal_threhold, 1: normal_RMS, 2: normal_noise, 3: normal_intime - 4: long_threhold , 5: long_RMS , 6: long_noise , 7: long_intime - 8: ganged_threhold, 9: ganged_RMS, 10: ganged_noise, 11: ganged_intime + 0: normal_threshold, 1: normal_RMS, 2: normal_noise, 3: normal_intime + 4: long_threshold , 5: long_RMS , 6: long_noise , 7: long_intime + 8: ganged_threshold, 9: ganged_RMS, 10: ganged_noise, 11: ganged_intime 12: 13: 14: Fitting for normal pixels 15: 16: 17: Fitting for long and ganged pixels 18: 19: quality and smearing (used for MC)\n\n""" diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/Calib.cxx b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/Calib.cxx index 8e94859820d111e8c01f8ea90506cb47723291b8..409ded48ab17091e1e8e391178dd28953d2e36c4 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/Calib.cxx +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/Calib.cxx @@ -635,17 +635,17 @@ bool Calib::fillThresholds(const pix::PixelMapping &pm, const std::string &inThr histogramsSIG.at(FE).at(pixel)->Reset("ICESM"); if(pixel == 0){ // normal - map_info[modID].at(FE)->set_NormalTheshold(thr_mean); + map_info[modID].at(FE)->set_NormalThreshold(thr_mean); map_info[modID].at(FE)->set_NormalRms(thr_rms); map_info[modID].at(FE)->set_NormalNoise(sig_mean); } else if(pixel == 1){ // long - map_info[modID].at(FE)->set_LongTheshold(thr_mean); + map_info[modID].at(FE)->set_LongThreshold(thr_mean); map_info[modID].at(FE)->set_LongRms(thr_rms); map_info[modID].at(FE)->set_LongNoise(sig_mean); } else if(pixel == 2){ // ganged - map_info[modID].at(FE)->set_GangedTheshold(thr_mean); + map_info[modID].at(FE)->set_GangedThreshold(thr_mean); map_info[modID].at(FE)->set_GangedRms(thr_rms); map_info[modID].at(FE)->set_GangedNoise(sig_mean); } @@ -732,7 +732,7 @@ TH2F* Calib::get2DHistogramFromPath( TDirectoryFile* rodDir, const TString & mod TDirectoryFile *histDir = static_cast<TDirectoryFile *>(rodDir->GetDirectory(fullHistoPath)); if(!histDir){ - printf("Error - Directory \"%s\" not found. Exiting..",fullHistoPath.Data()); + printf("Error - Directory \"%s\" not found. Exiting..\n",fullHistoPath.Data()); return nullptr; } TH2F *pTH2 = static_cast<TH2F*>((static_cast<TKey*>(histDir->GetListOfKeys()->First()))->ReadObj()); diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.cxx b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.cxx index 8014f3ad8c20db94332fa919492a980aed371ae0..e38260b27f27a6036abd2cb23d46fd90a7cda800 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.cxx +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.cxx @@ -18,9 +18,9 @@ std::stringstream CalibFrontEndInfo::printDBformat() const { if(m_FEid == 0) mytext << m_MODid_str << " " << m_MODid << "\n"; mytext << "I" << m_FEid - << " " << m_NormalTheshold << " " << m_NormalRms << " " << m_NormalNoise << " " << m_NormalIntime - << " " << m_LongTheshold << " " << m_LongRms << " " << m_LongNoise << " " << m_LongIntime - << " " << m_GangedTheshold << " " << m_GangedRms << " " << m_GangedNoise << " " << m_GangedIntime + << " " << m_NormalThreshold << " " << m_NormalRms << " " << m_NormalNoise << " " << m_NormalIntime + << " " << m_LongThreshold << " " << m_LongRms << " " << m_LongNoise << " " << m_LongIntime + << " " << m_GangedThreshold << " " << m_GangedRms << " " << m_GangedNoise << " " << m_GangedIntime << " " << m_NormalFitParams.at(0) << " " << m_NormalFitParams.at(1) << " " << m_NormalFitParams.at(2) << " " << m_LongFitParams.at(0) << " " << m_LongFitParams.at(1) << " " << m_LongFitParams.at(2) @@ -37,9 +37,9 @@ void CalibFrontEndInfo::printBeautyformat() const { m_FEid, - m_NormalTheshold, m_NormalRms, m_NormalNoise, m_NormalIntime, - m_LongTheshold , m_LongRms , m_LongNoise , m_LongIntime , - m_GangedTheshold, m_GangedRms, m_GangedNoise, m_GangedIntime, + m_NormalThreshold, m_NormalRms, m_NormalNoise, m_NormalIntime, + m_LongThreshold , m_LongRms , m_LongNoise , m_LongIntime , + m_GangedThreshold, m_GangedRms, m_GangedNoise, m_GangedIntime, m_NormalFitParams.at(0), m_NormalFitParams.at(1), m_NormalFitParams.at(2) , m_NormalFitParamsQuality.at(0) , m_NormalFitParamsQuality.at(1), m_LongFitParams.at(0) , m_LongFitParams.at(1) , m_LongFitParams.at(2) , m_LongFitParamsQuality.at(0) , m_LongFitParamsQuality.at(1) , @@ -59,9 +59,9 @@ void CalibFrontEndInfo::printVals() const { printf("-----------------------------------------------------------------------\n"); printf("| %-9s | %9s | %9s | %9s | %9s |\n","", "Threshold", " RMS", " Noise", " Intime" ); printf("-----------------------------------------------------------------------\n"); - printf("| %-9s | %9d | %9d | %9d | %9d |\n","Normal", m_NormalTheshold, m_NormalRms, m_NormalNoise, m_NormalIntime); - printf("| %-9s | %9d | %9d | %9d | %9d |\n","Long" , m_LongTheshold , m_LongRms , m_LongNoise , m_LongIntime ); - printf("| %-9s | %9d | %9d | %9d | %9d |\n","Ganged", m_GangedTheshold, m_GangedRms, m_GangedNoise, m_GangedIntime); + printf("| %-9s | %9d | %9d | %9d | %9d |\n","Normal", m_NormalThreshold, m_NormalRms, m_NormalNoise, m_NormalIntime); + printf("| %-9s | %9d | %9d | %9d | %9d |\n","Long" , m_LongThreshold , m_LongRms , m_LongNoise , m_LongIntime ); + printf("| %-9s | %9d | %9d | %9d | %9d |\n","Ganged", m_GangedThreshold, m_GangedRms, m_GangedNoise, m_GangedIntime); printf("-----------------------------------------------------------------------\n\n"); if(m_NormalFitParams.size() == 3 ) { @@ -90,9 +90,9 @@ void CalibFrontEndInfo::printMODerr() const { bool error = false; - int vals[12] = {m_NormalTheshold, m_NormalRms, m_NormalNoise, m_NormalIntime, - m_LongTheshold , m_LongRms , m_LongNoise , m_LongIntime , - m_GangedTheshold, m_GangedRms, m_GangedNoise, m_GangedIntime, + int vals[12] = {m_NormalThreshold, m_NormalRms, m_NormalNoise, m_NormalIntime, + m_LongThreshold , m_LongRms , m_LongNoise , m_LongIntime , + m_GangedThreshold, m_GangedRms, m_GangedNoise, m_GangedIntime, }; for(const auto &val : vals) { diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.h b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.h index 5254f1ff3fcddf5dbefde2ca591def7c28cf374d..307205335ffca3c2a6458327e19269f8720e3d7a 100644 --- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.h +++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/ChargeCalibration/pixel/tools/CalibFrontEndInfo.h @@ -33,25 +33,25 @@ class CalibFrontEndInfo { void set_MODid (int x){m_MODid = x;} void set_FEid (int x){m_FEid = x;} - void set_NormalTheshold (int x){m_NormalTheshold = x;} - void set_NormalRms (int x){m_NormalRms = x;} - void set_NormalNoise (int x){m_NormalNoise = x;} - void set_NormalIntime (int x){m_NormalIntime = x;} + void set_NormalThreshold (int x){m_NormalThreshold = x;} + void set_NormalRms (int x){m_NormalRms = x;} + void set_NormalNoise (int x){m_NormalNoise = x;} + void set_NormalIntime (int x){m_NormalIntime = x;} - void set_LongTheshold (int x){m_LongTheshold = x;} + void set_LongThreshold (int x){m_LongThreshold = x;} void set_LongRms (int x){m_LongRms = x;} void set_LongNoise (int x){m_LongNoise = x;} void set_LongIntime (int x){m_LongIntime = x;} - void set_GangedTheshold (int x){m_GangedTheshold = x;} - void set_GangedRms (int x){m_GangedRms = x;} - void set_GangedNoise (int x){m_GangedNoise = x;} - void set_GangedIntime (int x){m_GangedIntime = x;} + void set_GangedThreshold (int x){m_GangedThreshold = x;} + void set_GangedRms (int x){m_GangedRms = x;} + void set_GangedNoise (int x){m_GangedNoise = x;} + void set_GangedIntime (int x){m_GangedIntime = x;} void set_times_fitted (int x){m_times_fitted = x;} //Setters for the fits - void set_NormalParams (const std::vector<float> &x){m_NormalFitParams = x; } + void set_NormalParams (const std::vector<float> & x){m_NormalFitParams = x; } void set_LongParams (const std::vector<float> & x){m_LongFitParams = x; } void set_SigParams (const std::vector<float> & x){m_SigFitParams = x; } @@ -61,23 +61,25 @@ class CalibFrontEndInfo { //Getters for the parameters - coming soon - //int MODid() const {return m_MODid; }; - //int FEid() const {return m_FEid; }; + int MODid() const {return m_MODid; }; + int FEid() const {return m_FEid; }; + std::string MODid_str() const {return m_MODid_str; }; + std::string FEid_str() const {return m_RODid_str; }; - //int norTheshold() const {return m_NormalTheshold; }; - //int norRms() const {return m_NormalRms; }; - //int norNoise() const {return m_NormalNoise; }; - //int norIntime() const {return m_NormalIntime; }; + int normThreshold() const {return m_NormalThreshold; }; + int normRms() const {return m_NormalRms; }; + int normNoise() const {return m_NormalNoise; }; + int normIntime() const {return m_NormalIntime; }; - //int lonTheshold() const {return m_LongTheshold; }; - //int lonRms() const {return m_LongRms; }; - //int lonNoise() const {return m_LongNoise; }; - //int lonIntime() const {return m_LongIntime; }; + int longThreshold() const {return m_LongThreshold; }; + int longRms() const {return m_LongRms; }; + int longNoise() const {return m_LongNoise; }; + int longIntime() const {return m_LongIntime; }; - //int ganTheshold() const {return m_GangedTheshold; }; - //int ganRms() const {return m_GangedRms; }; - //int ganNoise() const {return m_GangedNoise; }; - //int ganIntime() const {return m_GangedIntime; }; + int gangThreshold() const {return m_GangedThreshold; }; + int gangRms() const {return m_GangedRms; }; + int gangNoise() const {return m_GangedNoise; }; + int gangIntime() const {return m_GangedIntime; }; //Prints the information stored in case of need. @@ -92,28 +94,28 @@ class CalibFrontEndInfo { private: - std::string m_MODid_str = ""; - std::string m_RODid_str = ""; + std::string m_MODid_str = ""; + std::string m_RODid_str = ""; - int m_MODid = -1; - int m_FEid = -1; + int m_MODid = -1; + int m_FEid = -1; - int m_NormalTheshold = -1; + int m_NormalThreshold = -1; int m_NormalRms = -1; int m_NormalNoise = -1; int m_NormalIntime = -1; - int m_LongTheshold = -1; + int m_LongThreshold = -1; int m_LongRms = -1; int m_LongNoise = -1; int m_LongIntime = -1; - int m_GangedTheshold = -1; + int m_GangedThreshold = -1; int m_GangedRms = -1; int m_GangedNoise = -1; int m_GangedIntime = -1; - int m_times_fitted = -1; + int m_times_fitted = -1; std::vector<float> m_NormalFitParams; std::vector<float> m_LongFitParams; diff --git a/LArCalorimeter/LArClusterRec/CMakeLists.txt b/LArCalorimeter/LArClusterRec/CMakeLists.txt index 95084f2aa18c5fb5257ae1656c3ee7afa7f16561..ee7b256018381eacd0c61d1d84c66b6655c58492 100644 --- a/LArCalorimeter/LArClusterRec/CMakeLists.txt +++ b/LArCalorimeter/LArClusterRec/CMakeLists.txt @@ -12,5 +12,5 @@ atlas_add_component( LArClusterRec # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -atlas_install_joboptions( share/*.py ) + diff --git a/LArCalorimeter/LArClusterRec/python/LArClusterSwGetters.py b/LArCalorimeter/LArClusterRec/python/LArClusterSwGetters.py deleted file mode 100755 index 1b61da16bc1a794622428e02962fce88977a86f7..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArClusterRec/python/LArClusterSwGetters.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# -# $Id: LArClusterSwGetters.py,v 1.4 2008/04/14 16:24:22 laplace Exp $ -# -# File: LArClusterRec/python/LArClusterSwGetters.py -# Created: Mar 2007, sss -# Purpose: Define the Getter's for EM sliding window reconstruction. -# - -from CaloRec.CaloClusterSwGetterBase import make_CaloClusterSwGetter - -# Helper so that we don't need to type the name twice. -def _make_getter (*args, **kw): - if 'corrversion' not in kw: - # Temporary until metatool / ToolWithConstant issues are worked out. - kw = kw.copy() - from AthenaConfiguration.AllConfigFlags import ConfigFlags - kw['corrversion'] = ConfigFlags.Egamma.Calib.ClusterCorrectionVersion - g = make_CaloClusterSwGetter (*args, **kw) - globals()[g.__name__] = g - return g - -# Define getters for electrons and photons, for 5x5, 3x5, and 3x7 clusters. - -_make_getter ('LArClusterSwEle55Getter', 'ele', 5, 5, towrite = False) -_make_getter ('LArClusterSwGam55Getter', 'gam', 5, 5, towrite = False) - -_make_getter ('LArClusterSwEle35Getter', 'ele', 3, 5, towrite = True) -_make_getter ('LArClusterSwGam35Getter', 'gam', 3, 5, towrite = False) - -_make_getter ('LArClusterSwEle37Getter', 'ele', 3, 7, towrite = False) -_make_getter ('LArClusterSwGam37Getter', 'gam', 3, 7, towrite = False) - -_make_getter ('LArClusterSw711GetterNocorr', 'ele', 7, 11, - suffix = 'Nocorr', corrversion = 'none') diff --git a/LArCalorimeter/LArClusterRec/share/LArClusterCollisionTime_jobOptions.py b/LArCalorimeter/LArClusterRec/share/LArClusterCollisionTime_jobOptions.py deleted file mode 100644 index 9e241b7a3bcd9c7a9f2d0c28b72d4cf2493448a6..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArClusterRec/share/LArClusterCollisionTime_jobOptions.py +++ /dev/null @@ -1,8 +0,0 @@ -include.block("LArClusterRec/LArClusterCollisionTime_jobOptions.py") - -from LArClusterRec.LArClusterRecConf import LArClusterCollisionTimeAlg - -topSequence+=LArClusterCollisionTimeAlg(OutputName="ClusterCollTime", - InputName="egammaClusters", - ) - diff --git a/LArCalorimeter/LArClusterRec/share/LArCluster_jobOptions.py b/LArCalorimeter/LArClusterRec/share/LArCluster_jobOptions.py deleted file mode 100755 index 4fc7ef9a91ca54d8e8c6d769e2ba2fc933a550c1..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArClusterRec/share/LArCluster_jobOptions.py +++ /dev/null @@ -1,14 +0,0 @@ -# jobOptions file for LAr Cluster Reconstruction -# with full corrections. - -# Backwards compatibility for old softe code. -from CaloClusterCorrection.CaloSwCorrections import CaloSwCorrections_compat -CaloSw_corrections = CaloSwCorrections_compat() - -# Create 3x5 electron clusters -from LArClusterRec.LArClusterSwGetters import * -LArClusterSwEle35Getter() - -# 7x11 clusters with no corrections. -# not built by default -#LArClusterSw711GetterNocorr() diff --git a/LArCalorimeter/LArClusterRec/share/LArDigits_fromEMCluster_jobptions.py b/LArCalorimeter/LArClusterRec/share/LArDigits_fromEMCluster_jobptions.py deleted file mode 100644 index d52f1dd04b6d04a595486ea361c58299b23dc63b..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArClusterRec/share/LArDigits_fromEMCluster_jobptions.py +++ /dev/null @@ -1,11 +0,0 @@ -from LArCabling.LArCablingAccess import LArOnOffIdMapping -LArOnOffIdMapping() - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -from LArClusterRec.LArClusterRecConf import LArDigitThinnerFromEMClust -theLArDigitThinnerFromEMClust = LArDigitThinnerFromEMClust("LArDigitThinnerFromEMClust") -theLArDigitThinnerFromEMClust.ClusterContainer = "LArClusterEM7_11Nocorr" - -topSequence += theLArDigitThinnerFromEMClust diff --git a/LArCalorimeter/LArCnv/LArByteStream/CMakeLists.txt b/LArCalorimeter/LArCnv/LArByteStream/CMakeLists.txt index 71cadae39e339fa31156dd6df4dac7a26f973c28..97949a2b7a511ea7ca17a9aaa4830aaa175ca079 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/CMakeLists.txt +++ b/LArCalorimeter/LArCnv/LArByteStream/CMakeLists.txt @@ -24,4 +24,4 @@ atlas_add_component( LArByteStream # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -atlas_install_joboptions( share/*.txt share/*.py ) +atlas_install_joboptions( share/*.txt ) diff --git a/LArCalorimeter/LArCnv/LArByteStream/share/ReadLArBS_jobOptions.py b/LArCalorimeter/LArCnv/LArByteStream/share/ReadLArBS_jobOptions.py deleted file mode 100644 index 76d18d087958c2277772596bfa8c7dc2832e40d2..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArByteStream/share/ReadLArBS_jobOptions.py +++ /dev/null @@ -1,11 +0,0 @@ -# jobOption fragment for Accessing LArRawChannel from ByteStream -# DLLs - -from LArROD.LArRODConf import ReadLArRaw - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -readLArRaw = ReadLArRaw() -topSequence += readLArRaw -readLArRaw.LArRawChannelContainerName = "LArRawChannels" -readLArRaw.DumpFile="lar_rawchannel.txt" diff --git a/LArCalorimeter/LArCnv/LArByteStream/share/WriteLArBS_G4_jobOptions.py b/LArCalorimeter/LArCnv/LArByteStream/share/WriteLArBS_G4_jobOptions.py deleted file mode 100644 index 9c0c304ed36fbc5f337bf93b5e1a85e21e7bfb5c..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArByteStream/share/WriteLArBS_G4_jobOptions.py +++ /dev/null @@ -1,13 +0,0 @@ -# read LArRawChannel from G4, write to BS - -theApp.Dlls += [ "LArROD", "LArRawUtils" ] -theApp.TopAlg += [ "ReadLArRaw" ] -ReadLArRaw = Algorithm( "ReadLArRaw" ) -ReadLArRaw.LArRawChannelContainerName = "LArRawChannels" -#ReadLArRaw.HistogramID = 128 -#ReadLArRaw.NtupleLocID = "/FILE1/LARG" -# specify the LAr Converter and LArROD type and key for output. -theApp.Dlls += [ "LArCalibUtils" ] -theApp.Dlls += [ "LArByteStream" ] -StreamBS = Algorithm( "StreamBS" ) -StreamBS.ItemList +=["2721#*"] diff --git a/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_ReadLArROD.py b/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_ReadLArROD.py deleted file mode 100644 index 54e8c902985f37b563f896b664b1640586114f79..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_ReadLArROD.py +++ /dev/null @@ -1,71 +0,0 @@ -#************************************************************** -# -# jopOptions file in LArByteStream package -# Read in ByteStream events, and Access LArRawChannel -# -#============================================================== -# eformat input -include( "ByteStreamCnvSvc/BSEventStorageEventSelector_jobOptions.py" ) - -# EventStorage Input -ByteStreamInputSvc = svcMgr.ByteStreamInputSvc -EventSelector.Input = ["daq.csc12.0000000.Single.Stream.LB0000.Athena._0001.data"] -include( "ByteStreamCnvSvcBase/BSAddProvSvc_RDO_jobOptions.py" ) - -from AthenaCommon.DetFlags import DetFlags -DetFlags.Calo_setOn() -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Truth_setOff() -DetFlags.LVL1_setOff() -DetFlags.digitize.all_setOff() - -from AthenaCommon.GlobalFlags import GlobalFlags -GlobalFlags.DataSource.set_geant4() -GlobalFlags.InputFormat.set_bytestream() -GlobalFlags.DetGeo.set_atlas() - -from AthenaCommon.JobProperties import jobproperties -jobproperties.Global.DetDescrVersion="ATLAS-CSC-01-02-00" - -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit - -include( "LArDetDescr/LArDetDescr_joboptions.py" ) -include( "CaloIdCnv/CaloIdCnv_joboptions.py" ) -include( "LArIdCnv/LArIdCnv_joboptions.py" ) -include ("CaloConditions/CaloConditions_jobOptions.py") -include( "TileIdCnv/TileIdCnv_jobOptions.py" ) -include( "TileConditions/TileConditions_jobOptions.py" ) - - -# Read LArRawChannel -include( "LArByteStream/ReadLArBS_jobOptions.py" ) - -# ToolSvc.LArRodDecoder.Print=true; -# ByteStreamCnvSvc = Service( "ByteStreamCnvSvc" ) -# ByteStreamCnvSvc.InitCnvs += [ "LArRawChannelContainer", -# "LArRawChannelCollection" ] -# theApp.ExtSvc += [ "ByteStreamCnvSvc"] -#-------------------------------------------------------------- -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -#-------------------------------------------------------------- -MessageSvc.OutputLevel = INFO -#-------------------------------------------------------------- -# Event related parameters -#-------------------------------------------------------------- -# Number of events to be processed (default is 10) -theApp.EvtMax = 200 -#-------------------------------------------------------------- -# Algorithms Private Options -#-------------------------------------------------------------- -#--------------------------------------------------------------- -# Ntuple service output -#--------------------------------------------------------------- - -from AthenaCommon.AppMgr import theAuditorSvc -from AthenaCommon.ConfigurableDb import getConfigurable -theAuditorSvc += getConfigurable("ChronoAuditor")() -theApp.AuditAlgorithms=True -theApp.AuditServices=True -theApp.AuditTools=True diff --git a/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_WriteLArROD_G4.py b/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_WriteLArROD_G4.py deleted file mode 100644 index 6bcc6491b1e87e0a8ea617f279348f617a8a9fb4..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArByteStream/share/jobOptions_WriteLArROD_G4.py +++ /dev/null @@ -1,120 +0,0 @@ -#************************************************************** -# -# jopOptions file for writing ByteStream. -# -#============================================================== -# Read in POOL MC event -include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" ) - - -from AthenaCommon.DetFlags import DetFlags -DetFlags.Calo_setOn() -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Truth_setOff() -DetFlags.LVL1_setOff() -DetFlags.digitize.all_setOff() -DetFlags.Print() - - -from AthenaCommon.GlobalFlags import GlobalFlags -GlobalFlags.DataSource.set_geant4() -GlobalFlags.InputFormat.set_pool() -GlobalFlags.DetGeo.set_atlas() - -from AthenaCommon.JobProperties import jobproperties -jobproperties.Global.DetDescrVersion="ATLAS-CSC-01-02-00" - - -# MC Truth -# Pool Converters -include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - -include( "LArAthenaPool/LArAthenaPool_joboptions.py" ) - -# Pool input (Change this to use a different file) -# -EventSelector = svcMgr.EventSelector -EventSelector.InputCollections=["/afs/cern.ch/atlas/offline/data/testfile/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301_tid003138._00016_extract_10evt.pool.root"] -# need catalog from -# /afs/cern.ch/atlas/project/dc2/preprod801/PoolFileCatalog.xml - -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit - -include( "LArDetDescr/LArDetDescr_joboptions.py" ) -include( "CaloIdCnv/CaloIdCnv_joboptions.py" ) -include( "LArIdCnv/LArIdCnv_joboptions.py" ) -include ("CaloConditions/CaloConditions_jobOptions.py") -include( "TileIdCnv/TileIdCnv_jobOptions.py" ) -include( "TileConditions/TileConditions_jobOptions.py" ) - - -# write to ByteStream as eformat file. -# include( "ByteStreamCnvSvc/WriteByteStream_jobOptions.py" ) -#write to ByteStream as EventStorage File. -# include ("ByteStreamCnvSvc/WriteByteStream_EventStorage_jobOptions.py") - -include( "LArByteStream/ReadLArBS_jobOptions.py" ) - -# configure for output -svcMgr = theApp.serviceMgr() - -# Conversion Service instance -from ByteStreamCnvSvc.ByteStreamCnvSvcConf import ByteStreamCnvSvc -svcMgr += ByteStreamCnvSvc() -# OutputSvc -from ByteStreamCnvSvc.ByteStreamCnvSvcConf import ByteStreamEventStorageOutputSvc -svcMgr += ByteStreamEventStorageOutputSvc() -# Properties -ByteStreamCnvSvc = svcMgr.ByteStreamCnvSvc -ByteStreamCnvSvc.ByteStreamOutputSvc ="ByteStreamEventStorageOutputSvc" -# OutputStream -from AthenaServices.AthenaServicesConf import AthenaOutputStream -oStream = AthenaOutputStream( - "StreamBS", - EvtConversionSvc = "ByteStreamCnvSvc", - OutputFile = "ByteStreamEventStorageOutputSvc" - ) -theApp.addOutputStream( oStream ) -# Define the output as follows: -ByteStreamEventStorageOutputSvc = svcMgr.ByteStreamEventStorageOutputSvc -ByteStreamEventStorageOutputSvc.OutputDirectory = "./" -ByteStreamEventStorageOutputSvc.AppName = "Athena" -ByteStreamEventStorageOutputSvc.FileTag = "csc13" - - - -# read LArRawChannel from G4, write to BS - -theApp.Dlls += [ "LArCalibUtils" ] -theApp.Dlls += [ "LArByteStream" ] - -oStream.ItemList +=["2721#*"] - - -#-------------------------------------------------------------- -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -#-------------------------------------------------------------- -MessageSvc = svcMgr.MessageSvc -MessageSvc.OutputLevel = INFO -#-------------------------------------------------------------- -# Event related parameters -#-------------------------------------------------------------- -# Number of events to be processed (default is 10) -theApp.EvtMax = 50 - - -ByteStreamEventStorageOutputSvc.FileTag = "csc12" -from LArByteStream.LArByteStreamConfig import LArRawDataContByteStreamToolConfig - -svcMgr.ToolSvc += LArRawDataContByteStreamToolConfig(InitializeForWriting = True, - stream = StreamBS) - - -from AthenaCommon.AppMgr import theAuditorSvc -from AthenaCommon.ConfigurableDb import getConfigurable -theAuditorSvc += getConfigurable("ChronoAuditor")() -theApp.AuditAlgorithms=True -theApp.AuditServices=True -theApp.AuditTools=True diff --git a/LArCalorimeter/LArCnv/LArCondAthenaPool/CMakeLists.txt b/LArCalorimeter/LArCnv/LArCondAthenaPool/CMakeLists.txt index 2f0d71d7a6941876ba2ee83b180331384d00157e..2647f2bafa414bc2fe02d87777b2284bcbd48f74 100644 --- a/LArCalorimeter/LArCnv/LArCondAthenaPool/CMakeLists.txt +++ b/LArCalorimeter/LArCnv/LArCondAthenaPool/CMakeLists.txt @@ -10,9 +10,6 @@ atlas_add_poolcnv_library( LArCondAthenaPoolPoolCnv MULT_CHAN_TYPES LArAutoCorrComplete LArAutoCorrMC LArCaliPulseParamsComplete LArDAC2uAComplete LArDAC2uAMC LArDetCellParamsComplete LArfSamplComplete LArfSamplMC LArH6OscillationComplete LArMinBiasComplete LArMinBiasMC LArMinBiasAverageComplete LArMinBiasAverageMC LArMphysOverMcalComplete LArMphysOverMcalMC LArNoiseComplete LArNoiseMC LArOFCComplete LArPedestalComplete LArPhysCaliTdiffComplete LArRampComplete LArRampMC LArShapeComplete LArShape32MC LArTdriftComplete LAruA2MeVComplete LAruA2MeVMC LArOFCBinComplete LArRinjComplete LArCableLengthComplete LArCableAttenuationComplete LArTshaperComplete LArEMEC_CphiComplete LArEMEC_HValphaComplete LArEMEC_HVbetaComplete LArCaliWaveContainer LArPhysWaveContainer LArHVScaleCorrComplete LArDSPThresholdsComplete LINK_LIBRARIES AthenaPoolUtilities AthenaPoolCnvSvcLib LArCondTPCnv LArRawConditions ) -# Install files from the package: -atlas_install_joboptions( share/*.py ) - atlas_add_test( LArAutoCorrCompleteCnv_test SOURCES diff --git a/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Read.py b/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Read.py deleted file mode 100755 index 7e812a705d734594286403d89bb84138f544f6e9..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Read.py +++ /dev/null @@ -1,85 +0,0 @@ -############################################################### -# -# Job options file 1 -# -#============================================================== -#use McEventSelector -include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) - -theApp.Dlls += [ "GaudiAud" ] -theAuditorSvc = AuditorSvc() -theAuditorSvc.Auditors = [ "ChronoAuditor" ] - -from AthenaCommon.DetFlags import DetFlags -DetFlags.Calo_setOn() -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Truth_setOff() -DetFlags.LVL1_setOff() -DetFlags.digitize.all_setOff() - - -#-------------------------------------------------------------- -# Private Application Configuration options -#-------------------------------------------------------------- -# theApp.Dlls += [ "LArRawUtils" ] -theApp.Dlls += [ "LArTools" ] - -# change DB server -# LArCondCnvDbServer = 'db1.usatlas.bnl.gov' - -# Other LAr related -# include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_joboptions.py" ) -include( "LArIdCnv/LArIdCnv_joboptions.py" ) - -include( "CaloConditions/CaloConditions_jobOptions.py" ) - -include( "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" ) - -include( "LArCondCnv/LArCondCnv_G4_jobOptions.py" ) - -# ATLAS -# include( "LArCondCnv/LArCondCnv_IdMapAtlas_jobOptions.py" ) - - - -# LArCondCnv -# theApp.TopAlg = [ "LArIOV_TestAlg" ]; # test algorithm -#/-------------------------------------------------------------- -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = 2 -#-------------------------------------------------------------- -EventSelector = Service( "EventSelector" ) -EventSelector.RunNumber=1 -#EventSelector.EventsPerRun=10; -EventSelector.EventsPerRun=2 -EventSelector.FirstEvent=1 - -include( "AthenaPoolCnvSvc/AthenaPool_jobOptions.py" ) - -ProxyProviderSvc = Service( "ProxyProviderSvc" ) -ProxyProviderSvc.ProviderNames += [ "CondProxyProvider" ] - -CondProxyProvider = Service( "CondProxyProvider" ) -# CondProxyProvider.InputCollection = "oracle://devdb/hma" -CondProxyProvider.InputCollection = "LArIdMap.pool.root" - -EventPersistencySvc = Service( "EventPersistencySvc" ) -EventPersistencySvc.CnvServices += [ "AthenaPoolCnvSvc" ] - -include ("LArRawConditions/LArRawConditionsDict_joboptions.py") - -# Exercise writing the objects to NOVA (no IOV). -theApp.OutStream =["StreamDet"] -StreamDet = Algorithm("StreamDet") - -theApp.EvtMax=1 -StreamDet.StoreName="DetectorStore" -StreamDet.EvtConversionSvc="AthenaPoolCnvSvc" - -StreamDet.ItemList += ["LArOnOffIdMap#*"] -StreamDet.ItemList += ["LArFebRodMap#*"] -StreamDet.OutputFile = "LArIdMap2.pool.root" - -# StreamDet.OutputFile = "oracle://devdb/hma" - diff --git a/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Write.py b/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Write.py deleted file mode 100755 index bdd6de54bc7e833434c00ec0233e40c08be44b72..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArCondAthenaPool/share/LArIdMap_Pool_Write.py +++ /dev/null @@ -1,68 +0,0 @@ -############################################################### -# -# Job options file 1 -# -#============================================================== -#use McEventSelector -include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) - -theApp.Dlls += [ "GaudiAud" ] -theAuditorSvc = AuditorSvc() -theAuditorSvc.Auditors = [ "ChronoAuditor" ] - -from AthenaCommon.DetFlags import DetFlags -DetFlags.Calo_setOn() -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Truth_setOff() -DetFlags.LVL1_setOff() -DetFlags.digitize.all_setOff() - - -#-------------------------------------------------------------- -# Private Application Configuration options -#-------------------------------------------------------------- -theApp.Dlls += [ "LArTools" ] - -# change DB server -# LArCondCnvDbServer = 'db1.usatlas.bnl.gov' - -# Other LAr related -include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_joboptions.py" ) - -include( "CaloConditions/CaloConditions_jobOptions.py" ) - -include( "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" ) - -include( "LArCondCnv/LArCondCnv_G4_jobOptions.py" ) - -# ATLAS -include( "LArCondCnv/LArCondCnv_IdMapAtlas_jobOptions.py" ) - -# LArCondCnv -# theApp.TopAlg = [ "LArIOV_TestAlg" ]; # test algorithm -#/-------------------------------------------------------------- -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = 2 -#-------------------------------------------------------------- -EventSelector = Service( "EventSelector" ) -EventSelector.RunNumber=1 -#EventSelector.EventsPerRun=10; -EventSelector.EventsPerRun=2 -EventSelector.FirstEvent=1 - -include( "AthenaPoolCnvSvc/AthenaPool_jobOptions.py" ) - -# Exercise writing the objects to NOVA (no IOV). -theApp.OutStream =["StreamDet"] -StreamDet = Algorithm("StreamDet") - -theApp.EvtMax=1 -StreamDet.StoreName="DetectorStore" -StreamDet.EvtConversionSvc="AthenaPoolCnvSvc" - -StreamDet.ItemList += ["LArOnOffIdMap#*"] -StreamDet.ItemList += ["LArFebRodMap#*"] -StreamDet.OutputFile = "LArIdMap.pool.root" - -# StreamDet.OutputFile = "oracle://devdb/hma" diff --git a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/CMakeLists.txt b/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/CMakeLists.txt deleted file mode 100644 index 3d751e81f99c9b2b246177fcc09a1343792560e3..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -################################################################################ -# Package: LArDetMgrDetDescrCnv -################################################################################ - -# Declare the package name: -atlas_subdir( LArDetMgrDetDescrCnv ) - -# Install files from the package: -atlas_install_joboptions( share/*.py ) - diff --git a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_G3_joboptions.py b/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_G3_joboptions.py deleted file mode 100755 index 3ded7985ec3d0278b713e24d8d81dbfeddc78b96..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_G3_joboptions.py +++ /dev/null @@ -1,3 +0,0 @@ -print "WARNING: this fragment is obsolete ! Please use LArDetDescr/LArDetDescr_G3_joboptions.py" - -include( "LArDetDescr/LArDetDescr_G3_joboptions.py" ) diff --git a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_joboptions.py b/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_joboptions.py deleted file mode 100755 index be273398122878a59e3d4ad79a9d215d7a10c560..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv/share/LArDetMgrDetDescrCnv_joboptions.py +++ /dev/null @@ -1,3 +0,0 @@ -print "WARNING: this fragment is obsolete ! Please use LArDetDescr/LArDetDescr_joboptions.py" - -include( "LArDetDescr/LArDetDescr_joboptions.py" ) diff --git a/LArCalorimeter/LArMonitoring/CMakeLists.txt b/LArCalorimeter/LArMonitoring/CMakeLists.txt index f163dade4b31471c86c8134905ed1700e6e6e6ce..83a1a9622706d07fea13439044bfb0b87b9d7e9b 100644 --- a/LArCalorimeter/LArMonitoring/CMakeLists.txt +++ b/LArCalorimeter/LArMonitoring/CMakeLists.txt @@ -29,5 +29,4 @@ atlas_add_dictionary( LArStrHelperDict # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -atlas_install_joboptions( share/LArMonitoring_jobOption.py share/LArAffectedRegionsAlg_jobOptions.py share/LArCollisionTimeMonAlg_jobOptions.py ) atlas_install_scripts( share/StateLessPT_TestFile_NewConfig.py share/StateLessPT_NewConfig.py ) diff --git a/LArCalorimeter/LArMonitoring/share/LArAffectedRegionsAlg_jobOptions.py b/LArCalorimeter/LArMonitoring/share/LArAffectedRegionsAlg_jobOptions.py deleted file mode 100644 index 918668f984cba0d440a03ade3d7061b3618e6382..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArMonitoring/share/LArAffectedRegionsAlg_jobOptions.py +++ /dev/null @@ -1,317 +0,0 @@ - -#AthMonitorCfgHelperOld must be imported in upper level JO - - -#define the group names here, as you'll use them multiple times -affectedRegGroupName="LArAffectedRegionsMonGroup" - - -#here are the helpers -helper_affectedReg = AthMonitorCfgHelperOld(DQMonFlags, affectedRegGroupName) - -#then the algorithms -#from AthenaMonitoring.AthenaMonitoringConf import ExampleMonitorAlgorithm -from LArMonitoring.LArMonitoringConf import LArAffectedRegionsAlg -larAffectedRegAlg = helper_affectedReg.addAlgorithm(LArAffectedRegionsAlg,'larAffectedRegAlg') -larAffectedRegAlg.AffectedRegionsGroupName=affectedRegGroupName -larAffectedRegAlg.IsOnline = isOnline - -#if you have to add a tool to the algorithm, put it here - - -#now the groups and histograms -from LArMonitoring import GlobalVariables #to define the ranges - -larAffReg_hist_path='AffectedRegions/' #histogram path - -#EMBPS -group_name_ending="EMBPS" -larAffectedRegAlg.EMBPSname=group_name_ending -affectedRegGroupEMBPS = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupEMBPS.defineHistogram('etaPOS,phi;LArAffectedRegionsEMBAPS', - title='HV Affected Regions - EMBA - Presampler;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMB["EMBAPS"][0],xmin=GlobalVariables.HVeta_EMB["EMBAPS"][1],xmax=GlobalVariables.HVeta_EMB["EMBAPS"][2], - ybins=GlobalVariables.HVphi_EMB["EMBAPS"][0],ymin=GlobalVariables.HVphi_EMB["EMBAPS"][1],ymax=GlobalVariables.HVphi_EMB["EMBAPS"][2] -) -affectedRegGroupEMBPS.defineHistogram('etaNEG,phi;LArAffectedRegionsEMBCPS', - title='HV Affected Regions - EMBC - Presampler;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMB["EMBCPS"][0],xmin=GlobalVariables.HVeta_EMB["EMBCPS"][1],xmax=GlobalVariables.HVeta_EMB["EMBCPS"][2], - ybins=GlobalVariables.HVphi_EMB["EMBCPS"][0],ymin=GlobalVariables.HVphi_EMB["EMBCPS"][1],ymax=GlobalVariables.HVphi_EMB["EMBCPS"][2] -) - - -#EMB -group_name_ending="EMB" -larAffectedRegAlg.EMBname=group_name_ending -affectedRegGroupEMB = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupEMB.defineHistogram('etaPOS,phi;LArAffectedRegionsEMBA', - title='HV Affected Regions - EMBA - Samplings 1-3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMB["EMBA"][0],xmin=GlobalVariables.HVeta_EMB["EMBA"][1],xmax=GlobalVariables.HVeta_EMB["EMBA"][2], - ybins=GlobalVariables.HVphi_EMB["EMBA"][0],ymin=GlobalVariables.HVphi_EMB["EMBA"][1],ymax=GlobalVariables.HVphi_EMB["EMBA"][2] -) -affectedRegGroupEMB.defineHistogram('etaNEG,phi;LArAffectedRegionsEMBC', - title='HV Affected Regions - EMBC - Samplings 1-3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMB["EMBC"][0],xmin=GlobalVariables.HVeta_EMB["EMBC"][1],xmax=GlobalVariables.HVeta_EMB["EMBC"][2], - ybins=GlobalVariables.HVphi_EMB["EMBC"][0],ymin=GlobalVariables.HVphi_EMB["EMBC"][1],ymax=GlobalVariables.HVphi_EMB["EMBC"][2] -) - - -#EMECPS -group_name_ending="EMECPS" -larAffectedRegAlg.EMECPSname=group_name_ending -affectedRegGroupEMECPS = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupEMECPS.defineHistogram('etaPOS,phi;LArAffectedRegionsEMECAPS', - title='HV Affected Regions - EMECA - Presampler;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMEC["EMECAPS"], - ybins=GlobalVariables.HVphi_EMEC["EMECAPS"] -) -affectedRegGroupEMECPS.defineHistogram('etaNEG,phi;LArAffectedRegionsEMECCPS', - title='HV Affected Regions - EMECC - Presampler;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMEC["EMECCPS"], - ybins=GlobalVariables.HVphi_EMEC["EMECCPS"] -) - - -#EMEC -group_name_ending="EMEC" -larAffectedRegAlg.EMECname=group_name_ending -affectedRegGroupEMEC = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupEMEC.defineHistogram('etaPOS,phi;LArAffectedRegionsEMECA', - title='HV Affected Regions - EMECA - Samplings 1-3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMEC["EMECA"], - ybins=GlobalVariables.HVphi_EMEC["EMECA"] -) -affectedRegGroupEMEC.defineHistogram('etaNEG,phi;LArAffectedRegionsEMECC', - title='HV Affected Regions - EMECC - Samplings 1-3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_EMEC["EMECC"], - ybins=GlobalVariables.HVphi_EMEC["EMECC"] -) - -#HEC0 -group_name_ending="HEC0" -larAffectedRegAlg.HEC0name=group_name_ending -affectedRegGroupHEC0 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupHEC0.defineHistogram('etaPOS,phi;LArAffectedRegionsHECA0', - title='HV Affected Regions - HECA - Layer 1;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECA"][0],xmin=GlobalVariables.HVeta_HECFcal["HECA"][1],xmax=GlobalVariables.HVeta_HECFcal["HECA"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECA"][0],ymin=GlobalVariables.HVphi_HECFcal["HECA"][1],ymax=GlobalVariables.HVphi_HECFcal["HECA"][2] -) -affectedRegGroupHEC0.defineHistogram('etaNEG,phi;LArAffectedRegionsHECC0', - title='HV Affected Regions - HECC - Layer 1;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECC"][0],xmin=GlobalVariables.HVeta_HECFcal["HECC"][1],xmax=GlobalVariables.HVeta_HECFcal["HECC"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECC"][0],ymin=GlobalVariables.HVphi_HECFcal["HECC"][1],ymax=GlobalVariables.HVphi_HECFcal["HECC"][2] -) - -#HEC1 -group_name_ending="HEC1" -larAffectedRegAlg.HEC1name=group_name_ending -affectedRegGroupHEC1 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupHEC1.defineHistogram('etaPOS,phi;LArAffectedRegionsHECA1', - title='HV Affected Regions - HECA - Layer 2;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECA"][0],xmin=GlobalVariables.HVeta_HECFcal["HECA"][1],xmax=GlobalVariables.HVeta_HECFcal["HECA"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECA"][0],ymin=GlobalVariables.HVphi_HECFcal["HECA"][1],ymax=GlobalVariables.HVphi_HECFcal["HECA"][2] -) -affectedRegGroupHEC1.defineHistogram('etaNEG,phi;LArAffectedRegionsHECC1', - title='HV Affected Regions - HECC - Layer 2;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECC"][0],xmin=GlobalVariables.HVeta_HECFcal["HECC"][1],xmax=GlobalVariables.HVeta_HECFcal["HECC"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECC"][0],ymin=GlobalVariables.HVphi_HECFcal["HECC"][1],ymax=GlobalVariables.HVphi_HECFcal["HECC"][2] -) - -#HEC2 -group_name_ending="HEC2" -larAffectedRegAlg.HEC2name=group_name_ending -affectedRegGroupHEC2 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupHEC2.defineHistogram('etaPOS,phi;LArAffectedRegionsHECA2', - title='HV Affected Regions - HECA - Layer 3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECA"][0],xmin=GlobalVariables.HVeta_HECFcal["HECA"][1],xmax=GlobalVariables.HVeta_HECFcal["HECA"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECA"][0],ymin=GlobalVariables.HVphi_HECFcal["HECA"][1],ymax=GlobalVariables.HVphi_HECFcal["HECA"][2] -) -affectedRegGroupHEC2.defineHistogram('etaNEG,phi;LArAffectedRegionsHECC2', - title='HV Affected Regions - HECC - Layer 3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECC"][0],xmin=GlobalVariables.HVeta_HECFcal["HECC"][1],xmax=GlobalVariables.HVeta_HECFcal["HECC"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECC"][0],ymin=GlobalVariables.HVphi_HECFcal["HECC"][1],ymax=GlobalVariables.HVphi_HECFcal["HECC"][2] -) - -#HEC3 -group_name_ending="HEC3" -larAffectedRegAlg.HEC3name=group_name_ending -affectedRegGroupHEC3 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupHEC3.defineHistogram('etaPOS,phi;LArAffectedRegionsHECA3', - title='HV Affected Regions - HECA - Layer 4;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECA"][0],xmin=GlobalVariables.HVeta_HECFcal["HECA"][1],xmax=GlobalVariables.HVeta_HECFcal["HECA"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECA"][0],ymin=GlobalVariables.HVphi_HECFcal["HECA"][1],ymax=GlobalVariables.HVphi_HECFcal["HECA"][2] -) -affectedRegGroupHEC3.defineHistogram('etaNEG,phi;LArAffectedRegionsHECC3', - title='HV Affected Regions - HECC - Layer 4;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["HECC"][0],xmin=GlobalVariables.HVeta_HECFcal["HECC"][1],xmax=GlobalVariables.HVeta_HECFcal["HECC"][2], - ybins=GlobalVariables.HVphi_HECFcal["HECC"][0],ymin=GlobalVariables.HVphi_HECFcal["HECC"][1],ymax=GlobalVariables.HVphi_HECFcal["HECC"][2] -) - -#FCAL0 -group_name_ending="FCAL0" -larAffectedRegAlg.FCAL0name=group_name_ending -affectedRegGroupFCAL0 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupFCAL0.defineHistogram('etaPOS,phi;LArAffectedRegionsFCALA0', - title='HV Affected Regions - FCALA - Layer 1;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalA"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalA"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalA"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalA"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalA"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalA"][2] -) -affectedRegGroupFCAL0.defineHistogram('etaNEG,phi;LArAffectedRegionsFCALC0', - title='HV Affected Regions - FCALC - Layer 1;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalC"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalC"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalC"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalC"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalC"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalC"][2] -) - -#FCAL1 -group_name_ending="FCAL1" -larAffectedRegAlg.FCAL1name=group_name_ending -affectedRegGroupFCAL1 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupFCAL1.defineHistogram('etaPOS,phi;LArAffectedRegionsFCALA1', - title='HV Affected Regions - FCALA - Layer 2;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalA"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalA"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalA"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalA"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalA"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalA"][2] -) -affectedRegGroupFCAL1.defineHistogram('etaNEG,phi;LArAffectedRegionsFCALC1', - title='HV Affected Regions - FCALC - Layer 2;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalC"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalC"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalC"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalC"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalC"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalC"][2] -) - -#FCAL2 -group_name_ending="FCAL2" -larAffectedRegAlg.FCAL2name=group_name_ending -affectedRegGroupFCAL2 = helper_affectedReg.addGroup( - larAffectedRegAlg, - affectedRegGroupName+group_name_ending, - '/LAr/' -) - -affectedRegGroupFCAL2.defineHistogram('etaPOS,phi;LArAffectedRegionsFCALA2', - title='HV Affected Regions - FCALA - Layer 3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalA"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalA"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalA"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalA"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalA"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalA"][2] -) -affectedRegGroupFCAL2.defineHistogram('etaNEG,phi;LArAffectedRegionsFCALC2', - title='HV Affected Regions - FCALC - Layer 3;#eta;#phi', - type='TH2F', - path=larAffReg_hist_path, - weight='problem', - xbins=GlobalVariables.HVeta_HECFcal["FCalC"][0],xmin=GlobalVariables.HVeta_HECFcal["FCalC"][1],xmax=GlobalVariables.HVeta_HECFcal["FCalC"][2], - ybins=GlobalVariables.HVphi_HECFcal["FCalC"][0],ymin=GlobalVariables.HVphi_HECFcal["FCalC"][1],ymax=GlobalVariables.HVphi_HECFcal["FCalC"][2] -) - -#and finally add all to topSequence -topSequence += helper_affectedReg.result() diff --git a/LArCalorimeter/LArMonitoring/share/LArCollisionTimeMonAlg_jobOptions.py b/LArCalorimeter/LArMonitoring/share/LArCollisionTimeMonAlg_jobOptions.py deleted file mode 100644 index 247de8ad980e89d3e5d2344857a8ba438387b554..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArMonitoring/share/LArCollisionTimeMonAlg_jobOptions.py +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration - -#AthMonitorCfgHelperOld must be imported in upper level JO - - -#define the group names here, as you'll use them multiple times -collTimeGroupName="LArCollisionTimeMonGroup" - - -#here are the helpers -helper_collTime = AthMonitorCfgHelperOld(DQMonFlags, collTimeGroupName) - -#then the algorithms -#from AthenaMonitoring.AthenaMonitoringConf import ExampleMonitorAlgorithm -from LArMonitoring.LArMonitoringConf import LArCollisionTimeMonAlg -larCollTimeMonAlg = helper_collTime.addAlgorithm(LArCollisionTimeMonAlg, "larCollTimeMonAlg") -larCollTimeMonAlg.CollTimeGroupName=collTimeGroupName -larCollTimeMonAlg.IsOnline = isOnline - -# BunchCrossing info -from LumiBlockComps.BunchCrossingCondAlgDefault import BunchCrossingCondAlgDefault -BunchCrossingCondAlgDefault() - - -#now the groups -collTimeGroup = helper_collTime.addGroup( - larCollTimeMonAlg, - collTimeGroupName, - "/LAr/" - ) - -#define the histograms -from LArMonitoring import GlobalVariables #to define the ranges -larColTime_hist_path='CollisionTime/' - -collTimeGroup.defineHistogram('ecTimeDiff;LArCollTime', - title='LArCollisionTime - difference of avg time from ECC and ECA;<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.colTime_Nbins,xmin=GlobalVariables.colTime_min,xmax=GlobalVariables.colTime_max) - -collTimeGroup.defineHistogram('ecTimeAvg;LArCollAvgTime', - title='LArCollisionAverageTime - avg time of ECC and ECA;(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.avgColTime_Nbins,xmin=GlobalVariables.avgColTime_min,xmax=GlobalVariables.avgColTime_max) - - -collTimeGroup.defineHistogram('ecTimeDiff;LArCollTimeLumiBlock', #this one is the same as LArCollTime, but it's reset once per LB (FUNCTIONALITY TO BE ADDED!) - title='LArCollisionTime - difference of avg time from ECC and ECA;<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.colTime_Nbins,xmin=GlobalVariables.colTime_min,xmax=GlobalVariables.colTime_max, - opt='kLBNHistoryDepth=1') - - -collTimeGroup.defineHistogram('lumi_block_timeWindow;LArCollTimeLumiBlockTimeCut', - title='Events with abs(<t_{C}> - <t_{A}>) < 10ns as a function of LB;Luminosity Block Number;Number of events per LB', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max) - - -collTimeGroup.defineHistogram('lumi_block_singleBeam_timeWindow;LArCollTimeLumiBlockSingleBeamTimeCut', - title='Events with 20 ns < abs(<t_{C}> - <t_{A}>) < 30ns as a function of LB;Luminosity Block Number;Number of events per LB', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max) - - -collTimeGroup.defineHistogram('lumi_block,ecTimeDiff;LArCollTime_vs_LB', - title='LArCollisionTime Vs Luminosity Block - difference of avg time of ECC and ECA as a function of luminosity block;Luminosity Block Number;<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max, - ybins=GlobalVariables.colTime_Nbins,ymin=GlobalVariables.colTime_min,ymax=GlobalVariables.colTime_max) - - -collTimeGroup.defineHistogram('bunch_crossing_id,ecTimeDiff;LArCollTime_vs_BCID', - title='LArCollisionTime Vs BCID - difference of avg time of ECC and ECA as a function of BCID;Bunch Crossing Number;<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.BCID_Bins,xmin=GlobalVariables.BCID_Min,xmax=GlobalVariables.BCID_Max, - ybins=GlobalVariables.colTime_Nbins,ymin=GlobalVariables.colTime_min,ymax=GlobalVariables.colTime_max) - -collTimeGroup.defineHistogram('lumi_block,ecTimeAvg;LArCollAvgTime_vs_LB', - title='LArCollisionAvgTime Vs Luminosity Block - avg time of ECC and ECA as a function of luminosity block;Luminosity Block Number;(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max, - ybins=GlobalVariables.avgColTime_Nbins,ymin=GlobalVariables.avgColTime_min,ymax=GlobalVariables.avgColTime_max) - -collTimeGroup.defineHistogram('bunch_crossing_id,ecTimeAvg;LArCollAvgTime_vs_BCID', - title='LArCollisionAvgTime Vs BCID - avg time of ECC and ECA as a function of BCID;Bunch Crossing Number;(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.BCID_Bins,xmin=GlobalVariables.BCID_Min,xmax=GlobalVariables.BCID_Max, - ybins=GlobalVariables.avgColTime_Nbins,ymin=GlobalVariables.avgColTime_min,ymax=GlobalVariables.avgColTime_max) - -#in train monitoring, only done offline -if isOnline: - - collTimeGroupName_intrain=collTimeGroupName+"_intrain" - collTimeGroup_intrain = helper_collTime.addGroup( - larCollTimeMonAlg, - collTimeGroupName_intrain, - "/LAr/" - ) - larCollTimeMonAlg.InTrain_CollTimeGroupName=collTimeGroupName_intrain #pass the group name to the algorithm, this way you let the algorithm now that this group has been defined (won't be filled otherwise) - - intrain_tit=" inside the train" - intrain_name="_intrain" - - collTimeGroup_intrain.defineHistogram('ecTimeDiff;LArCollTime'+intrain_name, - title='LArCollisionTime - difference of avg time from ECC and ECA'+intrain_tit+';<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.colTime_Nbins,xmin=GlobalVariables.colTime_min,xmax=GlobalVariables.colTime_max) - - - collTimeGroup_intrain.defineHistogram('ecTimeAvg;LArCollAvgTime'+intrain_name, - title='LArCollisionAverageTime - avg time of ECC and ECA'+intrain_tit+';(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.avgColTime_Nbins,xmin=GlobalVariables.avgColTime_min,xmax=GlobalVariables.avgColTime_max) - - - collTimeGroup_intrain.defineHistogram('ecTimeDiff;LArCollTimeLumiBlock'+intrain_name, #this one is the same as LArCollTime, but it's reset once per LB (FUNCTIONALITY TO BE ADDED!) - title='LArCollisionTime - difference of avg time from ECC and ECA;<t_{C}> - <t_{A}> (ns)'+intrain_tit+';Number of events (weighted by energy/GeV) per ns', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.colTime_Nbins,xmin=GlobalVariables.colTime_min,xmax=GlobalVariables.colTime_max) - - - collTimeGroup_intrain.defineHistogram('(lumi_block_timeWindow);LArCollTimeLumiBlockTimeCut'+intrain_name, - title='Events with abs(<t_{C}> - <t_{A}>) < 10ns as a function of LB'+intrain_tit+';Luminosity Block Number;Number of events per LB', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max) - - - collTimeGroup_intrain.defineHistogram('(lumi_block_singleBeam_timeWindow);LArCollTimeLumiBlockSingleBeamTimeCut'+intrain_name, - title='Events with 20 ns < abs(<t_{C}> - <t_{A}>) < 30ns as a function of LB'+intrain_tit+';Luminosity Block Number;Number of events per LB', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max) - - - collTimeGroup_intrain.defineHistogram('lumi_block,ecTimeDiff;LArCollTime_vs_LB'+intrain_name, - title='LArCollisionTime Vs Luminosity Block - difference of avg time of ECC and ECA as a function of luminosity block;Luminosity Block Number'+intrain_tit+';<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max, - ybins=GlobalVariables.colTime_Nbins,ymin=GlobalVariables.colTime_min,ymax=GlobalVariables.colTime_max) - - - collTimeGroup_intrain.defineHistogram('bunch_crossing_id,ecTimeDiff;LArCollTime_vs_BCID'+intrain_name, - title='LArCollisionTime Vs BCID - difference of avg time of ECC and ECA as a function of BCID'+intrain_tit+';Bunch Crossing Number;<t_{C}> - <t_{A}> (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.BCID_Bins,xmin=GlobalVariables.BCID_Min,xmax=GlobalVariables.BCID_Max, - ybins=GlobalVariables.colTime_Nbins,ymin=GlobalVariables.colTime_min,ymax=GlobalVariables.colTime_max) - - collTimeGroup_intrain.defineHistogram('lumi_block,ecTimeAvg;LArCollAvgTime_vs_LB'+intrain_name, - title='LArCollisionAvgTime Vs Luminosity Block - avg time of ECC and ECA as a function of luminosity block'+intrain_tit+';Luminosity Block Number;(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.LB_Bins,xmin=GlobalVariables.LB_Min,xmax=GlobalVariables.LB_Max, - ybins=GlobalVariables.avgColTime_Nbins,ymin=GlobalVariables.avgColTime_min,ymax=GlobalVariables.avgColTime_max) - - collTimeGroup_intrain.defineHistogram('bunch_crossing_id,ecTimeAvg;LArCollAvgTime_vs_BCID'+intrain_name, - title='LArCollisionAvgTime Vs BCID - avg time of ECC and ECA as a function of BCID'+intrain_tit+';Bunch Crossing Number;(<t_{C}> + <t_{A}>) / 2 (ns);Number of events (weighted by energy/GeV)', - type='TH2F', - path=larColTime_hist_path, - weight='weight', - xbins=GlobalVariables.BCID_Bins,xmin=GlobalVariables.BCID_Min,xmax=GlobalVariables.BCID_Max, - ybins=GlobalVariables.avgColTime_Nbins,ymin=GlobalVariables.avgColTime_min,ymax=GlobalVariables.avgColTime_max) - - pass #end of if isOnline - - -#and finally add all to topSequence -topSequence += helper_collTime.result() diff --git a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py b/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py deleted file mode 100644 index 6dfe1f7af5644073d783b6424cf5b2c0e30fcf3f..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py +++ /dev/null @@ -1,5 +0,0 @@ - -include.block("LArMonitoring/LArMonitoring_jobOption.py") - -print("Deprecated, please use new CA config !!!") -print("ERROR: No LAr monitoring configured !!!") diff --git a/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt b/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt index 211d63ea2de19e0248c33bec06d7e65e6fe09817..2f11c590a5799d6280157ac0f30e95f457b0095f 100644 --- a/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt +++ b/LArCalorimeter/LArTest/LArEventTest/CMakeLists.txt @@ -14,6 +14,5 @@ atlas_add_component( LArEventTest LINK_LIBRARIES ${ROOT_LIBRARIES} CaloIdentifier AthenaBaseComps StoreGateLib GaudiKernel LArElecCalib LArIdentifier LArRawConditions LArRawEvent LArCablingLib CaloEvent xAODEventInfo ) # Install files from the package: -atlas_install_joboptions( share/*.py ) atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py b/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py deleted file mode 100755 index b6f4a12c4f9a804d17dfb806013efdcf20fce8ba..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits.py +++ /dev/null @@ -1,26 +0,0 @@ -#tested setup: asetup 20.1.5.8,here - - -from AthenaCommon.AppMgr import (theApp, ServiceMgr as svcMgr,ToolSvc) -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -include("LArConditionsCommon/LArMinimalSetup.py") - -svcMgr.IOVDbSvc.GlobalTag="CONDBR2-ES1PA-2015-05" - -#Specify the input file(s) -svcMgr.EventSelector.Input=["/scratch/wlampl/data15_13TeV/data15_13TeV.00267073.express_express.merge.RAW._lb0706._SFO-ALL._0001.1",] - -# Specify the object you want to read from ByteStream -theByteStreamAddressProviderSvc = svcMgr.ByteStreamAddressProviderSvc -theByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/FREE"] -theByteStreamAddressProviderSvc.TypeNames += ["LArFebHeaderContainer/LArFebHeader"] - -from LArEventTest.LArEventTestConf import DumpLArDigits -topSequence+=DumpLArDigits(LArDigitContainerName="FREE") - -theApp.EvtMax=5 - -#svcMgr.MessageSvc.OutputLevel=DEBUG -svcMgr.StoreGateSvc.Dump=True diff --git a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits_eformatOnly.py b/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits_eformatOnly.py deleted file mode 100755 index 61ca954a895e213eb85715f0321b2cf7953fe943..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArDigits_eformatOnly.py +++ /dev/null @@ -1,37 +0,0 @@ -GainKey="FREE" -# Number of events to be processed (default is 10) -theApp.EvtMax = 2 - - -# *************************************************************** -include( "ByteStreamCnvSvc/ByteStreamSelector_jobOptions.py" ) -ByteStreamAddressProviderSvc = Service( "ByteStreamAddressProviderSvc" ) -ByteStreamAddressProviderSvc.TypeNames += ["LArRawChannelContainer/LArRawChannels"] -ByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/FREE"] -include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_H8_joboptions.py" ) - -if GainKey=="FREE": - ToolSvc.LArRodDecoder.FirstSample=2 - -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel =DEBUG -AthenaEventLoopMgr = Service ("AthenaEventLoopMgr") -AthenaEventLoopMgr.OutputLevel=4 - -theApp.Dlls += [ "LArEventTest"] -theApp.topAlg+=["DumpLArDigits"] -DumpLArDigits=Algorithm("DumpLArDigits") -DumpLArDigits.LArDigitContainerName = "FREE" -DumpLArDigits.OutputFileName="LArDigits.txt" - -## theApp.Dlls+= ["LArROD"] -## theApp.TopAlg += ["ReadLArDigits"] -## ReadLArDigits = Algorithm( "ReadLArDigits" ) -## ReadLArDigits.ContainerKey=GainKey; - - -## theApp.Dlls += [ "RootHistCnv" ]; -## theApp.HistogramPersistency = "ROOT" -## NtupleSvc = Service( "NtupleSvc" ) -## NtupleSvc.Output=["FILE1 DATAFILE='dummyfile.root' TYP='ROOT' OPT='NEW'"] diff --git a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArRawChannels_eformatOnly.py b/LArCalorimeter/LArTest/LArEventTest/share/DumpLArRawChannels_eformatOnly.py deleted file mode 100755 index 65444be32f918e9c1a7922f580f88e866fa10d37..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArTest/LArEventTest/share/DumpLArRawChannels_eformatOnly.py +++ /dev/null @@ -1,37 +0,0 @@ -GainKey="FREE" -# Number of events to be processed (default is 10) -theApp.EvtMax = 2 - - -# *************************************************************** -include( "ByteStreamCnvSvc/ByteStreamSelector_jobOptions.py" ) -ByteStreamAddressProviderSvc = Service( "ByteStreamAddressProviderSvc" ) -ByteStreamAddressProviderSvc.TypeNames += ["LArRawChannelContainer/LArRawChannels"] -ByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/FREE"] -include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_H8_joboptions.py" ) - -if GainKey=="FREE": - ToolSvc.LArRodDecoder.FirstSample=2 - -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel =DEBUG -AthenaEventLoopMgr = Service ("AthenaEventLoopMgr") -AthenaEventLoopMgr.OutputLevel=4 - -theApp.Dlls += [ "LArEventTest"] -theApp.topAlg+=["DumpLArRawChannels"] -DumpLArRawChannels=Algorithm("DumpLArRawChannels") -DumpLArRawChannels.LArRawChannelContainerName = "LArRawChannels" -DumpLArRawChannels.OutputFileName="LArRawChannels.txt" - -## theApp.Dlls+= ["LArROD"] -## theApp.TopAlg += ["ReadLArDigits"] -## ReadLArDigits = Algorithm( "ReadLArDigits" ) -## ReadLArDigits.ContainerKey=GainKey; - - -## theApp.Dlls += [ "RootHistCnv" ]; -## theApp.HistogramPersistency = "ROOT" -## NtupleSvc = Service( "NtupleSvc" ) -## NtupleSvc.Output=["FILE1 DATAFILE='dummyfile.root' TYP='ROOT' OPT='NEW'"] diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringESD_Alg.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringESD_Alg.py index 4c8784f80639aaf7e4415f33cb41f7d8ef4cd31a..7169546c3e0b56b8c7d3eeea1031363ba456457e 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringESD_Alg.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringESD_Alg.py @@ -1,15 +1,10 @@ # -#Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +#Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # from .CscMonUtils import getCSCLabelx -def CscMonitoringESD_AlgOldConfig(inputFlags): - from AthenaMonitoring import AthMonitorCfgHelperOld - helper = AthMonitorCfgHelperOld(inputFlags,'CscAthMonitorCfg') - return helper.result() - def CscMonitoringESD_AlgConfig(inputFlags): '''Function to configures some algorithms in the monitoring system.''' diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringRAW_Alg.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringRAW_Alg.py index a6df7f647f4a7e6946a91a50c8ea627a5c525606..00488d4ee1fd33f70abb90b53026e69277a519f4 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringRAW_Alg.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/CscRawDataMonitoring/python/CscMonitoringRAW_Alg.py @@ -1,15 +1,10 @@ # -#Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +#Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # from .CscMonUtils import getCSCLabelx -def CscMonitoringRAW_AlgOldConfig(inputFlags): - from AthenaMonitoring import AthMonitorCfgHelperOld - helper = AthMonitorCfgHelperOld(inputFlags,'CscAthMonitorCfg') - return helper.result() - def CscMonitoringRAW_AlgConfig(inputFlags): '''Function to configures some algorithms in the monitoring system.''' diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/CMakeLists.txt b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/CMakeLists.txt index 596873ba7e5f2add01062a610c0a1bc4b7988488..8014472b1c86dc986a47aee545619180ab64a02b 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/CMakeLists.txt +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/CMakeLists.txt @@ -11,7 +11,7 @@ atlas_add_component( MMRawDataMonitoring src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthenaMonitoringKernelLib AthenaMonitoringLib GaudiKernel MuonAnalysisInterfacesLib MuonCalibIdentifier MuonDQAUtilsLib MuonIdHelpersLib MuonPrepRawData MuonRIO_OnTrack MuonReadoutGeometry StoreGateLib xAODMuon xAODTracking xAODTrigger MuonSegment) + LINK_LIBRARIES AthenaMonitoringKernelLib AthenaMonitoringLib GaudiKernel MuonAnalysisInterfacesLib MuonCalibIdentifier MuonDQAUtilsLib MuonIdHelpersLib MuonPrepRawData MuonRIO_OnTrack MuonReadoutGeometry StoreGateLib xAODMuon xAODTracking xAODTrigger MuonSegment xAODMuonRDO) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py index b847c1b2d8594f48856254ef3615fd20977f7fd2..f143faaad74e57f6d4faa851a30cbd4e68d5c057 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMMonitorAlgorithm.py @@ -30,12 +30,51 @@ def MMMonitoringConfig(inputFlags): mmMonAlg.DoMMESD = True mmMonAlg.do_stereoCorrection=False mmMonAlg.cut_pt = 0 - mmMonAlg.doDetailedHists = True + mmMonAlg.doDetailedHists = False mmGroup = helper.addGroup(mmMonAlg,'mmMonitor','Muon/MuonRawDataMonitoring/MM/') + + side = ["CSide","ASide"] + phimax=16 # Configure histograms + mmTriggerGroup=helper.addGroup(mmMonAlg, "mmTrigger", "Muon/MuonRawDataMonitoring/MM") + mmTriggerGroup.defineHistogram('lb_tri,trig_sector;trigger_sector_vs_lumiblock', type='TH2F', title='TriggerSector_vs_lumiblock; lb; sector', path='MMTrigger', xbins=100, xmin=-0.5, xmax=99.5, ybins=33, ymin=-16.5, ymax=16.5, opt='kAddBinsDynamically,kAlwaysCreate') + mmTriggerGroup.defineHistogram('trig_sector,art_channel;art_channel_vs_sector', type='TH2F', title='ART_channels; sector; art_channel', path='MMTrigger', xbins=33, xmin=-16.5, xmax=16.5, ybins=8192, ymin=0, ymax=8192,opt='kAlwaysCreate') + layerLabelx=getMMLabelY("x_layer_in_sector_tri") + mmTriggerGroup.defineHistogram('art_sector_layer,art_channel;art_channel_vs_layer', type='TH2F', title='ART_channels_vs_layer; ; art_channel', path='MMTrigger', xbins=257, xmin=-128, xmax=129, ybins=8192, ymin=0, ymax=8192, xlabels=layerLabelx,opt='kAlwaysCreate') + mmTriggerGroup.defineHistogram('trig_sector,art_deltaBC;art_bcid_vs_sector', type='TH2F', title='ART_BCID_vs_sector; sector_layer; art_deltaBCID', path='MMTrigger', xbins=33, xmin=-16.5, xmax=16.5, ybins=40, ymin=-20, ymax=20,opt='kAlwaysCreate') + mmTriggerGroup.defineHistogram('art_sector_layer,art_deltaBC;art_layer_vs_Dbcid', type='TH2F', title='ART_BCID_vs_layer; sector_layer; art_deltaBCID', path='MMTrigger', xbins=260, xmin=-130, xmax=130, ybins=40, ymin=-20, ymax=20, xlabels=layerLabelx,opt='kAlwaysCreate') + mmTriggerGroup.defineHistogram('lb_tri,art_sector_layer;art_layer_vs_lumiblock', type='TH2F', title='ART_layer_vs_lumiblock; lb; ', path='MMTrigger', xbins=100, xmin=-0.5, xmax=99.5, ybins=260, ymin=-130, ymax=130,opt='kAddBinsDynamically,kAlwaysCreate', ylabels=layerLabelx) + mmTriggerGroup.defineHistogram('art_bc,bcid;art_bcid_vs_bc', type='TH2F', title='ART_BCID; art_bcid; BCID', path='MMTrigger', xbins=5000, xmin=0, xmax=5000, ybins=5000, ymin=0, ymax=5000,opt='kAlwaysCreate') + mmTriggerGroup.defineHistogram('art_deltaBC,bcid;art_Dbcid_vs_bc', type='TH2F', title='ART_BCID; art_Dbcid; BCID', path='MMTrigger', xbins=5000, xmin=-2500, xmax=2500, ybins=5000, ymin=0, ymax=5000,opt='kAlwaysCreate') + + mmTriggerGroup_roi=helper.addGroup(mmMonAlg, "mmTrigger_roi", "Muon/MuonRawDataMonitoring/MM") + mmTriggerGroup_roi.defineHistogram('deltaBC;Delta_BC', type='TH1F', title='Delta_BC; deltaBC; events', path='MMTrigger', xbins=40, xmin=-20, xmax=20,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('phiid;phi', type='TH1F', title='phi; phi; events', path='MMTrigger', xbins=70, xmin=-35, xmax=35,opt='kAlwaysCreate') + + mmTriggerGroup_roi.defineHistogram('trig_sector,phi_mu;sector_vs_phimu', type='TH2F', title='sector_vs_phimu; sector; phimu ', path='MMTrigger', xbins=40, xmin=-20, xmax=20, ybins=100, ymin=-3.2, ymax=3.2,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('phi_roi,phi_mu;phiroi_vs_phimu', type='TH2F', title='phiroi_vs_phimu; phi_roi; phimu ', path='MMTrigger', xbins=100, xmin=-3.2, xmax=3.2, ybins=100, ymin=-3.2, ymax=3.2,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('eta_roi,eta_mu;etaroi_vs_etamu', type='TH2F', title='etaroi_vs_etamu; eta_roi; etamu ', path='MMTrigger', xbins=100, xmin=-3., xmax=3., ybins=100, ymin=-3., ymax=3.,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('x_roi_sideA,y_roi_sideA;roi_x_vs_y_sideA', type='TH2F', title='roix_vs_roiy_sideA; x_roi; y_roi ', path='MMTrigger', xbins=200, xmin=-5000., xmax=5000., ybins=200, ymin=-5000., ymax=5000.,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('x_roi_sideC,y_roi_sideC;roi_x_vs_y_sideC', type='TH2F', title='roix_vs_roiy_sideC; x_roi; y_roi ', path='MMTrigger', xbins=200, xmin=-5000., xmax=5000., ybins=200, ymin=-5000., ymax=5000.,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('lb_tri,trig_sector;sector_roi_vs_lb', type='TH2F', title='sector_roi_vs_lb; lb; sector_roi ', path='MMTrigger', xbins=100, xmin=-0.5, xmax=99.5, ybins=33, ymin=-16.5, ymax=16.5, opt='kAddBinsDynamically,kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('trig_sector,deltaBC;deltaBC_vs_sector_roi', type='TH2F', title='deltaBC_vs_sector_ROI; sector; dBC_roi ', path='MMTrigger', xbins=33, xmin=-16.5, xmax=16.5, ybins=40, ymin=-20, ymax=20,opt='kAlwaysCreate') + mmTriggerGroup_roi.defineHistogram('trig_sector,nROIPerBC;nROIPerBC_vs_sector', type='TH2F', title='N ROI per BC per Sector; sector; nROIPerBC ', path='MMTrigger', xbins=33, xmin=-16.5, xmax=16.5, ybins=10, ymin=0, ymax=10, opt='kAlwaysCreate') + + for iside in side: + for phi in range(1, phimax+1): + title_ROI=f'rID_vs_phiID ROI {iside} Sector {phi}; PhiID ; RID' + var=f'phiid_{iside}_s{phi},rid_{iside}_s{phi};rID_vs_phiID_ROI_{iside}_Sector{phi}' + mmTriggerGroup_roi.defineHistogram(var, type='TH2F', title=title_ROI, path='MMTrigger/ROIPerSector', xbins=70, xmin=-35, xmax=35, ybins=255, ymin=0, ymax=255,opt='kAlwaysCreate') + title_art_dbc=f'ART_DeltaBC vs lumiblock {iside} Sector {phi}; lb ; DeltaBC' + var_dbc_art=f'lb_tri,art_deltaBC_{iside}_s{phi};art_DeltaBC_vs_lb_art_{iside}_Sector{phi}' + mmTriggerGroup.defineHistogram(var_dbc_art, type='TH2F', title=title_art_dbc, path='MMTrigger/BCvsLBPerSector', xbins=100, xmin=-0.5, xmax=99.5, ybins=40, ymin=-20, ymax=20, opt='kAddBinsDynamically,kAlwaysCreate') + title_roi_dbc=f'ROI DeltaBC vs lumiblock {iside} Sector {phi}; lb ; DeltaBC' + var_dbc_roi=f'lb_tri,deltaBC_{iside}_s{phi};DeltaBC_vs_lb_ROI_{iside}_Sector{phi}' + mmTriggerGroup_roi.defineHistogram(var_dbc_roi, type='TH2F', title=title_roi_dbc, path='MMTrigger/BCvsLBPerSector', xbins=100, xmin=-0.5, xmax=99.5, ybins=40, ymin=-20, ymax=20, opt='kAddBinsDynamically,kAlwaysCreate') + # Overview histogram mmGroup.defineHistogram('nseg;nseg', type='TH1F', title='Number_of_segments; Number_of_segments; Number of Entries', path='Overview', xbins=100, xmin=0, xmax=100., opt='kAlwaysCreate') mmGroup.defineHistogram('ntrk;ntrk', type='TH1F', title='Number_of_tracks; Number_of_tracks; Number of Entries', path='Overview', xbins=100, xmin=0, xmax=100., opt='kAlwaysCreate') @@ -71,7 +110,8 @@ def MMMonitoringConfig(inputFlags): mmGroup.defineHistogram('sector_CSide_onseg,stationPhi_CSide_onseg;Occupancy_CSide_PCB_onseg', type='TH2F', title='Occupancy EC onseg; ; Sector;', path='Occupancy', xbins=64, xmin=0, xmax=128., ybins=16, ymin=.5, ymax=16.5, xlabels=occLabelx, opt='kAlwaysCreate') mmGroup.defineHistogram('sector_ASide_onseg,stationPhi_ASide_onseg;Occupancy_ASide_PCB_onseg', type='TH2F', title='Occupancy EA onseg; ; Sector;', path='Occupancy', xbins=64, xmin=0, xmax=128., ybins=16, ymin=.5, ymax=16.5, xlabels=occLabelx, opt='kAlwaysCreate') - side = ["CSide","ASide"] + + etasector = ["1","2"] for iside in side: @@ -84,7 +124,7 @@ def MMMonitoringConfig(inputFlags): mmSideGroup=helper.addGroup(mmMonAlg, MM_SideGroup, "Muon/MuonRawDataMonitoring/MM/"+iside) # Histograms for each sector - phimax=16 + multipletmin=1 multipletmax=2 @@ -207,15 +247,10 @@ if __name__=='__main__': # Set the Athena configuration flags from AthenaConfiguration.AllConfigFlags import initConfigFlags flags = initConfigFlags() - #flags.Input.Files =['/afs/cern.ch/user/b/bigliett/myeos/DQ/group.det-muon.DiMuonGenerator_EtaGtr_1p2_Pt10to100.ESD.Run3_2NSW_250322_reco_n270322_EXT0/group.det-muon.28531270.EXT0._000004.ESD.pool.root','/afs/cern.ch/user/b/bigliett/myeos/DQ/group.det-muon.DiMuonGenerator_EtaGtr_1p2_Pt10to100.ESD.Run3_2NSW_250322_reco_n270322_EXT0/group.det-muon.28531270.EXT0._000008.ESD.pool.root','/afs/cern.ch/user/b/bigliett/myeos/DQ/group.det-muon.DiMuonGenerator_EtaGtr_1p2_Pt10to100.ESD.Run3_2NSW_250322_reco_n270322_EXT0/group.det-muon.28531270.EXT0._000013.ESD.pool.root','/afs/cern.ch/user/b/bigliett/myeos/DQ/group.det-muon.DiMuonGenerator_EtaGtr_1p2_Pt10to100.ESD.Run3_2NSW_250322_reco_n270322_EXT0/group.det-muon.28531270.EXT0._000020.ESD.pool.root','/afs/cern.ch/user/b/bigliett/myeos/DQ/group.det-muon.DiMuonGenerator_EtaGtr_1p2_Pt10to100.ESD.Run3_2NSW_250322_reco_n270322_EXT0/group.det-muon.28531270.EXT0._000022.ESD.pool.root'] - - flags.Input.Files =[ - '/eos/atlas/atlastier0/rucio/data23_13p6TeV/express_express/00451735/data23_13p6TeV.00451735.express_express.recon.ESD.x738/data23_13p6TeV.00451735.express_express.recon.ESD.x738._lb0800._SFO-ALL._0001.1', - '/eos/atlas/atlastier0/rucio/data23_13p6TeV/express_express/00451735/data23_13p6TeV.00451735.express_express.recon.ESD.x738/data23_13p6TeV.00451735.express_express.recon.ESD.x738._lb0801._SFO-ALL._0001.1', - '/eos/atlas/atlastier0/rucio/data23_13p6TeV/express_express/00451735/data23_13p6TeV.00451735.express_express.recon.ESD.x738/data23_13p6TeV.00451735.express_express.recon.ESD.x738._lb0802._SFO-ALL._0001.1', - '/eos/atlas/atlastier0/rucio/data23_13p6TeV/express_express/00451735/data23_13p6TeV.00451735.express_express.recon.ESD.x738/data23_13p6TeV.00451735.express_express.recon.ESD.x738._lb0803._SFO-ALL._0001.1' - ] + flags.Input.Files =[ + "/eos/atlas/atlastier0/rucio/data23_hi/express_express/00463414/data23_hi.00463414.express_express.recon.ESD.x798/data23_hi.00463414.express_express.recon.ESD.x798._lb0501._SFO-ALL._0001.1", + ] flags.Output.HISTFileName = 'monitor.root' flags.Detector.GeometryMM=True @@ -232,11 +267,10 @@ if __name__=='__main__': from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg cfg = MainServicesCfg(flags) cfg.merge(PoolReadCfg(flags)) - - + mmMonitorAcc = MMMonitoringConfig(flags) mmMonitorAcc.OutputLevel=DEBUG cfg.merge(mmMonitorAcc) #cfg.printConfig(withDetails=True, summariseProps = True) # number of events selected in the ESD - cfg.run(-1) + cfg.run(1000) diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMRawMonLabels.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMRawMonLabels.py index 2ab9654f805e1007d314dc08404253c3dd8cffdc..7b9ca6e66db6e3e7eccb888223f4f2ed79d5fc3e 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMRawMonLabels.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/python/MMRawMonLabels.py @@ -26,3 +26,39 @@ y_lab_occ_lb=['ml1 gap1']+label_empty*7+['ml1 gap2']+label_empty*7+['ml1 gap3']+ x_lab_mpv = ['ml1 gp1', 'ml1 gp2', 'ml1 gp3', 'ml1 gp4', 'ml2 gp1', 'ml2 gp2', 'ml2 gp3', 'ml2 gp4'] x_layer_in_sector = ['Sector0']+label_empty*7+['Sector1']+label_empty*7+['Sector2']+label_empty*7+['Sector3']+label_empty*7+['Sector4']+label_empty*7+['Sector5']+label_empty*7+['Sector6']+label_empty*7+['Sector7']+label_empty*7+['Sector8']+label_empty*7+['Sector9']+label_empty*7+['Sector10']+label_empty*7+['Sector11']+label_empty*7+['Sector12']+label_empty*7+['Sector13']+label_empty*7+['Sector14']+label_empty*7+['Sector15']+label_empty*7 + +x_layer_in_sector_tri = [ + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C16 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C15 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C14 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C13 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C12 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C11 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C10 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C9 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C8 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C7 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C6 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C5 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C4 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C3 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C2 layer1', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'C1 layer1 ', + ' ', + ' A1 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A2 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A3 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A4 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A5 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A6 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A7 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A8 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A9 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A10 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A11 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A12 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A13 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A14 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A15 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + 'A16 layer1', ' ', ' ', ' ', ' ', ' ', ' ', ' ' +] diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx index 6a01baeb4a382dccc25fda914fb8de7059b54701..c2638f40d60b974574c92e48d4764bdfed5b1c50 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.cxx @@ -4,7 +4,6 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////// // Package : MMRawDataMonAlg // Authors: M. Biglietti, E. Rossi (Roma Tre) -// // // DESCRIPTION: // Subject: MM-->Offline Muon Data Quality @@ -119,6 +118,7 @@ StatusCode MMRawDataMonAlg::initialize() ATH_CHECK(m_MMContainerKey.initialize()); ATH_CHECK(m_meTrkKey.initialize()); ATH_CHECK(m_segm_type.initialize()); + ATH_CHECK(m_mmtpRdoKey.initialize()); ATH_MSG_DEBUG(" end of initialize " ); ATH_MSG_INFO("MMRawDataMonAlg initialization DONE " ); @@ -142,31 +142,43 @@ StatusCode MMRawDataMonAlg::fillHistograms(const EventContext& ctx) const //loop in MMPrepDataContainer for(const Muon::MMPrepDataCollection* coll : *mm_container) { - for(const Muon::MMPrepData* prd : *coll) { - ATH_CHECK(fillMMOverviewVects(prd, overviewPlots, occupancyPlots)); + for(const Muon::MMPrepData* prd : *coll) { + ATH_CHECK(fillMMOverviewVects(prd, overviewPlots, occupancyPlots)); ATH_CHECK(fillMMSummaryVects(prd, summaryPlots)); ATH_CHECK(fillMMHistograms(prd)); - } + } } - + if(m_do_mm_overview) fillMMOverviewHistograms(overviewPlots, occupancyPlots, lumiblock); - + ATH_CHECK(fillMMSummaryHistograms(summaryPlots)); SG::ReadHandle<xAOD::TrackParticleContainer> meTPContainer{m_meTrkKey,ctx}; if (!meTPContainer.isValid()) { - ATH_MSG_FATAL("Nope. Could not retrieve "<<m_meTrkKey.fullKey()); - return StatusCode::FAILURE; + ATH_MSG_FATAL("Nope. Could not retrieve "<<m_meTrkKey.fullKey()); + return StatusCode::FAILURE; } clusterFromTrack(meTPContainer.cptr(),lumiblock); MMEfficiency(meTPContainer.cptr()); + + + + //trigger + SG::ReadHandle<xAOD::NSWMMTPRDOContainer> rdos = SG::ReadHandle<xAOD::NSWMMTPRDOContainer>{m_mmtpRdoKey, ctx}; + if (not rdos.isValid()) { + ATH_MSG_INFO("NSW MMTP failed. Skipping"); + // return StatusCode::SUCCESS; + } else fillMMTrigger(rdos.cptr(),lumiblock); + SG::ReadHandle<Trk::SegmentCollection> segms(m_segm_type, ctx); - if (!segms.isValid()) { - ATH_MSG_ERROR("evtStore() does not contain MM segms Collection with name " << m_segm_type); - return StatusCode::FAILURE; - } - clusterFromSegments(segms.cptr(),lumiblock); + + if (!segms.isValid()) { + ATH_MSG_INFO("evtStore() does not contain MM segms Collection with name " << m_segm_type); + // return StatusCode::FAILURE; + }else + clusterFromSegments(segms.cptr(),lumiblock); } + return StatusCode::SUCCESS; } @@ -382,6 +394,106 @@ StatusCode MMRawDataMonAlg::fillMMHistograms( const Muon::MMPrepData* ) const{ return StatusCode::SUCCESS; } +void MMRawDataMonAlg::fillMMTrigger(const xAOD::NSWMMTPRDOContainer* mmtp, const int lb) const{ + + auto lb_tri=Monitored::Scalar<int>("lb_tri",lb); + + for (const auto* rdo : *mmtp) { + auto sourceID = rdo->sourceID(); + auto moduleID = rdo->moduleID(); + int s_side = (sourceID >> 16) == 107 ? 1:-1; // 1 for A; -1 for C + auto side = Monitored::Scalar<int>("tri_side", s_side); + int iside= s_side>0 ? s_side : 0; + uint s_sector = (moduleID & 0xF) + 1; //0-15 --> 1-16 + int oct = (int)((s_sector-1)/2.); + float sector_pos=(45/180.)*M_PI*oct; //large + if(s_sector%2==0 ) sector_pos=(45*oct+22.5)*M_PI/180.; //small + if(sector_pos>M_PI) sector_pos=sector_pos-2*M_PI; + + auto trig_sector = Monitored::Scalar<int>("trig_sector", s_sector*s_side); + + auto event_bcid=rdo->ROD_BCID(); + + auto bcid=Monitored::Scalar<int>("bcid",event_bcid); + + std::vector<short unsigned int> art_bcids = rdo->art_BCID(); + std::vector<unsigned char> layers=rdo->art_layer(); + auto channels=rdo->art_channel(); + + fill("mmTrigger", trig_sector, lb_tri); + + for (long unsigned int i=0; i< rdo->art_BCID().size(); i++ ){ + auto art_layer=static_cast<unsigned int>(layers[i]); + auto art_channel = Monitored::Scalar<int>("art_channel", channels[i]); + auto art_sector_layer = Monitored::Scalar<int>("art_sector_layer", s_side*8*(s_sector-1)+art_layer); + + const int rollover=3564; + int art_bc=art_bcids[i]; + int relative = art_bc - event_bcid;; + if (relative > rollover / 2) { + relative -= rollover; + } else if (relative <= -rollover / 2) { + relative += rollover; + } + if (relative > (rollover-2048) / 2) { + relative -= (rollover-2048); + } + auto art_deltaBC=Monitored::Scalar<int>("art_deltaBC",relative); + auto art_deltaBC_perSector=Monitored::Scalar<int>("art_deltaBC_"+MM_Side[iside]+"_s"+std::to_string(s_sector),relative); + auto art_bc_mon=Monitored::Scalar<int>("art_bc",art_bc); + + fill("mmTrigger", art_channel, trig_sector, art_sector_layer, art_deltaBC, art_bc_mon, bcid, lb_tri, art_deltaBC_perSector); + } + + auto bcids =rdo->trig_BCID(); + auto dthetas=rdo->trig_dTheta(); + auto rids=rdo->trig_ROI_rID(); + auto phiids=rdo->trig_ROI_phiID() ; + + + std::unordered_map<int, int> NROIPerBC; + for (int bc : bcids) NROIPerBC[bc]++; + for (const auto& [value, count] : NROIPerBC) { + auto nROIPerBC=Monitored::Scalar<int>("nROIPerBC",count); + fill("mmTrigger_roi", nROIPerBC, trig_sector); + } + + int nROI=rdo->trig_BCID().size(); + for (int i=0; i< nROI; i++ ){ + auto phiID = (phiids[i] & 0b11111) * ((phiids[i] >> 5) ? 1 : -1); + int sign = phiID > 0 ? 1 : -1; + auto phi_conv = (phiID-0.5*sign)*(16./31.)*M_PI/180. + sector_pos; + if(phi_conv> M_PI)phi_conv = phi_conv - 2*M_PI; + + const float z_ref=7824.46; + const float r_step=(5000-900)/256.; + auto rID = static_cast<unsigned int>(rids[i]); + float r_conv=r_step*rID+900; + float eta_conv=-log(0.5*atan(r_conv/z_ref))*s_side; + // auto dTheta=Monitored::Scalar<float>("dTheta_roi",static_cast<float>(dthetas[i])); + auto deltaBC= Monitored::Scalar<int>("deltaBC", bcids[i]-event_bcid); + auto deltaBC_perSector= Monitored::Scalar<int>("deltaBC_"+MM_Side[iside]+"_s"+std::to_string(s_sector), bcids[i]-event_bcid); + auto rid=Monitored::Scalar<int>("rid",rID); + auto phiid=Monitored::Scalar<int>("phiid",phiID); + auto rid_sector=Monitored::Scalar<int>("rid_"+MM_Side[iside]+"_s"+std::to_string(s_sector),rID); + auto phiid_sector=Monitored::Scalar<int>("phiid_"+MM_Side[iside]+"_s"+std::to_string(s_sector),phiID); + auto r_roi=Monitored::Scalar<float>("r_roi",r_conv); + auto phi_roi=Monitored::Scalar<float>("phi_roi",phi_conv); + auto eta_roi=Monitored::Scalar<float>("eta_roi",eta_conv); + auto x_roi_sideA=Monitored::Scalar<float>("x_roi_sideA", r_conv*cos(phi_roi)); + auto y_roi_sideA=Monitored::Scalar<float>("y_roi_sideA", r_conv*sin(phi_roi)); + auto x_roi_sideC=Monitored::Scalar<float>("x_roi_sideC", r_conv*cos(phi_roi) ); + auto y_roi_sideC=Monitored::Scalar<float>("y_roi_sideC", r_conv*sin(phi_roi)); + + fill("mmTrigger_roi", deltaBC, phiid, rid, trig_sector, phi_roi, eta_roi,r_roi, lb_tri, rid_sector, phiid_sector, deltaBC_perSector); + if(s_side>0) fill("mmTrigger_roi", x_roi_sideA, y_roi_sideA); + if(s_side<0) fill("mmTrigger_roi", x_roi_sideC, y_roi_sideC); + + } + } + +} + void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer* muonContainer, int lb) const { MMSummaryHistogramStruct summaryPlots[2][2][4]; // side, multilayer, gas gap @@ -420,13 +532,12 @@ void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer* muon int multi = m_idHelperSvc->mmIdHelper().multilayer(rot_id); int gap = m_idHelperSvc->mmIdHelper().gasGap(rot_id); int ch = m_idHelperSvc->mmIdHelper().channel(rot_id); - + // MMS and MML phi sectors // int phisec = (stNumber%2==0) ? 1 : 0; int sectorPhi = get_sectorPhi_from_stationPhi_stName(stPhi,stName); // 1->16 int PCB = get_PCB_from_channel(ch); int iside = (stEta > 0) ? 1 : 0; - auto& vects = overviewPlots; auto& thisSect = occupancyPlots[sectorPhi-1][iside]; @@ -487,12 +598,12 @@ void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer* muon Identifier surfaceId = (trkState)->surface().associatedDetectorElementIdentifier(); if(!m_idHelperSvc->isMM(surfaceId)) continue; - + int trk_stEta = m_idHelperSvc->mmIdHelper().stationEta(surfaceId); int trk_stPhi = m_idHelperSvc->mmIdHelper().stationPhi(surfaceId); int trk_multi = m_idHelperSvc->mmIdHelper().multilayer(surfaceId); int trk_gap = m_idHelperSvc->mmIdHelper().gasGap(surfaceId); - + if( (trk_stPhi == stPhi) && (trk_stEta == stEta) && (trk_multi == multi) && (trk_gap == gap)) { double x_trk = trkState->trackParameters()->parameters()[Trk::loc1]; int sectorPhi = get_sectorPhi_from_stationPhi_stName(trk_stPhi,stName); // 1->16 @@ -506,8 +617,10 @@ void MMRawDataMonAlg::clusterFromTrack(const xAOD::TrackParticleContainer* muon } auto residual_mon = Monitored::Scalar<float>("residual", res_stereo); auto stPhi_mon = Monitored::Scalar<float>("stPhi_mon",sectorPhi); + fill("mmMonitor", residual_mon, eta_trk, phi_trk, stPhi_mon); int abs_stEta = get_sectorEta_from_stationEta(stEta); // 0 or 1 + if(m_doDetailedHists){ auto& vectors = summaryPlots_full[side][sectorPhi-1][abs_stEta][multi-1][gap-1]; vectors.residuals.push_back(res_stereo); diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.h index 94af561c29cf8872128aa59710fcb238085dfa08..6f6f3e131a076ea1e3c6a77a73adc98495b4c549 100755 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.h +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MMRawDataMonitoring/src/MMRawDataMonAlg.h @@ -30,6 +30,7 @@ #include "xAODMuon/MuonContainer.h" #include "MuonPrepRawData/MMPrepDataContainer.h" #include "MuonPrepRawData/MMPrepData.h" +#include "xAODMuonRDO/NSWMMTPRDOContainer.h" #include "StoreGate/ReadHandleKey.h" @@ -66,13 +67,15 @@ class MMRawDataMonAlg: public AthMonitorAlgorithm { SG::ReadHandleKey<Muon::MMPrepDataContainer> m_MMContainerKey{this,"MMPrepDataContainerName","MM_Measurements"}; SG::ReadHandleKey<xAOD::MuonContainer> m_muonKey{this,"MuonKey","Muons","muons"}; SG::ReadHandleKey<xAOD::TrackParticleContainer> m_meTrkKey{this, "METrkContainer", "ExtrapolatedMuonTrackParticles"}; - + SG::ReadHandleKey<xAOD::NSWMMTPRDOContainer> m_mmtpRdoKey{this, "NSW_MMTPDataKey", "NSW_MMTrigProcessor_RDO"}; + StatusCode fillMMOverviewVects(const Muon::MMPrepData*, MMOverviewHistogramStruct& vects, MMByPhiStruct (&occupancyPlots)[16][2]) const; void fillMMOverviewHistograms(const MMOverviewHistogramStruct& vects, MMByPhiStruct (&occupancyPlots)[16][2], const int lb) const; StatusCode fillMMSummaryVects( const Muon::MMPrepData*, MMSummaryHistogramStruct (&vects)[2][16][2][2][4]) const; //[side][stationPhi][stationEta][multiplet][gas_gap] StatusCode fillMMHistograms( const Muon::MMPrepData* ) const; StatusCode fillMMSummaryHistograms( const MMSummaryHistogramStruct (&vects)[2][16][2][2][4]) const; + void clusterFromTrack(const xAOD::TrackParticleContainer*,const int lb) const; void clusterFromSegments(const Trk::SegmentCollection*, const int lb) const; @@ -98,7 +101,7 @@ class MMRawDataMonAlg: public AthMonitorAlgorithm { int get_bin_for_occ_lb_pcb_hist(const int multiplet, const int gas_gap, const int PCB) const; void MMEfficiency(const xAOD::TrackParticleContainer*) const; - + void fillMMTrigger( const xAOD::NSWMMTPRDOContainer*, const int) const; Gaudi::Property<bool> m_doMMESD{this,"DoMMESD",true}; Gaudi::Property<bool> m_do_mm_overview{this,"do_mm_overview",true}; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py index 22a3ebb6bc2ee7d1c6f8e7f80869bc01dad3d526..a211670e2ff4e1ad968684458ca4f2486658055f 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py @@ -1,5 +1,5 @@ # -#Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +#Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # from AthenaConfiguration.ComponentFactory import CompFactory @@ -8,11 +8,6 @@ from MdtRawDataMonitoring.MdtMonUtils import getMDTLabel, getMDTLabelx from MdtRawDataMonitoring.MDTTubeMax import tubeMax, tubeMax_smdt from MdtRawDataMonitoring.MDTChambers import mdtBA,mdtBC,mdtEA,mdtEC -def MdtMonitoringConfigOld(inputFlags): - from AthenaMonitoring import AthMonitorCfgHelperOld - helper = AthMonitorCfgHelperOld(inputFlags,'MdtAthMonitorCfg') - return helper.result() - def MdtMonitoringConfig(inputFlags): '''Function to configures some algorithms in the monitoring system.''' diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py index 1ea431f7f504d3e5778526912a4acbabc0f885d1..f496ce38c6d70c8033c18ad7b07f59bb0beea481 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py @@ -39,7 +39,9 @@ def sTgcMonitoringConfig(inputFlags,NSW_PadTrigKey=''): #Shifter sTgcOverviewGroup = helper.addGroup(sTgcMonAlg, 'sTgcOverview', globalPath + 'Shifter') - sTgcQuadOccupancyGroup = helper.addGroup(sTgcMonAlg, 'sTgcQuadOccupancy', globalPath + 'Shifter/Occupancy') + sTgcQuadOccupancyGroupPad = helper.addGroup(sTgcMonAlg, 'sTgcQuadOccupancyPad', globalPath + 'Shifter/Occupancy') + sTgcQuadOccupancyGroupStrip = helper.addGroup(sTgcMonAlg, 'sTgcQuadOccupancyStrip', globalPath + 'Shifter/Occupancy') + sTgcQuadOccupancyGroupWire = helper.addGroup(sTgcMonAlg, 'sTgcQuadOccupancyWire', globalPath + 'Shifter/Occupancy') sTgcTimingGroup = helper.addGroup(sTgcMonAlg, 'sTgcTiming', globalPath + 'Shifter/Timing') sTgcPadTriggerShifterGroup = helper.addGroup(sTgcMonAlg, 'padTriggerShifter', globalPath + 'Shifter/') sTgcLBshifterGroup = helper.addGroup(sTgcMonAlg, 'sTgcLumiblock', globalPath + 'Shifter/Lumiblock/') @@ -243,15 +245,15 @@ def sTgcMonitoringConfig(inputFlags,NSW_PadTrigKey=''): titleStationEtaSectorPadHitMap = f'L{layerIndex}; Sector; Quad; Hits' varStationEtaSectorPadHitMap = f'sector_layer_{layerIndex},stationEta_layer_{layerIndex};Pad_quad_occupancy_per_sector_Layer{layerIndex}' - sTgcQuadOccupancyGroup.defineHistogram(varStationEtaSectorPadHitMap, type = 'TH2F', title = titleStationEtaSectorPadHitMap, path = 'Pad', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') + sTgcQuadOccupancyGroupPad.defineHistogram(varStationEtaSectorPadHitMap, type = 'TH2F', title = titleStationEtaSectorPadHitMap, path = 'Pad', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') titleStationEtaSectorStripHitMap = f'L{layerIndex}; Sector; Quad; Hits' varStationEtaSectorStripHitMap = f'sector_layer_{layerIndex},stationEta_layer_{layerIndex};Strip_quad_occupancy_per_sector_Layer{layerIndex}' - sTgcQuadOccupancyGroup.defineHistogram(varStationEtaSectorStripHitMap, type = 'TH2F', title = titleStationEtaSectorStripHitMap, path = 'Strip', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') + sTgcQuadOccupancyGroupStrip.defineHistogram(varStationEtaSectorStripHitMap, type = 'TH2F', title = titleStationEtaSectorStripHitMap, path = 'Strip', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') titleStationEtaSectorWireGroupHitMap = f'L{layerIndex}; Sector; Quad; Hits' varStationEtaSectorWireGroupHitMap = f'sector_layer_{layerIndex},stationEta_layer_{layerIndex};Wire_quad_occupancy_per_sector_Layer{layerIndex}' - sTgcQuadOccupancyGroup.defineHistogram(varStationEtaSectorWireGroupHitMap, type = 'TH2F', title = titleStationEtaSectorWireGroupHitMap, path = 'Wire', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') + sTgcQuadOccupancyGroupWire.defineHistogram(varStationEtaSectorWireGroupHitMap, type = 'TH2F', title = titleStationEtaSectorWireGroupHitMap, path = 'Wire', xbins = sectorMax, xmin = 0.5, xmax = sectorMax + 0.5, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate') titleTimingPadTrack = f'L{layerIndex}; Sector; Pad Timing (on-track) [ns]; Hits' varTimingPadTrack = f'padTrackSectorSided_layer_{layerIndex},padTrackTiming_layer_{layerIndex};All_pad_timing_per_sector_Layer{layerIndex}' diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx index dbb332fdee83dbc0f541272622f7cbfacf3cef03..629ae44c1817152de8e4e680d0d0d216dec6cda0 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx @@ -122,7 +122,7 @@ void sTgcRawDataMonAlg::fillsTgcOccupancyHistograms(const Muon::sTgcPrepDataCont auto sectorSidedMon = Monitored::Scalar<int>("sector_layer_" + std::to_string(layer), sector); auto stationEtaSidedMon = Monitored::Scalar<int>("stationEta_layer_" + std::to_string(layer), stationEta); - fill("sTgcQuadOccupancy", sectorSidedMon, stationEtaSidedMon); + fill("sTgcQuadOccupancyPad", sectorSidedMon, stationEtaSidedMon); } else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) { @@ -154,7 +154,7 @@ void sTgcRawDataMonAlg::fillsTgcOccupancyHistograms(const Muon::sTgcPrepDataCont auto sectorSidedMon = Monitored::Scalar<int>("sector_layer_" + std::to_string(layer), sector); auto stationEtaSidedMon = Monitored::Scalar<int>("stationEta_layer_" + std::to_string(layer), stationEta); - fill("sTgcQuadOccupancy", sectorSidedMon, stationEtaSidedMon); + fill("sTgcQuadOccupancyStrip", sectorSidedMon, stationEtaSidedMon); } else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) { @@ -169,7 +169,7 @@ void sTgcRawDataMonAlg::fillsTgcOccupancyHistograms(const Muon::sTgcPrepDataCont auto sectorSidedMon = Monitored::Scalar<int>("sector_layer_" + std::to_string(layer), sector); auto stationEtaSidedMon = Monitored::Scalar<int>("stationEta_layer_" + std::to_string(layer), stationEta); - fill("sTgcQuadOccupancy", sectorSidedMon, stationEtaSidedMon); + fill("sTgcQuadOccupancyWire", sectorSidedMon, stationEtaSidedMon); } } } diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py index 7f27decea0739f5839c8ce99f1308f888c3961fe..9d6a1633ee2ec2a6f165a14a4622887198c1775b 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/python/MuonTrackMonitorAlgorithm.py @@ -1,20 +1,14 @@ """ -Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration 2020 Matthias Schott - Uni Mainz """ from AthenaConfiguration.Enums import BeamType -def MuonTrackConfig(flags, isOld=False, **kwargs): - if isOld: - # Run-2 style configuration - from AthenaMonitoring import AthMonitorCfgHelperOld as AthMonitorCfgHelper - from MuonTrackMonitoring.MuonTrackMonitoringConf import MuonTrackMonitorAlgorithm - else: - from AthenaMonitoring import AthMonitorCfgHelper - from AthenaConfiguration.ComponentFactory import CompFactory - MuonTrackMonitorAlgorithm = CompFactory.MuonTrackMonitorAlgorithm +def MuonTrackConfig(flags, **kwargs): + from AthenaMonitoring import AthMonitorCfgHelper + from AthenaConfiguration.ComponentFactory import CompFactory helper = AthMonitorCfgHelper(flags, "MuonTrackMonitoringConfig") if flags.Beam.Type != BeamType.Collisions: @@ -22,7 +16,7 @@ def MuonTrackConfig(flags, isOld=False, **kwargs): if flags.Common.isOnline or flags.Beam.Type != BeamType.Collisions: kwargs.setdefault("RequireBeamSpot", False) - muonTrackAlg = helper.addAlgorithm(MuonTrackMonitorAlgorithm, "MuonTrackMonitorAlg", **kwargs) + muonTrackAlg = helper.addAlgorithm(CompFactory.MuonTrackMonitorAlgorithm, "MuonTrackMonitorAlg", **kwargs) myGroup = helper.addGroup(muonTrackAlg, "MuonTrackMonitorAlgorithm", "MuonPhysics/") diff --git a/Projects/AthSimulation/package_filters.txt b/Projects/AthSimulation/package_filters.txt index ebb241a275d3a2abf461fd0acc7b9879aaf73b48..b5d7c18e35d1e4baafa93729bb8dceb3ba983236 100644 --- a/Projects/AthSimulation/package_filters.txt +++ b/Projects/AthSimulation/package_filters.txt @@ -222,7 +222,6 @@ + InnerDetector/InDetSimUtils/TRT_TR_Process + LArCalorimeter/LArCOOLConditions + LArCalorimeter/LArCabling -+ LArCalorimeter/LArCnv/LArDetMgrDetDescrCnv + LArCalorimeter/LArCnv/LArIdCnv + LArCalorimeter/LArCnv/LArSimEventAthenaPool + LArCalorimeter/LArCnv/LArSimEventTPCnv diff --git a/Reconstruction/eflowRec/eflowRec/PFMuonFlowElementAssoc.h b/Reconstruction/eflowRec/eflowRec/PFMuonFlowElementAssoc.h index b68dd854d7bfa4d4ee4c220afb5387fdce7186e1..de2ab04e756f293d9f4e4070eae133a55e790e14 100644 --- a/Reconstruction/eflowRec/eflowRec/PFMuonFlowElementAssoc.h +++ b/Reconstruction/eflowRec/eflowRec/PFMuonFlowElementAssoc.h @@ -39,18 +39,28 @@ public: virtual StatusCode execute(const EventContext & ctx ) const; private: + + /** Function that flags whether the FE cluster has any cell that is also in + the muon list of cells. If so the function sets isCellMatched to true + and returns non-zero values of the sum of matched energy in the FE and muon + clusters. + **/ + std::pair<double,double> doMuonCellMatching(bool& isCellMatched, const xAOD::CaloCluster& FECluster, const xAOD::CaloCluster& muonCluster) const; // ReadHandleKeys - SG::ReadHandleKey<xAOD::MuonContainer>m_muonReadHandleKey{this,"MuonContainer","Muons","ReadHandleKey for Muons"}; + SG::ReadHandleKey<xAOD::MuonContainer> m_muonReadHandleKey{this,"MuonContainer","Muons","ReadHandleKey for Muons"}; - SG::ReadHandleKey<xAOD::FlowElementContainer>m_neutralFEReadHandleKey{this,"JetEtMissNeutralFlowElementContainer","JetETMissNeutralParticleFlowObjects","ReadHandleKey for neutral FlowElements"}; - - SG::ReadHandleKey<xAOD::FlowElementContainer>m_chargedFEReadHandleKey{this,"JetEtMissChargedFlowElementContainer","JetETMissChargedParticleFlowObjects","ReadHandleKey for charged FlowElements"}; + SG::ReadHandleKey<xAOD::FlowElementContainer> m_neutralFEReadHandleKey{this,"JetEtMissNeutralFlowElementContainer","JetETMissNeutralParticleFlowObjects","ReadHandleKey for neutral FlowElements"}; + SG::ReadHandleKey<xAOD::FlowElementContainer> m_chargedFEReadHandleKey{this,"JetEtMissChargedFlowElementContainer","JetETMissChargedParticleFlowObjects","ReadHandleKey for charged FlowElements"}; /** Write key for adding charged Flow Element link decorations to muons **/ SG::WriteDecorHandleKey<xAOD::MuonContainer> m_muonChargedFEWriteHandleKey{this,"MuonContainer_chargedFELinks","Muons.chargedFELinks","WriteHandleKey for muon link to charged FlowElements"}; + /** Write key for adding fraction of nFlowElement cluster energy used in cell matching decoration of FlowElementContainer - EXPERIMENTAL **/ + SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_ChargedFE_energy_match_muonWriteHandleKey{this,"FlowElementContainer_ChargedFE_ennergy_matched_muon","JetETMissChargedParticleFlowObjects.FE_efrac_matched_muon","WriteHandleKey for the fraction of neutral FlowElements cluster energy used to match to Muons"}; + + /** Write key for adding Muon link decorations to charged Flow Elements **/ SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_ChargedFEmuonWriteHandleKey{this,"JetETMissChargedFlowElements_FE_MuonLinks","JetETMissChargedParticleFlowObjects.FE_MuonLinks","WriteHandleKey for Charged Flow Elements coupled to muons"}; diff --git a/Reconstruction/eflowRec/python/PFCfg.py b/Reconstruction/eflowRec/python/PFCfg.py index 9be3d33fd4862163f86fcab27203a0124287ca60..9ffe7270eb9dea543071a310d589f46f204875b2 100644 --- a/Reconstruction/eflowRec/python/PFCfg.py +++ b/Reconstruction/eflowRec/python/PFCfg.py @@ -324,6 +324,7 @@ def getMuonFlowElementAssocAlgorithm(inputFlags, algName="", **kwargs): PFMuonFlowElementLinkerAlgorithm.MuonContainer_neutralFELinks=service_key+"Muons.neutralTCCLinks" PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks=service_key+"TrackCaloClustersNeutral.TCC_MuonLinks" PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks=service_key+"TrackCaloClustersCharged.TCC_MuonLinks" + PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_ChargedFE_ennergy_matched_muon="TrackCaloClustersCharged.TCC_efrac_matched_muon" # several variables relating to Neutral Flow Elements/TCCs to Muons for debug. perhaps at some point these should be removed by default PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons="TrackCaloClustersNeutral.TCC_nMatchedMuons" PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon="TrackCaloClustersNeutral.TCC_efrac_matched_muon" @@ -341,7 +342,8 @@ def getMuonFlowElementAssocAlgorithm(inputFlags, algName="", **kwargs): PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks="GlobalNeutralParticleFlowObjects.GlobalFE_MuonLinks" PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks="GlobalChargedParticleFlowObjects.GlobalFE_MuonLinks" - + PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_ChargedFE_ennergy_matched_muon="GlobalChargedParticleFlowObjects.GlobalFE_efrac_matched_muon" + PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons="GlobalNeutralParticleFlowObjects.GlobalFE_nMatchedMuons" PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon="GlobalNeutralParticleFlowObjects.GlobalFE_efrac_matched_muon" diff --git a/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx b/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx index f61779c28ad9d96e5ac18a59b2f96c3b9f0eb65e..64b9d42e21a012a0856e70c9aaf1d3780d70c2fc 100644 --- a/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx +++ b/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx @@ -35,6 +35,7 @@ StatusCode PFMuonFlowElementAssoc::initialize() { // Initialise the decoration keys ATH_CHECK(m_muonChargedFEWriteHandleKey.initialize()); + ATH_CHECK(m_ChargedFE_energy_match_muonWriteHandleKey.initialize()); ATH_CHECK(m_muonNeutralFEWriteHandleKey.initialize()); ATH_CHECK(m_ClustCollectionLinkKey.initialize()); ATH_CHECK(m_ChargedFEmuonWriteHandleKey.initialize()); @@ -97,6 +98,8 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { // for neutral flow element studies std::vector<std::vector<double>> muonNeutralFE_frac_cluster_energy_matched_Vec(muonReadHandle->size()); + SG::WriteDecorHandle<xAOD::FlowElementContainer, std::vector<double> > chargedFE_energy_match_muonWriteHandle(m_ChargedFE_energy_match_muonWriteHandleKey,ctx); + // Loop over the Flow Elements ////////////////////////////// @@ -108,6 +111,10 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { // Init a vector of element links to muons std::vector<MuonLink_t> FEMuonLinks; + //vector of fractions of FE cluster energy matched to muons + std::vector<double> FEMatchedClusterCellEnergies; + for (unsigned int counter = 0; counter < FE->otherObjects().size(); ++counter) FEMatchedClusterCellEnergies.push_back(0.0); + // loop over muons in container for (const xAOD::Muon* muon : *muonChargedFEWriteDecorHandle) { const xAOD::TrackParticle* muon_trk = muon->trackParticle(xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle); @@ -136,7 +143,24 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { // index() is the unique index of the cFlowElement in the cFlowElementcontaine muonChargedFEVec.at(muon->index()).emplace_back(*ChargedFEReadHandle, FE->index()); } // matching block - } // end of muon loop + + //if in mode where we can access calorimeter cells, then we will check if any of the clusters + //that this chargedFE has modified have calorimeter cells that match the muons calorimeter cells + //if so then we will decorate the charged FE with the fraction of cluster energy that was matched + if (!m_useMuonTopoClusters){ + const xAOD::CaloCluster* muonCluster = muon->cluster(); + unsigned int counter = 0; + for (auto thisCluster : FE->otherObjects()){ + const xAOD::CaloCluster* thisCaloCluster = dynamic_cast<const xAOD::CaloCluster*>(thisCluster); + bool isCellMatched = false; + std::pair <double,double> FEAndMuonMatchedCellEnergy = this->doMuonCellMatching(isCellMatched, *thisCaloCluster,*muonCluster); + FEMatchedClusterCellEnergies[counter] += FEAndMuonMatchedCellEnergy.first; + counter++; + }//loop over associated calorimeter clusters + } + }// end of muon loop + + chargedFE_energy_match_muonWriteHandle(*FE) = FEMatchedClusterCellEnergies; // Add vector of muon element links as decoration to FlowElement container ChargedFEmuonWriteDecorHandle(*FE) = FEMuonLinks; @@ -160,6 +184,7 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { int nMatchedFE = 0; // get the index of the cluster corresponding to the Neutral FlowElements ATH_MSG_DEBUG("P1"); + ATH_MSG_DEBUG("FE with e, eta and phi" << FE->e() << ", " << FE->eta() << " and " << FE->phi()); const xAOD::IParticle* otherObject = FE->otherObjects().at(0); //This is expected to happen for low energy FE - sometimes the linked cluster has E < 0 and //is thinned away in the AOD @@ -222,47 +247,12 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { // Retrieve cells in both the FE cluster and muon cluster // Define the link as where at least one calo cell is shared between the FE cluster and the Muon Cluster - // retrieve the link to cells - const CaloClusterCellLink* CellLink = FE_cluster->getCellLinks(); - // build the iterator(s) for the looping over the elements inside the CellLink - if (!CellLink && !m_useMuonTopoClusters) { // safety check if no celll link and we're doing the cell based matching only - ATH_MSG_WARNING("Flow Element CaloCluster CaloClusterCellLink is nullptr"); - continue; - } - - CaloClusterCellLink::const_iterator FE_FirstCell = CellLink->begin(); - CaloClusterCellLink::const_iterator FE_LastCell = CellLink->end(); - - // retrieve cells associated to Muon cluster - const CaloClusterCellLink* Muon_Clus_CellLink = cluster->getCellLinks(); - if (!Muon_Clus_CellLink) { - ATH_MSG_WARNING("This Muon calo cluster does not have any cells associated to it"); - continue; - } // if nullptr, skip this muon cluster. - // get the iterator on the links + bool isCellMatched = false; + std::pair<double,double> FEAndMuonMatchedCellEnergy = this->doMuonCellMatching(isCellMatched, *FE_cluster,*cluster); - CaloClusterCellLink::const_iterator Muon_Clus_FirstCell = Muon_Clus_CellLink->begin(); - CaloClusterCellLink::const_iterator Muon_Clus_LastCell = Muon_Clus_CellLink->end(); + double FE_sum_matched_cellEnergy = FEAndMuonMatchedCellEnergy.first; + double Muon_sum_matched_cellEnergy = FEAndMuonMatchedCellEnergy.second; - // Now we check if any match and sum the energy of the cells that are matched. Current algo allows for at least one - // match. - bool isCellMatched = false; - double FE_sum_matched_cellEnergy = 0; - double Muon_sum_matched_cellEnergy = 0; - - for (; FE_FirstCell != FE_LastCell; ++FE_FirstCell) { - Identifier index_FECell = FE_FirstCell->ID(); - for (; Muon_Clus_FirstCell != Muon_Clus_LastCell; ++Muon_Clus_FirstCell) { - Identifier index_muoncell = Muon_Clus_FirstCell->ID(); - if (index_FECell == index_muoncell) { - isCellMatched = true; - double FE_cell_energy = FE_FirstCell->e(); - FE_sum_matched_cellEnergy = FE_sum_matched_cellEnergy + FE_cell_energy; - double Muon_cell_energy = Muon_Clus_FirstCell->e(); - Muon_sum_matched_cellEnergy = Muon_sum_matched_cellEnergy + Muon_cell_energy; - } - } - } // end of cell matching double loop double frac_FE_cluster_energy_matched = 0; // retrieve total cluster energy from the FE cluster double tot_FE_cluster_energy = FE_cluster->e(); @@ -277,6 +267,7 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { if (frac_FE_cluster_energy_matched > 0) { ATH_MSG_VERBOSE("Fraction of FE cluster energy used in match: " << frac_FE_cluster_energy_matched << ", ismatched? " << isCellMatched << ""); + ATH_MSG_VERBOSE("Numerator and denominator are " << FE_sum_matched_cellEnergy << " and " << tot_FE_cluster_energy); ATH_MSG_VERBOSE("Fraction of Muon cluster energy used in match: " << frac_muon_cluster_energy_matched << ""); } @@ -328,3 +319,44 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const { return StatusCode::SUCCESS; } + +std::pair<double,double> PFMuonFlowElementAssoc::doMuonCellMatching(bool& isCellMatched,const xAOD::CaloCluster& FECluster, const xAOD::CaloCluster& muonCluster) +const { + + const CaloClusterCellLink* FECellLinks = FECluster.getCellLinks(); + if (!FECellLinks && !m_useMuonTopoClusters) { + ATH_MSG_WARNING("Flow Element CaloCluster CaloClusterCellLink is nullptr"); + return std::make_pair(0.0,0.0); + } + + const CaloClusterCellLink* muonCellLinks = muonCluster.getCellLinks(); + if (!muonCellLinks) { + ATH_MSG_WARNING("This Muon calo cluster does not have any cells associated to it"); + return std::make_pair(0.0,0.0); + } + + //sum of energy of FE cells that are matched + double FE_matchedCellEnergy = 0; + //sum of energy of muon cells that are matched + double muon_matchedCellEnergy = 0; + + for (auto thisFECell : *FECellLinks){ + Identifier FECellID = thisFECell->ID(); + ATH_MSG_VERBOSE("FE Cell with ID: " << FECellID.get_identifier32().get_compact() << " and energy: " << thisFECell->e()); + for (auto thisMuonCell : *muonCellLinks){ + Identifier muonCellID = thisMuonCell->ID(); + ATH_MSG_VERBOSE("Muon Cell with ID: " << muonCellID.get_identifier32().get_compact() << " and energy: " << thisMuonCell->e()); + if (muonCellID == FECellID){ + isCellMatched = true; + ATH_MSG_VERBOSE("MAtched cell found"); + ATH_MSG_VERBOSE("FE cell energy: " << thisFECell->e() << " and muon cell energy: " << thisMuonCell->e()); + FE_matchedCellEnergy += thisFECell->e(); + ATH_MSG_VERBOSE("FE matched cell energy: " << FE_matchedCellEnergy); + muon_matchedCellEnergy += thisMuonCell->e(); + }//if FE cell is also a muon cell + }//loop on muon cells + }//loop on FE cluster cells + + return std::make_pair(FE_matchedCellEnergy,muon_matchedCellEnergy); + +} diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSONNXHandler.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSONNXHandler.cxx index daceba332ac4b2ef47159c5ac9cf709daf007dfa..764e1c9e4b099853b6ab36e7ff3f943658807b1c 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSONNXHandler.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSONNXHandler.cxx @@ -324,9 +324,10 @@ void TFCSONNXHandler::writeBytesToTTree(TTree &tree, void TFCSONNXHandler::readSerializedSession() { ATH_MSG_DEBUG("Transforming bytes to session."); Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test"); - Ort::SessionOptions opts{nullptr}; + Ort::SessionOptions opts; + opts.SetInterOpNumThreads(1); + opts.SetIntraOpNumThreads(1); // Prevent ONNX from spawning additional threads - opts.SetIntraOpNumThreads( 1 ); m_session = std::make_unique<Ort::Session>(env, m_bytes.data(), m_bytes.size(), opts); ATH_MSG_DEBUG("Transformed bytes to session."); diff --git a/Simulation/Tools/CaloSamplingFractionAnalysis/CMakeLists.txt b/Simulation/Tools/CaloSamplingFractionAnalysis/CMakeLists.txt index 64c81d97d62edcba4d25966ac359f1556658edc2..ca69afc62ddb4cd6d3e004886e9c282a249b99f9 100644 --- a/Simulation/Tools/CaloSamplingFractionAnalysis/CMakeLists.txt +++ b/Simulation/Tools/CaloSamplingFractionAnalysis/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( CaloSamplingFractionAnalysis ) @@ -15,6 +15,4 @@ atlas_add_component( CaloSamplingFractionAnalysis LINK_LIBRARIES ${CLHEP_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AtlasHepMCLib CaloDetDescrLib CaloEvent CaloIdentifier CaloSimEvent xAODEventInfo GaudiKernel GeneratorObjects Identifier LArElecCalib LArG4RunControl LArReadoutGeometry LArSimEvent StoreGateLib TileConditionsLib TileSimEvent ) # Install files from the package: -atlas_install_joboptions( share/*.py ) -atlas_install_runtime( share/*.C share/HEC_SF_analysis share/run*.sh ) - +atlas_install_runtime( share/*.C share/HEC_SF_analysis share/run*.sh share/LarFCalSamplingFraction_analysis.py ) diff --git a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions.py b/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions.py deleted file mode 100644 index 68002d73507264e74808392618ccc01a656a3ed4..0000000000000000000000000000000000000000 --- a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions.py +++ /dev/null @@ -1,83 +0,0 @@ -import AthenaCommon.Constants as Lvl -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -from AthenaCommon.AppMgr import theApp - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.FilesInput = inFileName - -## load POOL support -import AthenaPoolCnvSvc.ReadAthenaPool - -## general job configuration -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -from AthenaCommon.GlobalFlags import jobproperties -jobproperties.Global.DetDescrVersion="ATLAS-R2-2016-01-00-01" - -from RecExConfig.ObjKeyStore import ObjKeyStore, objKeyStore -oks = ObjKeyStore() -#oks.addStreamESD('CaloCellContainer', ['AllCalo'] ) -oks.addStreamESD('CaloCalibrationHitContainer',['LArCalibrationHitActive','LArCalibrationHitInactive','LArCalibrationHitDeadMaterial_DEAD','TileCalibHitActiveCell','TileCalibHitInactiveCell','TileCalibHitDeadMaterial']) - -## re-do topo clusters on EM scale -#from CaloRec.CaloRecFlags import jobproperties -#from CaloRec.CaloTopoClusterFlags import jobproperties -#jobproperties.CaloTopoClusterFlags.doTopoClusterLocalCalib = True -#jobproperties.CaloTopoClusterFlags.doCellWeightCalib = False -#from CaloRec.CaloClusterTopoGetter import CaloClusterTopoGetter, addSnapshot -#CaloClusterTopoGetter() - -from AthenaCommon.DetFlags import DetFlags -DetFlags.all_setOff() -DetFlags.LAr_setOn() -DetFlags.Tile_setOn() -DetFlags.digitize.all_setOff() - -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetGeo.set_Value_and_Lock('atlas') -globalflags.DataSource.set_Value_and_Lock('geant4') - -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit - -include( "CaloConditions/CaloConditions_jobOptions.py") -include( "CaloIdCnv/CaloIdCnv_joboptions.py" ) -include( "TileIdCnv/TileIdCnv_jobOptions.py" ) -include( "LArDetDescr/LArDetDescr_joboptions.py" ) -include("TileConditions/TileConditions_jobOptions.py" ) -include("LArConditionsCommon/LArConditionsCommon_MC_jobOptions.py") - -svcMgr.IOVDbSvc.GlobalTag = "OFLCOND-MC16-SDR-16" -svcMgr.IOVDbSvc.forceRunNumber=284500 - -# Initialize Tile sampling fraction -from TileConditions.TileInfoConfigurator import TileInfoConfigurator -tileInfoConfigurator = TileInfoConfigurator() -tileInfoConfigurator.setupCOOLSFR() - -svcMgr += CfgMgr.THistSvc() -svcMgr.THistSvc.Output += ["MYSTREAM DATAFILE='LArEM_SF.root' OPT='RECREATE'"] - -#from CaloLocalHadCalib.CaloLocalHadCalibConf import GetLCWeights -from AthenaCommon.SystemOfUnits import deg, GeV, MeV, TeV -from AthenaCommon.AlgSequence import AlgSequence -#from math import ( pi as m_pi, log10 as m_log10 ) - -LarEMSamplingFraction = CfgMgr.LarEMSamplingFraction() -LarEMSamplingFraction.DoCells = 0 -LarEMSamplingFraction.CalibrationHitContainerNames = ["LArCalibrationHitInactive" - ,"LArCalibrationHitActive" - ,"TileCalibHitInactiveCell" - ,"TileCalibHitActiveCell"] - #,"LArCalibrationHitDeadMaterial_DEAD" - #,"TileCalibHitDeadMaterial"] -topSequence += LarEMSamplingFraction - -theApp.EvtMax = -1 - -MessageSvc = svcMgr.MessageSvc -MessageSvc.OutputLevel = Lvl.INFO #2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL -MessageSvc.infoLimit = 100000 - -svcMgr.EventSelector.InputCollections = inFileName diff --git a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions_nocalhits.py b/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions_nocalhits.py deleted file mode 100644 index 5633427ef55318d67281d1ebef25cfb06ef55132..0000000000000000000000000000000000000000 --- a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarEMSamplingFraction_topOptions_nocalhits.py +++ /dev/null @@ -1,79 +0,0 @@ -import AthenaCommon.Constants as Lvl -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -from AthenaCommon.AppMgr import theApp - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.FilesInput = inFileName - -## load POOL support -import AthenaPoolCnvSvc.ReadAthenaPool - -## general job configuration -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -from AthenaCommon.GlobalFlags import jobproperties -jobproperties.Global.DetDescrVersion="ATLAS-R2-2016-01-00-01" - -from RecExConfig.ObjKeyStore import ObjKeyStore, objKeyStore -oks = ObjKeyStore() -#oks.addStreamESD('CaloCellContainer', ['AllCalo'] ) -oks.addStreamESD('CaloCalibrationHitContainer',['LArCalibrationHitActive','LArCalibrationHitInactive','LArCalibrationHitDeadMaterial_DEAD','TileCalibHitActiveCell','TileCalibHitInactiveCell','TileCalibHitDeadMaterial']) - -## re-do topo clusters on EM scale -#from CaloRec.CaloRecFlags import jobproperties -#from CaloRec.CaloTopoClusterFlags import jobproperties -#jobproperties.CaloTopoClusterFlags.doTopoClusterLocalCalib = True -#jobproperties.CaloTopoClusterFlags.doCellWeightCalib = False -#from CaloRec.CaloClusterTopoGetter import CaloClusterTopoGetter, addSnapshot -#CaloClusterTopoGetter() - -from AthenaCommon.DetFlags import DetFlags -DetFlags.all_setOff() -DetFlags.LAr_setOn() -DetFlags.Tile_setOn() -DetFlags.digitize.all_setOff() - -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetGeo.set_Value_and_Lock('atlas') -globalflags.DataSource.set_Value_and_Lock('geant4') - -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit - -include( "CaloConditions/CaloConditions_jobOptions.py") -include( "CaloIdCnv/CaloIdCnv_joboptions.py" ) -include( "TileIdCnv/TileIdCnv_jobOptions.py" ) -include( "LArDetDescr/LArDetDescr_joboptions.py" ) -include("TileConditions/TileConditions_jobOptions.py" ) -include("LArConditionsCommon/LArConditionsCommon_MC_jobOptions.py") - -svcMgr.IOVDbSvc.GlobalTag = "OFLCOND-MC16-SDR-16" -svcMgr.IOVDbSvc.forceRunNumber=284500 - -svcMgr += CfgMgr.THistSvc() -svcMgr.THistSvc.Output += ["MYSTREAM DATAFILE='LArEM_SF.root' OPT='RECREATE'"] - -#from CaloLocalHadCalib.CaloLocalHadCalibConf import GetLCWeights -from AthenaCommon.SystemOfUnits import deg, GeV, MeV, TeV -from AthenaCommon.AlgSequence import AlgSequence -#from math import ( pi as m_pi, log10 as m_log10 ) - -LarEMSamplingFraction = CfgMgr.LarEMSamplingFraction() -LarEMSamplingFraction.DoCells = 0 -LarEMSamplingFraction.CalibrationHitContainerNames = [] -#LarEMSamplingFraction.CalibrationHitContainerNames = ["LArCalibrationHitInactive" -# ,"LArCalibrationHitActive" -# ,"TileCalibHitInactiveCell" -# ,"TileCalibHitActiveCell"] - #,"LArCalibrationHitDeadMaterial_DEAD" - #,"TileCalibHitDeadMaterial"] -topSequence += LarEMSamplingFraction - -theApp.EvtMax = -1 - -MessageSvc = svcMgr.MessageSvc -MessageSvc.OutputLevel = Lvl.INFO #2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL -MessageSvc.infoLimit = 100000 - -svcMgr.EventSelector.InputCollections = inFileName diff --git a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarFCalSamplingFraction_G4Atlas_jobOptions.py b/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarFCalSamplingFraction_G4Atlas_jobOptions.py deleted file mode 100644 index 254f1a6ed9212f2b4ee81f48540e3c78e873539b..0000000000000000000000000000000000000000 --- a/Simulation/Tools/CaloSamplingFractionAnalysis/share/LarFCalSamplingFraction_G4Atlas_jobOptions.py +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -""" -Job options file for Geant4 ATLAS detector simulations to measure the FCal -sampling fractions. - -Set the 'module' variable to one of 'fcal1', 'fcal2' or 'fcal3' to simulate -particle interactions in the FCal1, FCal2 or FCal3 modules, respectively. - -Additionaly parameters, such as the number of events to simulate and the -particle gun energy and coordinates, may be set in the 'params' variable. -""" - -import random - -## Common parameters -module = "fcal1" # Choose from "fcal1", "fcal2" or "fcal3" - -## Distance from IP to face of each FCal module [mm] - -## Values based on Table 3 in JINST 3 P02010 (2008), "The ATLAS Forward Calorimeter" -## These numbers do not necessarily reflect the geometry and location of the FCal in the Geant4 model! -# fcal1_z = 4708.90 # Distance from IP to FCal1 face [mm]; = 4683.5 + 26.4 - 1.0 -# fcal2_z = 5166.10 # Distance from IP to FCal2 face [mm]; = 4683.5 + 483.6 - 1.0 -# fcal3_z = 5648.20 # Distance from IP to FCal3 face [mm]; = 4683.5 + 965.7 - 1.0 - -## Values for the Geant4 module -fcal1_z = 4713.5 -fcal2_z = 5173.3 -fcal3_z = 5647.8 - -params = { - 'n_event': 200, # Number of events to simulate - 'pg_E': 40000, # Particle gun energy [MeV] - 'pg_x': [212.5, 277.5], # Particle gun x-coordinate; constant or range - 'pg_y': [7.5, 72.5], # Particle gun y-coordinate; constant or range - 'pg_z': None, # Particle gun z-coordinate (distance to IP); should be constant - 'pg_eta': None, # Particle gun eta; constant or range -} - -if module.lower() == "fcal1": - params['pg_z'] = fcal1_z - params['pg_eta'] = [3.5, 3.8] -elif module.lower() == "fcal2": - params['pg_z'] = fcal2_z - params['pg_eta'] = [3.5, 3.8] -elif module.lower() == "fcal3": - params['pg_z'] = fcal3_z - params['pg_eta'] = [3.5, 3.8] - - -## Algorithm sequence -from AthenaCommon.AlgSequence import AlgSequence -topSeq = AlgSequence() - -## Output threshold (DEBUG, INFO, WARNING, ERROR, FATAL) -ServiceMgr.MessageSvc.OutputLevel = INFO - -## Detector flags -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOff() -DetFlags.Calo_setOn() -DetFlags.Muon_setOff() -DetFlags.HEC_setOff() -DetFlags.em_setOff() -DetFlags.Tile_setOff() -# DetFlags.Lucid_setOn() -DetFlags.Truth_setOn() -DetFlags.simulate.Truth_setOn() - -## Global conditions tag -from AthenaCommon.GlobalFlags import jobproperties -jobproperties.Global.ConditionsTag = "OFLCOND-MC16-SDR-16" - -## AthenaCommon flags -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.PoolHitsOutput = "atlasG4.hits.pool.root" -athenaCommonFlags.EvtMax = params['n_event'] - -## Simulation flags -from G4AtlasApps.SimFlags import simFlags -simFlags.load_atlas_flags() -simFlags.RandomSvc = "AtDSFMTGenSvc" - -## Layout tags: see simFlags.SimLayout for allowed values -## Use the default layout: -simFlags.SimLayout.set_On() -## Set a specific layout tag: -simFlags.SimLayout = "ATLAS-R2-2016-01-00-01" -## Set a specific non-officially-supported layout tag using the _VALIDATION suffix, e.g.: -# simFlags.SimLayout = "ATLAS-R2-2016-01-00-01_VALIDATION" - -## Set the EtaPhi, VertexSpread and VertexRange checks on -simFlags.EventFilter.set_Off() - -## Set CalibrationRun -simFlags.CalibrationRun = "LAr" - -## No magnetic field -# simFlags.MagneticField.set_Off() - -## Register callback functions at various init stages -# def test_preInit(): -# print "CALLBACK AT PREINIT" -# def test_postInit(): -# print "CALLBACK AT POSTINIT" -# simFlags.InitFunctions.add_function("preInit", test_preInit) -# simFlags.InitFunctions.add_function("postInit", test_postInit) - -## Change the field stepper or use verbose G4 tracking -# from G4AtlasApps import callbacks -# simFlags.InitFunctions.add_function("postInit", callbacks.use_simplerunge_stepper) -# simFlags.InitFunctions.add_function("postInit", callbacks.use_verbose_tracking) - -## Use single particle generator -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.PoolEvgenInput.set_Off() -athenaCommonFlags.SkipEvents.set_Off() - -## Set particle gun parameters -import AthenaCommon.AtlasUnixGeneratorJob -import ParticleGun as PG -pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = random.randint(10000, 99999999)) -pg.sampler.pid = 11 -pg.sampler.mom = PG.EEtaMPhiSampler(energy=params['pg_E'], eta=params['pg_eta']) -pg.sampler.pos = PG.PosSampler(x=params['pg_x'], y=params['pg_y'], z=params['pg_z'], t=params['pg_z']) -topSeq += pg - -## Dump truth information -# from TruthExamples.TruthExamplesConf import DumpMC -# topSeq += DumpMC() - -StoreGateSvc = Service( "StoreGateSvc" ) -StoreGateSvc.Dump = True - -include("G4AtlasApps/G4Atlas.flat.configuration.py") - -## Use GeoCheckAction -## If using GeoCheckAction, make sure the particle type id is set to 999 (geantinos) -# def add_GeoCheckAction(): -# from G4AtlasApps import PyG4Atlas, AtlasG4Eng -# GeoCheckAction = PyG4Atlas.UserAction( 'G4UserActions', 'GeoCheckAction', ['BeginOfEvent','EndOfEvent','Step','EndOfRun'] ) -# AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(GeoCheckAction) - -# simFlags.InitFunctions.add_function("postInit", add_GeoCheckAction) - - -from AthenaCommon.CfgGetter import getAlgorithm -topSeq += getAlgorithm("G4AtlasAlg", tryDefaultConfigurable=True) -topSeq.G4AtlasAlg.InputTruthCollection = "GEN_EVENT" - -## Tool to merge dead material containers into a single container -from LArG4SD import LArG4SDConfig -topSeq += LArG4SDConfig.getDeadMaterialCalibrationHitMerger() - -myAlg = CfgMgr.LArFCalSamplingFraction() -myAlg.Calibration = True -topSeq += myAlg - - -from GaudiSvc.GaudiSvcConf import THistSvc -ServiceMgr += THistSvc() -ServiceMgr.THistSvc.Output = [ - "AANT DATAFILE='LArFCalSamplingFraction.{}.{:g}GeV.aan.root' OPT='RECREATE'".format(module, params['pg_E']/1000) -] - -print(topSeq) diff --git a/Tools/PROCTools/data/q442_AOD_content.ref b/Tools/PROCTools/data/q442_AOD_content.ref index 38b74a29a68937d78fb4f105bec0c16d24d0c2ba..bf65676f78755bd9271943ee51c4ce6c6fede816 100644 --- a/Tools/PROCTools/data/q442_AOD_content.ref +++ b/Tools/PROCTools/data/q442_AOD_content.ref @@ -665,6 +665,7 @@ JetETMissChargedParticleFlowObjectsAuxDyn.FE_ElectronLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_MuonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_PhotonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_TauLinks +JetETMissChargedParticleFlowObjectsAuxDyn.FE_efrac_matched_muon JetETMissChargedParticleFlowObjectsAuxDyn.IsInDenseEnvironment JetETMissChargedParticleFlowObjectsAuxDyn.TracksExpectedEnergyDeposit JetETMissLCNeutralParticleFlowObjects diff --git a/Tools/PROCTools/data/q449_AOD_content.ref b/Tools/PROCTools/data/q449_AOD_content.ref index f7229f8a6569d86484852bbefaf0d8be9f24ae10..42dab683b91e466fab42cfa2877aa4e324d20cc2 100644 --- a/Tools/PROCTools/data/q449_AOD_content.ref +++ b/Tools/PROCTools/data/q449_AOD_content.ref @@ -1440,6 +1440,7 @@ JetETMissChargedParticleFlowObjectsAuxDyn.FE_ElectronLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_MuonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_PhotonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_TauLinks +JetETMissChargedParticleFlowObjectsAuxDyn.FE_efrac_matched_muon JetETMissChargedParticleFlowObjectsAuxDyn.IsInDenseEnvironment JetETMissChargedParticleFlowObjectsAuxDyn.TracksExpectedEnergyDeposit JetETMissLCNeutralParticleFlowObjects diff --git a/Tools/PROCTools/data/q452_AOD_content.ref b/Tools/PROCTools/data/q452_AOD_content.ref index 7b0f8a62169c82ad5036125eb7af1fabb6e93229..5629e4c8adf83b3794b0204af7ab07cfc346e897 100644 --- a/Tools/PROCTools/data/q452_AOD_content.ref +++ b/Tools/PROCTools/data/q452_AOD_content.ref @@ -603,6 +603,7 @@ JetETMissChargedParticleFlowObjectsAuxDyn.FE_ElectronLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_MuonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_PhotonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_TauLinks +JetETMissChargedParticleFlowObjectsAuxDyn.FE_efrac_matched_muon JetETMissChargedParticleFlowObjectsAuxDyn.IsInDenseEnvironment JetETMissChargedParticleFlowObjectsAuxDyn.TracksExpectedEnergyDeposit JetETMissLCNeutralParticleFlowObjects diff --git a/Tools/PROCTools/data/q454_AOD_content.ref b/Tools/PROCTools/data/q454_AOD_content.ref index c2eadc006cf4e6a38ad3aeba5d1eab010e159bc6..659d7487c5100fabf5c313f3dd168e80e27f37d2 100644 --- a/Tools/PROCTools/data/q454_AOD_content.ref +++ b/Tools/PROCTools/data/q454_AOD_content.ref @@ -1537,6 +1537,7 @@ JetETMissChargedParticleFlowObjectsAuxDyn.FE_ElectronLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_MuonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_PhotonLinks JetETMissChargedParticleFlowObjectsAuxDyn.FE_TauLinks +JetETMissChargedParticleFlowObjectsAuxDyn.FE_efrac_matched_muon JetETMissChargedParticleFlowObjectsAuxDyn.IsInDenseEnvironment JetETMissChargedParticleFlowObjectsAuxDyn.TracksExpectedEnergyDeposit JetETMissLCNeutralParticleFlowObjects diff --git a/Tools/PyJobTransforms/python/CommonRunArgsToFlags.py b/Tools/PyJobTransforms/python/CommonRunArgsToFlags.py index a64c01c4e55c4664d7c520246226f5246bfa8e40..96b8f0b76851df3aec62eaae33e8ec70b8d3f32b 100644 --- a/Tools/PyJobTransforms/python/CommonRunArgsToFlags.py +++ b/Tools/PyJobTransforms/python/CommonRunArgsToFlags.py @@ -52,6 +52,8 @@ def commonRunArgsToFlags(runArgs,configFlags): if hasattr(runArgs,"threads"): configFlags.Concurrency.NumThreads = runArgs.threads + if hasattr(runArgs, "eventService"): + configFlags.Exec.MTEventService=True if hasattr(runArgs,"concurrentEvents"): configFlags.Concurrency.NumConcurrentEvents = runArgs.concurrentEvents diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py index 4e79c4562b8a97dd942b0639b84fafd2bd059e9a..0efec42ad19a9af3d9ef98ee4ec1d8a13e178033 100644 --- a/Tools/WorkflowTestRunner/python/References.py +++ b/Tools/WorkflowTestRunner/python/References.py @@ -23,10 +23,10 @@ references_map = { "d1759": "v13", "d1912": "v2", # Reco - "q442": "v46", - "q449": "v72", - "q452": "v5", - "q454": "v8", + "q442": "v47", + "q449": "v73", + "q452": "v6", + "q454": "v9", # Derivations "data_PHYS_Run2": "v17", "data_PHYS_Run3": "v16", diff --git a/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref b/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref index 80c0400dfb038ac41a626df98f92c2af900a9f83..015f982f92393014936aa86b3d76ec8c41c63426 100644 --- a/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref +++ b/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref @@ -1,5 +1,4 @@ ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkMainPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -33,7 +32,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkMainPass Tracking.ITkMainPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkActsPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -67,7 +65,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkActsPass Tracking.ITkActsPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsClustersPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -101,7 +98,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsClustersPass Tracking.ITkValidateActsClustersPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsSpacePointsPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -135,7 +131,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsSpacePointsPass Tracking.ITkValidateActsSpacePointsPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsSeedsPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -169,7 +164,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsSeedsPass Tracking.ITkValidateActsSeedsPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsTracksPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -203,7 +197,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsTracksPass Tracking.ITkValidateActsTracksPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsAmbiguityResolutionPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -237,7 +230,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsAmbiguityResolutionPass Tracking.ITkValidateActsAmbiguityResolutionPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkActsBenchmarkSpotPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -271,7 +263,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkActsBenchmarkSpotPass Tracking.ITkActsBenchmarkSpotPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkValidateActsTracksPass ************************************************************************ ******************** Tracking reconstruction Config ******************** @@ -305,7 +296,6 @@ Flag categories that are redirected by the cloneAndReplace Tracking.ActiveConfig points to Tracking.ITkValidateActsTracksPass Tracking.ITkValidateActsTracksPass points to nothing ************************************************************************ -Py:AthConfigFlags INFO cloning flags and replacing Tracking.ActiveConfig by Tracking.ITkActsConversionPass ************************************************************************ ******************** Tracking reconstruction Config ******************** diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/Root/TrigTauInfo.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/Root/TrigTauInfo.cxx index eae34f80bfa7a1188862dc1e0f3bc3d01c65504f..cefc9ccfc08a7474d5702a4e657cffcb7fb7f162 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/Root/TrigTauInfo.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/Root/TrigTauInfo.cxx @@ -10,10 +10,10 @@ TrigTauInfo::TrigTauInfo(const std::string& trigger) parseTriggerString(); } -TrigTauInfo::TrigTauInfo(const std::string& trigger, const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU) +TrigTauInfo::TrigTauInfo(const std::string& trigger, const std::map<std::string, float>& L1Phase1_thresholds) : m_trigger{trigger} { - parseTriggerString(L1Phase1ThrMap_eTAU, L1Phase1ThrMap_jTAU); + parseTriggerString(L1Phase1_thresholds); } TrigTauInfo::TrigTauInfo(const std::string& trigger, const std::map<std::string, float>& L1Phase1_thresholds, const std::map<std::string, uint64_t>& L1Phase1_threshold_patterns) @@ -22,6 +22,12 @@ TrigTauInfo::TrigTauInfo(const std::string& trigger, const std::map<std::string, parseTriggerString(L1Phase1_thresholds, L1Phase1_threshold_patterns); } +TrigTauInfo::TrigTauInfo(const std::string& trigger, const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU) + : m_trigger{trigger} +{ + parseTriggerString(L1Phase1ThrMap_eTAU, L1Phase1ThrMap_jTAU); +} + void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) { std::string clean_trigger = m_trigger; @@ -40,8 +46,10 @@ void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) std::regex gamma_rgx("^(\\d*)g(\\d+)$"); std::regex jet_rgx("^(\\d*)j(\\d+)$"); std::regex met_rgx("^xe(\\d+)$"); + std::regex noalg_rgx("^noalg$"); std::regex l1_rgx("^L1.*$"); - std::regex l1_tau_rgx("(\\d*)(e|j|c|)TAU(\\d+)(L|M|T|HM|H|IM|I|)"); + std::regex l1_tau_rgx("(\\d*)(e|j|c|)TAU(\\d+)(L|M|T|HL|HM|HT|H|IM|I|)"); + std::regex l1_toposeparate_rgx("^(\\d{0,2})(DETA|DPHI)(\\d{0,2})$"); std::regex topo_rgx("^.*(invm|dR|deta|dphi)AB.*$"); std::vector<std::regex*> all_regexes = {&tau_rgx, &elec_rgx, &muon_rgx, &gamma_rgx, &jet_rgx, &met_rgx, &l1_rgx}; @@ -87,12 +95,14 @@ void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) } else if(std::regex_match(leg[0], match, met_rgx)) { unsigned int threshold = std::stoi(match[2].str()); m_HLTMETThr.push_back(threshold); + } else if(std::regex_match(leg[0], match, noalg_rgx)) { + m_isStreamer = true; } else if(std::regex_match(leg[0], l1_rgx)) { // Treat the L1 items as a leg for(size_t j = 0; j < leg.size(); j++) { if(std::regex_match(leg[j], topo_rgx)) continue; // Remove HLT topo sections, not part of the L1 item - // L1Topo items (they all include a "-" in the name): - if(leg[j].find("-") != std::string::npos) { + // L1Topo items (they all include a "-" in the name, or have a separate "##DETA/PHI##_" prefix): + if(leg[j].find("-") != std::string::npos || std::regex_match(leg[j], l1_toposeparate_rgx)) { // We only keep information from the legacy L1Topo item, from which we will not always use all thresholds // Since we won't be adding any more Legacy thresholds, let's hard-code it... if(leg[0] == "L1TAU60" && leg[j] == "DR-TAU12ITAU12I") leg[j] = "TAU12IM"; // L1_TAU60_DR-TAU20ITAU12I, uses "TAU12IM" threshold from the L1Topo item @@ -127,6 +137,7 @@ void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) size_t multiplicity = match[1].str() == "" ? 1 : std::stoi(match[1].str()); std::string item_type = match[2].str(); // e, j, c, or "" int threshold = std::stoi(match[3].str()); + std::string item_isolation = match[4].str(); // "", L, M, T, HL, HM, HT, IM, H // Set the Phase 1 thresholds to -1 if(remove_L1_phase1_thresholds && (item_type == "e" || item_type == "j" || item_type == "c")) threshold = -1; @@ -135,6 +146,7 @@ void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) m_tauL1Items.push_back(s.substr(match[1].str().size())); m_tauL1Thr.push_back(threshold); m_tauL1Type.push_back(item_type + "TAU"); + m_tauL1Iso.push_back(item_isolation); m_tauL1ThresholdPattern.push_back(-1); } rgx_iter++; @@ -144,18 +156,16 @@ void TrigTauInfo::parseTriggerString(bool remove_L1_phase1_thresholds) } } -void TrigTauInfo::parseTriggerString(const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU) +void TrigTauInfo::parseTriggerString(const std::map<std::string, float>& L1Phase1_thresholds) { - parseTriggerString(false); + parseTriggerString(); - // Correct the Phase 1 thresholds: for(size_t i = 0; i < m_tauL1Items.size(); i++) { - const std::string& item_type = m_tauL1Type.at(i); - if(item_type == "eTAU" || item_type == "cTAU") { - m_tauL1Thr[i] = L1Phase1ThrMap_eTAU.at(m_tauL1Thr.at(i)); - } else if(item_type == "jTAU") { - m_tauL1Thr[i] = L1Phase1ThrMap_jTAU.at(m_tauL1Thr.at(i)); - } + if(m_tauL1Type.at(i) == "TAU") continue; // Skip the legacy items + + const std::string& item = m_tauL1Items.at(i); + + m_tauL1Thr[i] = L1Phase1_thresholds.at(item); } } @@ -171,4 +181,19 @@ void TrigTauInfo::parseTriggerString(const std::map<std::string, float>& L1Phase m_tauL1Thr[i] = L1Phase1_thresholds.at(item); m_tauL1ThresholdPattern[i] = L1Phase1_threshold_patterns.at(item); } -} \ No newline at end of file +} + +void TrigTauInfo::parseTriggerString(const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU) +{ + parseTriggerString(false); + + // Correct the Phase 1 thresholds: + for(size_t i = 0; i < m_tauL1Items.size(); i++) { + const std::string& item_type = m_tauL1Type.at(i); + if(item_type == "eTAU" || item_type == "cTAU") { + m_tauL1Thr[i] = L1Phase1ThrMap_eTAU.at(m_tauL1Thr.at(i)); + } else if(item_type == "jTAU") { + m_tauL1Thr[i] = L1Phase1ThrMap_jTAU.at(m_tauL1Thr.at(i)); + } + } +} diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/TrigTauMonitoring/TrigTauInfo.h b/Trigger/TrigMonitoring/TrigTauMonitoring/TrigTauMonitoring/TrigTauInfo.h index 8db8f2c02a242c4c41faee71da3ff1e799b6ffc4..251113596591ee2b8d0d3d1eb8964e3d33c64c92 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/TrigTauMonitoring/TrigTauInfo.h +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/TrigTauMonitoring/TrigTauInfo.h @@ -16,10 +16,12 @@ class TrigTauInfo { public: TrigTauInfo() {} // Required for the dictionary TrigTauInfo(const std::string& trigger); - TrigTauInfo(const std::string& trigger, const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU); + TrigTauInfo(const std::string& trigger, const std::map<std::string, float>& L1Phase1_thresholds); TrigTauInfo(const std::string& trigger, const std::map<std::string, float>& L1Phase1_thresholds, const std::map<std::string, uint64_t>& L1Phase1_threshold_patterns); + TrigTauInfo(const std::string& trigger, const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU); inline const std::string& getTriggerName() const { return m_trigger; } + inline bool isStreamer() const { return m_isStreamer; } inline float getHLTTauThreshold() const { return m_HLTThr.size() ? m_HLTThr[0] : -1; } // Returns the main HLT threshold inline const std::vector<float>& getHLTTauThresholds() const { return m_HLTThr; } @@ -34,6 +36,10 @@ public: inline const std::vector<float>& getL1TauThresholds() const { return m_tauL1Thr; } inline const std::string getL1TauType() const { return m_tauL1Items.size() ? m_tauL1Type[0] : ""; } // Returns the main L1 item type inline const std::vector<std::string>& getL1TauTypes() const { return m_tauL1Type; } + inline const std::string getL1TauIsolation() const { return m_tauL1Iso.size() ? m_tauL1Iso[0] : ""; } // Returns the main L1 item isolation + inline const std::vector<std::string>& getL1TauIsolations() const { return m_tauL1Iso; } + inline bool isL1TauIsolated(const size_t idx = 0) const { return idx < m_tauL1Iso.size() ? m_tauL1Iso[idx].size() : false; } // Returns true if the (main by default) L1 item is isolated + inline bool areAnyL1TauIsolated() const { for(const std::string& iso : m_tauL1Iso) { if(iso.size()) return true; }; return false; } // Returns true any of the L1 items are isolated inline int64_t getL1TauThresholdPattern() const { return m_tauL1ThresholdPattern.size() ? m_tauL1ThresholdPattern[0] : -1; } // Returns the main L1 item thresholdPattern mask inline const std::vector<int64_t>& getL1TauThresholdPatterns() const { return m_tauL1ThresholdPattern; } @@ -41,6 +47,7 @@ public: inline bool isHLTDiTau() const { return m_HLTThr.size() > 1 && (m_HLTElecThr.size() + m_HLTMuonThr.size() + m_HLTGammaThr.size() + m_HLTJetThr.size() + m_HLTMETThr.size()) == 0; } inline bool isHLTTandP() const { return m_HLTThr.size() == 1 && (m_HLTElecThr.size() + m_HLTMuonThr.size()) == 1 && (m_HLTGammaThr.size() + m_HLTJetThr.size() + m_HLTMETThr.size()) == 0; } inline bool isL1TauOnly() const { return (m_HLTThr.size() + m_HLTElecThr.size() + m_HLTMuonThr.size() + m_HLTGammaThr.size() + m_HLTJetThr.size() + m_HLTMETThr.size()) == 0 && !m_tauL1Items.empty(); } + inline bool isTauStreamer() const { return m_isStreamer && !m_tauL1Items.empty(); } inline bool hasHLTElectronLeg() const { return m_HLTElecThr.size() >= 1; } inline bool hasHLTMuonLeg() const { return m_HLTMuonThr.size() >= 1; } @@ -61,6 +68,7 @@ public: private: std::string m_trigger; // Full trigger name (e.g. HLT_tau25_mediumRNN_tracktwoMVA_L1eTAU20) + bool m_isStreamer; // Is a streamer HLT trigger std::vector<float> m_HLTThr; // List of all tau thresholds std::vector<std::string> m_HLTTauTypes; // Type for each tau leg (e.g. tracktwoMVA, trackwoLLP, etc...) @@ -69,6 +77,7 @@ private: std::vector<float> m_tauL1Thr; // L1 Tau item thresholds, corrected for Phase1 items std::vector<std::string> m_tauL1Items; // Individual l1 tau items std::vector<std::string> m_tauL1Type; // Individual l1 tau item type (eTAU, jTAU, cTAU, TAU) + std::vector<std::string> m_tauL1Iso; // Individual l1 tau item isolation ("", L, M, T, HL, HM, HT, H, IM) std::vector<int64_t> m_tauL1ThresholdPattern; // Individual l1 tau item thresholdPattern mask std::vector<float> m_HLTElecThr; // List of all electron leg thresholds @@ -82,8 +91,9 @@ private: } void parseTriggerString(bool remove_L1_phase1_thresholds = true); // Parse the trigger string, without applying the Phase1 remapping (L1 thresholds will be set to -1 on Phase1 items) - void parseTriggerString(const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU); // Parse the trigger string, applying the Phase1 remapping + void parseTriggerString(const std::map<std::string, float>& L1Phase1_thresholds); // Parse the trigger string, applying the Phase1 ET mapping void parseTriggerString(const std::map<std::string, float>& L1Phase1_thresholds, const std::map<std::string, uint64_t>& L1Phase1_threshold_patterns); // Parse the trigger string, applying the Phase1 threshold mapping + void parseTriggerString(const std::map<int, int>& L1Phase1ThrMap_eTAU, const std::map<int, int>& L1Phase1ThrMap_jTAU); // Parse the trigger string, applying the Phase1 remapping }; #endif diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfig.py b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfig.py index 7d7b5f089f32bd97034c638a8f2de58023e7c175..367742b6523a8aee7a85502b257b3fe5efc94391 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfig.py +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfig.py @@ -10,14 +10,31 @@ class TrigTauMonAlgBuilder: # Configuration flags # Can be accessed in the --preExec with e.g.: # --preExec 'from TrigTauMonitoring.TrigTauMonitoringConfig import TrigTauMonAlgBuilder; TrigTauMonAlgBuilder.do_total_efficiency=True' - + # But be careful! Changing settings in this way will affect all instances of the TrigTauMonitoring (although you should normally have only 1) + + #============================================= + # Monitoring modules + #============================================= + do_single_tau = True + do_L1 = True + do_ditau = True + do_tag_and_probe = True + do_truth = True # Truth monitoring will only be used when running on MC data + + #============================================= + # Configuration + #============================================= do_total_efficiency = False # Enable total efficiency plots (HLT vs Offline, without the L1 matching as in the normal HLT Efficiency plots) require_offline_taus = True # Require at least 1 offline good-quality tau (regardless of p_T) on ALL events (except in the Truth monitoring). # This will bias the background events variable distributions of online objects, but will better represent the signal events (the events included in the efficiency numerators) - duplicate_var_plots_without_offline_taus = True # Duplicate variable distribution plots without the requirement of at least 1 offline good-quality tau (regardless of p_T) on ALL events (except in the Truth monitoring). + do_duplicate_var_plots_without_offline_taus = True # Duplicate variable distribution plots without the requirement of at least 1 offline good-quality tau (regardless of p_T) on ALL events (except in the Truth monitoring). + #============================================= + # Setup for L1Calo monitoring + #============================================= + do_alternative_eTAU_monitoring = False # Run the L1 monitoring again, for the Alt (heuristic) eTAU simulation def __init__(self, helper): from AthenaCommon.Logging import logging @@ -31,18 +48,23 @@ class TrigTauMonAlgBuilder: self.L1_Phase1_threshold_mappings = {} # thresholdMappings bit masks # Monitoring algorithms, and lists of items to monitor (will be filled on configure()) + self.activate_single_tau = self.do_single_tau self.mon_alg_single = None self.HLT_single_items = [] + self.activate_ditau = self.do_ditau self.mon_alg_ditau = None self.HLT_ditau_items = [] + self.activate_tag_and_probe = self.do_tag_and_probe self.mon_alg_tag_and_probe = None self.HLT_tag_and_probe_items = [] + self.activate_truth = self.do_truth self.mon_alg_truth = None self.HLT_truth_items = [] + self.activate_L1 = self.do_L1 self.mon_alg_L1 = None self.L1_items = [] @@ -50,13 +72,6 @@ class TrigTauMonAlgBuilder: def configureMode(self): - # Activate the four main modules by default - self.activate_single_tau = True - self.activate_L1 = True - self.activate_ditau = True - self.activate_tag_and_probe = True - self.activate_truth = False - self.is_mc = False self.data_type = self.helper.flags.DQ.DataType @@ -64,9 +79,9 @@ class TrigTauMonAlgBuilder: if self.data_type is DQDataType.MC: self.is_mc = True - self.activate_truth = True self.logger.debug('Enabling Truth monitoring') else: + self.activate_truth = False self.logger.debug('Using default monitoring configuration for collisions') # We don't have any configuration specific for Cosmics or HI (the HLT Tau Monitoring is disabled for this one) @@ -217,12 +232,12 @@ class TrigTauMonAlgBuilder: self.bookRNNInputTrack(self.mon_alg_single, self.base_path, trigger, online=False) self.bookRNNInputCluster(self.mon_alg_single, self.base_path, trigger, online=False) - if self.duplicate_var_plots_without_offline_taus: + if self.do_duplicate_var_plots_without_offline_taus: self.mon_alg_single_no_offline = self._configureAlgorithm(CompFactory.TrigTauMonitorSingleAlgorithm, 'TrigTauMonAlgSingleNoOffline') self.mon_alg_single_no_offline.TriggerList = self.HLT_single_items self.mon_alg_single_no_offline.RequireOfflineTaus = False - self.mon_alg_single_no_offline.DoEfficiencyPlots = False self.mon_alg_single_no_offline.DoOfflineTausDistributions = False + self.mon_alg_single_no_offline.DoEfficiencyPlots = False self.logger.info(' |- Booking all histograms') path = f'{self.base_path}/OnlineOnlyVars' @@ -279,7 +294,7 @@ class TrigTauMonAlgBuilder: self.bookL1EffHistograms(self.mon_alg_L1, self.base_path, trigger, n_prong=p) self.bookL1Vars(self.mon_alg_L1, self.base_path, trigger) - if self.duplicate_var_plots_without_offline_taus: + if self.do_duplicate_var_plots_without_offline_taus: self.mon_alg_L1_no_offline = self._configureAlgorithm(CompFactory.TrigTauMonitorL1Algorithm, 'TrigTauMonAlgL1NoOffline') self.mon_alg_L1_no_offline.TriggerList = self.L1_items self.mon_alg_L1_no_offline.RequireOfflineTaus = False @@ -290,6 +305,22 @@ class TrigTauMonAlgBuilder: for trigger in self.L1_items: self.bookL1Vars(self.mon_alg_L1_no_offline, path, trigger) + if self.do_alternative_eTAU_monitoring: + self.mon_alg_L1_alt = self._configureAlgorithm(CompFactory.TrigTauMonitorL1Algorithm, 'TrigTauMonAlgL1eTAUAlt') + self.mon_alg_L1_alt.Phase1L1eTauRoIKey = 'L1_eTauRoIAltSim' # Use alternative RoIs (with heuristic eTAU algorithm simulation) + self.mon_alg_L1_alt.SelectL1ByETOnly = True # We don't have threshold patterns for the Alt RoIs, so we match by ET only + self.mon_alg_L1_alt.RequireOfflineTaus = False + + l1_items = [item for item in self.L1_items if 'eTAU' in item and not self.getTriggerInfo(item).isL1TauIsolated()] # Only non-isolated eTAU items + self.mon_alg_L1_alt.TriggerList = l1_items + + self.logger.info(' |- Booking all histograms') + path = f'{self.base_path}/L1eTAUAlt' + for trigger in l1_items: + for p in ('1P', '3P'): + self.bookL1EffHistograms(self.mon_alg_L1_alt, path, trigger, n_prong=p) + self.bookL1Vars(self.mon_alg_L1_alt, path, trigger) + def bookHLTEffHistograms(self, mon_alg, base_path, trigger, n_prong): mon_group_name = f'{trigger}_HLT_Efficiency_{n_prong}' diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.cxx index aea5a0d752a85781596606445bd4a07b9fadca60..cbaadc3f73946d5bd1dcc663ee6c3e0f36ed26bf 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.cxx @@ -20,13 +20,14 @@ StatusCode TrigTauMonitorBaseAlgorithm::initialize() { ATH_CHECK( m_offlineTauJetKey.initialize() ); + if(m_L1_select_by_et_only) ATH_MSG_INFO("L1 RoI selection by Et cut only! No isolated L1 tau items are allowed!"); ATH_CHECK( m_legacyl1TauRoIKey.initialize() ); ATH_CHECK( m_phase1l1eTauRoIKey.initialize() ); - ATH_CHECK( m_phase1l1eTauRoIThresholdPatternsKey.initialize() ); + ATH_CHECK( m_phase1l1eTauRoIThresholdPatternsKey.initialize(!m_L1_select_by_et_only) ); ATH_CHECK( m_phase1l1jTauRoIKey.initialize() ); - ATH_CHECK( m_phase1l1jTauRoIThresholdPatternsKey.initialize() ); + ATH_CHECK( m_phase1l1jTauRoIThresholdPatternsKey.initialize(!m_L1_select_by_et_only) ); ATH_CHECK( m_phase1l1cTauRoIKey.initialize() ); - ATH_CHECK( m_phase1l1cTauRoIThresholdPatternsKey.initialize() ); + ATH_CHECK( m_phase1l1cTauRoIThresholdPatternsKey.initialize(!m_L1_select_by_et_only) ); ATH_CHECK( m_phase1l1cTauRoIDecorKey.initialize() ); ATH_CHECK( m_hltTauJetKey.initialize() ); @@ -36,7 +37,16 @@ StatusCode TrigTauMonitorBaseAlgorithm::initialize() { // Parse TauTrigInfo objects for(const std::string& trigger : m_triggers) { - m_trigInfo[trigger] = TrigTauInfo(trigger, m_L1_Phase1_thresholds, m_L1_Phase1_threshold_patterns); + if(m_L1_select_by_et_only) { + m_trigInfo[trigger] = TrigTauInfo(trigger, m_L1_Phase1_thresholds); + + if(m_trigInfo[trigger].areAnyL1TauIsolated()) { + ATH_MSG_FATAL("Cannot use isolated L1 tau items if running with SelectL1ByETOnly = True: " << trigger); + return StatusCode::FAILURE; + } + } else { + m_trigInfo[trigger] = TrigTauInfo(trigger, m_L1_Phase1_thresholds, m_L1_Phase1_threshold_patterns); + } } return StatusCode::SUCCESS; @@ -120,16 +130,22 @@ std::vector<const xAOD::eFexTauRoI*> TrigTauMonitorBaseAlgorithm::getL1eTAUs(con ATH_MSG_WARNING("Failed to retrieve the L1_eTauRoi container"); return roi_vec; } - SG::ReadDecorHandle<xAOD::eFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1eTauRoIThresholdPatternsKey, ctx); - if(!thresholdPatterns.isValid()) { - ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_eTauRoi container"); - return roi_vec; - } - - for(const xAOD::eFexTauRoI* roi : *rois) { - // Check that the RoI passed the threshold selection - if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) { - roi_vec.push_back(roi); + + if(m_L1_select_by_et_only) { + for(const xAOD::eFexTauRoI* roi : *rois) { + // Select by RoI ET value only + if(roi->et() > m_L1_Phase1_thresholds.value().at(l1_item)) roi_vec.push_back(roi); + } + } else { + SG::ReadDecorHandle<xAOD::eFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1eTauRoIThresholdPatternsKey, ctx); + if(!thresholdPatterns.isValid()) { + ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_eTauRoi container"); + return roi_vec; + } + + for(const xAOD::eFexTauRoI* roi : *rois) { + // Check that the RoI passed the threshold selection + if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) roi_vec.push_back(roi); } } @@ -146,16 +162,22 @@ std::vector<const xAOD::jFexTauRoI*> TrigTauMonitorBaseAlgorithm::getL1jTAUs(con ATH_MSG_WARNING("Failed to retrieve the L1_jTauRoi container"); return roi_vec; } - SG::ReadDecorHandle<xAOD::jFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1jTauRoIThresholdPatternsKey, ctx); - if(!thresholdPatterns.isValid()) { - ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_jTauRoi container"); - return roi_vec; - } - - for(const xAOD::jFexTauRoI* roi : *rois) { - // Check that the RoI passed the threshold selection - if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) { - roi_vec.push_back(roi); + + if(m_L1_select_by_et_only) { + for(const xAOD::jFexTauRoI* roi : *rois) { + // Select by RoI ET value only + if(roi->et() > m_L1_Phase1_thresholds.value().at(l1_item)) roi_vec.push_back(roi); + } + } else { + SG::ReadDecorHandle<xAOD::jFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1jTauRoIThresholdPatternsKey, ctx); + if(!thresholdPatterns.isValid()) { + ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_jTauRoi container"); + return roi_vec; + } + + for(const xAOD::jFexTauRoI* roi : *rois) { + // Check that the RoI passed the threshold selection + if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) roi_vec.push_back(roi); } } @@ -177,21 +199,31 @@ std::vector<std::pair<const xAOD::eFexTauRoI*, const xAOD::jFexTauRoI*>> TrigTau ATH_MSG_WARNING("Failed to create jTauLink accessor for the L1_cTauRoi container"); return roi_vec; } - SG::ReadDecorHandle<xAOD::eFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1eTauRoIThresholdPatternsKey, ctx); - if(!thresholdPatterns.isValid()) { - ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_cTauRoi container"); - return roi_vec; - } - for(size_t i = 0; i < rois->size(); i++) { - const xAOD::eFexTauRoI* roi = (*rois)[i]; - const xAOD::jFexTauRoI* jTau_roi = jTau_roi_link(i).isValid() ? *jTau_roi_link(i) : nullptr; + if(m_L1_select_by_et_only) { + for(size_t i = 0; i < rois->size(); i++) { + const xAOD::eFexTauRoI* roi = (*rois)[i]; + const xAOD::jFexTauRoI* jTau_roi = jTau_roi_link(i).isValid() ? *jTau_roi_link(i) : nullptr; - // Check that the RoI passed the threshold selection - if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) { - roi_vec.push_back(std::make_pair(roi, jTau_roi)); + // Select by RoI ET value only + if(roi->et() > m_L1_Phase1_thresholds.value().at(l1_item)) roi_vec.push_back(std::make_pair(roi, jTau_roi)); } - } + } else { + SG::ReadDecorHandle<xAOD::eFexTauRoIContainer, uint64_t> thresholdPatterns(m_phase1l1cTauRoIThresholdPatternsKey, ctx); + if(!thresholdPatterns.isValid()) { + ATH_MSG_WARNING("Failed to create thresholdPatterns property accessor for the L1_cTauRoi container"); + return roi_vec; + } + + for(size_t i = 0; i < rois->size(); i++) { + const xAOD::eFexTauRoI* roi = (*rois)[i]; + const xAOD::jFexTauRoI* jTau_roi = jTau_roi_link(i).isValid() ? *jTau_roi_link(i) : nullptr; + + // Check that the RoI passed the threshold selection + if(thresholdPatterns(*roi) & m_L1_Phase1_threshold_patterns.value().at(l1_item)) roi_vec.push_back(std::make_pair(roi, jTau_roi)); + } + } + return roi_vec; } diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.h b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.h index a6beadcb2ad41e0bd67ef9ce7d9a7e1e0ac71131..cd71f2db6db434ffc45f43d9fa8393d424a17948 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.h +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorBaseAlgorithm.h @@ -34,6 +34,7 @@ protected: // Phase1 L1 tau threshold information Gaudi::Property<std::map<std::string, float>> m_L1_Phase1_thresholds{this, "L1Phase1Thresholds", {}}; Gaudi::Property<std::map<std::string, uint64_t>> m_L1_Phase1_threshold_patterns{this, "L1Phase1ThresholdPatterns", {}}; + Gaudi::Property<bool> m_L1_select_by_et_only{this, "SelectL1ByETOnly", false}; // Toggle efficiency and variable plots Gaudi::Property<bool> m_do_efficiency_plots{this, "DoEfficiencyPlots", true}; @@ -102,21 +103,21 @@ private: // StorageGate keys SG::ReadDecorHandleKey<xAOD::EventInfo> m_eventInfoDecorKey{this, "LArStatusFlag", "EventInfo.larFlags", "Key for EventInfo object"}; // To get data-dependencies right - SG::ReadHandleKey<xAOD::TauJetContainer> m_offlineTauJetKey{this, "offlineTauJetKey", "TauJets", "Offline taujet container key"}; - - SG::ReadHandleKey<xAOD::EmTauRoIContainer> m_legacyl1TauRoIKey{ this, "legacyl1TauRoIKey","LVL1EmTauRoIs","Tau Legacy L1 RoI key"}; - SG::ReadHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1eTauRoIKey{this, "phase1l1eTauRoIKey", "L1_eTauRoI","eTau Phase1 L1 RoI key"}; - SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1eTauRoIThresholdPatternsKey{this, "phase1l1eTauRoIThresholdPatternsKey", "L1_eTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the eTau RoIs"}; - SG::ReadHandleKey<xAOD::jFexTauRoIContainer> m_phase1l1jTauRoIKey{this, "phase1l1jTauRoIKey", "L1_jFexTauRoI","jTau Phase1 L1 RoI key"}; - SG::ReadDecorHandleKey<xAOD::jFexTauRoIContainer> m_phase1l1jTauRoIThresholdPatternsKey{this, "phase1l1jTauRoIThresholdPatternsKey", "L1_jFexTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the jTau RoIs"}; - SG::ReadHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIKey{this, "phase1l1cTauRoIKey", "L1_cTauRoI","cTau Phase1 L1 RoI key"}; - SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIDecorKey{this, "phase1l1cTauRoIjTauRoILinkKey", "L1_cTauRoI.jTauLink", "Decoration for the link from eTau to the matching jTau"}; - SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIThresholdPatternsKey{this, "phase1l1cTauRoIThresholdPatternsKey", "L1_cTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the cTau RoIs"}; - - SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetKey{this, "hltTauJetKey", "HLT_TrigTauRecMerged_MVA", "HLT tracktwoMVA taujet container key"}; - SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetLLPKey{this, "hltTauJetLLPKey", "HLT_TrigTauRecMerged_LLP", "HLT tracktwoLLP taujet container key"}; - SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetLRTKey{this, "hltTauJetLRTKey", "HLT_TrigTauRecMerged_LRT", "HLT trackLRT taujet container key"}; - SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetCaloMVAOnlyKey{this, "hltTauJetCaloMVAOnlyKey", "HLT_TrigTauRecMerged_CaloMVAOnly", "HLT ptonly taujet container key"}; + SG::ReadHandleKey<xAOD::TauJetContainer> m_offlineTauJetKey{this, "OfflineTauJetKey", "TauJets", "Offline taujet container key"}; + + SG::ReadHandleKey<xAOD::EmTauRoIContainer> m_legacyl1TauRoIKey{ this, "LegacyL1TauRoIKey", "LVL1EmTauRoIs", "Tau Legacy L1 RoI key"}; + SG::ReadHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1eTauRoIKey{this, "Phase1L1eTauRoIKey", "L1_eTauRoI", "eTau Phase1 L1 RoI key"}; + SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1eTauRoIThresholdPatternsKey{this, "Phase1L1eTauRoIThresholdPatternsKey", "L1_eTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the eTau RoIs"}; + SG::ReadHandleKey<xAOD::jFexTauRoIContainer> m_phase1l1jTauRoIKey{this, "Phase1L1jTauRoIKey", "L1_jFexTauRoI", "jTau Phase1 L1 RoI key"}; + SG::ReadDecorHandleKey<xAOD::jFexTauRoIContainer> m_phase1l1jTauRoIThresholdPatternsKey{this, "Phase1L1jTauRoIThresholdPatternsKey", "L1_jFexTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the jTau RoIs"}; + SG::ReadHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIKey{this, "Phase1L1cTauRoIKey", "L1_cTauRoI", "cTau Phase1 L1 RoI key"}; + SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIDecorKey{this, "Phase1L1cTauRoIjTauRoILinkKey", "L1_cTauRoI.jTauLink", "Decoration for the link from eTau to the matching jTau"}; + SG::ReadDecorHandleKey<xAOD::eFexTauRoIContainer> m_phase1l1cTauRoIThresholdPatternsKey{this, "Phase1L1cTauRoIThresholdPatternsKey", "L1_cTauRoI.thresholdPatterns", "Decoration for the threshold patterns for the cTau RoIs"}; + + SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetKey{this, "HLTTauJetKey", "HLT_TrigTauRecMerged_MVA", "HLT tracktwoMVA taujet container key"}; + SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetLLPKey{this, "HLTTauJetLLPKey", "HLT_TrigTauRecMerged_LLP", "HLT tracktwoLLP taujet container key"}; + SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetLRTKey{this, "HLTTauJetLRTKey", "HLT_TrigTauRecMerged_LRT", "HLT trackLRT taujet container key"}; + SG::ReadHandleKey<xAOD::TauJetContainer> m_hltTauJetCaloMVAOnlyKey{this, "HLTTauJetCaloMVAOnlyKey", "HLT_TrigTauRecMerged_CaloMVAOnly", "HLT ptonly taujet container key"}; const SG::ReadHandleKey<xAOD::TauJetContainer>& getOnlineContainerKey(const std::string& trigger) const; diff --git a/Trigger/TrigSteer/HLTSeeding/src/RoIsUnpackingToolBase.cxx b/Trigger/TrigSteer/HLTSeeding/src/RoIsUnpackingToolBase.cxx index b7239623a2251e40f3f6184948b22a4a1e058b9e..627925be456854c06149abbe3bd7b8f79549063d 100644 --- a/Trigger/TrigSteer/HLTSeeding/src/RoIsUnpackingToolBase.cxx +++ b/Trigger/TrigSteer/HLTSeeding/src/RoIsUnpackingToolBase.cxx @@ -74,7 +74,7 @@ StatusCode RoIsUnpackingToolBase::decodeMapping( std::function<bool(const std::s HLT::Identifier legIdentifier = TrigCompositeUtils::createLegName(chainIdentifier, counter); m_thresholdToChainMapping[ thresholdIdentifier ].push_back( legIdentifier ); m_legToChainMapping.insert( std::make_pair( legIdentifier, chainIdentifier ) ); - ATH_MSG_INFO( "Associating additional chain leg " << legIdentifier + ATH_MSG_DEBUG( "Associating additional chain leg " << legIdentifier << " with threshold " << thresholdIdentifier ); } } diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/eFexByteStreamTool.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/eFexByteStreamTool.cxx index 9399cabda5f01d5f94d6d9e4d503ee0c431c6eed..5096bdf25e403557abedeb12a878060da1931ce0 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/eFexByteStreamTool.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/eFexByteStreamTool.cxx @@ -116,12 +116,12 @@ StatusCode eFexByteStreamTool::convertFromBS(const std::vector<const ROBF*>& vro } if (!m_eEMSliceWriteKey.empty()) { ATH_CHECK( StatusCode(addContainer<xAOD::eFexEMRoIContainer,xAOD::eFexEMRoIAuxContainer>( - eContainers,L1CaloRdoFexTob::TobSource::EfexTob,true,m_eEMSliceWriteKey,ctx)) ); + eContainers,L1CaloRdoFexTob::TobSource::EfexXtob,true,m_eEMSliceWriteKey,ctx)) ); multislice=true; } if (!m_eTAUSliceWriteKey.empty()) { ATH_CHECK( StatusCode(addContainer<xAOD::eFexTauRoIContainer,xAOD::eFexTauRoIAuxContainer>( - tContainers,L1CaloRdoFexTob::TobSource::EfexTob,true,m_eTAUSliceWriteKey,ctx)) ); + tContainers,L1CaloRdoFexTob::TobSource::EfexXtob,true,m_eTAUSliceWriteKey,ctx)) ); multislice=true; } diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx index 94740de4271d62fbc23a716ea43279abd110f342..07abf9c6541c4e085d011e26acccf591502b1e70 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx @@ -162,9 +162,7 @@ StatusCode gFEXSim::executegFEXSim(const gTowersIDs& tmp_gTowersIDs_subset, gFEX int gLJ_seedThrB = 0; int gLJ_seedThrC = 0; gLJ_seedThrA = thr_gLJ.seedThrCounts('A'); //defined in GeV by default - // gLJ_seedThrA = gLJ_seedThrA/0.2; //rescaling with 0.2 GeV scale to get counts (corresponding to hw units) gLJ_seedThrB = thr_gLJ.seedThrCounts('B'); //defined in GeV by default - // gLJ_seedThrB = gLJ_seedThrB/0.2; //rescaling with 0.2 GeV scale to get counts (corresponding to hw units) gLJ_seedThrC = thr_gLJ.seedThrCounts('C'); //defined in GeV by default int gLJ_ptMinToTopoCounts1 = 0; @@ -175,9 +173,9 @@ StatusCode gFEXSim::executegFEXSim(const gTowersIDs& tmp_gTowersIDs_subset, gFEX float gLJ_rhoMaxB = 0; float gLJ_rhoMaxC = 0; - gLJ_rhoMaxA = 200;//Note that the values are given in GeV but need to be converted in MeV to be used in PU calculation - gLJ_rhoMaxB = 200;//Note that the values are given in GeV but need to be converted in MeV to be used in PU calculation - gLJ_rhoMaxC = 200;//Note that the values are given in GeV but need to be converted in MeV to be used in PU calculation + gLJ_rhoMaxA = (thr_gLJ.rhoTowerMax('A')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation + gLJ_rhoMaxB = (thr_gLJ.rhoTowerMax('B')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation + gLJ_rhoMaxC = (thr_gLJ.rhoTowerMax('C')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation //Parameters related to gJ (small-R jet objects - gBlock) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexMonitorAlgorithm.py index d317ad9de1f14616e6d5a505ff003d1791a605fc..aa20997dcb014dc5e0b9a4980ad8234238ed9fb7 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexMonitorAlgorithm.py @@ -64,6 +64,12 @@ def EfexMonitoringHistConfig(flags, eFexAlg): # First, define the histograms with no Pt cut # add monitoring algorithm to group, with group name and main directory + + locIdxs = [] + for phiOct in range(0,8): + for etaIdx in range(-25,25): + locIdxs += [str(phiOct) + ":" + str(etaIdx)] + for containerKey in EfexMonAlg.eFexEMTobKeyList: tobTypeStr = "xTOB" if ('xRoI' in containerKey) else "TOB" tobTypeStr += "copy" if 'Copy' in containerKey else "" @@ -75,6 +81,12 @@ def EfexMonitoringHistConfig(flags, eFexAlg): helper.defineHistogram(containerKey + "_seedMax;h_emTob_seedMax", title='EM TOB Seedmax bit;Seedmax bit;Number of TOBs', fillGroup = baseGroupName, type='TH1I',path=trigPath+tobStr, xbins=2,xmin=-0.5,xmax=1.5) + + helper.defineHistogram("LBN,locIdx,tobEt;h_"+containerKey+"_et_posLbnMap", title = "Average " + containerKey + " ET;LBN;Position (Octant:Eta)", + fillGroup = baseGroupName + "_" + containerKey, + type="TProfile2D", + xbins=1,xmin=0,xmax=1, ylabels=locIdxs, opt=['kAddBinsDynamically']) + for containerKey in EfexMonAlg.eFexTauTobKeyList: tobTypeStr = "xTOB" if ('xRoI' in containerKey) else "TOB" tobTypeStr += "copy" if 'Copy' in containerKey else "" @@ -87,6 +99,11 @@ def EfexMonitoringHistConfig(flags, eFexAlg): fillGroup = baseGroupName, type='TH1I',path=trigPath+tobStr, xbins=2,xmin=-0.5,xmax=1.5) + helper.defineHistogram("LBN,locIdx,tobEt;h_"+containerKey+"_et_posLbnMap", title = "Average " + containerKey + " ET;LBN;Position (Octant:Eta)", + fillGroup = baseGroupName + "_" + containerKey, + type="TProfile2D", + xbins=1,xmin=0,xmax=1, ylabels=locIdxs, opt=['kAddBinsDynamically']) + # Now define the histograms with low/hi Pt cut for cut_name, cut_val in zip(cut_names, cut_vals): cut_title_addition = '' if (cut_val == 0.0) else ' (Et>' + '%.1f'%(cut_val/1000) + 'GeV cut)' diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexSimMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexSimMonitorAlgorithm.py index 642f06075e14111025cf7a873457efa36612d7b3..17d078e6ea912851e706ab52967d9cc9101f6626 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexSimMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/EfexSimMonitorAlgorithm.py @@ -36,7 +36,7 @@ def EfexSimMonitoringConfig(flags): fillGroup="mismatches", paths=['Shifter/Sim','Expert/Sim'], hanConfig={"algorithm":"Histogram_Empty"}, - type='TH2I', cutmask='IsDataTowers', + type='TH2I', cutmask='SimulationReady', title='Mismatched DataTower Events;LB:FirstEvtNum;Signature;Events', xlabels=[""], ybins=1,ymin=0,ymax=1, @@ -48,9 +48,9 @@ def EfexSimMonitoringConfig(flags): xlabels=[""], ybins=1,ymin=0,ymax=1, opt=['kCanRebin','kAlwaysCreate'],merge='merge') - helper.defineTree('LBNString,LBN,EventNumber,fexReadout,timeSince,timeUntil,tobType,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched', - "lbnString/string:lbn/l:eventNumber/l:fexReadout/i:timeSince/I:timeUntil/I:tobType/i:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>", - title="mismatched;LBN",fillGroup="mismatches") + helper.defineTree('LBNString,Signature,LBN,EventNumber,EventType,timeSince,timeUntil,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched', + "lbnString/string:Signature/string:lbn/l:eventNumber/l:EventType/string:timeSince/I:timeUntil/I:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>", + title="mismatched;LBN:EvtNum;Signature",fillGroup="mismatches") result.merge(helper.result()) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/GfexSimMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/GfexSimMonitorAlgorithm.py index e15a8f0c5bfc80343b64bf81c6d169f0fdf288f5..033e563de923efcadf1b4765297a3c525fe58a62 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/GfexSimMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/GfexSimMonitorAlgorithm.py @@ -10,6 +10,15 @@ def GfexSimMonitoringConfig(flags, UseOfflineCopy = True): helper = L1CaloMonitorCfgHelper(flags,CompFactory.GfexSimMonitorAlgorithm,'GfexSimMonAlg') + helper.defineHistogram('LBNString,Signature;h_mismatched_DataTowerEvts', + fillGroup="mismatches", + paths=['Shifter/Sim','Expert/Sim'], + hanConfig={"algorithm":"Histogram_Empty"}, + type='TH2I', cutmask='SimulationReady', # not all of gfex simulation is considered ready at this time + title='Mismatched DataTower Events;LB:FirstEvtNum;Signature;Events', + xlabels=[""], + ybins=1,ymin=0,ymax=1, + opt=['kCanRebin','kAlwaysCreate'],merge='merge') helper.defineHistogram('EventType,Signature,tobMismatched;h_simSummary',title='Sim-HW Mismatches (percentage);Event Type;Signature', fillGroup="mismatches", path='Expert/Sim/detail', # place summary plot in the detail path in Expert audience @@ -18,8 +27,8 @@ def GfexSimMonitoringConfig(flags, UseOfflineCopy = True): xlabels=["DataTowers","EmulatedTowers"], ymin=0,ymax=len(L1CaloMonitorCfgHelper.SIGNATURES),ylabels=L1CaloMonitorCfgHelper.SIGNATURES, opt=['kCanRebin','kAlwaysCreate'],merge="merge") - helper.defineTree('LBNString,Signature,EventNumber,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched', - "lbnString/string:Signature/string:eventNumber/l:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>", + helper.defineTree('LBNString,LBN,Signature,EventNumber,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched', + "lbnString/string:lbn/l:Signature/string:eventNumber/l:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>", title="mismatched;LBN;Signature",fillGroup="mismatches") return helper.result() diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/JfexSimMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/JfexSimMonitorAlgorithm.py index cdeee891c90c486056c82bebff5ca6564021150c..a79b4c1aa13418115ec8d80ca3ca0bc405a1d153 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/JfexSimMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/JfexSimMonitorAlgorithm.py @@ -10,13 +10,6 @@ def JfexSimMonitoringConfig(flags): helper = L1CaloMonitorCfgHelper(flags,CompFactory.JfexSimMonitorAlgorithm,'JfexSimMonAlg') JfexSimMonAlg = helper.alg - # # add any steering - # groupName = "JfexSimMonitor" # the monitoring group name is also used for the package name - # JfexSimMonAlg.Grouphist = groupName - # - # mainDir = 'L1Calo' - # trigPath = 'JfexSim/' - # doXtobs = False if doXtobs: JfexSimMonAlg.jFexSRJetRoIContainer = "L1_jFexSRJetxRoI" @@ -42,98 +35,10 @@ def JfexSimMonitoringConfig(flags): xlabels=["DataTowers","EmulatedTowers"], ymin=0,ymax=len(L1CaloMonitorCfgHelper.SIGNATURES),ylabels=L1CaloMonitorCfgHelper.SIGNATURES, opt=['kCanRebin','kAlwaysCreate'],merge="merge") - # - # # add monitoring algorithm to group, with group name and main directory - # myGroup = helper.addGroup(JfexSimMonAlg, groupName, mainDir) - # - # - # - # - # myGenericGroup = helper.addGroup(None, groupName+"Gen", mainDir) - # - # myGenericGroup.defineHistogram('genLocation,genType;h_jFEX_Errors', path=None, type='TH2I', - # title='jFEX generic monitoring for shifters;Location;Type', - # xbins=4, xmin=0, xmax=4, xlabels=["Sim_DataTowers","Sim_EmulatedTowers","Input_Mismatch","Input_Invalids"], - # ybins=4, ymin=0, ymax=4, ylabels=["TOB", "global TOB", "EM layer", "HAD layer" ], - # opt=['kCanRebin']) - # - # JfexSimMonAlg.jFEXMonTool = myGenericGroup - # - # - # - # Input_items = ["EmulatedTowers","DataTowers"] - # TOB_items = ["jJ","jLJ","jTau","jEM","jXE", "jTE"] - # FPGA_names = ["U1","U2","U4","U3"] - # Modules_names = ["jFEX 0","jFEX 1","jFEX 2","jFEX 3","jFEX 4","jFEX 5"] - # - # from ROOT import TMath - # - # x_phi = [] - # for i in range(67): - # phi = (-TMath.Pi()- TMath.Pi()/32) + TMath.Pi()/32*i - # x_phi.append(phi) - # x_phi = sorted(x_phi) - # - # eta_phi_bins = { - # 'xbins': 100, 'xmin': -5, 'xmax': 5, - # 'ybins': x_phi - # } - # - # myGroup.defineHistogram('item,input;h_ErrorTOBs', title="Errors in each TOB item depending on the input data; TOB item; Input Tower", - # type='TH2I',path=trigPath, xbins=6,xmin=0,xmax=6,ybins=2,ymin=0,ymax=2,xlabels=TOB_items,ylabels=Input_items) - # - # for tower in Input_items: - # for item in TOB_items: - # - # - # if item == "jTE" or item == "jXE": - # groupname = groupName+"_SimEqData_"+item+"_"+tower - # SimEqDataGroup = helper.addGroup(JfexSimMonAlg, groupname, mainDir) - # - # groupname = groupName+"_SimDiffData_"+item+"_"+tower - # SimDiffDataGroup = helper.addGroup(JfexSimMonAlg, groupname, mainDir) - # - # SimEqDataGroup.defineHistogram('jfex,fpga;h_DetectorMap_'+tower, title=item+" jFex module vs FPGA - "+tower+"; jFEX module; FPGA", - # type='TH2I',path=trigPath+item+'/matched', xbins=6,xmin=0,xmax=6,ybins=4,ymin=0,ymax=4,xlabels=Modules_names,ylabels=FPGA_names) - # - # SimDiffDataGroup.defineHistogram('jfex,fpga;h_DetectorMap_'+tower, title=item+" jFex module vs FPGA - "+tower+"; jFEX module; FPGA", - # type='TH2I',path=trigPath+item+'/unmatched', xbins=6,xmin=0,xmax=6,ybins=4,ymin=0,ymax=4,xlabels=Modules_names,ylabels=FPGA_names) - # - # SimDiffDataGroup.defineHistogram('LB;h_LBerror_'+tower, title=item+" LB for the mismatch - "+tower+"; LB; Counts", - # type='TH1I',path=trigPath+item+'/unmatched', xbins=1,xmin=0,xmax=0,opt=['kCanRebin']) - # - # else: - # - # groupname = groupName+"_SimEqData_"+item+"_"+tower - # SimEqDataGroup = helper.addGroup(JfexSimMonAlg, groupname, mainDir) - # - # groupname = groupName+"_SimNoData_"+item+"_"+tower - # SimNoDataGroup = helper.addGroup(JfexSimMonAlg, groupname, mainDir) - # - # groupname = groupName+"_DataNoSim_"+item+"_"+tower - # DataNoSimGroup = helper.addGroup(JfexSimMonAlg, groupname, mainDir) - # - # SimEqDataGroup.defineHistogram('eta,phi;h_EtaPhiMap_'+tower, title="jFex "+item+" #eta vs #phi matched in Simulation - "+tower+";#eta;#phi", - # type='TH2F',path=trigPath+item+'/matched', **eta_phi_bins) - # - # SimNoDataGroup.defineHistogram('eta,phi;h_EtaPhiMap_'+tower, title=item+" in Simulation but not in Data - "+tower+";#eta;#phi", - # type='TH2F',path=trigPath+item+'/unmatched/SimNoData', **eta_phi_bins) - # - # SimNoDataGroup.defineHistogram('jfex,fpga;h_DetectorMap_'+tower, title=item+" jFex module vs FPGA - "+tower+"; jFEX module; FPGA", - # type='TH2I',path=trigPath+item+'/unmatched/SimNoData', xbins=6,xmin=0,xmax=6,ybins=4,ymin=0,ymax=4,xlabels=Modules_names,ylabels=FPGA_names) - # - # SimNoDataGroup.defineHistogram('LB;h_LBerror_'+tower, title=item+" LB for the mismatch - "+tower+"; LB; Counts", - # type='TH1I',path=trigPath+item+'/unmatched/SimNoData', xbins=1,xmin=0,xmax=0,opt=['kCanRebin']) - # - # DataNoSimGroup.defineHistogram('eta,phi;h_EtaPhiMap_'+tower, title=item+" in Simulation but not in Data - "+tower+";#eta;#phi", - # type='TH2F',path=trigPath+item+'/unmatched/DataNoSim', **eta_phi_bins) - # - # DataNoSimGroup.defineHistogram('jfex,fpga;h_DetectorMap_'+tower, title=item+" jFex module vs FPGA - "+tower+"; jFEX module; FPGA", - # type='TH2I',path=trigPath+item+'/unmatched/DataNoSim', xbins=6,xmin=0,xmax=6,ybins=4,ymin=0,ymax=4,xlabels=Modules_names,ylabels=FPGA_names) - # - # DataNoSimGroup.defineHistogram('LB;h_LBerror_'+tower, title=item+" LB for the mismatch - "+tower+"; LB; Counts", - # type='TH1I',path=trigPath+item+'/unmatched/DataNoSim', xbins=1,xmin=0,xmax=0,opt=['kCanRebin']) - # + helper.defineTree('LBNString,Signature,LBN,EventNumber,EventType,dataEtas,dataPhis,dataWord0s,simEtas,simPhis,simWord0s;mismatched', + "lbnString/string:Signature/string:lbn/l:eventNumber/l:EventType/string:dataEtas/vector<float>:dataPhis/vector<float>:dataWord0s/vector<unsigned int>:simEtas/vector<float>:simPhis/vector<float>:simWord0s/vector<unsigned int>", + title="mismatched;LBN;Signature",fillGroup="mismatches") + return helper.result() diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexMonitorAlgorithm.cxx index 132bc9e0ae66d05ea59b289fb5ec202978634dc7..30a4ca08f811601b5a55174374bc314862bc71d8 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexMonitorAlgorithm.cxx @@ -37,6 +37,10 @@ StatusCode EfexMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const ATH_MSG_DEBUG("EfexMonitorAlgorithm::fillHistograms"); + auto locIdx = Monitored::Scalar<std::string>("locIdx",""); + auto tobEt = Monitored::Scalar<float>("tobEt",0); + auto lbn = Monitored::Scalar<int>("LBN",GetEventInfo(ctx)->lumiBlock()); + // Loop over EM read handle keys in key array for (const SG::ReadHandleKey<xAOD::eFexEMRoIContainer>& key : m_eFexEMTobKeyList){ SG::ReadHandle<xAOD::eFexEMRoIContainer> eFexContainer (key, ctx); @@ -55,7 +59,9 @@ StatusCode EfexMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const auto seedMax = Monitored::Scalar<int>(key.key() + "_seedMax",0); auto tobType = Monitored::Scalar<std::string>("tobType","em"); for(const xAOD::eFexEMRoI* roi : *emDataContPtr){ - seedMax = roi->seedMax();fill(m_packageName, tobType,seedMax); + locIdx = std::to_string(roi->iPhi()/16) + ":" + std::to_string(roi->iEta());tobEt = roi->et(); + seedMax = roi->seedMax();fill(m_packageName, tobType,seedMax); + fill(m_packageName+"_"+key.key(),tobEt,lbn,locIdx); } } } // Finished EM loop @@ -78,7 +84,9 @@ StatusCode EfexMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const auto seedMax = Monitored::Scalar<int>(key.key() + "_seedMax",0); auto tobType = Monitored::Scalar<std::string>("tobType","tau"); for(const xAOD::eFexTauRoI* roi : *tauDataContPtr){ + locIdx = std::to_string(roi->iPhi()/16) + ":" + std::to_string(roi->iEta());tobEt = roi->et(); seedMax = roi->seedMax();fill(m_packageName, tobType,seedMax); + fill(m_packageName+"_"+key.key(),tobEt,lbn,locIdx); } } } // Finished Tau loop diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.cxx index 37094a4210897e421ea580938b6e55201a959544..07253078b6a656c7873d52cb0f82875edb98a931 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.cxx @@ -35,9 +35,13 @@ StatusCode EfexSimMonitorAlgorithm::initialize() { StatusCode EfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const { - // check flag that indicates if simulation was done with fexReadout (primary) or not (secondary) - // SG::ReadDecorHandle<xAOD::EventInfo,bool> usedSecondaryDecor(m_decorKey,ctx); - // auto fexReadout = Monitored::Scalar<unsigned int>("fexReadout", !(usedSecondaryDecor.isAvailable() && usedSecondaryDecor(*GetEventInfo(ctx)))); + fillHistos(m_eFexEmSimContainerKey,m_eFexEmContainerKey,ctx,"eEM"); + fillHistos(m_eFexTauSimContainerKey,m_eFexTauContainerKey,ctx,"eTAU"); + return StatusCode::SUCCESS; +} + +template <typename T> unsigned int EfexSimMonitorAlgorithm::fillHistos(const SG::ReadHandleKey<T>& key1, const SG::ReadHandleKey<T>& key2, const EventContext& ctx, const std::string& signa ) const { + auto fexReadout = Monitored::Scalar<unsigned int>("fexReadout", 0); if(!m_eFexTowerContainerKey.empty()) { @@ -65,19 +69,51 @@ StatusCode EfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co else if((timeUntil>=0&&timeUntil<10)) EventType+="+JustBefore"; } + SG::ReadHandle<T> tobs1{key1, ctx}; + SG::ReadHandle<T> tobs2{key2, ctx}; + + if(!tobs1.isValid()) { + return 0; + } + + std::set<uint32_t> word0s2; + if(tobs2.isValid()) { + for(const auto tob : *tobs2) { + word0s2.insert(tob->word0()); + } + } - unsigned int nUnmatched_em = 0; - nUnmatched_em += fillHistos(m_eFexEmSimContainerKey,m_eFexEmContainerKey,EventType,ctx,"eEM"); // match sim to data - unsigned int nUnmatched_tau = 0; - nUnmatched_tau += fillHistos(m_eFexTauSimContainerKey,m_eFexTauContainerKey,EventType,ctx,"eTAU"); // match sim to data + auto signature = Monitored::Scalar<std::string>("Signature",signa); + auto evtType = Monitored::Scalar<std::string>("EventType",EventType); + auto tobMismatched = Monitored::Scalar<float>("tobMismatched",0.0); + bool mismatches=false; - if( (nUnmatched_em || nUnmatched_tau) ) { + // for each collection record if TOB is matched or not + + for(const auto tob : *tobs1) { + tobMismatched=100; + if(word0s2.find(tob->word0()) == word0s2.end()) { + mismatches=true; + } else { + tobMismatched=0; + } + fill("mismatches",signature,evtType,tobMismatched); + } + if(tobs2.isValid() && tobs1->size() < tobs2->size()) { + tobMismatched=100; + mismatches=true; + for(unsigned int i=0;i<(tobs2->size()-tobs1->size());i++) { + fill("mismatches",signature,tobMismatched,evtType); + } + } + + if (mismatches) { // record all tobs to the debug tree .. one entry in the tree = 1 tobType for 1 event auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber()); auto lbn = Monitored::Scalar<ULong64_t>("LBN",GetEventInfo(ctx)->lumiBlock()); auto lbnString = Monitored::Scalar<std::string>("LBNString",""); - auto& firstEvents = (fexReadout) ? m_firstEvents_DataTowers : m_firstEvents_EmulatedTowers; + auto& firstEvents = (fexReadout==1) ? m_firstEvents_DataTowers : m_firstEvents_EmulatedTowers; { std::scoped_lock lock(m_firstEventsMutex); auto itr = firstEvents.find(lbn); @@ -97,23 +133,15 @@ StatusCode EfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co auto stobEtas = Monitored::Collection("simEtas", setas); auto stobPhis = Monitored::Collection("simPhis", sphis); auto stobWord0s = Monitored::Collection("simWord0s", sword0s); + auto simReady = Monitored::Scalar<bool>("SimulationReady",fexReadout==1); // used to control if filling plot that is actually monitored in DQM + fillVectors(key2,ctx,detas,dphis,dword0s); + fillVectors(key1,ctx,setas,sphis,sword0s); + fill("mismatches",lbn,lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,evtType,timeSince,timeUntil,IsDataTowers,IsEmulatedTowers,signature,simReady); - auto tobType = Monitored::Scalar<unsigned int>("tobType",0); - auto signature = Monitored::Scalar<std::string>("Signature","eEM"); - if(nUnmatched_em) { - fillVectors(m_eFexEmContainerKey,ctx,detas,dphis,dword0s); - fillVectors(m_eFexEmSimContainerKey,ctx,setas,sphis,sword0s); - fill("mismatches",lbn,lbnString,evtNumber,tobType,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,fexReadout,timeSince,timeUntil,IsDataTowers,IsEmulatedTowers,signature); - } - if(nUnmatched_tau) { - tobType = 1; signature = "eTAU"; - fillVectors(m_eFexTauContainerKey,ctx,detas,dphis,dword0s); - fillVectors(m_eFexTauSimContainerKey,ctx,setas,sphis,sword0s); - fill("mismatches",lbn,lbnString,evtNumber,tobType,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,fexReadout,timeSince,timeUntil,IsDataTowers,IsEmulatedTowers,signature); - } + } - } - return StatusCode::SUCCESS; + return mismatches; + } diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.h index ada4e17fc2c59bb9e3959200c4f8e39baa2cab83..0c3ad1f8f1a591ef7ad6c8056e5daae9b6ef6640 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/EfexSimMonitorAlgorithm.h @@ -74,54 +74,7 @@ private: } - template <typename T> unsigned int fillHistos(const SG::ReadHandleKey<T>& key1, const SG::ReadHandleKey<T>& key2, const std::string& eventType, const EventContext& ctx, const std::string& signa = "" ) const { - SG::ReadHandle<T> tobs1{key1, ctx}; - SG::ReadHandle<T> tobs2{key2, ctx}; - - std::set<uint32_t> word0s2; - if(tobs2.isValid()) { - for(auto tob : *tobs2) { - word0s2.insert(tob->word0()); - } - } - - auto signature = Monitored::Scalar<std::string>("Signature",signa); - auto evtType = Monitored::Scalar<std::string>("EventType",eventType); - auto tobMismatched = Monitored::Scalar<float>("tobMismatched",0.0); - - // for each collection record if TOB is matched or not - unsigned int nUnmatched = 0; - if(tobs1.isValid()) { - for(auto tob : *tobs1) { - tobMismatched=100; - if(word0s2.find(tob->word0()) == word0s2.end()) { - nUnmatched++; - } else { - tobMismatched=0; - } - fill("mismatches",signature,evtType,tobMismatched); -// if(tobMismatched && this->msgLevel(MSG::DEBUG)) { -// std::cout << "evtNumber " << GetEventInfo(ctx)->eventNumber() << " " << tobs1.key() << " " << (groupSuffix=="2" ? "L1_eFexDataTowers" : "L1_eFexEmulatedTowers") << " mismatched: 0x" << std::hex << tob->word0() << std::dec << " (" << tob->eta() << "," << tob->phi() << ")" << std::endl; -// for(auto tower : *towers) { -// if (std::abs(tower->eta() - tob->eta()) < 0.2 && std::abs(P4Helpers::deltaPhi(tower->phi(),tob->phi()))<0.2) { -// std::cout << tower->eta() << " " << tower->phi() << " : "; -// for(auto& c : tower->et_count()) std::cout << c << ","; -// std::cout << std::endl; -// } -// } -// } - } - if(tobs2.isValid() && tobs1->size() < tobs2->size()) { - tobMismatched=100; - for(unsigned int i=0;i<(tobs2->size()-tobs1->size());i++) { - nUnmatched++; - fill("mismatches",signature,tobMismatched,evtType); - } - } - } - return nUnmatched; - - } + template <typename T> unsigned int fillHistos(const SG::ReadHandleKey<T>& key1, const SG::ReadHandleKey<T>& key2, const EventContext& ctx, const std::string& signa = "" ) const; }; diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.cxx index 034d2addcae042da0e3c33dff39b20b2d8310c73..cd549f1185f6fc846e8d0ae8a251e996bd1f31f5 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.cxx @@ -94,8 +94,8 @@ StatusCode GfexSimMonitorAlgorithm::initialize() { StatusCode GfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const { - compareJetRoI("gLJ",m_data_gFexJet,m_simu_gFexJet,ctx); - compareJetRoI("gJ",m_data_gFexBlock,m_simu_gFexBlock,ctx); + compareJetRoI("gLJ",m_data_gFexJet,m_simu_gFexJet,ctx,true); + compareJetRoI("gJ",m_data_gFexBlock,m_simu_gFexBlock,ctx,true); compareJetRoI("gLJRho",m_data_gFexRho,m_simu_gFexRho,ctx); compareGlobalRoI("gXEJWOJ",m_data_gScalarEJwoj,m_simu_gScalarEJwoj,ctx); compareGlobalRoI("gXEJWOJ",m_data_gMETComponentsJwoj,m_simu_gMETComponentsJwoj,ctx); @@ -112,7 +112,7 @@ StatusCode GfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co bool GfexSimMonitorAlgorithm::compareJetRoI(const std::string& label, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs1Key, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs2Key, - const EventContext& ctx) const { + const EventContext& ctx, bool simReadyFlag) const { SG::ReadHandle<xAOD::gFexJetRoIContainer> tobs1Cont{tobs1Key, ctx}; if(!tobs1Cont.isValid()) { return false; @@ -128,6 +128,7 @@ bool GfexSimMonitorAlgorithm::compareJetRoI(const std::string& label, auto eventType = Monitored::Scalar<std::string>("EventType","DataTowers"); // always have data towers auto Signature = Monitored::Scalar<std::string>("Signature",label); auto tobMismatched = Monitored::Scalar<double>("tobMismatched",0); + auto simReady = Monitored::Scalar<bool>("SimulationReady",simReadyFlag); for(const auto tob1 : *tobs1Cont) { bool isMatched = false; @@ -149,7 +150,7 @@ bool GfexSimMonitorAlgorithm::compareJetRoI(const std::string& label, mismatches = true; } tobMismatched = (isMatched) ? 0 : 100; - fill("mismatches",eventType,Signature,tobMismatched); + fill("mismatches",eventType,Signature,tobMismatched,simReady); } @@ -157,7 +158,17 @@ bool GfexSimMonitorAlgorithm::compareJetRoI(const std::string& label, if(mismatches) { // fill the debugging tree with all the words for this signature auto lbnString = Monitored::Scalar<std::string>("LBNString",std::to_string(GetEventInfo(ctx)->lumiBlock())); + auto lbn = Monitored::Scalar<ULong64_t>("LBN",GetEventInfo(ctx)->lumiBlock()); auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber()); + { + std::scoped_lock lock(m_firstEventsMutex); + auto itr = m_firstEvents.find(lbn); + if(itr==m_firstEvents.end()) { + m_firstEvents[lbn] = std::to_string(lbn)+":"+std::to_string(evtNumber); + itr = m_firstEvents.find(lbn); + } + lbnString = itr->second; + } std::vector<float> detas{};std::vector<float> setas{}; std::vector<float> dphis{};std::vector<float> sphis{}; std::vector<unsigned int> dword0s{};std::vector<unsigned int> sword0s{}; @@ -177,7 +188,7 @@ bool GfexSimMonitorAlgorithm::compareJetRoI(const std::string& label, for (const auto w: sword0s) std::cout << w << " "; std::cout << std::endl << std::dec; } - fill("mismatches",lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,Signature); + fill("mismatches",lbn,lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,Signature); } return !mismatches; diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.h index 70f513de1bfe2227a95b25be044f249f6f2fafb2..a73a34ab6544e9b0f5ab94b110a9f5169a0e953a 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/GfexSimMonitorAlgorithm.h @@ -24,10 +24,14 @@ class GfexSimMonitorAlgorithm : public AthMonitorAlgorithm { private: - bool compareJetRoI(const std::string& label, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs1Key, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs2Key, const EventContext& ctx) const; + bool compareJetRoI(const std::string& label, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs1Key, const SG::ReadHandleKey<xAOD::gFexJetRoIContainer>& tobs2Key, const EventContext& ctx, bool simReady=false) const; bool compareGlobalRoI(const std::string& label, const SG::ReadHandleKey<xAOD::gFexGlobalRoIContainer>& tobs1Key, const SG::ReadHandleKey<xAOD::gFexGlobalRoIContainer>& tobs2Key, const EventContext& ctx) const; + // map hold the binlabels (in form of LBN:FirstEventNum) to use for each lb + mutable std::map<int,std::string> m_firstEvents ATLAS_THREAD_SAFE; + mutable std::mutex m_firstEventsMutex; + // container keys for Data tobs diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.cxx index 8aa5f4691d88f58dffea4dac36f23803d6c72101..0fef2da6007a5a8e53d8a08742a3c4868934477c 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.cxx @@ -8,9 +8,6 @@ JfexSimMonitorAlgorithm::JfexSimMonitorAlgorithm( const std::string& name, ISvcL StatusCode JfexSimMonitorAlgorithm::initialize() { ATH_MSG_DEBUG("Initializing JfexSimMonitorAlgorithm algorithm with name: "<< name()); - ATH_MSG_DEBUG("Package Name "<< m_Grouphist); - //ATH_CHECK(m_monTool.retrieve()); - //ATH_MSG_DEBUG("Logging errors to " << m_monTool.name() << " monitoring tool"); ATH_MSG_DEBUG("m_data_key_jJ " << m_data_key_jJ ); @@ -86,296 +83,137 @@ StatusCode JfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co } const std::string LB = std::to_string(GetEventInfo(ctx)->lumiBlock()); - - /*************************/ - // SR jets! - /*************************/ - std::vector<std::array<float,5> > jJ_data_UNmatched; - std::vector<std::array<float,5> > jJ_data_matched = tobMatching(m_data_key_jJ, m_simu_key_jJ, ctx, jJ_data_UNmatched,EventType); - - std::vector<std::array<float,5> > jJ_simu_UNmatched; - std::vector<std::array<float,5> > jJ_simu_matched = tobMatching(m_simu_key_jJ, m_data_key_jJ, ctx, jJ_simu_UNmatched,EventType,"jJ"); - - if(jJ_simu_matched.size() != jJ_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHist("SimEqData" ,"jJ" ,inputTower ,LB ,0 ,jJ_data_matched ); - fillHist("DataNoSim" ,"jJ" ,inputTower ,LB ,1 ,jJ_data_UNmatched); - fillHist("SimNoData" ,"jJ" ,inputTower ,LB ,1 ,jJ_simu_UNmatched); - - /*************************/ - // LR jets! - /*************************/ - std::vector<std::array<float,5> > jLJ_data_UNmatched; - std::vector<std::array<float,5> > jLJ_data_matched = tobMatching(m_data_key_jLJ, m_simu_key_jLJ, ctx, jLJ_data_UNmatched,EventType); - - std::vector<std::array<float,5> > jLJ_simu_UNmatched; - std::vector<std::array<float,5> > jLJ_simu_matched = tobMatching(m_simu_key_jLJ, m_data_key_jLJ, ctx, jLJ_simu_UNmatched,EventType,"jLJ"); - - if(jLJ_simu_matched.size() != jLJ_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHist("SimEqData" ,"jLJ" ,inputTower ,LB ,0 ,jLJ_data_matched ); - fillHist("DataNoSim" ,"jLJ" ,inputTower ,LB ,1 ,jLJ_data_UNmatched ); - fillHist("SimNoData" ,"jLJ" ,inputTower ,LB ,1 ,jLJ_simu_UNmatched ); - - /*************************/ - // Taus! - /*************************/ - std::vector<std::array<float,5> > jTau_data_UNmatched; - std::vector<std::array<float,5> > jTau_data_matched = tobMatching(m_data_key_jTau, m_simu_key_jTau, ctx, jTau_data_UNmatched,EventType); + auto lbnString = Monitored::Scalar<std::string>("LBNString",LB); + auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber()); - std::vector<std::array<float,5> > jTau_simu_UNmatched; - std::vector<std::array<float,5> > jTau_simu_matched = tobMatching(m_simu_key_jTau, m_data_key_jTau, ctx, jTau_simu_UNmatched,EventType,"jTAU"); - if(jTau_simu_matched.size() != jTau_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHist("SimEqData" ,"jTau" ,inputTower ,LB ,0 ,jTau_data_matched ); - fillHist("DataNoSim" ,"jTau" ,inputTower ,LB ,1 ,jTau_data_UNmatched ); - fillHist("SimNoData" ,"jTau" ,inputTower ,LB ,1 ,jTau_simu_UNmatched ); - - /*************************/ - // EM! - /*************************/ - std::vector<std::array<float,5> > jEM_data_UNmatched; - std::vector<std::array<float,5> > jEM_data_matched = tobMatching(m_data_key_jEM, m_simu_key_jEM, ctx, jEM_data_UNmatched,EventType); + compareRoI("jJ",EventType,m_data_key_jJ, m_simu_key_jJ,ctx,false); + compareRoI("jLJ",EventType,m_data_key_jLJ, m_simu_key_jLJ,ctx,false); + compareRoI("jTAU",EventType,m_data_key_jTau, m_simu_key_jTau,ctx,false); + compareRoI("jEM",EventType,m_data_key_jEM, m_simu_key_jEM,ctx,false); + compareRoI("jXE",EventType,m_data_key_jXE, m_simu_key_jXE,ctx,false); + compareRoI("jTE",EventType,m_data_key_jTE, m_simu_key_jTE,ctx,false); - std::vector<std::array<float,5> > jEM_simu_UNmatched; - std::vector<std::array<float,5> > jEM_simu_matched = tobMatching(m_simu_key_jEM, m_data_key_jEM, ctx, jEM_simu_UNmatched,EventType,"jEM"); - - if(jEM_simu_matched.size() != jEM_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHist("SimEqData" ,"jEM" ,inputTower ,LB ,0 ,jEM_data_matched ); - fillHist("DataNoSim" ,"jEM" ,inputTower ,LB ,1 ,jEM_data_UNmatched ); - fillHist("SimNoData" ,"jEM" ,inputTower ,LB ,1 ,jEM_simu_UNmatched ); - - /*************************/ - // jXE - /*************************/ - std::vector<std::array<int,3> > jXE_data_UNmatched; - std::vector<std::array<int,3> > jXE_data_matched = tobMatchingGlobals(m_data_key_jXE, m_simu_key_jXE, ctx, jXE_data_UNmatched,EventType); - std::vector<std::array<int,3> > jXE_simu_UNmatched; - std::vector<std::array<int,3> > jXE_simu_matched = tobMatchingGlobals(m_data_key_jXE, m_simu_key_jXE, ctx, jXE_simu_UNmatched,EventType,"jXE"); - - if(jXE_simu_matched.size() != jXE_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHistGlobals("SimEqData" ,"jXE" ,inputTower ,LB ,0 ,jXE_data_matched ); - fillHistGlobals("SimDiffData" ,"jXE" ,inputTower ,LB ,1 ,jXE_data_UNmatched ); - - - /*************************/ - // jTE - /*************************/ - std::vector<std::array<int,3> > jTE_data_UNmatched; - std::vector<std::array<int,3> > jTE_data_matched = tobMatchingGlobals(m_data_key_jTE, m_simu_key_jTE, ctx, jTE_data_UNmatched,EventType); - std::vector<std::array<int,3> > jTE_simu_UNmatched; - std::vector<std::array<int,3> > jTE_simu_matched = tobMatchingGlobals(m_data_key_jTE, m_simu_key_jTE, ctx, jTE_simu_UNmatched,EventType,"jTE"); - - if(jTE_simu_matched.size() != jTE_data_matched.size()) { - ATH_MSG_WARNING(" Simulation TOB and Data TOB matching vector do not have the same size"); - } - - fillHistGlobals("SimEqData" ,"jTE" ,inputTower ,LB ,0 ,jTE_data_matched ); - fillHistGlobals("SimDiffData" ,"jTE" ,inputTower ,LB ,1 ,jTE_data_UNmatched ); return StatusCode::SUCCESS; } - -template <typename T> std::vector<std::array<float,5> > JfexSimMonitorAlgorithm::tobMatching(const SG::ReadHandleKey<T>& tobs1Key, const SG::ReadHandleKey<T>& tobs2Key, const EventContext& ctx, std::vector< std::array<float,5> > & unmatched, const std::string& eType, const std::string& signa ) const { - - bool isInValid = false; +template <typename T> bool JfexSimMonitorAlgorithm::compareRoI(const std::string& label, const std::string& evenType, + const SG::ReadHandleKey<T>& tobs1Key, + const SG::ReadHandleKey<T>& tobs2Key, + const EventContext& ctx, bool simReadyFlag) const { SG::ReadHandle<T> tobs1Cont{tobs1Key, ctx}; if(!tobs1Cont.isValid()) { - ATH_MSG_WARNING("No jFex container found in storegate with key "<< tobs1Key<< ". Skipping, is it Run2 data?"); - isInValid = true; + return false; } SG::ReadHandle<T> tobs2Cont{tobs2Key, ctx}; - if(!tobs2Cont.isValid()) { - ATH_MSG_WARNING("No jFex container found in storegate with key "<< tobs2Key<< ". Skipping, is it Run2 data?"); - isInValid = true; + if(!tobs1Cont.isValid()) { + return false; } - std::vector< std::array<float,5> > matched; - - if(isInValid) return matched; + bool mismatches = (tobs1Cont->size()!=tobs2Cont->size()); - auto signature = Monitored::Scalar<std::string>("Signature",signa); - auto evtType = Monitored::Scalar<std::string>("EventType",eType); + auto eventType = Monitored::Scalar<std::string>("EventType",evenType); + auto Signature = Monitored::Scalar<std::string>("Signature",label); auto tobMismatched = Monitored::Scalar<double>("tobMismatched",0); + auto simReady = Monitored::Scalar<bool>("SimulationReady",simReadyFlag); for(const auto tob1 : *tobs1Cont) { - bool isMatched = false; auto word1 = tob1->tobWord(); auto jfex1 = tob1->jFexNumber(); auto fpga1 = tob1->fpgaNumber(); - for (auto tob2 : *tobs2Cont) { - if(word1 == tob2->tobWord() && jfex1 == tob2->jFexNumber() && fpga1 == tob2->fpgaNumber() ) { - std::array<float,5> tmp = {(float) word1, (float) jfex1, (float) fpga1, tob1->eta(), tob1->phi()}; - matched.push_back(tmp); + for (const auto tob2 : *tobs2Cont) { + if(word1==0 || (word1 == tob2->tobWord() && jfex1 == tob2->jFexNumber() && fpga1 == tob2->fpgaNumber())) { // not 100% sure about the word1=0 skip, but came from old code comparing global RoI isMatched = true; break; } } - if(!isMatched) { - std::array<float,5> tmp = {(float) word1, (float) jfex1, (float) fpga1, tob1->eta(), tob1->phi()}; - unmatched.push_back(tmp); + mismatches = true; } - if(!signa.empty()) { - tobMismatched = (isMatched) ? 0 : 100; - fill("mismatches", evtType, signature, tobMismatched); + tobMismatched = (isMatched) ? 0 : 100; + fill("mismatches",eventType,Signature,tobMismatched,simReady); + } + + if(mismatches) { + // fill the debugging tree with all the words for this signature + auto lbnString = Monitored::Scalar<std::string>("LBNString",std::to_string(GetEventInfo(ctx)->lumiBlock())); + auto lbn = Monitored::Scalar<ULong64_t>("LBN",GetEventInfo(ctx)->lumiBlock()); + auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber()); + { + std::scoped_lock lock(m_firstEventsMutex); + auto itr = m_firstEvents.find(lbn); + if(itr==m_firstEvents.end()) { + m_firstEvents[lbn] = std::to_string(lbn)+":"+std::to_string(evtNumber); + itr = m_firstEvents.find(lbn); + } + lbnString = itr->second; } - } - if(!signa.empty() && tobs1Cont->size() < tobs2Cont->size()) { - tobMismatched=100; - for(unsigned int i=0;i<(tobs2Cont->size()-tobs1Cont->size());i++) { - fill("mismatches",signature,tobMismatched,evtType); + std::vector<float> detas{};std::vector<float> setas{}; + std::vector<float> dphis{};std::vector<float> sphis{}; + std::vector<unsigned int> dword0s{};std::vector<unsigned int> sword0s{}; + auto dtobEtas = Monitored::Collection("dataEtas", detas); + auto dtobPhis = Monitored::Collection("dataPhis", dphis); + auto dtobWord0s = Monitored::Collection("dataWord0s", dword0s); + auto stobEtas = Monitored::Collection("simEtas", setas); + auto stobPhis = Monitored::Collection("simPhis", sphis); + auto stobWord0s = Monitored::Collection("simWord0s", sword0s); + fillVectors(tobs1Key,ctx,detas,dphis,dword0s); + fillVectors(tobs2Key,ctx,setas,sphis,sword0s); + if(msgLvl(MSG::DEBUG)) { + std::cout << "LBN: " << std::string(lbnString) << " EventNumber: " << ULong64_t(evtNumber) << " signature: " << label << std::endl; + std::cout << " data : " << std::hex; + for (const auto w: dword0s) std::cout << w << " "; + std::cout << std::endl << " sim : "; + for (const auto w: sword0s) std::cout << w << " "; + std::cout << std::endl << std::dec; } + fill("mismatches",lbn,lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,Signature,eventType); } -// if(signa=="jEM") { -// std::cout << signa << " " << matched.size() << " matched, unmatched : " << std::hex; -// for (const auto tob: unmatched) { -// std::cout << tob.at(0) << " "; -// } -// std::cout << std::endl << std::dec; -// } - - return matched; -} - - -void JfexSimMonitorAlgorithm::fillHist(const std::string & pkg, const std::string & item, const std::string & input, const std::string & LB, const bool fillError, std::vector< std::array<float,5> > & elem) const { - return; - - auto jFexModule = Monitored::Scalar<int> ("jfex", 0); - auto jFexFPGA = Monitored::Scalar<int> ("fpga", 0); - auto jFexeta = Monitored::Scalar<float>("eta" ,0.0); - auto jFexphi = Monitored::Scalar<float>("phi" ,0.0); - - auto jFexInput = Monitored::Scalar< std::string > ("input",input); - auto jFexItem = Monitored::Scalar< std::string > ("item" , item); - - auto LBstring = Monitored::Scalar< std::string > ("LB" , LB); - - std::string package = m_Grouphist+"_"+pkg+"_"+item+"_"+input; - - for(const auto tob: elem) { + return !mismatches; - jFexModule = std::get<1>(tob); - jFexFPGA = std::get<2>(tob); - jFexeta = std::get<3>(tob); - jFexphi = std::get<4>(tob); - - fill(package,jFexModule,jFexFPGA,jFexeta,jFexphi); - - if(fillError){ - fill(m_Grouphist,jFexInput,jFexItem); - genError("Sim_"+input, "TOB"); - fill(package,LBstring); - } - } } -template <typename T> std::vector<std::array<int,3> > JfexSimMonitorAlgorithm::tobMatchingGlobals(const SG::ReadHandleKey<T>& tobs1Key, const SG::ReadHandleKey<T>& tobs2Key, const EventContext& ctx, std::vector< std::array<int,3> > & unmatched, const std::string& eType, const std::string& signa ) const { - - SG::ReadHandle<T> tobs1Cont{tobs1Key, ctx}; - if(!tobs1Cont.isValid()) { - ATH_MSG_ERROR("No jFex container found in storegate tob1 with key "<< tobs1Key); - } - SG::ReadHandle<T> tobs2Cont{tobs2Key, ctx}; - if(!tobs2Cont.isValid()) { - ATH_MSG_ERROR("No jFex container found in storegate tob2 with key "<< tobs2Key); - } - - std::vector< std::array<int,3> > matched; - - auto signature = Monitored::Scalar<std::string>("Signature",signa); - auto evtType = Monitored::Scalar<std::string>("EventType",eType); - auto tobMismatched = Monitored::Scalar<double>("tobMismatched",0); - - for(const auto tob1 : *tobs1Cont) { - - bool isMatched = false; - auto word1 = tob1->tobWord(); - auto jfex1 = tob1->jFexNumber(); - auto fpga1 = tob1->fpgaNumber(); - - for (auto tob2 : *tobs2Cont) { - if((word1 == tob2->tobWord() && jfex1 == tob2->jFexNumber() && fpga1 == tob2->fpgaNumber()) or (word1 == 0 ) ) { - std::array<int,3> tmp = { (int) word1, jfex1, fpga1}; - matched.push_back(tmp); - isMatched = true; - break; - } +template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexMETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const { + etas.clear();phis.clear();word0s.clear(); + SG::ReadHandle<xAOD::jFexMETRoIContainer> tobs{key, ctx}; + if(tobs.isValid()) { + etas.reserve(tobs->size()); + phis.reserve(tobs->size()); + word0s.reserve(tobs->size()); + std::vector<SortableTob> sortedTobs; + sortedTobs.reserve(tobs->size()); + for(const auto& tob : *tobs) { + sortedTobs.emplace_back(SortableTob{tob->tobWord(),0.,0.}); } - - if(!isMatched) { - std::array<int,3> tmp = {(int) word1, jfex1, fpga1}; - unmatched.push_back(tmp); - } - if(!signa.empty()) { - tobMismatched = (isMatched) ? 0 : 100; - fill("mismatches", evtType, signature, tobMismatched); + std::sort(sortedTobs.begin(),sortedTobs.end(),[](const SortableTob& lhs, const SortableTob& rhs) { return lhs.word0<rhs.word0; }); + for(const auto& tob : sortedTobs) { + etas.push_back(tob.eta); + phis.push_back(tob.phi); + word0s.push_back(tob.word0); } } - if(!signa.empty() && tobs1Cont->size() < tobs2Cont->size()) { - tobMismatched=100; - for(unsigned int i=0;i<(tobs2Cont->size()-tobs1Cont->size());i++) { - fill("mismatches",signature,tobMismatched,evtType); - } - } - - return matched; } - - -void JfexSimMonitorAlgorithm::fillHistGlobals(const std::string & pkg, const std::string & item, const std::string & input, const std::string & LB, const bool fillError, std::vector< std::array<int,3> > & elem ) const { - - return; - - auto jFexModule = Monitored::Scalar<int> ("jfex", 0); - auto jFexFPGA = Monitored::Scalar< std::string > ("fpga", ""); - - auto jFexInput = Monitored::Scalar< std::string > ("input",input); - auto jFexItem = Monitored::Scalar< std::string > ("item" , item); - - auto LBstring = Monitored::Scalar< std::string > ("LB" , LB); - - std::string fpga_name[4] = {"U1", "U2", "U3", "U4"}; - - std::string package = m_Grouphist+"_"+pkg+"_"+item+"_"+input; - - for(const auto tob: elem) { - - jFexModule = std::get<1>(tob); - jFexFPGA = fpga_name[std::get<2>(tob)]; - - fill(package,jFexModule,jFexFPGA); - - if(fillError){ - fill(m_Grouphist,jFexInput,jFexItem); - genError("Sim_"+input, "global TOB"); - fill(package,LBstring); +template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexSumETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const { + etas.clear();phis.clear();word0s.clear(); + SG::ReadHandle<xAOD::jFexSumETRoIContainer> tobs{key, ctx}; + if(tobs.isValid()) { + etas.reserve(tobs->size()); + phis.reserve(tobs->size()); + word0s.reserve(tobs->size()); + std::vector<SortableTob> sortedTobs; + sortedTobs.reserve(tobs->size()); + for(const auto tob : *tobs) { + sortedTobs.emplace_back(SortableTob{tob->tobWord(),0.,0.}); + } + std::sort(sortedTobs.begin(),sortedTobs.end(),[](const SortableTob& lhs, const SortableTob& rhs) { return lhs.word0<rhs.word0; }); + for(const auto& tob : sortedTobs) { + etas.push_back(tob.eta); + phis.push_back(tob.phi); + word0s.push_back(tob.word0); } } -} - - -void JfexSimMonitorAlgorithm::genError(const std::string& /*location*/, const std::string& /*title*/) const { -// Monitored::Group(m_monTool, -// Monitored::Scalar("genLocation",location.empty() ? std::string("UNKNOWN") : location), -// Monitored::Scalar("genType",title.empty() ? std::string("UNKNOWN") : title) -// ); -} +} \ No newline at end of file diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.h index 2623346373e97de2829415eed1a2276ce9c856c6..dc8ec28c2d85fb05c8750db3e8016b75b703a77d 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JfexSimMonitorAlgorithm.h @@ -27,12 +27,6 @@ class JfexSimMonitorAlgorithm : public AthMonitorAlgorithm { virtual StatusCode fillHistograms( const EventContext& ctx ) const override; private: - - StringProperty m_Grouphist {this,"Grouphist" ,"JfexSimMonitor","group name for histograming"}; - - ToolHandle<GenericMonitoringTool> m_monTool{this,"jFEXMonTool","","Monitoring tool"}; - void genError(const std::string& location, const std::string& title) const; - // container keys for jfex input data SG::ReadHandleKey<xAOD::jFexTowerContainer> m_jFexTowerKey{this, "jFexTowerContainer","L1_jFexDataTowers","SG key of the input jFex Tower container"}; @@ -54,11 +48,47 @@ class JfexSimMonitorAlgorithm : public AthMonitorAlgorithm { SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_simu_key_jTE {this,"jFexSumETRoISimContainer","L1_jFexSumETRoISim","SG key of the Sim jFex SumEt Roi container" }; SG::ReadCondHandleKey<LArBadChannelCont> m_bcContKey{this, "LArMaskedChannelKey", "LArMaskedSC", "Key of the OTF-Masked SC" }; - - template <typename T> std::vector<std::array<float,5> > tobMatching(const SG::ReadHandleKey<T>& tobs1Key, const SG::ReadHandleKey<T>& tobs2Key, const EventContext& ctx, std::vector< std::array<float,5> > & unmatched, const std::string& evtType, const std::string& signa="" ) const; - void fillHist(const std::string & pkg, const std::string & item, const std::string & input, const std::string & LB, const bool fillError, std::vector< std::array<float,5> > & elem ) const; - - template <typename T> std::vector<std::array<int,3> > tobMatchingGlobals(const SG::ReadHandleKey<T>& tobs1Key, const SG::ReadHandleKey<T>& tobs2Key, const EventContext& ctx, std::vector< std::array<int,3> > & unmatched, const std::string& evtType, const std::string& signa="" ) const; - void fillHistGlobals(const std::string & pkg, const std::string & item, const std::string & input, const std::string & LB, const bool fillError, std::vector< std::array<int,3> > & elem ) const; -}; + + template <typename T> bool compareRoI(const std::string& label, const std::string& evenType, + const SG::ReadHandleKey<T>& tobs1Key, + const SG::ReadHandleKey<T>& tobs2Key, + const EventContext& ctx, bool simReadyFlag=false) const; + + // map hold the binlabels (in form of LBN:FirstEventNum) to use for each lb + mutable std::map<int,std::string> m_firstEvents ATLAS_THREAD_SAFE; + mutable std::mutex m_firstEventsMutex; + + + struct SortableTob { + SortableTob(unsigned int w, float e, float p) : word0(w),eta(e),phi(p) { } + unsigned int word0; + float eta,phi; + }; + template <typename T> void fillVectors(const SG::ReadHandleKey<T>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const { + etas.clear();phis.clear();word0s.clear(); + SG::ReadHandle<T> tobs{key, ctx}; + if(tobs.isValid()) { + etas.reserve(tobs->size()); + phis.reserve(tobs->size()); + word0s.reserve(tobs->size()); + std::vector<SortableTob> sortedTobs; + sortedTobs.reserve(tobs->size()); + for(const auto tob : *tobs) { + sortedTobs.emplace_back(SortableTob{tob->tobWord(),tob->eta(),tob->phi()}); + } + std::sort(sortedTobs.begin(),sortedTobs.end(),[](const SortableTob& lhs, const SortableTob& rhs) { return lhs.word0<rhs.word0; }); + for(const auto& tob : sortedTobs) { + etas.push_back(tob.eta); + phis.push_back(tob.phi); + word0s.push_back(tob.word0); + } + } + } + +}; + +// specializations for global tob types (no eta and phi values) +template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexMETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const; +template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexSumETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const; + #endif diff --git a/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py b/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py index 257070dfb54957354b445cd9b9995c46da7dc893..0901897affc7b25ab797470aaf7a1d2bdd9ef3c6 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py @@ -130,6 +130,7 @@ def defaultITkTrigTrackingFlags() -> AthConfigFlags: defaultTrigTrackingFlags(flags) flags.minPT = [flags.pTmin] #ITk flags have eta dependant settings + flags.minClusters = [9,8,7] #offline defaults are [9,8,7] flags.Xi2max = [9.] flags.Xi2maxNoAdd = [25.] flags.nHolesMax = [2] @@ -141,8 +142,8 @@ def defaultITkTrigTrackingFlags() -> AthConfigFlags: flags.doTRT = False flags.doZFinder = False flags.DoPhiFiltering = True - flags.UsePixelSpacePoints = True # In LRT cases they use only SCT SP, but for ITk we want pixel SP - flags.doDisappearingTrk = False # Not working yet for ITk + flags.UsePixelSpacePoints = True # In LRT they use only SCT SP, but for ITk we want pixel SP + flags.doDisappearingTrk = False # Not working yet for ITk flags.doCaloSeededBremSi = False flags.doCaloSeededAmbiSi = False flags.DoubletDR_Max = 150.0 @@ -235,6 +236,24 @@ def signatureActions(func): return invokeSteps +def tsetter(var, value): + """ use previous type of the var and convert value to it + for the moment just makes list of a value if needed + """ + type2set = type(var) + typeOfValue = type(value) + if type2set == typeOfValue: + var = value + else: + basic = (bool, str, int, float, type(None)) + if isinstance(var,basic): + var = value + else: + var = [value] + + return var + + @signatureActions def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFlags: @@ -246,7 +265,8 @@ def electron(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConf flags.phiHalfWidth = 0.1 flags.doCloneRemoval = True flags.doSeedRedundancyCheck = True - flags.doTRT = True + if recoMode=="InDet": + flags.doTRT = True flags.keepTrackParameters = True flags.electronPID = True return flags @@ -284,7 +304,9 @@ def tauCore(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.name = "tauCore" flags.suffix = "TauCore" flags.roi = "HLT_Roi_TauCore" - flags.pTmin = flags.minPT = 0.8*Units.GeV + flags.pTmin = 0.8*Units.GeV + flags.minPT = tsetter(flags.minPT, flags.pTmin) + flags.holeSearch_FTF = True return flags @@ -302,7 +324,8 @@ def tauIso(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfig flags.addSingleTrackVertices = True flags.vertex = "HLT_IDVertex_Tau" flags.electronPID = False - flags.pTmin = flags.minPT = 0.8*Units.GeV + flags.pTmin = 0.8*Units.GeV + flags.minPT = tsetter(flags.minPT, flags.pTmin) return flags @signatureActions @@ -315,8 +338,9 @@ def bjet(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfigFl flags.etaHalfWidth = 0.4 flags.phiHalfWidth = 0.4 flags.zedHalfWidth = 10.0 - flags.pTmin = flags.minPT = 0.8*Units.GeV - flags.Xi2max = 12. + flags.pTmin = 0.8*Units.GeV + flags.minPT = tsetter(flags.minPT, flags.pTmin) + flags.Xi2max = tsetter(flags.Xi2max,12.) return flags @signatureActions @@ -332,7 +356,8 @@ def jetSuper(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConf flags.etaHalfWidth = 0.3 flags.phiHalfWidth = 0.3 flags.doFullScan = True - flags.pTmin = flags.minPT = 1*Units.GeV + flags.pTmin = 1*Units.GeV + flags.minPT = tsetter(flags.minPT, flags.pTmin) #----- flags.doTRT = False flags.DoubletDR_Max = 200 @@ -352,7 +377,9 @@ def minBias(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.suffix = "MinBias" flags.roi = "HLT_Roi_MinBias" flags.doFullScan = True - flags.pTmin = flags.minPT = 0.1*Units.GeV # TODO: double check + flags.pTmin = 0.1*Units.GeV # TODO: double check + flags.minPT = tsetter(flags.minPT, flags.pTmin) + flags.doTRT = False #backward compatibility with EFIDTracking.py:makeInDetPatternRecognition flags.etaHalfWidth = 3 flags.phiHalfWidth = math.pi @@ -413,7 +440,7 @@ def fullScan(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConf flags.UseTrigSeedML = 4 flags.dodEdxTrk = True flags.doHitDV = True - flags.doDisappearingTrk = True + flags.doDisappearingTrk = True if recoMode=="InDet" else False flags.roadWidth = 5. return flags @@ -456,24 +483,27 @@ def cosmics(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.etaHalfWidth = 3 flags.phiHalfWidth = math.pi - flags.minPT = flags.pTmin = 0.5*Units.GeV + flags.minPT = tsetter(flags.minPT, 0.5*Units.GeV) + flags.nClustersMin = 4 flags.minSiNotShared = 3 flags.maxShared = 0 flags.nHolesMax = 3 flags.maxSiHoles = 3 flags.maxSCTHoles = 3 - flags.maxPixelHoles = 3 - flags.maxDoubleHoles = 1 + flags.maxPixelHoles = tsetter(flags.maxPixelHoles,3) flags.maxPrimaryImpact = 1000. flags.maxRPhiImpact = 1000. - flags.maxZImpact = 10000. - flags.Xi2max = 60. if recoMode=="InDet" else [60.] - flags.Xi2maxNoAdd = 100. if recoMode=="InDet" else [100.] + + flags.Xi2max = tsetter(flags.Xi2max, 60.) + flags.Xi2maxNoAdd = tsetter(flags.Xi2maxNoAdd, 100.) + flags.maxDoubleHoles = tsetter(flags.maxDoubleHoles,1) + flags.nWeightedClustersMin= 8 flags.useSeedFilter = True flags.usePrdAssociationTool = False #for backward compatibility #2023fix? flags.roadWidth = 75. + flags.maxZImpact= tsetter(flags.maxZImpact, 10000.) if recoMode=="InDet": flags.minTRTonTrk = 20 @@ -514,15 +544,9 @@ def electronLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthC flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpactEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False return flags @@ -547,16 +571,11 @@ def muonLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.doResMon = True flags.DoPhiFiltering = False #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + return flags @@ -569,11 +588,11 @@ def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfig flags.suffix = "TauLRT" flags.roi = "HLT_Roi_TauLRT" flags.vertex = "HLT_IDVertex_Tau" # TODO: does this need renaming? - flags.pTmin = flags.minPT = 0.8*Units.GeV + flags.pTmin = 0.8*Units.GeV + flags.minPT = tsetter(flags.minPT, flags.pTmin) flags.etaHalfWidth = 0.4 flags.phiHalfWidth = 0.4 flags.zedHalfWidth = 225. - flags.doTRT = True flags.UsePixelSpacePoints = False flags.Triplet_D0Max = 300. flags.TrackInitialD0Max = 300. @@ -581,16 +600,13 @@ def tauLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfig flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + if recoMode=="InDet": + flags.doTRT = True + return flags @@ -610,16 +626,11 @@ def bjetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpactEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + return flags @@ -644,16 +655,11 @@ def fullScanLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthC flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpactEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + return flags @@ -679,16 +685,11 @@ def DJetLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpactEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + return flags @@ -713,16 +714,11 @@ def DVtxLRT(flags: AthConfigFlags, instanceName: str, recoMode: str) -> AthConfi flags.nClustersMin = 8 flags.isLRT = True #pt config - flags.maxZImpact = 500. flags.maxRPhiImpact = 300. flags.maxRPhiImpactEM = 300. flags.maxEta = 2.7 - flags.maxDoubleHoles = 0 - flags.maxSiHoles = 2 - flags.maxPixelHoles = 1 - flags.maxSCTHoles = 1 - flags.minSiClusters = 8 flags.doEmCaloSeed = False + return flags @@ -734,17 +730,22 @@ def derivedFromFlags(flags: AthConfigFlags, recoMode : str): flags.tracks_IDTrig = \ collToRecordable(flags,"HLT_IDTrack_{}_IDTrig".format(flags.suffix if flags.input_name != "tauIso" else "Tau")) - if flags.isLRT: - flags.minClusters = 8 if recoMode=="InDet" else [8] - flags.nHolesGapMax = 1 if recoMode=="InDet" else [1] - flags.nWeightedClustersMin= 8 if recoMode=="InDet" else [8] - flags.maxSiHoles = 2 if recoMode=="InDet" else [2] - flags.maxSCTHoles = 1 if recoMode=="InDet" else [1] - flags.maxPixelHoles = 1 if recoMode=="InDet" else [1] - flags.maxDoubleHoles = 0 if recoMode=="InDet" else [0] + if flags.isLRT: # to be moved to a separate function once LRTs differ + flags.minClusters = tsetter(flags.minClusters , 8) + flags.nHolesGapMax = tsetter(flags.nHolesGapMax , 1) + flags.nWeightedClustersMin= tsetter(flags.nWeightedClustersMin, 8) + flags.maxSiHoles = tsetter(flags.maxSiHoles , 2) + flags.maxSCTHoles = tsetter(flags.maxSCTHoles , 1) + flags.maxPixelHoles = tsetter(flags.maxPixelHoles , 1) + flags.maxDoubleHoles = tsetter(flags.maxDoubleHoles , 0) + flags.maxZImpact = tsetter(flags.maxZImpact , 500.) + if recoMode == "ITk": flags.extension = flags.input_name #needed in the ITk mode? + + if flags.isLRT: + flags.UsePixelSpacePoints = True #In LRT cases they use only SCT SP, but for ITk we want pixel SP def collToRecordable(flags,name): @@ -771,7 +772,6 @@ def collToRecordable(flags,name): def addGlobalFlags(flags: AthConfigFlags, category : str): flags.addFlag(f'{category}.RoiZedWidthDefault', 180.0 * Units.mm) flags.addFlag(f'{category}.doGPU', False) - flags.addFlag(f'{category}.fixSeedPhi', True) import unittest diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref index f5fef41842dbfd29f38d66b598e45dc9ee77099c..6e072b87abd191c4d669ac1bc74c022bf968cf40 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref @@ -435,6 +435,10 @@ HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9: 3: 5 HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9L: eventCount: 0 +HLT_2j100_2timeSig15_L1jJ90: + eventCount: 0 +HLT_2j100_2timeSig_L1jJ90: + eventCount: 0 HLT_2j100_L1CEP-CjJ100: eventCount: 0 HLT_2j100_L1CEP-CjJ90: @@ -1345,6 +1349,30 @@ HLT_2j45_0eta290_020jvt_bgn270_j0_HT290_j0_DJMASS700j35_pf_ftf_L1HT150-jJ50s5pET 0: 12 1: 54 2: 1 +HLT_2j45_2j45_2timeSig15_L14jJ40: + eventCount: 2 + stepCounts: + 0: 2 + stepFeatures: + 0: 32 +HLT_2j45_2j45_2timeSig_L14jJ40: + eventCount: 2 + stepCounts: + 0: 2 + stepFeatures: + 0: 32 +HLT_2j45_2j45_3timeSig15_L14jJ40: + eventCount: 2 + stepCounts: + 0: 2 + stepFeatures: + 0: 27 +HLT_2j45_2j45_3timeSig_L14jJ40: + eventCount: 2 + stepCounts: + 0: 2 + stepFeatures: + 0: 27 HLT_2j45c_2j35c_85bdips_roiftf_presel4c45_L14jJ40p0ETA25: eventCount: 6 stepCounts: @@ -2630,6 +2658,12 @@ HLT_3j45_j45_2timing_L14jJ40: 0: 3 stepFeatures: 0: 37 +HLT_3j45_j45_3timeSig15_L14jJ40: + eventCount: 3 + stepCounts: + 0: 3 + stepFeatures: + 0: 35 HLT_3j45_j45_3timeSig_L14jJ40: eventCount: 3 stepCounts: @@ -3627,9 +3661,9 @@ HLT_distrk20_medium_L1XE55: HLT_distrk20_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 11 + 0: 8 stepFeatures: - 0: 11 + 0: 8 HLT_distrk20_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -3663,9 +3697,9 @@ HLT_distrk20_tight_L1XE55: HLT_distrk20_tight_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 11 + 0: 8 stepFeatures: - 0: 11 + 0: 8 HLT_distrk20_tight_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -13912,11 +13946,11 @@ HLT_hitdvjet200_medium_L1XE55: HLT_hitdvjet200_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_hitdvjet200_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -14685,9 +14719,10 @@ HLT_j100_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j100_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -14709,11 +14744,11 @@ HLT_j100_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1XE55: HLT_j100_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j100_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -14736,9 +14771,10 @@ HLT_j100_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j100_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -14760,11 +14796,11 @@ HLT_j100_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1XE55: HLT_j100_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j100_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -14779,9 +14815,10 @@ HLT_j100_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j100_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -14793,11 +14830,11 @@ HLT_j100_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: HLT_j100_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j100_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -14883,13 +14920,13 @@ HLT_j110_a10sd_cssk_pf_jes_ftf_preselj80_L1J30: 0: 16 1: 35 HLT_j110_a10sd_cssk_pf_jes_ftf_preselj80_L1gLJ80p0ETA25: - eventCount: 12 + eventCount: 9 stepCounts: - 0: 12 - 1: 12 + 0: 9 + 1: 9 stepFeatures: - 0: 12 - 1: 24 + 0: 9 + 1: 20 HLT_j110_a10sd_cssk_pf_jes_ftf_preselj80_L1jJ60: eventCount: 16 stepCounts: @@ -14913,11 +14950,11 @@ HLT_j110_a10t_lcw_jes_L1J30: stepFeatures: 0: 50 HLT_j110_a10t_lcw_jes_L1gLJ80p0ETA25: - eventCount: 12 + eventCount: 9 stepCounts: - 0: 12 + 0: 9 stepFeatures: - 0: 38 + 0: 32 HLT_j110_a10t_lcw_jes_L1jJ60: eventCount: 16 stepCounts: @@ -15498,11 +15535,11 @@ HLT_j180_hitdvjet200_medium_L1XE55: HLT_j180_hitdvjet200_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 2 - 1: 2 + 0: 1 + 1: 1 stepFeatures: - 0: 13 - 1: 2 + 0: 9 + 1: 1 HLT_j180_hitdvjet200_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -16220,8 +16257,12 @@ HLT_j220_320eta490_L1J75p31ETA49: eventCount: 0 HLT_j220_j150_2timeSig_L1jJ160: eventCount: 0 +HLT_j220_j150_2timing15_L1jJ160: + eventCount: 0 HLT_j220_j150_2timing_L1jJ160: eventCount: 0 +HLT_j220_j150_3timeSig15_L1jJ160: + eventCount: 0 HLT_j220_j150_3timeSig_L1jJ160: eventCount: 0 HLT_j220_j150_L1jJ160: @@ -21259,9 +21300,10 @@ HLT_j95_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j95_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -21283,11 +21325,11 @@ HLT_j95_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1XE55: HLT_j95_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j95_0eta290_020jvt_bdl1d60_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -21310,9 +21352,10 @@ HLT_j95_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j95_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -21334,11 +21377,11 @@ HLT_j95_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1XE55: HLT_j95_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j95_0eta290_020jvt_bgn160_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -21353,9 +21396,10 @@ HLT_j95_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: 0: 6 + 1: 1 stepFeatures: 0: 22 - 1: 6 + 1: 7 HLT_j95_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: eventCount: 0 stepCounts: @@ -21367,11 +21411,11 @@ HLT_j95_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_pfopufit_L1jXE110: HLT_j95_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_tcpufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 17 - 1: 1 + 0: 18 + 1: 2 HLT_j95_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_tcpufit_L1jXE110: eventCount: 1 stepCounts: @@ -28214,19 +28258,19 @@ HLT_noalg_L1gJ400p0ETA25: HLT_noalg_L1gJ50p0ETA25: eventCount: 12 HLT_noalg_L1gLJ100p0ETA25: - eventCount: 9 + eventCount: 8 HLT_noalg_L1gLJ140p0ETA25: - eventCount: 4 + eventCount: 3 HLT_noalg_L1gLJ160p0ETA25: - eventCount: 1 + eventCount: 0 HLT_noalg_L1gLJ80p0ETA25: - eventCount: 13 + eventCount: 9 HLT_noalg_L1gMHT500: eventCount: 0 HLT_noalg_L1gTE200: eventCount: 0 HLT_noalg_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 HLT_noalg_L1gXEJWOJ110: eventCount: 8 HLT_noalg_L1gXEJWOJ120: @@ -28234,11 +28278,11 @@ HLT_noalg_L1gXEJWOJ120: HLT_noalg_L1gXEJWOJ500: eventCount: 0 HLT_noalg_L1gXEJWOJ60: - eventCount: 17 -HLT_noalg_L1gXEJWOJ70: eventCount: 15 +HLT_noalg_L1gXEJWOJ70: + eventCount: 13 HLT_noalg_L1gXEJWOJ80: - eventCount: 12 + eventCount: 11 HLT_noalg_L1gXENC100: eventCount: 9 HLT_noalg_L1gXENC70: @@ -28632,7 +28676,7 @@ HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1XE55: HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 11 + 0: 12 HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -28652,7 +28696,7 @@ HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1XE55: HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 11 + 0: 12 HLT_tau160_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -28672,7 +28716,7 @@ HLT_tau160_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1XE55: HLT_tau160_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 10 + 0: 11 HLT_tau160_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -28752,7 +28796,7 @@ HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1XE55: HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 11 + 0: 12 HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -28772,7 +28816,7 @@ HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1XE55: HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 11 + 0: 12 HLT_tau180_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -28792,7 +28836,7 @@ HLT_tau180_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1XE55: HLT_tau180_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepFeatures: - 0: 10 + 0: 11 HLT_tau180_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepFeatures: @@ -29535,7 +29579,7 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 2 3: 2 @@ -29544,9 +29588,19 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 + 0: 4 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -29621,7 +29675,7 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 4: 2 5: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 5 3: 5 @@ -29630,19 +29684,19 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 4 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 stepFeatures: - 0: 11 - 1: 1 - 2: 3 - 3: 3 - 4: 3 - 5: 3 + 0: 12 + 1: 2 + 2: 5 + 3: 5 + 4: 5 + 5: 5 HLT_tau20_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -29717,7 +29771,7 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 2 3: 2 @@ -29726,9 +29780,19 @@ HLT_tau20_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau20_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau20_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -30831,7 +30895,7 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 2 3: 2 @@ -30840,9 +30904,19 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 + 0: 4 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -30917,7 +30991,7 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 4: 2 5: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 3 3: 3 @@ -30926,19 +31000,19 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 4 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 stepFeatures: - 0: 11 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 12 + 1: 2 + 2: 3 + 3: 3 + 4: 3 + 5: 3 HLT_tau25_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -31013,7 +31087,7 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 2 3: 2 @@ -31022,9 +31096,19 @@ HLT_tau25_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau25_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau25_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -32285,7 +32369,7 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 1 3: 1 @@ -32294,9 +32378,19 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 + 0: 4 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -32371,7 +32465,7 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 4: 2 5: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 2 3: 2 @@ -32380,19 +32474,19 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 4 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 stepFeatures: - 0: 11 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 12 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau35_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -32467,7 +32561,7 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 1 3: 1 @@ -32476,9 +32570,19 @@ HLT_tau35_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau35_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau35_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -32872,7 +32976,7 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 1 3: 1 @@ -32881,9 +32985,19 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 + 0: 4 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -32958,7 +33072,7 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 4: 2 5: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 2 3: 2 @@ -32967,19 +33081,19 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 3 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 4 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 stepFeatures: - 0: 11 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 12 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau40_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33054,7 +33168,7 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 1 3: 1 @@ -33063,9 +33177,19 @@ HLT_tau40_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau40_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau40_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33216,15 +33340,15 @@ HLT_tau50_mediumRNN_tracktwoMVA_xe80_pfopufit_xe50_cell_L1XE55: HLT_tau50_mediumRNN_tracktwoMVA_xe80_pfopufit_xe50_cell_L1gXEJWOJ100: eventCount: 0 stepCounts: + 0: 8 + 1: 8 + 2: 8 + 3: 8 + stepFeatures: 0: 11 1: 11 2: 11 3: 11 - stepFeatures: - 0: 17 - 1: 17 - 2: 17 - 3: 17 HLT_tau50_mediumRNN_tracktwoMVA_xe80_pfopufit_xe50_cell_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -33233,10 +33357,10 @@ HLT_tau50_mediumRNN_tracktwoMVA_xe80_pfopufit_xe50_cell_L1gXEJWOJ110: 2: 8 3: 8 stepFeatures: - 0: 12 - 1: 12 - 2: 12 - 3: 12 + 0: 11 + 1: 11 + 2: 11 + 3: 11 HLT_tau50_mediumRNN_tracktwoMVA_xe80_pfopufit_xe50_cell_L1jXE100: eventCount: 0 stepCounts: @@ -33288,15 +33412,15 @@ HLT_tau50_mediumRNN_tracktwoMVA_xe80_tcpufit_xe50_cell_L1XE55: HLT_tau50_mediumRNN_tracktwoMVA_xe80_tcpufit_xe50_cell_L1gXEJWOJ100: eventCount: 0 stepCounts: + 0: 8 + 1: 8 + 2: 8 + 3: 8 + stepFeatures: 0: 11 1: 11 2: 11 3: 11 - stepFeatures: - 0: 17 - 1: 17 - 2: 17 - 3: 17 HLT_tau50_mediumRNN_tracktwoMVA_xe80_tcpufit_xe50_cell_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -33305,10 +33429,10 @@ HLT_tau50_mediumRNN_tracktwoMVA_xe80_tcpufit_xe50_cell_L1gXEJWOJ110: 2: 8 3: 8 stepFeatures: - 0: 12 - 1: 12 - 2: 12 - 3: 12 + 0: 11 + 1: 11 + 2: 11 + 3: 11 HLT_tau50_mediumRNN_tracktwoMVA_xe80_tcpufit_xe50_cell_L1jXE100: eventCount: 0 stepCounts: @@ -33375,7 +33499,7 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 1 3: 1 @@ -33384,9 +33508,19 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33466,7 +33600,7 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 5: 2 6: 1 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 2 3: 2 @@ -33476,20 +33610,20 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 1 stepCounts: - 0: 2 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 3 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 6: 1 stepFeatures: - 0: 11 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 12 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 6: 1 HLT_tau60_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 1 @@ -33569,7 +33703,7 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 1 3: 1 @@ -33578,9 +33712,19 @@ HLT_tau60_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau60_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33679,7 +33823,7 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 2: 1 3: 1 @@ -33688,9 +33832,19 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 + 0: 3 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33765,7 +33919,7 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 4: 2 5: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 2: 2 3: 2 @@ -33774,19 +33928,19 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 2 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 3 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 stepFeatures: - 0: 11 - 1: 1 - 2: 1 - 3: 1 - 4: 1 - 5: 1 + 0: 12 + 1: 2 + 2: 2 + 3: 2 + 4: 2 + 5: 2 HLT_tau60_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -33861,7 +34015,7 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 4: 1 5: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 2: 1 3: 1 @@ -33870,9 +34024,19 @@ HLT_tau60_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: HLT_tau60_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau60_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34050,9 +34214,19 @@ HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1XE55: HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34120,9 +34294,19 @@ HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1XE55: HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoLLP_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34189,8 +34373,20 @@ HLT_tau80_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1XE55: 5: 1 HLT_tau80_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 + stepCounts: + 0: 1 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoLLP_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34330,9 +34526,19 @@ HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1XE55: HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34400,9 +34606,19 @@ HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1XE55: HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: eventCount: 0 stepCounts: - 0: 1 + 0: 2 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoMVA_probe_xe65_cell_xe90_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34469,8 +34685,20 @@ HLT_tau80_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1XE55: 5: 1 HLT_tau80_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: eventCount: 0 + stepCounts: + 0: 1 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 + 2: 1 + 3: 1 + 4: 1 + 5: 1 HLT_tau80_mediumRNN_tracktwoMVA_probe_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 0 stepCounts: @@ -34590,11 +34818,11 @@ HLT_xe0_cell_L1XE55: HLT_xe0_cell_L1ZeroBias: eventCount: 0 HLT_xe0_cell_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 + 0: 8 stepFeatures: - 0: 11 + 0: 8 HLT_xe0_cell_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34632,13 +34860,13 @@ HLT_xe0_mhtpufit_em_L1XE55: HLT_xe0_mhtpufit_em_L1ZeroBias: eventCount: 0 HLT_xe0_mhtpufit_em_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_mhtpufit_em_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34682,13 +34910,13 @@ HLT_xe0_mhtpufit_pf_L1XE55: HLT_xe0_mhtpufit_pf_L1ZeroBias: eventCount: 0 HLT_xe0_mhtpufit_pf_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_mhtpufit_pf_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34732,13 +34960,13 @@ HLT_xe0_nn_L1XE55: HLT_xe0_nn_L1ZeroBias: eventCount: 0 HLT_xe0_nn_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_nn_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34782,13 +35010,13 @@ HLT_xe0_pfopufit_L1XE55: HLT_xe0_pfopufit_L1ZeroBias: eventCount: 0 HLT_xe0_pfopufit_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_pfopufit_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34832,13 +35060,13 @@ HLT_xe0_pfsum_L1XE55: HLT_xe0_pfsum_L1ZeroBias: eventCount: 0 HLT_xe0_pfsum_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_pfsum_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34882,13 +35110,13 @@ HLT_xe0_pfsum_cssk_L1XE55: HLT_xe0_pfsum_cssk_L1ZeroBias: eventCount: 0 HLT_xe0_pfsum_cssk_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_pfsum_cssk_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34932,13 +35160,13 @@ HLT_xe0_pfsum_vssk_L1XE55: HLT_xe0_pfsum_vssk_L1ZeroBias: eventCount: 0 HLT_xe0_pfsum_vssk_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_pfsum_vssk_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -34978,11 +35206,11 @@ HLT_xe0_tcpufit_L1XE55: HLT_xe0_tcpufit_L1ZeroBias: eventCount: 0 HLT_xe0_tcpufit_L1gXEJWOJ100: - eventCount: 10 + eventCount: 8 stepCounts: - 0: 10 + 0: 8 stepFeatures: - 0: 10 + 0: 8 HLT_xe0_tcpufit_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -35020,13 +35248,13 @@ HLT_xe0_trkmht_L1XE55: HLT_xe0_trkmht_L1ZeroBias: eventCount: 0 HLT_xe0_trkmht_L1gXEJWOJ100: - eventCount: 11 + eventCount: 8 stepCounts: - 0: 11 - 1: 11 + 0: 8 + 1: 8 stepFeatures: - 0: 11 - 1: 11 + 0: 8 + 1: 8 HLT_xe0_trkmht_L1gXEJWOJ110: eventCount: 8 stepCounts: @@ -35100,11 +35328,11 @@ HLT_xe30_cell_L1XE30: stepFeatures: 0: 10 HLT_xe30_cell_L1gXEJWOJ60: - eventCount: 12 + eventCount: 11 stepCounts: - 0: 12 + 0: 11 stepFeatures: - 0: 12 + 0: 11 HLT_xe30_cell_L1jXE60: eventCount: 12 stepCounts: @@ -35122,7 +35350,7 @@ HLT_xe30_cell_xe30_tcpufit_L1gXEJWOJ60: stepCounts: 0: 8 stepFeatures: - 0: 22 + 0: 20 HLT_xe30_cell_xe30_tcpufit_L1jXE60: eventCount: 8 stepCounts: @@ -35138,13 +35366,13 @@ HLT_xe30_cvfpufit_L1XE30: 0: 11 1: 10 HLT_xe30_cvfpufit_L1gXEJWOJ60: - eventCount: 14 + eventCount: 13 stepCounts: - 0: 17 - 1: 14 + 0: 15 + 1: 13 stepFeatures: - 0: 17 - 1: 14 + 0: 15 + 1: 13 HLT_xe30_cvfpufit_L1jXE60: eventCount: 11 stepCounts: @@ -35160,11 +35388,11 @@ HLT_xe30_mht_L1XE30: stepFeatures: 0: 11 HLT_xe30_mht_L1gXEJWOJ60: - eventCount: 14 + eventCount: 13 stepCounts: - 0: 14 + 0: 13 stepFeatures: - 0: 14 + 0: 13 HLT_xe30_mht_L1jXE60: eventCount: 12 stepCounts: @@ -35180,13 +35408,13 @@ HLT_xe30_mhtpufit_em_L1XE30: 0: 11 1: 9 HLT_xe30_mhtpufit_em_L1gXEJWOJ60: - eventCount: 14 + eventCount: 13 stepCounts: - 0: 17 - 1: 14 + 0: 15 + 1: 13 stepFeatures: - 0: 17 - 1: 14 + 0: 15 + 1: 13 HLT_xe30_mhtpufit_em_L1jXE60: eventCount: 11 stepCounts: @@ -35204,13 +35432,13 @@ HLT_xe30_mhtpufit_pf_L1XE30: 0: 11 1: 9 HLT_xe30_mhtpufit_pf_L1gXEJWOJ60: - eventCount: 15 + eventCount: 13 stepCounts: - 0: 17 - 1: 15 + 0: 15 + 1: 13 stepFeatures: - 0: 17 - 1: 15 + 0: 15 + 1: 13 HLT_xe30_mhtpufit_pf_L1jXE60: eventCount: 11 stepCounts: @@ -35228,13 +35456,13 @@ HLT_xe30_pfopufit_L1XE30: 0: 11 1: 10 HLT_xe30_pfopufit_L1gXEJWOJ60: - eventCount: 16 + eventCount: 14 stepCounts: - 0: 17 - 1: 16 + 0: 15 + 1: 14 stepFeatures: - 0: 17 - 1: 16 + 0: 15 + 1: 14 HLT_xe30_pfopufit_L1jXE60: eventCount: 11 stepCounts: @@ -35260,13 +35488,13 @@ HLT_xe30_pfsum_L1XE30: 0: 11 1: 9 HLT_xe30_pfsum_L1gXEJWOJ60: - eventCount: 12 + eventCount: 11 stepCounts: - 0: 17 - 1: 12 + 0: 15 + 1: 11 stepFeatures: - 0: 17 - 1: 12 + 0: 15 + 1: 11 HLT_xe30_pfsum_L1jXE60: eventCount: 11 stepCounts: @@ -35284,13 +35512,13 @@ HLT_xe30_pfsum_cssk_L1XE30: 0: 11 1: 9 HLT_xe30_pfsum_cssk_L1gXEJWOJ60: - eventCount: 13 + eventCount: 12 stepCounts: - 0: 17 - 1: 13 + 0: 15 + 1: 12 stepFeatures: - 0: 17 - 1: 13 + 0: 15 + 1: 12 HLT_xe30_pfsum_cssk_L1jXE60: eventCount: 11 stepCounts: @@ -35308,13 +35536,13 @@ HLT_xe30_pfsum_vssk_L1XE30: 0: 11 1: 9 HLT_xe30_pfsum_vssk_L1gXEJWOJ60: - eventCount: 13 + eventCount: 12 stepCounts: - 0: 17 - 1: 13 + 0: 15 + 1: 12 stepFeatures: - 0: 17 - 1: 13 + 0: 15 + 1: 12 HLT_xe30_pfsum_vssk_L1jXE60: eventCount: 11 stepCounts: @@ -35330,11 +35558,11 @@ HLT_xe30_tcpufit_L1XE30: stepFeatures: 0: 9 HLT_xe30_tcpufit_L1gXEJWOJ60: - eventCount: 10 + eventCount: 9 stepCounts: - 0: 10 + 0: 9 stepFeatures: - 0: 10 + 0: 9 HLT_xe30_tcpufit_L1jXE60: eventCount: 9 stepCounts: @@ -35356,13 +35584,13 @@ HLT_xe30_trkmht_L1XE30: 0: 11 1: 9 HLT_xe30_trkmht_L1gXEJWOJ60: - eventCount: 14 + eventCount: 12 stepCounts: - 0: 17 - 1: 14 + 0: 15 + 1: 12 stepFeatures: - 0: 17 - 1: 14 + 0: 15 + 1: 12 HLT_xe30_trkmht_L1jXE60: eventCount: 11 stepCounts: @@ -35374,11 +35602,11 @@ HLT_xe30_trkmht_L1jXE60: HLT_xe50_nn_isotrk120_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 11 - 1: 8 + 0: 8 + 1: 7 stepFeatures: - 0: 11 - 1: 19 + 0: 8 + 1: 15 HLT_xe50_nn_isotrk120_medium_iaggrmedium_L1jXE100: eventCount: 0 stepCounts: @@ -35390,11 +35618,11 @@ HLT_xe50_nn_isotrk120_medium_iaggrmedium_L1jXE100: HLT_xe50_tcpufit_isotrk120_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 8 - 1: 8 + 0: 6 + 1: 6 stepFeatures: - 0: 8 - 1: 8 + 0: 6 + 1: 6 HLT_xe50_tcpufit_isotrk120_medium_iaggrmedium_L1jXE100: eventCount: 0 stepCounts: @@ -35409,7 +35637,7 @@ HLT_xe55_cell_xe105_nn_L1gXEJWOJ100: 0: 6 1: 4 stepFeatures: - 0: 17 + 0: 14 1: 4 HLT_xe55_cell_xe105_nn_L1jXE100: eventCount: 3 @@ -35436,13 +35664,13 @@ HLT_xe55_cell_xe70_tcpufit_L1gXEJWOJ100: stepCounts: 0: 5 stepFeatures: - 0: 14 + 0: 12 HLT_xe55_cell_xe70_tcpufit_L1gXEJWOJ110: - eventCount: 4 + eventCount: 5 stepCounts: - 0: 4 + 0: 5 stepFeatures: - 0: 11 + 0: 12 HLT_xe55_cell_xe70_tcpufit_L1jXE100: eventCount: 4 stepCounts: @@ -35477,16 +35705,16 @@ HLT_xe55_cell_xe70_tcpufit_xe90_pfsum_vssk_L1gXEJWOJ100: 0: 5 1: 3 stepFeatures: - 0: 25 + 0: 20 1: 3 HLT_xe55_cell_xe70_tcpufit_xe90_pfsum_vssk_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 4 - 1: 2 + 0: 5 + 1: 3 stepFeatures: - 0: 19 - 1: 2 + 0: 20 + 1: 3 HLT_xe55_cell_xe70_tcpufit_xe90_pfsum_vssk_L1jXE100: eventCount: 4 stepCounts: @@ -35525,16 +35753,16 @@ HLT_xe55_cell_xe70_tcpufit_xe95_pfsum_cssk_L1gXEJWOJ100: 0: 5 1: 3 stepFeatures: - 0: 25 + 0: 20 1: 3 HLT_xe55_cell_xe70_tcpufit_xe95_pfsum_cssk_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 4 - 1: 2 + 0: 5 + 1: 3 stepFeatures: - 0: 19 - 1: 2 + 0: 20 + 1: 3 HLT_xe55_cell_xe70_tcpufit_xe95_pfsum_cssk_L1jXE100: eventCount: 3 stepCounts: @@ -35557,7 +35785,7 @@ HLT_xe55_cell_xe90_nn_L1gXEJWOJ100: 0: 6 1: 5 stepFeatures: - 0: 17 + 0: 14 1: 5 HLT_xe55_cell_xe90_nn_L1jXE100: eventCount: 4 @@ -35595,16 +35823,16 @@ HLT_xe60_cell_xe95_pfsum_cssk_L1gXEJWOJ100: 0: 5 1: 3 stepFeatures: - 0: 16 + 0: 13 1: 3 HLT_xe60_cell_xe95_pfsum_cssk_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 4 - 1: 2 + 0: 5 + 1: 3 stepFeatures: - 0: 12 - 1: 2 + 0: 13 + 1: 3 HLT_xe60_cell_xe95_pfsum_cssk_L1jXE100: eventCount: 3 stepCounts: @@ -35624,11 +35852,11 @@ HLT_xe60_cell_xe95_pfsum_cssk_L1jXE110: HLT_xe60_nn_isotrk120_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 11 + 0: 8 1: 6 stepFeatures: - 0: 11 - 1: 17 + 0: 8 + 1: 14 HLT_xe60_nn_isotrk120_medium_iaggrmedium_L1jXE100: eventCount: 0 stepCounts: @@ -35640,11 +35868,11 @@ HLT_xe60_nn_isotrk120_medium_iaggrmedium_L1jXE100: HLT_xe60_tcpufit_isotrk120_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 8 - 1: 8 + 0: 6 + 1: 6 stepFeatures: - 0: 8 - 1: 8 + 0: 6 + 1: 6 HLT_xe60_tcpufit_isotrk120_medium_iaggrmedium_L1jXE100: eventCount: 0 stepCounts: @@ -35675,16 +35903,16 @@ HLT_xe65_cell_xe100_mhtpufit_pf_L1gXEJWOJ100: 0: 4 1: 3 stepFeatures: - 0: 15 + 0: 12 1: 3 HLT_xe65_cell_xe100_mhtpufit_pf_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 3 - 1: 2 + 0: 4 + 1: 3 stepFeatures: - 0: 11 - 1: 2 + 0: 12 + 1: 3 HLT_xe65_cell_xe100_mhtpufit_pf_L1gXENC100: eventCount: 3 stepCounts: @@ -35731,14 +35959,16 @@ HLT_xe65_cell_xe100_pfopufit_L1gXEJWOJ100: 0: 4 1: 1 stepFeatures: - 0: 15 + 0: 12 1: 1 HLT_xe65_cell_xe100_pfopufit_L1gXEJWOJ110: - eventCount: 0 + eventCount: 1 stepCounts: - 0: 3 + 0: 4 + 1: 1 stepFeatures: - 0: 11 + 0: 12 + 1: 1 HLT_xe65_cell_xe100_pfopufit_L1jXE100: eventCount: 1 stepCounts: @@ -35777,16 +36007,16 @@ HLT_xe65_cell_xe105_mhtpufit_em_L1gXEJWOJ100: 0: 4 1: 3 stepFeatures: - 0: 15 + 0: 12 1: 3 HLT_xe65_cell_xe105_mhtpufit_em_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 3 - 1: 2 + 0: 4 + 1: 3 stepFeatures: - 0: 11 - 1: 2 + 0: 12 + 1: 3 HLT_xe65_cell_xe105_mhtpufit_em_L1jXE100: eventCount: 3 stepCounts: @@ -35825,16 +36055,16 @@ HLT_xe65_cell_xe105_nn_L1gXEJWOJ100: 0: 4 1: 3 stepFeatures: - 0: 15 + 0: 12 1: 3 HLT_xe65_cell_xe105_nn_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 3 - 1: 2 + 0: 4 + 1: 3 stepFeatures: - 0: 11 - 1: 2 + 0: 12 + 1: 3 HLT_xe65_cell_xe105_nn_L1jXE100: eventCount: 3 stepCounts: @@ -35862,7 +36092,7 @@ HLT_xe65_cell_xe110_tcpufit_L1gXEJWOJ100: stepCounts: 0: 3 stepFeatures: - 0: 9 + 0: 8 HLT_xe65_cell_xe110_tcpufit_L1jXE100: eventCount: 3 stepCounts: @@ -35888,11 +36118,11 @@ HLT_xe65_cell_xe110_tcpufit_sig30_L1gXEJWOJ100: stepFeatures: 0: 8 HLT_xe65_cell_xe110_tcpufit_sig30_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 2 + 0: 3 stepFeatures: - 0: 6 + 0: 8 HLT_xe65_cell_xe110_tcpufit_sig30_L1jXE110: eventCount: 3 stepCounts: @@ -35921,16 +36151,16 @@ HLT_xe65_cell_xe90_nn_L1gXEJWOJ100: 0: 4 1: 3 stepFeatures: - 0: 15 + 0: 12 1: 3 HLT_xe65_cell_xe90_nn_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 3 - 1: 2 + 0: 4 + 1: 3 stepFeatures: - 0: 11 - 1: 2 + 0: 12 + 1: 3 HLT_xe65_cell_xe90_nn_L1jXE100: eventCount: 3 stepCounts: @@ -35969,16 +36199,16 @@ HLT_xe65_cell_xe90_pfopufit_L1gXEJWOJ100: 0: 4 1: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 HLT_xe65_cell_xe90_pfopufit_L1gXEJWOJ110: - eventCount: 1 + eventCount: 2 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 11 - 1: 1 + 0: 12 + 1: 2 HLT_xe65_cell_xe90_pfopufit_L1gXENC100: eventCount: 2 stepCounts: @@ -36025,16 +36255,16 @@ HLT_xe65_cell_xe90_pfopufit_sig30_L1gXEJWOJ100: 0: 4 1: 2 stepFeatures: - 0: 15 + 0: 12 1: 2 HLT_xe65_cell_xe90_pfopufit_sig30_L1gXEJWOJ110: - eventCount: 1 + eventCount: 2 stepCounts: - 0: 3 - 1: 1 + 0: 4 + 1: 2 stepFeatures: - 0: 11 - 1: 1 + 0: 12 + 1: 2 HLT_xe65_cell_xe90_pfopufit_sig30_L1jXE110: eventCount: 2 stepCounts: @@ -36065,16 +36295,16 @@ HLT_xe65_cell_xe95_pfsum_vssk_L1gXEJWOJ100: 0: 4 1: 3 stepFeatures: - 0: 15 + 0: 12 1: 3 HLT_xe65_cell_xe95_pfsum_vssk_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 3 - 1: 2 + 0: 4 + 1: 3 stepFeatures: - 0: 11 - 1: 2 + 0: 12 + 1: 3 HLT_xe65_cell_xe95_pfsum_vssk_L1jXE100: eventCount: 3 stepCounts: @@ -36113,14 +36343,16 @@ HLT_xe75_cell_xe100_pfopufit_L1gXEJWOJ100: 0: 3 1: 1 stepFeatures: - 0: 14 + 0: 11 1: 1 HLT_xe75_cell_xe100_pfopufit_L1gXEJWOJ110: - eventCount: 0 + eventCount: 1 stepCounts: - 0: 2 + 0: 3 + 1: 1 stepFeatures: - 0: 10 + 0: 11 + 1: 1 HLT_xe75_cell_xe100_pfopufit_L1jXE100: eventCount: 1 stepCounts: @@ -36159,16 +36391,16 @@ HLT_xe75_cell_xe65_tcpufit_xe90_trkmht_L1gXEJWOJ100: 0: 3 1: 3 stepFeatures: - 0: 22 + 0: 17 1: 3 HLT_xe75_cell_xe65_tcpufit_xe90_trkmht_L1gXEJWOJ110: - eventCount: 2 + eventCount: 3 stepCounts: - 0: 2 - 1: 2 + 0: 3 + 1: 3 stepFeatures: - 0: 16 - 1: 2 + 0: 17 + 1: 3 HLT_xe75_cell_xe65_tcpufit_xe90_trkmht_L1jXE100: eventCount: 3 stepCounts: @@ -36202,13 +36434,13 @@ HLT_xe80_cell_xe115_tcpufit_L1gXEJWOJ100: stepCounts: 0: 2 stepFeatures: - 0: 7 + 0: 6 HLT_xe80_cell_xe115_tcpufit_L1gXEJWOJ110: - eventCount: 1 + eventCount: 2 stepCounts: - 0: 1 + 0: 2 stepFeatures: - 0: 4 + 0: 6 HLT_xe80_cell_xe115_tcpufit_L1gXENC100: eventCount: 2 stepCounts: @@ -36246,11 +36478,11 @@ HLT_xe80_cell_xe115_tcpufit_sig30_L1gXEJWOJ100: stepFeatures: 0: 6 HLT_xe80_cell_xe115_tcpufit_sig30_L1gXEJWOJ110: - eventCount: 1 + eventCount: 2 stepCounts: - 0: 1 + 0: 2 stepFeatures: - 0: 4 + 0: 6 HLT_xe80_cell_xe115_tcpufit_sig30_L1jXE110: eventCount: 2 stepCounts: @@ -36276,11 +36508,11 @@ HLT_xe80_tcpufit_dedxtrk25_medium_L1XE55: HLT_xe80_tcpufit_dedxtrk25_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_dedxtrk25_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36324,11 +36556,11 @@ HLT_xe80_tcpufit_dedxtrk50_medium_L1XE55: HLT_xe80_tcpufit_dedxtrk50_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_dedxtrk50_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36372,11 +36604,11 @@ HLT_xe80_tcpufit_distrk20_medium_L1XE55: HLT_xe80_tcpufit_distrk20_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_distrk20_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36420,11 +36652,11 @@ HLT_xe80_tcpufit_distrk20_tight_L1XE55: HLT_xe80_tcpufit_distrk20_tight_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_distrk20_tight_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36468,11 +36700,11 @@ HLT_xe80_tcpufit_hitdvjet200_medium_L1XE55: HLT_xe80_tcpufit_hitdvjet200_medium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 17 - 1: 6 + 0: 12 + 1: 4 HLT_xe80_tcpufit_hitdvjet200_medium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36516,11 +36748,11 @@ HLT_xe80_tcpufit_hitdvjet200_tight_L1XE55: HLT_xe80_tcpufit_hitdvjet200_tight_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 17 - 1: 6 + 0: 12 + 1: 4 HLT_xe80_tcpufit_hitdvjet200_tight_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36568,21 +36800,23 @@ HLT_xe80_tcpufit_isotrk100_medium_iaggrmedium_L1XE55: HLT_xe80_tcpufit_isotrk100_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 1 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 2: 1 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 2: 1 HLT_xe80_tcpufit_isotrk100_medium_iaggrmedium_L1gXEJWOJ110: - eventCount: 0 + eventCount: 1 stepCounts: 0: 4 1: 4 + 2: 1 stepFeatures: 0: 4 1: 4 + 2: 1 HLT_xe80_tcpufit_isotrk100_medium_iaggrmedium_L1jXE100: eventCount: 1 stepCounts: @@ -36622,11 +36856,11 @@ HLT_xe80_tcpufit_isotrk120_medium_iaggrloose_L1XE55: HLT_xe80_tcpufit_isotrk120_medium_iaggrloose_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_isotrk120_medium_iaggrloose_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36670,11 +36904,11 @@ HLT_xe80_tcpufit_isotrk120_medium_iaggrmedium_L1XE55: HLT_xe80_tcpufit_isotrk120_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_isotrk120_medium_iaggrmedium_L1gXEJWOJ110: eventCount: 0 stepCounts: @@ -36718,11 +36952,11 @@ HLT_xe80_tcpufit_isotrk140_medium_iaggrmedium_L1XE55: HLT_xe80_tcpufit_isotrk140_medium_iaggrmedium_L1gXEJWOJ100: eventCount: 0 stepCounts: - 0: 6 - 1: 6 + 0: 4 + 1: 4 stepFeatures: - 0: 6 - 1: 6 + 0: 4 + 1: 4 HLT_xe80_tcpufit_isotrk140_medium_iaggrmedium_L1gXEJWOJ110: eventCount: 0 stepCounts: diff --git a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetValidation_AODtoTrkNtuple_CA.py b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetValidation_AODtoTrkNtuple_CA.py index a118efb4b48e42241a3d960a8ca2695857b4fb0b..283d6a179a5c224047921514d316c6440914e6b9 100644 --- a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetValidation_AODtoTrkNtuple_CA.py +++ b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetValidation_AODtoTrkNtuple_CA.py @@ -52,16 +52,15 @@ tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags)) if args.doTIDATier0 or args.doNewTIDATier0: - # this is the new location ... - from TrigInDetMonitoring.TIDAMonitoring import TIDAMonitoring - for git in TIDAMonitoring( flags, "idtrigger" ): - acc.addEventAlgo(git) - - THistSvc=CompFactory.THistSvc() - THistSvc.Output = ["EXPERT DATAFILE='data-hists-tier0.root' OPT='RECREATE'"] - acc.addService(THistSvc) + histsvc=CompFactory.THistSvc() + histsvc.Output = ["CombinedMonitoring DATAFILE='data-hists-tier0.root' OPT='RECREATE'"] + acc.addService(histsvc) + # this is the new location ... + from TrigInDetMonitoring.TIDAMonitoring import TrigInDetMonConfig + acc.merge( TrigInDetMonConfig( flags ) ) + ############ TrigInDetAnalysis part ################################ if ( True ) : diff --git a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref index 91ca1dfb2e6e3bb8952490d7734842f155240c9b..7fa86191aff917d84209621edd3bc2d5c3800763 100644 --- a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref +++ b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref @@ -264,6 +264,10 @@ HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9: 1: 3 HLT_2g9_loose_25dphiAA_invmAA80_L1DPHI-M70-2eEM9L: eventCount: 0 +HLT_2j100_2timeSig15_L1jJ90: + eventCount: 0 +HLT_2j100_2timeSig_L1jJ90: + eventCount: 0 HLT_2j100_L1CEP-CjJ100: eventCount: 0 HLT_2j100_L1CEP-CjJ90: @@ -507,6 +511,14 @@ HLT_2j45_0eta290_020jvt_bgn260_pf_ftf_xe50_cell_xe85_tcpufit_L12jJ40_jXE110: eventCount: 0 HLT_2j45_0eta290_020jvt_bgn270_j0_HT290_j0_DJMASS700j35_pf_ftf_L1HT150-jJ50s5pETA32_jMJJ-400-CF: eventCount: 0 +HLT_2j45_2j45_2timeSig15_L14jJ40: + eventCount: 0 +HLT_2j45_2j45_2timeSig_L14jJ40: + eventCount: 0 +HLT_2j45_2j45_3timeSig15_L14jJ40: + eventCount: 0 +HLT_2j45_2j45_3timeSig_L14jJ40: + eventCount: 0 HLT_2j45c_2j35c_85bdips_roiftf_presel4c45_L14jJ40p0ETA25: eventCount: 0 HLT_2j45c_2j35c_85bdips_roiftf_presel4c45_L1jJ85p0ETA21_3jJ40p0ETA25: @@ -963,6 +975,8 @@ HLT_3j45_j45_2timeSig_roiftf_presel4c35_L14jJ40p0ETA25: eventCount: 0 HLT_3j45_j45_2timing_L14jJ40: eventCount: 0 +HLT_3j45_j45_3timeSig15_L14jJ40: + eventCount: 0 HLT_3j45_j45_3timeSig_L14jJ40: eventCount: 0 HLT_3j45_j45_L14jJ40: @@ -6301,8 +6315,12 @@ HLT_j220_320eta490_L1J75p31ETA49: eventCount: 0 HLT_j220_j150_2timeSig_L1jJ160: eventCount: 0 +HLT_j220_j150_2timing15_L1jJ160: + eventCount: 0 HLT_j220_j150_2timing_L1jJ160: eventCount: 0 +HLT_j220_j150_3timeSig15_L1jJ160: + eventCount: 0 HLT_j220_j150_3timeSig_L1jJ160: eventCount: 0 HLT_j220_j150_L1jJ160: @@ -10100,9 +10118,9 @@ HLT_noalg_L1gXEJWOJ120: HLT_noalg_L1gXEJWOJ500: eventCount: 0 HLT_noalg_L1gXEJWOJ60: - eventCount: 6 + eventCount: 5 HLT_noalg_L1gXEJWOJ70: - eventCount: 4 + eventCount: 5 HLT_noalg_L1gXEJWOJ80: eventCount: 2 HLT_noalg_L1gXENC100: @@ -12795,11 +12813,11 @@ HLT_xe30_cell_L1XE30: stepFeatures: 0: 1 HLT_xe30_cell_L1gXEJWOJ60: - eventCount: 3 + eventCount: 2 stepCounts: - 0: 3 + 0: 2 stepFeatures: - 0: 3 + 0: 2 HLT_xe30_cell_L1jXE60: eventCount: 3 stepCounts: @@ -12813,11 +12831,11 @@ HLT_xe30_cell_xe30_tcpufit_L1XE30: stepFeatures: 0: 2 HLT_xe30_cell_xe30_tcpufit_L1gXEJWOJ60: - eventCount: 3 + eventCount: 2 stepCounts: - 0: 3 + 0: 2 stepFeatures: - 0: 6 + 0: 4 HLT_xe30_cell_xe30_tcpufit_L1jXE60: eventCount: 3 stepCounts: @@ -12833,13 +12851,13 @@ HLT_xe30_cvfpufit_L1XE30: 0: 1 1: 1 HLT_xe30_cvfpufit_L1gXEJWOJ60: - eventCount: 4 + eventCount: 3 stepCounts: - 0: 6 - 1: 4 + 0: 5 + 1: 3 stepFeatures: - 0: 6 - 1: 4 + 0: 5 + 1: 3 HLT_xe30_cvfpufit_L1jXE60: eventCount: 6 stepCounts: @@ -12855,11 +12873,11 @@ HLT_xe30_mht_L1XE30: stepFeatures: 0: 1 HLT_xe30_mht_L1gXEJWOJ60: - eventCount: 6 + eventCount: 5 stepCounts: - 0: 6 + 0: 5 stepFeatures: - 0: 6 + 0: 5 HLT_xe30_mht_L1jXE60: eventCount: 6 stepCounts: @@ -12877,10 +12895,10 @@ HLT_xe30_mhtpufit_em_L1XE30: HLT_xe30_mhtpufit_em_L1gXEJWOJ60: eventCount: 5 stepCounts: - 0: 6 + 0: 5 1: 5 stepFeatures: - 0: 6 + 0: 5 1: 5 HLT_xe30_mhtpufit_em_L1jXE60: eventCount: 4 @@ -12901,10 +12919,10 @@ HLT_xe30_mhtpufit_pf_L1XE30: HLT_xe30_mhtpufit_pf_L1gXEJWOJ60: eventCount: 3 stepCounts: - 0: 6 + 0: 5 1: 3 stepFeatures: - 0: 6 + 0: 5 1: 3 HLT_xe30_mhtpufit_pf_L1jXE60: eventCount: 2 @@ -12923,13 +12941,13 @@ HLT_xe30_pfopufit_L1XE30: 0: 1 1: 1 HLT_xe30_pfopufit_L1gXEJWOJ60: - eventCount: 4 + eventCount: 3 stepCounts: - 0: 6 - 1: 4 + 0: 5 + 1: 3 stepFeatures: - 0: 6 - 1: 4 + 0: 5 + 1: 3 HLT_xe30_pfopufit_L1jXE60: eventCount: 5 stepCounts: @@ -12955,13 +12973,13 @@ HLT_xe30_pfsum_L1XE30: 0: 1 1: 1 HLT_xe30_pfsum_L1gXEJWOJ60: - eventCount: 3 + eventCount: 2 stepCounts: - 0: 6 - 1: 3 + 0: 5 + 1: 2 stepFeatures: - 0: 6 - 1: 3 + 0: 5 + 1: 2 HLT_xe30_pfsum_L1jXE60: eventCount: 5 stepCounts: @@ -12979,13 +12997,13 @@ HLT_xe30_pfsum_cssk_L1XE30: 0: 1 1: 1 HLT_xe30_pfsum_cssk_L1gXEJWOJ60: - eventCount: 3 + eventCount: 2 stepCounts: - 0: 6 - 1: 3 + 0: 5 + 1: 2 stepFeatures: - 0: 6 - 1: 3 + 0: 5 + 1: 2 HLT_xe30_pfsum_cssk_L1jXE60: eventCount: 4 stepCounts: @@ -13003,13 +13021,13 @@ HLT_xe30_pfsum_vssk_L1XE30: 0: 1 1: 1 HLT_xe30_pfsum_vssk_L1gXEJWOJ60: - eventCount: 2 + eventCount: 1 stepCounts: - 0: 6 - 1: 2 + 0: 5 + 1: 1 stepFeatures: - 0: 6 - 1: 2 + 0: 5 + 1: 1 HLT_xe30_pfsum_vssk_L1jXE60: eventCount: 3 stepCounts: @@ -13025,11 +13043,11 @@ HLT_xe30_tcpufit_L1XE30: stepFeatures: 0: 1 HLT_xe30_tcpufit_L1gXEJWOJ60: - eventCount: 3 + eventCount: 2 stepCounts: - 0: 3 + 0: 2 stepFeatures: - 0: 3 + 0: 2 HLT_xe30_tcpufit_L1jXE60: eventCount: 4 stepCounts: @@ -13051,13 +13069,13 @@ HLT_xe30_trkmht_L1XE30: 0: 1 1: 1 HLT_xe30_trkmht_L1gXEJWOJ60: - eventCount: 4 + eventCount: 3 stepCounts: - 0: 6 - 1: 4 + 0: 5 + 1: 3 stepFeatures: - 0: 6 - 1: 4 + 0: 5 + 1: 3 HLT_xe30_trkmht_L1jXE60: eventCount: 5 stepCounts: diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index d774e08ab46f359e1513834a9b744e99276dd3e8..ba89ff1912d9cc6dd9927a8c3259bb4cc6aa4cd3 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -581,7 +581,7 @@ def triggerEDMGapFillerCfg( flags, edmSet, decObj=[], decObjHypoOut=[], extraInp if len(el) >= 4: # see if there is an alias aliases = [ str(a) for a in el[3] if isinstance(a, Alias) ] if len(aliases) == 1: - __log.info("GapFiller configuration found an aliased type '%s' for '%s'", aliases[0], collType) + __log.debug("GapFiller configuration found an aliased type '%s' for '%s'", aliases[0], collType) collType = aliases[0] elif len(aliases) > 1: __log.error("GapFiller configuration found inconsistent '%s' (too many aliases?)", aliases) @@ -592,12 +592,12 @@ def triggerEDMGapFillerCfg( flags, edmSet, decObj=[], decObjHypoOut=[], extraInp propName = collType.split(":")[-1] if hasattr( tool, propName ): setattr( tool, propName, collNameList ) - __log.info("GapFiller will create EDM collection type '%s' for '%s'", collType, collNameList) + __log.debug("GapFiller will create EDM collection type '%s' for '%s'", collType, collNameList) else: - __log.info("EDM collections of type %s are not going to be added to StoreGate, if not created by the HLT", collType ) + __log.debug("EDM collections of type %s are not going to be added to StoreGate, if not created by the HLT", collType ) if decObj or decObjHypoOut: - __log.info("GapFiller is ensuring the creation of all the decision object collections") + __log.debug("GapFiller is ensuring the creation of all the decision object collections") __log.debug("'%s'", decObj) # Gap filler is also used to perform re-mapping of the HypoAlg outputs which is a sub-set of decObj tool.FixLinks = list(decObjHypoOut) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoConfig.py index 10c0883fddf867b8f61604310771ea35d065de99..7adbffe5c7a4bc205e8a24fcdfffe67189fa9a38 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerRecoConfig.py @@ -471,7 +471,8 @@ if __name__ == '__main__': acc = MainServicesCfg(flags) acc.merge( TriggerRecoCfg(flags) ) - acc.printConfig(withDetails=True) + if log.getEffectiveLevel() <= logging.DEBUG: + acc.printConfig(withDetails=True) import sys sys.exit(acc.run().isFailure()) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/runHLT.py b/Trigger/TriggerCommon/TriggerJobOpts/python/runHLT.py index bbc7995c21b431fc553d86578b7d6e01e694aaac..83bd90b047c63755dc14a23010245e6de2e469ec 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/runHLT.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/runHLT.py @@ -44,8 +44,6 @@ def set_flags(flags): # Increase scheduler checks and verbosity flags.Scheduler.CheckDependencies = True - flags.Scheduler.ShowControlFlow = True - flags.Scheduler.ShowDataDeps = True flags.Scheduler.EnableVerboseViews = True flags.Input.FailOnUnknownCollections = True flags.Scheduler.AutoLoadUnmetDependencies = False @@ -154,6 +152,12 @@ def athenaCfg(flags): if not flags.Output.RDOFileName: flags.Output.RDOFileName = 'RDO_TRIG.pool.root' + # Enable verbose control/data flow printouts if in a + # restricted menu, typical for debugging + if flags.Trigger.selectChains or len(flags.Trigger.enabledSignatures)==1: + flags.Scheduler.ShowControlFlow = True + flags.Scheduler.ShowDataDeps = True + # Configure main services _allflags = flags.clone() # copy including Concurrency flags _allflags.lock() diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Jet/JetChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Jet/JetChainConfiguration.py index 4902b648f4ac19076f878da96c7edd16c6ddaba2..b566e2ba16e974cbab3bd6c098060f17a63746d2 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Jet/JetChainConfiguration.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Jet/JetChainConfiguration.py @@ -324,7 +324,7 @@ class JetChainConfiguration(ChainConfigurationBase): log.debug("Running exotic jets with MinjetlogR: " + str(MinjetlogR) + "\t BIB rm " + str(doBIBremoval) + "\thypo: " + exotdictstring) - stepName = "CRVARStep_"+self.chainName + stepName = "CRVARStep_" jetSeq = jetCRVARMenuSequence(flags, jetsIn=jetCollectionName) chainStep = ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) @@ -344,7 +344,7 @@ class JetChainConfiguration(ChainConfigurationBase): log.debug("Running exotic jets with MinjetlogR: " + str(MinjetlogR) + "\t BIB rm " + str(doBIBremoval) + "\thypo: " + exotdictstring) - stepName = "CRStep_"+self.chainName + stepName = "CRStep_" jetSeq = jetCRMenuSequence(flags, jetsIn=jetCollectionName) chainStep = ChainStep(stepName, [jetSeq], multiplicity=[1], chainDicts=[self.dict]) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py index a6f3db6c48155c3d505ea955649e645e0b516718..2f28ceb7c9934d2d3c5ea8e25812c541bc6e1549 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Dev_pp_run3_v1.py @@ -285,7 +285,6 @@ def getDevSignatures(): ChainProp(name='HLT_j20_pf_ftf_presel4j85_PhysicsTLA_L13J50', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_j20_pf_ftf_presel5j50_PhysicsTLA_L14J15', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_j20_pf_ftf_presel6j40_PhysicsTLA_L14J15', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=MultiJetGroup+DevGroup), - ChainProp(name='HLT_6j20_pf_ftf_presel6c25_PhysicsTLA_L14jJ40', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=MultiJetGroup+DevGroup), ## with calo fast-tag presel - so actually btag TLA ATR-23002 ChainProp(name='HLT_2j20_2j20_pf_ftf_presel2j25XX2j25b85_PhysicsTLA_L14jJ40p0ETA25', l1SeedThresholds=['FSNOSEED']*2, stream=['TLA'], groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_5j20_j20_pf_ftf_presel5c25XXc25b85_PhysicsTLA_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, stream=['TLA'], groups=MultiJetGroup+DevGroup), @@ -455,7 +454,19 @@ def getDevSignatures(): ChainProp(name='HLT_j220_j150_3timeSig_L1jJ160', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_3j45_j45_2timing_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_j220_j150_2timing_L1jJ160', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), - # ATR-28836 Copies of delayed jets chains withot timing hypo for reference + ChainProp(name='HLT_2j45_2j45_2timeSig_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_2j45_2j45_3timeSig_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_2j100_2timeSig_L1jJ90', l1SeedThresholds=['FSNOSEED'], groups=MultiJetGroup+DevGroup), + + #ATR-28836 Test chains for delayed jets with upper limit + ChainProp(name='HLT_3j45_j45_3timeSig15_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_j220_j150_3timeSig15_L1jJ160', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_j220_j150_2timing15_L1jJ160', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_2j45_2j45_2timeSig15_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_2j45_2j45_3timeSig15_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), + ChainProp(name='HLT_2j100_2timeSig15_L1jJ90', l1SeedThresholds=['FSNOSEED'], groups=MultiJetGroup+DevGroup), + + # ATR-28836 Copies of delayed jets chains without timing hypo for reference ChainProp(name='HLT_3j45_j45_L14jJ40', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), ChainProp(name='HLT_j220_j150_L1jJ160', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup+DevGroup), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/P1_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/P1_run3_v1.py index 3ab780707f1ec2fe792c9bb7f67ea1cf86067e3c..09346a32908d64dab2fa69566139433a5de6daca 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/P1_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/P1_run3_v1.py @@ -35,43 +35,6 @@ def addCommonP1Signatures(chains): chainsP1 = ChainStore() - # Intentionally commented -- may be used specifically for low-mu MBTS validation - # Probably only relevant in lowMu - chainsP1['Streaming'] = [ - ChainProp(name='HLT_noalg_L1MBTSA0', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA1', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA2', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA3', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA4', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA5', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA6', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA7', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA8', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA9', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA10', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA11', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA12', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA13', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA14', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSA15', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - - ChainProp(name='HLT_noalg_L1MBTSC0', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC1', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC2', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC3', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC4', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC5', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC6', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC7', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC8', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC9', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC10', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC11', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC12', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC13', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC14', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ChainProp(name='HLT_noalg_L1MBTSC15', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 - ] chainsP1['Muon'] = [ # ATR-20650 @@ -233,6 +196,39 @@ def addCommonP1Signatures(chains): chainsP1['Streaming'] = [ + ChainProp(name='HLT_noalg_L1MBTSA0', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA1', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA2', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA3', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA4', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA5', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA6', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA7', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA8', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA9', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA10', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA11', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA12', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA13', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA14', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSA15', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + + ChainProp(name='HLT_noalg_L1MBTSC0', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC1', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC2', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC3', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC4', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC5', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC6', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC7', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC8', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC9', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC10', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC11', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC12', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC13', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC14', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 + ChainProp(name='HLT_noalg_L1MBTSC15', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), #ATR-23216 ChainProp(name='HLT_noalg_L1RD0_UNPAIRED_ISO', l1SeedThresholds=['FSNOSEED'], stream=['Background'], groups=['BW:Other']), ChainProp(name='HLT_noalg_mb_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py index fcf0fb45a17e11baf790ca246678172be8674465..d93596acecf491c7719995a29ca111f890dab43a 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py @@ -1263,6 +1263,8 @@ def setupMenu(menu_name): ChainProp(name='HLT_6j35c_020jvt_pf_ftf_presel6c25_L14J15', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream,'express'], groups=PrimaryLegGroup+MultiJetGroup, monGroups=['jetMon:t0']), ChainProp(name='HLT_6j45c_020jvt_pf_ftf_presel6c25_L14J15', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=PrimaryLegGroup+MultiJetGroup), + ChainProp(name='HLT_6j20_pf_ftf_presel6c25_PhysicsTLA_L14jJ40', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=PrimaryPhIGroup+MultiJetGroup, monGroups=['tlaMon:shifter']), + ## TLA chains ChainProp(name='HLT_j20_PhysicsTLA_L1J100', l1SeedThresholds=['FSNOSEED'], stream=['TLA'], groups=PrimaryLegGroup+SingleJetGroup, monGroups=['tlaMon:shifter']), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py index e29418fc0ecf4fd37e68b75c21c5ad03bd9ee892..2b1e2a78ec1739386d32c4ada9b009dee972371d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/SignatureDicts.py @@ -380,9 +380,9 @@ JetChainParts = { 'momCuts' : # Generic moment cut on single jets ['050momemfrac100','momemfrac006','momemfrac024','momemfrac012', 'momhecfrac010', '050momemfrac100XXmomhecfrac010', 'momemfrac072', 'momemfrac048' ], 'timing' : # delayed jets, with absolute delay requirement [ns] - ['2timing'], + ['2timing','2timing15'], 'timeSig' : # delayed jets, based on pT-dependent significance of delay [sigma] - ['1timeSig', '1p5timeSig', '2timeSig', '3timeSig'], + ['1timeSig', '1p5timeSig', '2timeSig', '3timeSig','2timeSig15','3timeSig15'], 'prefilters' : # Pre-hypo jet selectors (including cleaning) ['CLEANlb', 'CLEANllp', 'MASK300ceta210XX300nphi10', # ptrangeXrY (X, Y matches regex \d+) triggers a prehypo selection of diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TopoAlgoDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TopoAlgoDef.py index b4775c62f3f5146e34a789b8e70102be82749c2f..184b5691d3afbc4fd82cf6151b1375a8a907bcc7 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TopoAlgoDef.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TopoAlgoDef.py @@ -1185,7 +1185,7 @@ class TopoAlgoDef: alg.addvariable(key, value) alg.addvariable('MinET', 0) for bitid,minxe in enumerate(d.Threlist): - alg.addvariable('KFXE', str(minxe), bitid) + alg.addvariable('KFXE', str(minxe*_et_conversion), bitid) tm.registerTopoAlgo(alg) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TypeWideThresholdConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TypeWideThresholdConfig.py index 5547a05add88966a59ccf37ffcc26d5cb63da729..53e50610ce8e26b66bbf7f5fcce3e795d0175f1f 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TypeWideThresholdConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/L1/Config/TypeWideThresholdConfig.py @@ -620,15 +620,15 @@ def getConfig_gLJ(): confObj = odict() confObj["ptMinToTopo1"] = 6 confObj["ptMinToTopo2"] = 6 - confObj["seedThrA"] = 3 - confObj["seedThrB"] = 3 - confObj["seedThrC"] = 3 + confObj["seedThrA"] = 20 + confObj["seedThrB"] = 20 + confObj["seedThrC"] = 20 confObj["rhoTowerMinA"] = -9.6 confObj["rhoTowerMinB"] = -9.6 confObj["rhoTowerMinC"] = -9.6 - confObj["rhoTowerMaxA"] = 0.25 - confObj["rhoTowerMaxB"] = 0.25 - confObj["rhoTowerMaxC"] = 0.25 + confObj["rhoTowerMaxA"] = 10 + confObj["rhoTowerMaxB"] = 10 + confObj["rhoTowerMaxC"] = 10 confObj["resolutionMeV"] = 200 # Check that all values are integers in MeV @@ -687,7 +687,7 @@ def getConfig_gXE(): confObj["XEJWOJ_a_C"] = 1003 confObj["XEJWOJ_b_A"] = 409 confObj["XEJWOJ_b_B"] = 409 - confObj["XEJWOJ_b_C"] = 409 + confObj["XEJWOJ_b_C"] = 0 confObj["XEJWOJ_c_A"] = 0 confObj["XEJWOJ_c_B"] = 0 confObj["XEJWOJ_c_C"] = 0