|
[Rivet] Plot multiple histograms from one yoda on same canvasAndy Buckley andy.buckley at cern.chTue Mar 24 16:36:32 GMT 2015
Hi Christian, Thanks for the info. I've upgraded to the latest Cython and I get the same problem. I tracked it down to line 1141 of pyext/yoda/declarations.pxd, where vector[HistoBin1D]& bins() #except +yodaerr should read vector[HistoBin2D]& bins() #except +yodaerr If you make that change, it should fix the problem -- it does for me. I'll update the 1.3.1 tarball with this fix, but since it only applies for people using the bleeding edge of Cython who are regenerating the source mapping, it seems below threshold for a new numbered release. Cheers, Andy On 24/03/15 15:02, Christian Johnson wrote: > I think you are right in guessing that Python is trying to regenerate > the core.cpp file. I compared your “core.cpp” file to the “core.cpp” > file in a freshly downloaded copy of YODA-1.3.1 with diff and found no > differences. Then I started to build the source code and ran into the > error again. After this, I compared the two files again and saw a large > number of differences. > > I have attached the diff file. I also see that you are using Cython 0.20 > and I am using 0.22. I am not sure how much this matters though because > I also used 0.22 to successfully build Yoda 1.3.0. > > Cheers, > Christian > > > > >> On Mar 24, 2015, at 6:52 AM, Andy Buckley <a.g.buckley at gmail.com >> <mailto:a.g.buckley at gmail.com>> wrote: >> >> Hi Christian, >> >> I've copied in the other YODA authors. I don't know what could be going >> on there -- I've tested for a long time on my Linux laptop, and before >> release I also tested that it builds on a couple of Scientific Linux >> systems. I just checked now and it also built ok on our OS X build >> testing machine (although we do have issues with that test system >> configuration at the moment). >> >> I also just looked at the version of pyext/yoda/core.cpp on my machine >> and it doesn't seem to line up with the line numbers that you've got. In >> fact, I couldn't even find '__pyx_t_5 = __pyx_t_2->bins()' in my >> core.cpp file, although there were some similar things. I wouldn't >> expect this error (a bin type mismatch in the Python interface build) to >> succeed for some compilers and not others. It looks to me like you've >> somehow got an old version of core.cpp... or is it possible that a >> version of Cython on your machine tried to regenerate it? >> >> Maybe someone Mac-based can also try out the new YODA 1.3.1 and let us >> know their experience... >> >> Thanks for reporting; hopefully we can figure this out quickly. >> Andy >> >> PS. I will email you my copy of core.cpp privately, since it's 3.6 MB, >> but it should be the same as that from the tarball. >> >> >> On 24/03/15 01:47, Christian Johnson wrote: >>> Hi Andy, >>> >>> Thanks for this! I looked through it in the source code and it appears >>> to be very useful. Unfortunately I am having some troubles upgrading. >>> When compiling on my Mac (OS X 10.10.2) I run into this error: >>> >>> gcc -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include >>> -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall >>> -Wstrict-prototypes -I/Users/Alex/Desktop/yoda/include -Iyoda >>> -I/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/include/python2.7 >>> -c yoda/core.cpp -o build/temp.macosx-10.10-x86_64-2.7/yoda/core.o >>> -I/usr/local/include -Wno-sign-compare -Wno-strict-prototypes >>> *yoda/core.cpp:38593:15: **error: **no viable overloaded '='* >>> __pyx_t_5 = __pyx_t_2->bins().at(__pyx_v_i); >>> * ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* >>> *yoda/core.cpp:213:7: note: *candidate function (the implicit copy >>> assignment operator) not viable: no known conversion from 'value_type' >>> (aka 'YODA::HistoBin2D') to 'const >>> __Pyx_FakeReference<YODA::HistoBin1D>' for 1st argument >>> class __Pyx_FakeReference { >>> >>> Cheers, >>> Christian >>> >>> >>>> On Mar 19, 2015, at 6:29 PM, Andy Buckley <a.g.buckley at gmail.com >>>> <mailto:a.g.buckley at gmail.com> >>>> <mailto:a.g.buckley at gmail.com>> wrote: >>>> >>>> On 06/03/15 22:18, Christian Johnson wrote: >>>>> Hi Rivet team, >>>>> >>>>> I have a feature request. There may already be a method for this, if >>>>> so then please let me know. >>>>> >>>>> I have run into a few occasions where it is useful to compare several >>>>> plots from the same yoda file (e.g. control region distribution >>>>> comparison, etc…) on the same canvas. I have not been able to figure >>>>> out a simple way to do this other than building the “*.dat” file >>>>> myself and then using make-plots. I am sure there is an easier way >>>>> using the YODA framework. >>>> >>>> Hi Christian, >>>> >>>> We don't have a ready-made script in Rivet for that, but I just released >>>> a new version of YODA (1.3.1) which includes a new yoda.plotting Python >>>> module and yodaplot script that might help. There is also a yodacmp >>>> script which might be worth look at as an example of how to >>>> programmatically make .dat files that could be plotted with yodaplot or >>>> make-plots. >>>> >>>> We're looking to improve the plotting and plot handling functionality >>>> over time, although it's definitely a side-project relative to the Rivet >>>> physics content. So please let us know what does and doesn't work >>>> for you! >>>> >>>> Cheers, >>>> Andy >>>> >>>> -- >>>> Dr Andy Buckley, Lecturer / Royal Society University Research Fellow >>>> Particle Physics Expt Group, University of Glasgow >>> >> >> >> -- >> Dr Andy Buckley, Lecturer / Royal Society University Research Fellow >> Particle Physics Expt Group, University of Glasgow > -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |