diff --git a/DataFormats/Scouting/test/BuildFile.xml b/DataFormats/Scouting/test/BuildFile.xml
new file mode 100644
index 0000000000000..1f6570eac7355
--- /dev/null
+++ b/DataFormats/Scouting/test/BuildFile.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/DataFormats/Scouting/test/scoutingCollectionsDumper.py b/DataFormats/Scouting/test/scoutingCollectionsDumper.py
new file mode 100755
index 0000000000000..86c788059f532
--- /dev/null
+++ b/DataFormats/Scouting/test/scoutingCollectionsDumper.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env python3
+import os
+import argparse
+import glob
+import fnmatch
+import ROOT
+
+from DataFormats.FWLite import Runs, Events, Handle
+
+def getScoutingProductsList(key):
+ '''Returns list of tuples (type, label) for EDM Scouting collections
+ - 'key' must be "Scouting" (data formats before Run 3), or "Run3Scouting"
+ '''
+ if key == 'Scouting':
+ return [
+ ('vector', 'hltScoutingCaloPacker'),
+ ('vector', 'hltScoutingEgammaPacker'),
+ ('vector', 'hltScoutingMuonPackerCalo'),
+ ('vector', 'hltScoutingPFPacker'),
+ ('vector', 'hltScoutingPFPacker'),
+ ('vector', 'hltScoutingEgammaPacker'),
+ ('vector', 'hltScoutingTrackPacker'),
+ ('vector', 'hltScoutingPrimaryVertexPacker:primaryVtx'),
+ ]
+ elif key == 'Run3Scouting':
+ return [
+ ('vector', 'hltScoutingEgammaPacker'),
+ ('vector', 'hltScoutingMuonPacker'),
+ ('vector', 'hltScoutingPFPacker'),
+ ('vector', 'hltScoutingPFPacker'),
+ ('vector', 'hltScoutingEgammaPacker'),
+ ('vector', 'hltScoutingTrackPacker'),
+ ('vector', 'hltScoutingMuonPacker:displacedVtx'),
+ ('vector', 'hltScoutingPrimaryVertexPacker:primaryVtx')
+ ]
+ else:
+ raise RuntimeError(f'getScoutingProductsList -- invalid key (must be "Scouting", or "Run3Scouting"): "{key}"')
+
+def printScoutingVar(name, value):
+ '''Print content of data member of Scouting object
+ '''
+ if isinstance(value, ROOT.Run3ScoutingHitPatternPOD):
+ for subvar in [
+ 'hitCount',
+ 'beginTrackHits',
+ 'endTrackHits',
+ 'beginInner',
+ 'endInner',
+ 'beginOuter',
+ 'endOuter',
+ 'hitPattern',
+ ]:
+ subvalue = getattr(value, subvar)
+ print(f' {name}.{subvar} = {subvalue}')
+ else:
+ print(f' {name} = {value}')
+
+def printScoutingProduct(product_label, product_type, product, verbosity):
+ '''Print content of EDM product
+ '''
+ if verbosity == 0:
+ return
+
+ productIsVector = product_type.startswith('vector')
+
+ productInfoStr = f'Product Label: "{product_label}" (type: "{product_type}")'
+ if productIsVector:
+ productInfoStr += f', size = {product.size()}'
+
+ print(f'\n {productInfoStr}')
+
+ if not productIsVector:
+ printScoutingVar('value', product[0])
+ return
+
+ obj_idx = 0
+ for obj in product:
+ # print only first N objects, where N corresponds to verbosity (if positive)
+ if verbosity > 0 and obj_idx >= verbosity:
+ break
+
+ # names of data members to print
+ if obj_idx == 0:
+ varNames = sorted([foo for foo in dir(obj) if not fnmatch.fnmatch(foo, '__*__')])
+
+ print(f'\n Object #{obj_idx}')
+ obj_idx += 1
+ for varName in varNames:
+ varValue = getattr(obj, varName)()
+ printScoutingVar(varName, varValue)
+
+def analyseEvent(event, productList, verbosity = -1):
+ '''Function to analyse a single EDM Event
+ '''
+ if verbosity != 0:
+ print('-'*50)
+ print(f'Run = {event.eventAuxiliary().run()}')
+ print(f'LuminosityBlock = {event.eventAuxiliary().luminosityBlock()}')
+ print(f'Event = {event.eventAuxiliary().event()}')
+
+ for productType, productLabel in productList:
+ productHandle = Handle(productType)
+ event.getByLabel(productLabel, productHandle)
+ if productHandle.isValid():
+ printScoutingProduct(productLabel, productType, productHandle.product(), verbosity)
+
+ if verbosity != 0:
+ print('-'*50)
+
+def getInputFiles(inputList):
+ '''List of input files (after resolving wildcards, removing duplicates, and sorting)
+ '''
+ ret = set()
+ for input_i in inputList:
+ inputFiles_i = glob.glob(input_i)
+ if len(inputFiles_i) == 0:
+ inputFiles_i = [input_i]
+ for input_j in inputFiles_i:
+ ret.add(os.path.abspath(os.path.realpath(input_j)) if os.path.isfile(input_j) else input_j)
+ return sorted(list(ret))
+
+###
+### main
+###
+if __name__ == '__main__':
+ ## args
+ parser = argparse.ArgumentParser(
+ description = 'FWLite script to print to stdout content of Scouting collections in EDM files.',
+ formatter_class = argparse.ArgumentDefaultsHelpFormatter
+ )
+
+ parser.add_argument('-i', '--inputs', dest='inputs', required=True, nargs='+', default=None,
+ help='List of EDM files in ROOT format')
+
+ parser.add_argument('-s', '--skipEvents', dest='skipEvents', action='store', type=int, default=0,
+ help='Index of first event to be processed (inclusive)')
+
+ parser.add_argument('-n', '--maxEvents', dest='maxEvents', action='store', type=int, default=-1,
+ help='Maximum number of events to be processed (inclusive)')
+
+ parser.add_argument('-k', '--key', dest='key', action='store', type=str, choices=['Scouting', 'Run3Scouting'], default='Scouting',
+ help='Keyword to select Scouting DataFormats (must be "Scouting", or "Run3Scouting")')
+
+ parser.add_argument('-v', '--verbosity', dest='verbosity', action='store', type=int, default=-1,
+ help='Level of verbosity')
+
+ opts, opts_unknown = parser.parse_known_args()
+
+ log_prx = os.path.basename(__file__)+' --'
+
+ ## args validation
+ if len(opts_unknown) > 0:
+ raise RuntimeError(f'{log_prx} unrecognized command-line arguments: {opts_unknown}')
+
+ inputFiles = getInputFiles(opts.inputs)
+
+ if len(inputFiles) == 0:
+ raise RuntimeError(f'{log_prx} empty list of input files [-i]')
+
+ ## Event Loop
+ nEvtRead, nEvtProcessed = 0, 0
+ skipEvents = max(0, opts.skipEvents)
+
+ scoutingProductsList = getScoutingProductsList(opts.key)
+
+ for input_file in inputFiles:
+ try:
+ events = Events(input_file)
+ for event in events:
+ nEvtRead += 1
+ if (nEvtRead <= skipEvents) or ((opts.maxEvents >= 0) and (nEvtProcessed >= opts.maxEvents)):
+ continue
+
+ analyseEvent(event = event, productList = scoutingProductsList, verbosity = opts.verbosity)
+ nEvtProcessed += 1
+
+ except:
+ print(f'{log_prx} failed to analyse TFile (file will be ignored): {input_file}')
+ continue
+
+ if opts.verbosity != 0:
+ print(f'Events processed = {nEvtProcessed}')
diff --git a/DataFormats/Scouting/test/scoutingCollectionsIO_cfg.py b/DataFormats/Scouting/test/scoutingCollectionsIO_cfg.py
new file mode 100644
index 0000000000000..bd6bf625d71db
--- /dev/null
+++ b/DataFormats/Scouting/test/scoutingCollectionsIO_cfg.py
@@ -0,0 +1,68 @@
+import FWCore.ParameterSet.Config as cms
+
+import argparse
+import sys
+
+parser = argparse.ArgumentParser(
+ prog = 'cmsRun '+sys.argv[0]+' --',
+ description = 'Configuration file to test I/O of Scouting collections.',
+ formatter_class = argparse.ArgumentDefaultsHelpFormatter
+)
+
+parser.add_argument('-t', '--nThreads', type = int, help = 'Number of threads',
+ default = 1)
+
+parser.add_argument('-s', '--nStreams', type = int, help = 'Number of EDM streams',
+ default = 0)
+
+parser.add_argument('-i', '--inputFiles', nargs = '+', help = 'List of EDM input files',
+ default = ['/store/mc/Run3Summer22DR/GluGlutoHHto2B2Tau_kl-5p00_kt-1p00_c2-0p00_TuneCP5_13p6TeV_powheg-pythia8/GEN-SIM-RAW/124X_mcRun3_2022_realistic_v12-v2/2550000/bbfb86f3-4073-47e3-967b-059aa6b904ad.root'])
+
+parser.add_argument('-n', '--maxEvents', type = int, help = 'Max number of input events to be processed',
+ default = 10)
+
+parser.add_argument('--skipEvents', type = int, help = 'Number of input events to be skipped',
+ default = 0)
+
+parser.add_argument('-o', '--outputFile', type = str, help = 'Path to output EDM file in ROOT format',
+ default = 'scoutingCollectionsIO_output.root')
+
+parser.add_argument('--wantSummary', action = 'store_true', help = 'Value of process.options.wantSummary',
+ default = False)
+
+argv = sys.argv[:]
+if '--' in argv:
+ argv.remove('--')
+
+args, unknown = parser.parse_known_args(argv)
+
+# Process
+process = cms.Process('TEST')
+
+process.options.numberOfThreads = args.nThreads
+process.options.numberOfStreams = args.nStreams
+process.options.wantSummary = args.wantSummary
+
+process.maxEvents.input = args.maxEvents
+
+# Source (EDM input)
+process.source = cms.Source('PoolSource',
+ fileNames = cms.untracked.vstring(args.inputFiles),
+ skipEvents = cms.untracked.uint32(args.skipEvents)
+)
+
+# MessageLogger (Service)
+process.load('FWCore.MessageLogger.MessageLogger_cfi')
+process.MessageLogger.cerr.FwkReport.reportEvery = 1
+
+# Output module
+process.testOutput = cms.OutputModule('PoolOutputModule',
+ fileName = cms.untracked.string( args.outputFile ),
+ outputCommands = cms.untracked.vstring(
+ 'drop *',
+ 'keep *Scouting*_*_*_*',
+ )
+)
+
+# EndPath
+process.testEndPath = cms.EndPath( process.testOutput )
diff --git a/DataFormats/Scouting/test/testDataFormatsScoutingRun2.sh b/DataFormats/Scouting/test/testDataFormatsScoutingRun2.sh
new file mode 100755
index 0000000000000..f7f01c5d97cf2
--- /dev/null
+++ b/DataFormats/Scouting/test/testDataFormatsScoutingRun2.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Pass in name and status
+function die {
+ printf "\n%s: status %s\n" "$1" "$2"
+ if [ $# -gt 2 ]; then
+ printf "%s\n" "=== Log File =========="
+ cat $3
+ printf "%s\n" "=== End of Log File ==="
+ fi
+ exit $2
+}
+
+# read Scouting collections from existing EDM file, and write them to disk
+cmsRun "${SCRAM_TEST_PATH}"/scoutingCollectionsIO_cfg.py -- \
+ -i /store/mc/RunIISummer20UL18RECO/DoubleElectron_Pt-1To300-gun/AODSIM/FlatPU0to70EdalIdealGT_EdalIdealGT_106X_upgrade2018_realistic_v11_L1v1_EcalIdealIC-v2/270000/4CDD9457-E14C-D84A-9BD4-3140CB6AEEB6.root \
+ -n 150 --skip 900 -o testDataFormatsScoutingRun2_step1.root \
+ > testDataFormatsScoutingRun2_step1.log 2> testDataFormatsScoutingRun2_step1_stderr.log \
+ || die "Failure running scoutingCollectionsIO_cfg.py" $? testDataFormatsScoutingRun2_step1_stderr.log
+
+cat testDataFormatsScoutingRun2_step1.log
+
+# validate content of Scouting collections
+"${SCRAM_TEST_PATH}"/scoutingCollectionsDumper.py -v 1 -n 1 --skip 81 -i testDataFormatsScoutingRun2_step1.root -k Scouting \
+ > testDataFormatsScoutingRun2_step2.log 2> testDataFormatsScoutingRun2_step2_stderr.log \
+ || die "Failure running scoutingCollectionsDumper.py" $? testDataFormatsScoutingRun2_step2_stderr.log
+
+diff -q "${SCRAM_TEST_PATH}"/testDataFormatsScoutingRun2_expected.log testDataFormatsScoutingRun2_step2.log \
+ || die "Unexpected differences in outputs of testDataFormatsScoutingRun2 (step 2)" $?
diff --git a/DataFormats/Scouting/test/testDataFormatsScoutingRun2_expected.log b/DataFormats/Scouting/test/testDataFormatsScoutingRun2_expected.log
new file mode 100644
index 0000000000000..44c853e1557cc
--- /dev/null
+++ b/DataFormats/Scouting/test/testDataFormatsScoutingRun2_expected.log
@@ -0,0 +1,170 @@
+--------------------------------------------------
+Run = 1
+LuminosityBlock = 291048
+Event = 29104772
+
+ Product Label: "hltScoutingCaloPacker" (type: "vector"), size = 14
+
+ Object #0
+ btagDiscriminator = -20.0
+ emEnergyInEB = 239.46920776367188
+ emEnergyInEE = 0.0
+ emEnergyInHF = 0.0
+ eta = 0.19732625782489777
+ hadEnergyInHB = 4.694222450256348
+ hadEnergyInHE = 0.0
+ hadEnergyInHF = 0.0
+ jetArea = 0.5026548504829407
+ m = 13.72571849822998
+ maxEInEmTowers = 221.2417755126953
+ maxEInHadTowers = 1.1859394311904907
+ mvaDiscriminator = 0.8697163462638855
+ phi = -2.93450927734375
+ pt = 239.10707092285156
+ towersArea = 0.12147484719753265
+
+ Product Label: "hltScoutingEgammaPacker" (type: "vector"), size = 6
+
+ Object #0
+ charge = 1
+ d0 = -0.03971549868583679
+ dEtaIn = 8.61436128616333e-05
+ dPhiIn = 0.0005463957786560059
+ dz = -2.0579769611358643
+ ecalIso = 5.6464996337890625
+ eta = -0.22388292849063873
+ hOverE = 0.0
+ hcalIso = 0.0
+ m = -4.42200598627096e-06
+ missingHits = 0
+ ooEMOop = 0.0010115106124430895
+ phi = 0.19714701175689697
+ pt = 225.0137176513672
+ sigmaIetaIeta = 0.009137610904872417
+ trackIso = 0.0
+
+ Product Label: "hltScoutingMuonPackerCalo" (type: "vector"), size = 1
+
+ Object #0
+ charge = 1
+ chi2 = 33.93075942993164
+ dxy = -0.025435244664549828
+ dxyError = 0.0014315954176709056
+ dz = 5.874882698059082
+ dzError = 0.002003241330385208
+ ecalIso = -1.0
+ eta = -0.3469981849193573
+ hcalIso = -1.0
+ isGlobalMuon = True
+ isTrackerMuon = False
+ m = 0.0
+ nMatchedStations = 4
+ nTrackerLayersWithMeasurement = 14
+ nValidMuonHits = 34
+ nValidPixelHits = 4
+ nValidStripHits = 15
+ ndof = 18.0
+ phi = -2.360595464706421
+ pt = 9.477605819702148
+ trackIso = 0.0
+ trk_dsz = 5.5381083488464355
+ trk_dszError = 0.0018884065793827176
+ trk_eta = -0.3469981849193573
+ trk_lambda = -0.34023720026016235
+ trk_lambdaError = 0.0002624643384478986
+ trk_phi = -2.360595464706421
+ trk_phiError = 0.0002613998076412827
+ trk_pt = 9.477605819702148
+ trk_qoverp = 0.09946347028017044
+ trk_qoverpError = 0.0008352764998562634
+ type = 2
+ vtxIndx = {}
+
+ Product Label: "hltScoutingPFPacker" (type: "vector"), size = 15
+
+ Object #0
+ HFEMEnergy = 0.0
+ HFEMMultiplicity = 0
+ HFHadronEnergy = 0.0
+ HFHadronMultiplicity = 0
+ HOEnergy = 0.0
+ chargedHadronEnergy = 5.21009635925293
+ chargedHadronMultiplicity = 6
+ constituents = { 1252, 1225, 1148, 1147, 103, 313, 364, 337, 86, 1206 }
+ csv = -20.0
+ electronEnergy = 0.0
+ electronMultiplicity = 0
+ eta = 0.15360045433044434
+ jetArea = 0.5026548504829407
+ m = 17.293928146362305
+ muonEnergy = 0.0
+ muonMultiplicity = 0
+ mvaDiscriminator = 0.0
+ neutralHadronEnergy = 4.073654651641846
+ neutralHadronMultiplicity = 2
+ phi = -2.9331908226013184
+ photonEnergy = 236.12876892089844
+ photonMultiplicity = 12
+ pt = 241.9427032470703
+
+ Product Label: "hltScoutingPFPacker" (type: "vector"), size = 1336
+
+ Object #0
+ eta = 2.6104886531829834
+ m = 0.0
+ pdgId = 22
+ phi = -0.648145854473114
+ pt = 0.9936956763267517
+ vertex = 0
+
+ Product Label: "hltScoutingEgammaPacker" (type: "vector"), size = 2
+
+ Object #0
+ ecalIso = 3.121485948562622
+ eta = -1.1164329051971436
+ hOverE = 0.0
+ hcalIso = 3.9732704162597656
+ m = -1.6858739115832577e-07
+ phi = 2.536961078643799
+ pt = 7.608181953430176
+ sigmaIetaIeta = 0.011486247181892395
+
+ Product Label: "hltScoutingTrackPacker" (type: "vector"), size = 78
+
+ Object #0
+ tk_charge = -1
+ tk_chi2 = 32.697689056396484
+ tk_dsz = 5.522921562194824
+ tk_dsz_Error = 0.009875157848000526
+ tk_dxy = -0.025069741532206535
+ tk_dxy_Error = 0.015570130199193954
+ tk_dz = 5.897363185882568
+ tk_dz_Error = 0.0105446707457304
+ tk_eta = 0.36618342995643616
+ tk_lambda = 0.35826390981674194
+ tk_lambda_Error = 0.0020103193819522858
+ tk_nTrackerLayersWithMeasurement = 4
+ tk_nValidPixelHits = 4
+ tk_nValidStripHits = 0
+ tk_ndof = 3.0
+ tk_phi = -2.915278196334839
+ tk_phi_Error = 0.00473041320219636
+ tk_pt = 0.9674832224845886
+ tk_qoverp = -0.9679827094078064
+ tk_qoverp_Error = 0.061383962631225586
+
+ Product Label: "hltScoutingPrimaryVertexPacker:primaryVtx" (type: "vector"), size = 25
+
+ Object #0
+ chi2 = 0.0
+ isValidVtx = True
+ ndof = 1
+ tracksSize = 30
+ x = 0.010730049572885036
+ xError = 0.0
+ y = 0.041916027665138245
+ yError = 0.0
+ z = 5.910659313201904
+ zError = 0.005083281081169844
+--------------------------------------------------
+Events processed = 1
diff --git a/DataFormats/Scouting/test/testDataFormatsScoutingRun3.sh b/DataFormats/Scouting/test/testDataFormatsScoutingRun3.sh
new file mode 100755
index 0000000000000..c65958793b5bd
--- /dev/null
+++ b/DataFormats/Scouting/test/testDataFormatsScoutingRun3.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Pass in name and status
+function die {
+ printf "\n%s: status %s\n" "$1" "$2"
+ if [ $# -gt 2 ]; then
+ printf "%s\n" "=== Log File =========="
+ cat $3
+ printf "%s\n" "=== End of Log File ==="
+ fi
+ exit $2
+}
+
+# read Scouting collections from existing EDM file, and write them to disk
+cmsRun "${SCRAM_TEST_PATH}"/scoutingCollectionsIO_cfg.py -- \
+ -i /store/mc/Run3Summer22DR/GluGlutoHHto2B2Tau_kl-5p00_kt-1p00_c2-0p00_TuneCP5_13p6TeV_powheg-pythia8/GEN-SIM-RAW/124X_mcRun3_2022_realistic_v12-v2/2550000/bbfb86f3-4073-47e3-967b-059aa6b904ad.root \
+ -n 150 --skip 0 -o testDataFormatsScoutingRun3_step1.root \
+ >testDataFormatsScoutingRun3_step1.log 2>testDataFormatsScoutingRun3_step1_stderr.log \
+ || die "Failure running scoutingCollectionsIO_cfg.py" $? testDataFormatsScoutingRun3_step1_stderr.log
+
+cat testDataFormatsScoutingRun3_step1.log
+
+# validate content of Scouting collections
+"${SCRAM_TEST_PATH}"/scoutingCollectionsDumper.py -v 1 -n 1 --skip 137 -i testDataFormatsScoutingRun3_step1.root -k Run3Scouting \
+ > testDataFormatsScoutingRun3_step2.log 2>testDataFormatsScoutingRun3_step2_stderr.log \
+ || die "Failure running scoutingCollectionsDumper.py" $? testDataFormatsScoutingRun3_step2_stderr.log
+
+diff -q "${SCRAM_TEST_PATH}"/testDataFormatsScoutingRun3_expected.log testDataFormatsScoutingRun3_step2.log \
+ || die "Unexpected differences in outputs of testDataFormatsScoutingRun3 (step 2)" $?
diff --git a/DataFormats/Scouting/test/testDataFormatsScoutingRun3_expected.log b/DataFormats/Scouting/test/testDataFormatsScoutingRun3_expected.log
new file mode 100644
index 0000000000000..0fbb1c3c5d34e
--- /dev/null
+++ b/DataFormats/Scouting/test/testDataFormatsScoutingRun3_expected.log
@@ -0,0 +1,241 @@
+--------------------------------------------------
+Run = 1
+LuminosityBlock = 83
+Event = 29083
+
+ Product Label: "hltScoutingEgammaPacker" (type: "vector"), size = 1
+
+ Object #0
+ dEtaIn = 0.00014007469872012734
+ dPhiIn = 5.698204040527344e-05
+ detIds = { 838944835, 838944311, 838944312, 838944316, 838944317, 838944320, 838944323, 838944324, 838943802, 838943805, 838943811, 838943812, 838943814, 838943288, 838943291, 838943292, 838943296, 838943297, 838943298, 838943302, 838942776, 838942782, 838942783, 838942785, 838942272, 838942273, 838942274, 838942275, 838941755, 838941756, 838941758, 838941759, 838941760, 838941761, 838941762, 838941242, 838941244, 838941246, 838941247, 838941248, 838941249, 838941250, 838941251, 838940729, 838940732, 838940733, 838940735, 838940736, 838940737, 838940738, 838940740, 838940742, 838940218, 838940222, 838940224, 838940225, 838940230, 838939705, 838939711, 838939713, 838939715, 838939716, 838939192, 838939193, 838939194, 838939195, 838939201, 838939202, 838939206, 838938681, 838938687, 838938689, 838938690, 838938693, 838938694, 838938169, 838938170, 838938172, 838938173, 838938176, 838938178, 838938179, 838937657, 838937658, 838937659, 838937660, 838937663, 838937668, 838937145, 838937152, 838937154, 838937156 }
+ ecalIso = 7.798269271850586
+ energyMatrix = { 0.467529f, 0.624023f, 0.0174255f, 0.0977173f, 0.0157776f, 0.0956421f, 2.89062f, 0.685059f, 0.00851440f, 0.0712891f, 0.426025f, 0.199341f, 0.0661621f, 0.155884f, 0.0534363f, 0.0522766f, 0.00791168f, 0.0205688f, 0.107300f, 0.0122452f, 0.0700073f, 0.0157013f, 0.0520325f, 0.138428f, 0.0748291f, 0.124878f, 0.166870f, 0.0969849f, 0.0126724f, 0.0423279f, 0.0621338f, 0.142700f, 0.521484f, 0.131226f, 0.00601959f, 0.0630493f, 0.0369873f, 2.90039f, 0.886719f, 14.4453f, 0.731445f, 0.0470886f, 0.0833130f, 0.0942993f, 0.0527039f, 0.413818f, 0.182983f, 0.498535f, 0.225952f, 0.180542f, 0.0482483f, 0.0472412f, 0.114014f, 0.0368958f, 0.0646362f, 0.0283203f, 0.00453186f, 0.368896f, 0.0597839f, 0.418701f, 0.0561218f, 0.0733643f, 0.0261688f, 0.0989990f, 0.468750f, 0.0487976f, 0.0332642f, 0.0870361f, 0.00700760f, 0.0215149f, 0.0932617f, 0.0542603f, 0.0838013f, 0.336914f, 0.0405884f, 0.165405f, 0.0224762f, 0.0451355f, 0.0472717f, 0.0596008f, 0.0596619f, 0.216187f, 0.0328064f, 0.191040f, 0.0786743f, 0.0371399f, 0.00169468f, 0.0335693f, 0.0767822f, 0.0492249f, 0.0543823f, 0.0711670f }
+ eta = 0.5031031370162964
+ hOverE = 0.0
+ hcalIso = 0.0
+ m = -2.920019426255749e-07
+ missingHits = 0
+ ooEMOop = 0.005525607615709305
+ phi = 0.9313944578170776
+ pt = 19.88896942138672
+ r9 = 0.8709825277328491
+ rechitZeroSuppression = True
+ sMaj = 0.2543233036994934
+ sMin = 0.23481805622577667
+ seedId = 838941248
+ sigmaIetaIeta = 0.007278029341250658
+ timingMatrix = {}
+ trackIso = 7.829135417938232
+ trkcharge = { -1 }
+ trkchi2overndf = {}
+ trkd0 = { 0.0910756f }
+ trkdz = { 1.75743f }
+ trketa = {}
+ trkphi = {}
+ trkpt = {}
+
+ Product Label: "hltScoutingMuonPacker" (type: "vector"), size = 2
+
+ Object #0
+ charge = 1
+ ecalIso = 0.8200493454933167
+ eta = 0.4523281455039978
+ hcalIso = -0.8316822648048401
+ isGlobalMuon = True
+ isTrackerMuon = True
+ m = 0.0
+ nPixelLayersWithMeasurement = 4
+ nRecoMuonChambers = 10
+ nRecoMuonChambersCSCorDT = 4
+ nRecoMuonExpectedMatchedStations = 4
+ nRecoMuonMatchedRPCLayers = 0
+ nRecoMuonMatchedStations = 4
+ nRecoMuonMatches = 4
+ nStandAloneMuonMatchedStations = 4
+ nTrackerLayersWithMeasurement = 13
+ nValidPixelHits = 4
+ nValidRecoMuonHits = 48
+ nValidStandAloneMuonHits = 48
+ nValidStripHits = 9
+ normalizedChi2 = 1.241951823234558
+ phi = -1.6093230247497559
+ pt = 61.90772247314453
+ recoMuonRPClayerMask = 0
+ recoMuonStationMask = 15
+ trackIso = 0.023261696100234985
+ trk_chi2 = 28.453201293945312
+ trk_dsz = 1.6049633026123047
+ trk_dszError = 0.000999733223579824
+ trk_dxy = 0.09571316093206406
+ trk_dxyError = 0.0009637423790991306
+ trk_dxy_dsz_cov = -7.264699064535307e-08
+ trk_dz = 1.771970272064209
+ trk_dzError = 0.0011037620715796947
+ trk_eta = 0.4523281455039978
+ trk_hitPattern.hitCount = 14
+ trk_hitPattern.beginTrackHits = 1
+ trk_hitPattern.endTrackHits = 14
+ trk_hitPattern.beginInner = 0
+ trk_hitPattern.endInner = 0
+ trk_hitPattern.beginOuter = 0
+ trk_hitPattern.endOuter = 1
+ trk_hitPattern.hitPattern = { 34481, 36936, 18820, 33952, 36952, 22917, 34208, 36968, 27014, 34464, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ trk_lambda = 0.43764862418174744
+ trk_lambdaError = 8.468596934108064e-05
+ trk_lambda_dsz_cov = -7.34926359768906e-08
+ trk_lambda_dxy_cov = 5.0671942197766384e-09
+ trk_lambda_phi_cov = -3.863420139360585e-10
+ trk_ndof = 21.0
+ trk_phi = -1.6093230247497559
+ trk_phiError = 8.349290146725252e-05
+ trk_phi_dsz_cov = 5.383451018303731e-09
+ trk_phi_dxy_cov = -7.052129546991637e-08
+ trk_pt = 61.90772247314453
+ trk_qoverp = 0.01463065855205059
+ trk_qoverpError = 0.0001785793574526906
+ trk_qoverp_dsz_cov = 7.775126320552772e-09
+ trk_qoverp_dxy_cov = -9.391782640477686e-08
+ trk_qoverp_lambda_cov = -5.765431465576398e-10
+ trk_qoverp_phi_cov = 9.820788626768717e-09
+ trk_vx = 0.09521367400884628
+ trk_vy = -0.014802273362874985
+ trk_vz = 1.7771753072738647
+ type = 14
+ vtxIndx = { 0 }
+
+ Product Label: "hltScoutingPFPacker" (type: "vector"), size = 8
+
+ Object #0
+ HFEMEnergy = 0.0
+ HFEMMultiplicity = 0
+ HFHadronEnergy = 0.0
+ HFHadronMultiplicity = 0
+ HOEnergy = 0.0
+ chargedHadronEnergy = 10.6640625
+ chargedHadronMultiplicity = 5
+ constituents = {}
+ csv = -20.0
+ electronEnergy = 0.0
+ electronMultiplicity = 0
+ eta = 1.3583984375
+ jetArea = 0.50244140625
+ m = 22.953125
+ muonEnergy = 0.0
+ muonMultiplicity = 0
+ mvaDiscriminator = 0.0
+ neutralHadronEnergy = 283.75
+ neutralHadronMultiplicity = 7
+ phi = 0.7021484375
+ photonEnergy = 194.625
+ photonMultiplicity = 7
+ pt = 235.75
+
+ Product Label: "hltScoutingPFPacker" (type: "vector"), size = 220
+
+ Object #0
+ dxy = -0.0002617835998535156
+ dxysig = -0.0318603515625
+ dz = -1.015625
+ dzsig = -76.25
+ eta = 1.3603515625
+ lostInnerHits = 255
+ normchi2 = 1.349609375
+ pdgId = -211
+ phi = 1.8115234375
+ pt = 0.89208984375
+ quality = 5
+ relative_trk_vars = True
+ trk_eta = 0.0
+ trk_phi = 0.0
+ trk_pt = 0.0
+ vertex = -1
+
+ Product Label: "hltScoutingEgammaPacker" (type: "vector"), size = 6
+
+ Object #0
+ detIds = { 838967413, 838967414, 838967415, 838967421, 838966903, 838966908, 838966385, 838966389, 838966391, 838966395, 838966396, 838966397, 838965874, 838965876, 838965877, 838965878, 838965880, 838965882, 838965359, 838965360, 838965361, 838965368, 838965370, 838965372, 838964852, 838964853, 838964854, 838964855, 838964856, 838964857, 838964858, 838964859, 838964861, 838964862, 838964863, 838964864, 838964866, 838964335, 838964337, 838964340, 838964341, 838964342, 838964343, 838964346, 838964347, 838964351, 838964352, 838963825, 838963828, 838963830, 838963831, 838963833, 838963835, 838963836, 838963837, 838963838, 838963842, 838963313, 838963318, 838963319, 838963320, 838963321, 838963322, 838962804, 838962806, 838962807, 838962808, 838962809, 838962810, 838962811, 838962812, 838962813, 838962816, 838962817, 838962818, 838962287, 838962289, 838962291, 838962293, 838962294, 838962295, 838962296, 838962297, 838962298, 838962299, 838962302, 838962303, 838962304, 838962305, 838961775, 838961776, 838961781, 838961782, 838961783, 838961784, 838961785, 838961786, 838961787, 838961788, 838961790, 838961791, 838961792, 838961794, 838961263, 838961264, 838961266, 838961267, 838961268, 838961270, 838961271, 838961272, 838961273, 838961274, 838961275, 838961279, 838961280, 838960754, 838960759, 838960761, 838960762, 838960763, 838960766, 838960241, 838960245, 838960246, 838960248, 838960249, 838960250, 838960251, 838960252, 838960253, 838959727, 838959728, 838959732, 838959737, 838959743, 838959215, 838959217, 838959218, 838959223, 838959226, 838959232, 838959233, 838958704, 838958705, 838958709, 838958711, 838958712, 838958714, 838958717, 838958719, 838958191, 838958192, 838958193, 838958194, 838958197, 838958199, 838958200, 838958204, 838958205, 838958206, 838957680, 838957681, 838957685, 838957687, 838957689, 838957690, 838957693, 838957694, 838957695, 838957698, 838957171 }
+ ecalIso = 23.55951499938965
+ energyMatrix = { 0.0222931f, 0.150757f, 0.0249481f, 0.0767822f, 0.140869f, 0.122803f, 0.0506897f, 0.0967407f, 0.166016f, 0.00157928f, 0.181152f, 0.0864258f, 0.0174408f, 0.00457001f, 0.108826f, 0.128540f, 0.0128784f, 0.0436401f, 0.108521f, 0.0340576f, 0.111755f, 0.247681f, 0.0782471f, 0.0677490f, 0.336670f, 1.18848f, 0.267334f, 0.476562f, 0.177246f, 0.0941162f, 0.171875f, 0.101807f, 0.100342f, 0.00579834f, 0.0549316f, 0.0106964f, 0.0411072f, 0.260986f, 0.122498f, 0.454346f, 10.4766f, 0.910156f, 0.528809f, 0.112671f, 0.0553284f, 0.102600f, 0.0888062f, 0.198486f, 0.0527039f, 0.915039f, 0.183228f, 0.0674438f, 0.0311127f, 0.0353394f, 0.492676f, 0.00539017f, 0.232422f, 0.699219f, 0.132690f, 0.236816f, 5.05859f, 0.0823975f, 0.129639f, 0.0683594f, 0.269531f, 0.601562f, 0.607422f, 1.18066f, 0.355957f, 0.287109f, 0.165039f, 0.273682f, 0.307617f, 0.0896606f, 0.0958252f, 0.0691528f, 0.215454f, 0.0404358f, 0.781738f, 0.755371f, 1.65430f, 0.885254f, 18.8281f, 1.44531f, 0.166260f, 0.0358887f, 0.0574341f, 0.00404739f, 0.159424f, 0.0280151f, 0.307129f, 2.46484f, 1.96777f, 0.173218f, 2.32031f, 1.24512f, 0.646973f, 0.0563049f, 0.172119f, 0.131104f, 1.79688f, 0.994141f, 0.0682983f, 0.505371f, 0.0115128f, 0.00272751f, 0.281494f, 0.00685120f, 1.72168f, 1.53027f, 0.338379f, 0.240845f, 0.247437f, 0.0144196f, 0.294678f, 0.0547485f, 0.159302f, 0.0407715f, 0.124451f, 0.00750732f, 0.0658569f, 0.0204773f, 0.111145f, 0.0135269f, 0.170410f, 0.140137f, 0.0145874f, 0.131958f, 0.112610f, 0.150635f, 0.0569153f, 0.0301208f, 0.0916748f, 0.0727539f, 0.00557709f, 0.153564f, 0.00154972f, 0.0683594f, 0.0527344f, 0.262207f, 0.0475769f, 0.162354f, 0.0407104f, 0.0469360f, 0.0335388f, 0.0665283f, 0.0793457f, 0.107971f, 0.120056f, 0.153442f, 0.0162048f, 0.0679321f, 0.323730f, 1.99512f, 0.0513000f, 0.00398254f, 0.00563049f, 0.0698242f, 0.0297852f, 0.136230f, 0.00747681f, 0.166260f, 0.889648f, 0.0120773f, 0.0858765f, 0.242065f, 0.0953369f, 0.0283966f, 0.0717163f, 0.121704f, 0.000929832f, 0.244141f }
+ eta = 1.21042001247406
+ hOverE = 0.038411639630794525
+ hcalIso = 20.55815887451172
+ m = 6.743495646333031e-07
+ phi = 1.92743980884552
+ pt = 17.033815383911133
+ r9 = 1.0433892011642456
+ rechitZeroSuppression = True
+ sMaj = 0.6447122693061829
+ sMin = 0.2290443778038025
+ seedId = 838962297
+ sigmaIetaIeta = 0.01953848823904991
+ timingMatrix = {}
+ trkIso = 0.0
+
+ Product Label: "hltScoutingTrackPacker" (type: "vector"), size = 20
+
+ Object #0
+ tk_charge = 1
+ tk_chi2 = 30.46875
+ tk_dsz = 1.6064453125
+ tk_dsz_Error = 0.0007586479187011719
+ tk_dxy = 0.09515380859375
+ tk_dxy_Error = 0.0009350776672363281
+ tk_dxy_dsz_cov = 1.987791620194912e-08
+ tk_dz = 1.7734375
+ tk_dz_Error = 0.0008373260498046875
+ tk_eta = 0.4521484375
+ tk_lambda = 0.4375
+ tk_lambda_Error = 7.69495964050293e-05
+ tk_lambda_dsz_cov = -4.700268618762493e-08
+ tk_lambda_dxy_cov = -1.4142642612569034e-09
+ tk_lambda_phi_cov = 1.0317080523236655e-10
+ tk_nTrackerLayersWithMeasurement = 14
+ tk_nValidPixelHits = 5
+ tk_nValidStripHits = 13
+ tk_ndof = 18.0
+ tk_phi = -1.609375
+ tk_phi_Error = 8.511543273925781e-05
+ tk_phi_dsz_cov = -1.4133547665551305e-09
+ tk_phi_dxy_cov = -6.746267899870872e-08
+ tk_pt = 61.46875
+ tk_qoverp = 0.014739990234375
+ tk_qoverp_Error = 0.00016427040100097656
+ tk_qoverp_dsz_cov = -1.267835614271462e-09
+ tk_qoverp_dxy_cov = -8.055940270423889e-08
+ tk_qoverp_lambda_cov = 7.270273272297345e-11
+ tk_qoverp_phi_cov = 8.381903171539307e-09
+ tk_vtxInd = 0
+ tk_vx = 0.09466552734375
+ tk_vy = -0.0147857666015625
+ tk_vz = 1.779296875
+
+ Product Label: "hltScoutingMuonPacker:displacedVtx" (type: "vector"), size = 1
+
+ Object #0
+ chi2 = 0.8499976992607117
+ isValidVtx = True
+ ndof = 1
+ tracksSize = 2
+ x = 0.09472132474184036
+ xError = 0.0008815590408630669
+ y = -0.018364980816841125
+ yError = 0.002398101380094886
+ z = 1.7790638208389282
+ zError = 0.0015540826134383678
+
+ Product Label: "hltScoutingPrimaryVertexPacker:primaryVtx" (type: "vector"), size = 8
+
+ Object #0
+ chi2 = 119.6875
+ isValidVtx = True
+ ndof = 52
+ tracksSize = 53
+ x = 0.10064697265625
+ xError = 0.0
+ y = -0.0150146484375
+ yError = 0.0
+ z = 1.783203125
+ zError = 0.0013170242309570312
+--------------------------------------------------
+Events processed = 1