[Rivet] rivet-mkhtml problems

Andy Buckley andy.buckley at cern.ch
Fri Mar 18 13:52:48 GMT 2016


Hi Roy,

The plotting is falling over because it can't find the max(y-value) of 
the datasets when there are no datasets. Peering at the output and then 
looking in the .yoda file, the problem is probably these guys:

# BEGIN YODA_SCATTER2D /ATLAS_2012_I1083318/d02-x01-y01
Path=/ATLAS_2012_I1083318/d02-x01-y01
Title=
Type=Scatter2D
XLabel=
YLabel=
# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
# END YODA_SCATTER2D

# BEGIN YODA_SCATTER2D /ATLAS_2012_I1083318/d02-x01-y02
Path=/ATLAS_2012_I1083318/d02-x01-y02
Title=
Type=Scatter2D
XLabel=
YLabel=
# xval	 xerr-	 xerr+	 yval	 yerr-	 yerr+
# END YODA_SCATTER2D

Note that these describe scatter plots with no points to plot -- any 
idea why you are getting those?

So it's understandable why the plotting is failing, but we should make 
it more robust: probably add some default behaviour that if there are no 
points and not explicitly requested {X,Y}{Min,Max} values, then make an 
empty plot in the 0..1, 0..1 range. I'll add that for the next Rivet 
release.

Andy



On 18/03/16 11:53, roy.lemmon at stfc.ac.uk wrote:
> Hi,
>
> I have a strange problem when using the rivet-mkhtml command:
>
> rivet-mkhtml LOW0j.yoda -o WOj
>
> The output is below:
>
> *******************************************************************
>
> Making 54 plots
> Plotting WOj/ATLAS_2012_I1083318/d01-x01-y01.dat (53 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d01-x01-y02.dat (52 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d02-x01-y01.dat (51 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d02-x01-y02.dat (50 remaining)
> Exception in thread Thread-3:
> Traceback (most recent call last):
>    File "/usr/lib64/python2.7/threading.py", line 811, in __bootstrap_inner
>      self.run()
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 2438, in run
>      process_datfile(datfile)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 2274, in process_datfile
>      mp = MainPlot(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 499, in __init__
>      self.set_borders(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 270, in set_borders
>      self.set_xmax(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 290, in set_xmax
>      self.xmax = max(inputdata.histos[i].getXMax() for i in inputdata.description['DrawOnly'])
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 290, in <genexpr>
>      self.xmax = max(inputdata.histos[i].getXMax() for i in inputdata.description['DrawOnly'])
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 1704, in getXMax
>      return max([self.data[i]['UpEdge'] for i in range(len(self.data))])
> ValueError: max() arg is an empty sequence
>
> Exception in thread Thread-4:
> Traceback (most recent call last):
>    File "/usr/lib64/python2.7/threading.py", line 811, in __bootstrap_inner
>      self.run()
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 2438, in run
>      process_datfile(datfile)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 2274, in process_datfile
>      mp = MainPlot(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 499, in __init__
>      self.set_borders(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 270, in set_borders
>      self.set_xmax(inputdata)
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 290, in set_xmax
>      self.xmax = max(inputdata.histos[i].getXMax() for i in inputdata.description['DrawOnly'])
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 290, in <genexpr>
>      self.xmax = max(inputdata.histos[i].getXMax() for i in inputdata.description['DrawOnly'])
>    File "/home/rlemmon/Programs/local/bin/make-plots", line 1704, in getXMax
>      return max([self.data[i]['UpEdge'] for i in range(len(self.data))])
> ValueError: max() arg is an empty sequence
>
> Plotting WOj/ATLAS_2012_I1083318/d03-x01-y01.dat (49 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d03-x01-y02.dat (48 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d04-x01-y01.dat (47 remaining)
> Plotting WOj/ATLAS_2012_I1083318/d04-x01-y02.dat (46 remaining)
> Traceback (most recent call last):
>    File "/home/rlemmon/Programs/local/bin/rivet-mkhtml", line 397, in <module>
> Signal handler called with signal 2
>      Popen(mp_cmd).wait()
>    File "/usr/lib64/python2.7/subprocess.py", line 1376, in wait
>      pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
>    File "/usr/lib64/python2.7/subprocess.py", line 478, in _eintr_retry_call
>      return func(*args)
> KeyboardInterrupt
> dvips: DVI file can't be opened: d04-x01-y02: No such file or directory
> dvips: DVI file can't be opened: d04-x01-y01: No such file or directory
>
> ***********************************************************************
>
> The program produces histograms 53-50 no problem. Then there are some errors, but the program continues ok. However the strange thing is that to produce each histogram 49, 48, 47 ... etc. I need to press return before the histogram is produced. If I do this until all histograms are plotted, the program exits correctly and I can view the histograms which look ok. However in this case I exited with Control-C.
>
> So somehow the program is waiting for a carriage return before continuing, but I don't understand this and it is very time-consuming. I guess the other errors are just histogramming errors and not so important.
>
> Not sure this is relevant, but this is a new installation of Centos7 (all programs compiling ok). Previously I have run this analysis chain on an XUbuntu installation and it worked fine. I think python2.7 was used in both cases.
>
> I have attached the yoda file.
>
> Thanks for any help.
>
> Cheers
> Roy.
>
> ***********************************
> Roy Lemmon
> STFC Daresbury Laboratory
> United Kingdom
> ***********************************
>
>
>
>
> _______________________________________________
> Rivet mailing list
> Rivet at projects.hepforge.org
> https://www.hepforge.org/lists/listinfo/rivet
>


-- 
Dr Andy Buckley, Lecturer / Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow


More information about the Rivet mailing list