77# 1. Run a very simple configuration with all module types.
88cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=alltypes.root numberEventsInRun=100 numberEventsInLuminosityBlock=20 nEvents=100
99# actually we'd expect 99, but the MEs by legacy modules are booked with JOB scope and cannot be saved to DQMIO.
10- [ 84 = $( dqmiolistmes.py alltypes.root -r 1 | wc -l) ]
10+ [ 98 = $( dqmiolistmes.py alltypes.root -r 1 | wc -l) ]
1111[ 84 = $( dqmiolistmes.py alltypes.root -r 1 -l 1 | wc -l) ]
1212# this is deeply related to what the analyzers actually do.
1313# again, the legacy modules output is not saved.
@@ -16,14 +16,14 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py outfile=alltypes.root numberEvent
1616# testonefilllumi also should have 5 entries in the histograms (9 more)
1717# the "fillrun" module should have one entry in the histograms (9 total) and 0 in the scalars (2 total)
1818
19- [ " 0: 7 , 0.0: 1, 1: 11 , 100: 33, 200: 11, 5: 16 , 5.0: 5 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 --summary) " ]
19+ [ " 0: 1 , 0.0: 1, 1: 12 , 100: 60, 5: 18 , 5.0: 6 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 --summary) " ]
2020# per lumi we see 20 in most histograms (4*9), and the current lumi number in the scalars (6 modules * 2).
2121# the two fillumi modules should have one entry in each of the lumi histograms, (2*9 total)
22- [ " 0: 6, 1: 28 , 1.0: 6, 20: 44 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 1 --summary) " ]
23- [ " 0: 6, 1: 22 , 2: 6, 2.0: 6, 20: 44 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 2 --summary) " ]
24- [ " 0: 6, 1: 22 , 20: 44 , 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 3 --summary) " ]
25- [ " 0: 6, 1: 22 , 20: 44 , 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 4 --summary) " ]
26- [ " 0: 6, 1: 22 , 20: 44 , 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 5 --summary) " ]
22+ [ " 1: 30 , 1.0: 6, 20: 48 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 1 --summary) " ]
23+ [ " 1: 24 , 2: 6, 2.0: 6, 20: 48 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 2 --summary) " ]
24+ [ " 1: 24 , 20: 48 , 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 3 --summary) " ]
25+ [ " 1: 24 , 20: 48 , 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 4 --summary) " ]
26+ [ " 1: 24 , 20: 48 , 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 5 --summary) " ]
2727# just make sure we are not off by one
2828[ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 6 --summary) " ]
2929
@@ -39,16 +39,15 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py outfile=nolegacy-cl.root numberEv
3939# same math as above, just a few less modules, and more events.
4040for f in nolegacy.root nolegacy-mt.root nolegacy-cl.root
4141do
42- [ " 0: 5 , 0.0: 1, 1: 11 , 1000: 22, 2000: 11, 5: 3 , 5.0: 3 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 --summary) " ]
43- [ " 0: 2, 1: 2, 1.0: 2, 200: 22 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 1 --summary) " ]
44- [ " 0: 2, 2 : 2, 2.0: 2, 200: 22 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 2 --summary) " ]
45- [ " 0: 2, 200: 22 , 3: 2, 3.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 3 --summary) " ]
46- [ " 0: 2, 200: 22 , 4: 2, 4.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 4 --summary) " ]
47- [ " 0: 2, 200: 22 , 5: 2, 5.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 5 --summary) " ]
42+ [ " 0: 1 , 0.0: 1, 1: 12 , 1000: 48, 5: 4 , 5.0: 4 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 --summary) " ]
43+ [ " 1: 2, 1.0: 2, 200: 24 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 1 --summary) " ]
44+ [ " 2 : 2, 2.0: 2, 200: 24 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 2 --summary) " ]
45+ [ " 200: 24 , 3: 2, 3.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 3 --summary) " ]
46+ [ " 200: 24 , 4: 2, 4.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 4 --summary) " ]
47+ [ " 200: 24 , 5: 2, 5.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 5 --summary) " ]
4848 [ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 6 --summary) " ]
4949done
5050
51-
5251# 4. Try crossing a run boundary.
5352cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=multirun.root numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=1200
5453dqmiodumpmetadata.py multirun.root | grep -q ' 4 runs, 12 lumisections'
@@ -88,7 +87,7 @@ cmp <(${SCRAM_TEST_PATH}/dqmiodumpentries.py multirun.root -r 1 -l 2) <(${SCRAM_
8887cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py inputFiles=alltypes.root nomodules=True legacyoutput=True reScope=JOB
8988# this number is rather messy: we have 66 per-lumi objecs (harvested), 66 per-run objects (no legacy output), one folder for each set of 11,
9089# plus some higher-level folders and the ProvInfo hierarchy create by the FileSaver.
91- [ 197 = $( rootlist DQM_V0001_R000000001__Harvesting__DQMTests__DQMIO.root | wc -l) ]
90+ [ 212 = $( rootlist DQM_V0001_R000000001__Harvesting__DQMTests__DQMIO.root | wc -l) ]
9291
9392cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=100 numberEventsInLuminosityBlock=20 nEvents=100 legacyoutput=True
9493# we expect only the (per-job) legacy histograms here: 3*11 objects in 3 folders, plus 9 more for ProvInfo and higher-level folders.
@@ -98,25 +97,25 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py numberEventsInRun=100 numberEvent
9897cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=1200 protobufoutput=True
9998
10099cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py inputFiles=./run000001 outfile=pbdata.root nomodules=True protobufinput=True
101- [ 126 = $( dqmiolistmes.py pbdata.root -r 1 | wc -l) ]
100+ [ 140 = $( dqmiolistmes.py pbdata.root -r 1 | wc -l) ]
102101[ 84 = $( dqmiolistmes.py pbdata.root -r 1 -l 1 | wc -l) ]
103102
104103# this will potentially mess up statistics (we should only fastHadd *within* a lumisection, not *across*), but should technically work.
105104fastHadd add -o streamDQMHistograms.pb run000001/run000001_ls* _streamDQMHistograms.pb
106105# the output format is different from the harvesting above, this is a not-DQM-formatted TDirectory file.
107106fastHadd convert -o streamDQMHistograms.root streamDQMHistograms.pb
108107# here we expect all (incl. legacy) MEs (99+66), plus folders (14 + 4 higher-level)
109- [ 229 = $( rootlist streamDQMHistograms.root | wc -l) ]
108+ [ 244 = $( rootlist streamDQMHistograms.root | wc -l) ]
110109
111110
112111# 9. Try writing online files. This is really TDirectory files, but written via a different module.
113112# Note that this does not really need to support multiple runs, but it appears it does.
114113cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=1200 onlineoutput=True
115114# here we expect full per-run output (99 objects), no per-lumi MEs, plus folders (9 + 10 higher-level).
116- [ 145 = $( rootlist DQM_V0001_UNKNOWN_R000000001.root | wc -l) ]
117- [ 145 = $( rootlist DQM_V0001_UNKNOWN_R000000002.root | wc -l) ]
118- [ 145 = $( rootlist DQM_V0001_UNKNOWN_R000000003.root | wc -l) ]
119- [ 145 = $( rootlist DQM_V0001_UNKNOWN_R000000004.root | wc -l) ]
115+ [ 160 = $( rootlist DQM_V0001_UNKNOWN_R000000001.root | wc -l) ]
116+ [ 160 = $( rootlist DQM_V0001_UNKNOWN_R000000002.root | wc -l) ]
117+ [ 160 = $( rootlist DQM_V0001_UNKNOWN_R000000003.root | wc -l) ]
118+ [ 160 = $( rootlist DQM_V0001_UNKNOWN_R000000004.root | wc -l) ]
120119
121120
122121# 10. Try running some harvesting modules and check if their output makes it out.
@@ -129,15 +128,15 @@ cmsRun ${SCRAM_TEST_PATH}/run_harvesters_cfg.py inputFiles=part1.root inputFiles
129128# 11. Try MEtoEDM and EDMtoME.
130129cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=metoedm.root numberEventsInRun=100 numberEventsInLuminosityBlock=20 nEvents=100 metoedmoutput=True
131130cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py outfile=edmtome.root inputFiles=metoedm.root nomodules=True metoedminput=True
132- [ 78 = $( dqmiolistmes.py edmtome.root -r 1 | wc -l) ]
131+ [ 91 = $( dqmiolistmes.py edmtome.root -r 1 | wc -l) ]
133132[ 78 = $( dqmiolistmes.py edmtome.root -r 1 -l 1 | wc -l) ]
134133# again, no legacy module (run) output here due to JOB scope for legacy modules
135- [ " 0: 7 , 0.0: 1, 1: 10 , 100: 30, 200: 10, 5: 15 , 5.0: 5 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 --summary) " ]
136- [ " 0: 6, 1: 26 , 1.0: 6, 20: 40 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 1 --summary) " ]
137- [ " 0: 6, 1: 20 , 2: 6, 2.0: 6, 20: 40 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 2 --summary) " ]
138- [ " 0: 6, 1: 20 , 20: 40 , 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 3 --summary) " ]
139- [ " 0: 6, 1: 20 , 20: 40 , 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 4 --summary) " ]
140- [ " 0: 6, 1: 20 , 20: 40 , 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 5 --summary) " ]
134+ [ " 0: 1 , 0.0: 1, 1: 11 , 100: 55, 5: 17 , 5.0: 6 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 --summary) " ]
135+ [ " 1: 28 , 1.0: 6, 20: 44 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 1 --summary) " ]
136+ [ " 1: 22 , 2: 6, 2.0: 6, 20: 44 " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 2 --summary) " ]
137+ [ " 1: 22 , 20: 44 , 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 3 --summary) " ]
138+ [ " 1: 22 , 20: 44 , 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 4 --summary) " ]
139+ [ " 1: 22 , 20: 44 , 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 5 --summary) " ]
141140[ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 6 --summary) " ]
142141
143142cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=part1_metoedm.root metoedmoutput=True numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=50 # 1st half of 1st lumi
@@ -156,7 +155,7 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py outfile=empty.root howmany=0 lega
156155cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=empty.root howmany=0 protobufoutput=True
157156# nLumisections might be a bit buggy (off by one) in EDM, but is fine here.
158157cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=noevents.root processingMode=' RunsAndLumis' nLumisections=20
159- [ 84 = $( dqmiolistmes.py noevents.root -r 1 | wc -l) ]
158+ [ 98 = $( dqmiolistmes.py noevents.root -r 1 | wc -l) ]
160159[ 84 = $( dqmiolistmes.py noevents.root -r 1 -l 1 | wc -l) ]
161- [ 84 = $( dqmiolistmes.py noevents.root -r 2 | wc -l) ]
160+ [ 98 = $( dqmiolistmes.py noevents.root -r 2 | wc -l) ]
162161[ 84 = $( dqmiolistmes.py noevents.root -r 2 -l 2 | wc -l) ]
0 commit comments