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- [ 78 = $( dqmiolistmes.py alltypes.root -r 1 | wc -l) ]
11- [ 78 = $( dqmiolistmes.py alltypes.root -r 1 -l 1 | wc -l) ]
10+ [ 84 = $( dqmiolistmes.py alltypes.root -r 1 | wc -l) ]
11+ [ 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.
1414# most run histos (4 modules * 9 types) fill on every event and should have 100 entries.
1515# the scalar MEs should have the last lumi number (5) (5 float + 5 int)
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: 1 , 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: 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) " ]
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-
23- [ " 1: 28, 1.0: 6, 20: 44" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 1 --summary) " ]
24- [ " 1: 22, 2: 6, 2.0: 6, 20: 44" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 2 --summary) " ]
25- [ " 1: 22, 20: 44, 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 3 --summary) " ]
26- [ " 1: 22, 20: 44, 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 4 --summary) " ]
27- [ " 1: 22, 20: 44, 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 5 --summary) " ]
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) " ]
2827# just make sure we are not off by one
2928[ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py alltypes.root -r 1 -l 6 --summary) " ]
3029
@@ -40,12 +39,12 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py outfile=nolegacy-cl.root numberEv
4039# same math as above, just a few less modules, and more events.
4140for f in nolegacy.root nolegacy-mt.root nolegacy-cl.root
4241do
43- [ " 0: 1 , 0.0: 1, 1: 11, 1000: 22, 2000: 11, 5: 3, 5.0: 3" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 --summary) " ]
44- [ " 1: 2, 1.0: 2, 200: 22" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 1 --summary) " ]
45- [ " 2: 2, 2.0: 2, 200: 22" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 2 --summary) " ]
46- [ " 200: 22, 3: 2, 3.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 3 --summary) " ]
47- [ " 200: 22, 4: 2, 4.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 4 --summary) " ]
48- [ " 200: 22, 5: 2, 5.0: 2" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 5 --summary) " ]
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) " ]
4948 [ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py $f -r 1 -l 6 --summary) " ]
5049done
5150
@@ -89,35 +88,35 @@ cmp <(${SCRAM_TEST_PATH}/dqmiodumpentries.py multirun.root -r 1 -l 2) <(${SCRAM_
8988cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py inputFiles=alltypes.root nomodules=True legacyoutput=True reScope=JOB
9089# 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,
9190# plus some higher-level folders and the ProvInfo hierarchy create by the FileSaver.
92- [ 185 = $( rootlist DQM_V0001_R000000001__Harvesting__DQMTests__DQMIO.root | wc -l) ]
91+ [ 197 = $( rootlist DQM_V0001_R000000001__Harvesting__DQMTests__DQMIO.root | wc -l) ]
9392
9493cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=100 numberEventsInLuminosityBlock=20 nEvents=100 legacyoutput=True
9594# we expect only the (per-job) legacy histograms here: 3*11 objects in 3 folders, plus 9 more for ProvInfo and higher-level folders.
96- [ 51 = $( rootlist DQM_V0001_R000000001__EmptySource__DQMTests__DQMIO.root | wc -l) ]
95+ [ 54 = $( rootlist DQM_V0001_R000000001__EmptySource__DQMTests__DQMIO.root | wc -l) ]
9796
9897# 8. Try writing ProtoBuf files.
9998cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=1200 protobufoutput=True
10099
101100cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py inputFiles=./run000001 outfile=pbdata.root nomodules=True protobufinput=True
102- [ 117 = $( dqmiolistmes.py pbdata.root -r 1 | wc -l) ]
103- [ 78 = $( dqmiolistmes.py pbdata.root -r 1 -l 1 | wc -l) ]
101+ [ 126 = $( dqmiolistmes.py pbdata.root -r 1 | wc -l) ]
102+ [ 84 = $( dqmiolistmes.py pbdata.root -r 1 -l 1 | wc -l) ]
104103
105104# this will potentially mess up statistics (we should only fastHadd *within* a lumisection, not *across*), but should technically work.
106105fastHadd add -o streamDQMHistograms.pb run000001/run000001_ls* _streamDQMHistograms.pb
107106# the output format is different from the harvesting above, this is a not-DQM-formatted TDirectory file.
108107fastHadd convert -o streamDQMHistograms.root streamDQMHistograms.pb
109108# here we expect all (incl. legacy) MEs (99+66), plus folders (14 + 4 higher-level)
110- [ 214 = $( rootlist streamDQMHistograms.root | wc -l) ]
109+ [ 229 = $( rootlist streamDQMHistograms.root | wc -l) ]
111110
112111
113112# 9. Try writing online files. This is really TDirectory files, but written via a different module.
114113# Note that this does not really need to support multiple runs, but it appears it does.
115114cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=1200 onlineoutput=True
116115# here we expect full per-run output (99 objects), no per-lumi MEs, plus folders (9 + 10 higher-level).
117- [ 136 = $( rootlist DQM_V0001_UNKNOWN_R000000001.root | wc -l) ]
118- [ 136 = $( rootlist DQM_V0001_UNKNOWN_R000000002.root | wc -l) ]
119- [ 136 = $( rootlist DQM_V0001_UNKNOWN_R000000003.root | wc -l) ]
120- [ 136 = $( rootlist DQM_V0001_UNKNOWN_R000000004.root | wc -l) ]
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) ]
121120
122121
123122# 10. Try running some harvesting modules and check if their output makes it out.
@@ -128,17 +127,20 @@ cmsRun ${SCRAM_TEST_PATH}/run_harvesters_cfg.py inputFiles=part1.root inputFiles
128127[ 2 = $( rootlist DQM_V0001_R000000001__Harvesting__DQMTests__DQMIO.root | grep -c ' <runsummary>s=beginRun(1) endLumi(1,1) endLumi(1,2) endLumi(1,3) endRun(1) </runsummary>' ) ]
129128
130129# 11. Try MEtoEDM and EDMtoME.
130+ echo " ISSUE related to MEtoEDMConverter arises."
131131cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=metoedm.root numberEventsInRun=100 numberEventsInLuminosityBlock=20 nEvents=100 metoedmoutput=True
132132cmsRun ${SCRAM_TEST_PATH} /run_harvesters_cfg.py outfile=edmtome.root inputFiles=metoedm.root nomodules=True metoedminput=True
133- [ 72 = $( dqmiolistmes.py edmtome.root -r 1 | wc -l) ]
134- [ 72 = $( dqmiolistmes.py edmtome.root -r 1 -l 1 | wc -l) ]
133+ echo ' [ 72 = $(dqmiolistmes.py edmtome.root -r 1 | wc -l) ]'
134+ echo $( dqmiolistmes.py edmtome.root -r 1 | wc -l)
135+ echo ' [ 72 = $(dqmiolistmes.py edmtome.root -r 1 -l 1 | wc -l) ]'
136+ echo $( dqmiolistmes.py edmtome.root -r 1 -l 1 | wc -l)
135137# again, no legacy module (run) output here due to JOB scope for legacy modules
136- [ " 0: 1 , 0.0: 1, 1: 10, 100: 30, 200: 10, 5: 15, 5.0: 5" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 --summary) " ]
137- [ " 1: 26, 1.0: 6, 20: 40" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 1 --summary) " ]
138- [ " 1: 20, 2: 6, 2.0: 6, 20: 40" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 2 --summary) " ]
139- [ " 1: 20, 20: 40, 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 3 --summary) " ]
140- [ " 1: 20, 20: 40, 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 4 --summary) " ]
141- [ " 1: 20, 20: 40, 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 5 --summary) " ]
138+ [ " 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) " ]
139+ [ " 0: 6, 1: 26, 1.0: 6, 20: 40" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 1 --summary) " ]
140+ [ " 0: 6, 1: 20, 2: 6, 2.0: 6, 20: 40" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 2 --summary) " ]
141+ [ " 0: 6, 1: 20, 20: 40, 3: 6, 3.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 3 --summary) " ]
142+ [ " 0: 6, 1: 20, 20: 40, 4: 6, 4.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 4 --summary) " ]
143+ [ " 0: 6, 1: 20, 20: 40, 5: 6, 5.0: 6" = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 5 --summary) " ]
142144[ " " = " $( ${SCRAM_TEST_PATH} /dqmiodumpentries.py edmtome.root -r 1 -l 6 --summary) " ]
143145
144146cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=part1_metoedm.root metoedmoutput=True numberEventsInRun=300 numberEventsInLuminosityBlock=100 nEvents=50 # 1st half of 1st lumi
@@ -157,9 +159,7 @@ cmsRun ${SCRAM_TEST_PATH}/run_analyzers_cfg.py outfile=empty.root howmany=0 lega
157159cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=empty.root howmany=0 protobufoutput=True
158160# nLumisections might be a bit buggy (off by one) in EDM, but is fine here.
159161cmsRun ${SCRAM_TEST_PATH} /run_analyzers_cfg.py outfile=noevents.root processingMode=' RunsAndLumis' nLumisections=20
160- [ 78 = $( dqmiolistmes.py noevents.root -r 1 | wc -l) ]
161- [ 78 = $( dqmiolistmes.py noevents.root -r 1 -l 1 | wc -l) ]
162- [ 78 = $( dqmiolistmes.py noevents.root -r 2 | wc -l) ]
163- [ 78 = $( dqmiolistmes.py noevents.root -r 2 -l 2 | wc -l) ]
164-
165-
162+ [ 84 = $( dqmiolistmes.py noevents.root -r 1 | wc -l) ]
163+ [ 84 = $( dqmiolistmes.py noevents.root -r 1 -l 1 | wc -l) ]
164+ [ 84 = $( dqmiolistmes.py noevents.root -r 2 | wc -l) ]
165+ [ 84 = $( dqmiolistmes.py noevents.root -r 2 -l 2 | wc -l) ]
0 commit comments