[Rivet] Rivet 2.0.0rc (release candidate) for testing

Andy Buckley andy.buckley at cern.ch
Fri Oct 25 09:17:55 BST 2013


Hi Dima,

Thanks again. This is very strange, since this build script that I've used:

/afs/cern.ch/sw/lcg/experimental/rivet/buildrivet2-genser.sh

does detect the YODA PYTHONPATH properly, i.e. in the generated
/afs/cern.ch/sw/lcg/experimental/rivet/rivet/rivetenv.sh there is

## Try to automatically work out the YODA Python path
YODA_PYTHONPATH="/afs/cern.ch/sw/lcg/experimental/rivet/yoda/../local2/lib64/python2.6/site-packages"
...

There is also no problem with GSL. Maybe that build script is helpful
for you (although this one uses the hg checkouts rather than tarballs,
since I was using it to iterate the build code.

Re. the Python version being used, that's something that the rivetenv.sh
script regards as being part of the implicit system setup, like the GCC
environment. It would be good to be able to source a setup script for
each LCGCMT version in order to get this base setup automatically, but
to use the build that I made in that experimental area, I set these:

source /afs/cern.ch/sw/lcg/contrib/gcc/4.6/x86_64-slc6-gcc46-opt/setup.sh
PATH=/afs/cern.ch/sw/lcg/external/Python/2.6.5p2/x86_64-slc6-gcc46-opt/bin:$PATH

It might also be necessary to set the PYTHONPATH or LD_LIBRARY_PATH to
point at these, but on SLC6 the system /usr/bin/python seems to be
compatible with this LCG one so I'm not sure.

I'm afraid this has gone on so much longer than intended now, that we
will have to make the release, but hopefully the scripts above will help
you. And we'll carry on working with you to make it as smooth as we can
in time for the 2.0.1 release, with analysis updates, which should
happen quite soon.

Cheers,
Andy


On 25/10/13 08:23, Dmitri Konstantinov wrote:
> Hi Andy,
> 
> I have tried once again....Everything looks fine except the script.
> 
> Take a look at our configuration command for rivet, may be there is
> something wrong there:
> 
> https://svnweb.cern.ch/trac/lcgsoft/browser/trunk/lcgcmake/generators/CMakeLists.txt#L501
> 
> 
> With such configuration my rivetevn.sh looks like following:
> 
> ## These variables need to exist
> prefix=/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt
> 
> exec_prefix=${prefix}
> datarootdir=${prefix}/share
> 
> ## Try to automatically work out the YODA Python path
> YODA_PYTHONPATH=""
> test -n "$YODA_PYTHONPATH" || { (which yoda-config > /dev/null) &&
> YODA_PYTHONPATH=`yoda-config --pythonpath`; }
> test -n "$YODA_PYTHONPATH" || echo "yoda-config could not be found: you
> may need to manually set paths to libYODA and the yoda Python package" 1>&2
> 
> export
> PATH="$exec_prefix/bin:/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/yoda/1.0.3/x86_64-slc6-gcc48-opt/lib/../bin:$PATH"
> 
> export
> LD_LIBRARY_PATH="${exec_prefix}/lib:/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/yoda/1.0.3/x86_64-slc6-gcc48-opt/lib:/build/dkonst/TEST2/lcgcmake-install/HepMC/githead/x86_64-slc6-gcc48-opt/lib:/build/dkonst/TEST2/lcgcmake-install/fastjet/3.0.3/x86_64-slc6-gcc48-opt/lib:/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/yamlcpp/0.3.0/x86_64-slc6-gcc48-opt/lib:$LD_LIBRARY_PATH"
> 
> export
> PYTHONPATH="/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt/lib/python2.7/site-packages:$YODA_PYTHONPATH:$PYTHONPATH"
> 
> 
> export TEXMFHOME="${datarootdir}/Rivet/texmf:$TEXMFHOME"
> export HOMETEXMF="${datarootdir}/Rivet/texmf:$HOMETEXMF"
> export TEXMFCNF="${datarootdir}/Rivet/texmf/cnf:$TEXMFCNF"
> export TEXINPUTS="${datarootdir}/Rivet/texmf/tex:$TEXINPUTS"
> export LATEXINPUTS="${datarootdir}/Rivet/texmf/tex:$LATEXINPUTS"
> 
> if (complete &> /dev/null); then
>     test -e "${datarootdir}/Rivet/rivet-completion" && source
> "${datarootdir}/Rivet/rivet-completion"
> fi
> 
> unset YODA_PYTHONPATH
> 
> 
>  source rivetenv.sh
> /usr/bin/which: no yoda-config in
> (/usr/sue/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
> yoda-config could not be found: you may need to manually set paths to
> libYODA and the yoda Python package
> 
> Then when I run rivet it says:
>                 sys.stderr.write("The rivet Python module could not be
> loaded: is your PYTHONPATH set correctly?\n")
> But actually it can't find GSL lib and then libquadmath.so library:
> 
>>>> import rivet
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File
> "/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt/lib/python2.7/site-packages/rivet/__init__.py",
> line 12, in <module>
>     from rivet.core import *
> ImportError: libgsl.so.0: cannot open shared object file: No such file
> or directory
> 
> export
> LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/build/dkonst/TEST2/lcgcmake-install/GSL/1.10/x86_64-slc6-gcc48-opt/lib
> 
> 
>>>> import rivet
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File
> "/build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt/lib/python2.7/site-packages/rivet/__init__.py",
> line 12, in <module>
>     from rivet.core import *
> ImportError: libquadmath.so.0: cannot open shared object file: No such
> file or directory
> 
> source
> /afs/cern.ch/sw/lcg/external/gcc/4.8.0/x86_64-slc6-gcc48-opt/setup.sh
> 
> And then it works but apparently it tries to use system default python
> and not python used for the build:
> 
>  ./rivet
> /build/dkonst/TEST2/lcgcmake-install/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt/lib/python2.7/site-packages/rivet/__init__.py:12:
> RuntimeWarning: compiletime version 2.7 of module 'rivet.core' does not
> match runtime version 2.6
>   from rivet.core import *
> Rivet 2.0.0 running on machine lcgapp07.cern.ch (x86_64)
> 
> And looks like YODA_PYTHON_PATH is not defined in my case...
> 
> Please, let me know if I can simplify your life :)
> I can perform rivet installation to .cern.ch or to
> MCGenerators_lcgcmtpreview .
> 
> 
> Cheers,
>        Dima
> 
> 
> On 10/24/13 10:30 PM, Andy Buckley wrote:
>> Hi again Dima (CC Rivet devs),
>>
>> I have just tested the latest versions of Rivet and YODA on lxplus, with
>> the two packages built into different directories. There were a few
>> remaining issues which I've now fixed, but I can now build it that way
>> on lxplus6 and it works "out of the box" when I source the setup script,
>> so I *really* hope it will work for you, too!
>>
>> Please test the latest RC tarball and let me know as soon as possible if
>> there are any problems -- I would *really* like to finally make this
>> release tomorrow. I don't care if releasing on a Friday is a bad idea --
>> it has taken forever to get here, but I think it's really ready to go
>> now :-)
>>
>> Andy
>>
>> PS. I also just released YODA 1.0.4. No need to build it yet, but please
>> use this for the final Rivet 2.0.0 when it is announced.
>>
>>
>> On 23/10/13 12:08, Andy Buckley wrote:
>>> On 23/10/13 11:51, Dmitri Konstantinov wrote:
>>>> Hi Andy,
>>>>
>>>> There are some news from my side. The rivet installation works
>>>> perfectly
>>>> for all platforms.
>>>> Unfortunately we don't have any tests for it. I can implement them
>>>> today
>>>> if you are not in a hurry.. Lets say run each analysis(or several) on
>>>> 100 event hepmc file.
>>> I don't think you need to hurry this: we have done a lot of testing to
>>> make sure that the analyses are robust. And testing all the analyses in
>>> Genser would definitely be overkill! But testing, e.g. one MC_ analysis
>>> and one ATLAS/CMS analysis on a small LHC event file would be great,
>>> just as a technical/sanity check.
>>>
>>>> I don't think that there is any improvement in rivetenv.sh script ;)
>>> Bah!
>>>
>>>> I see that you have implemented reading yoda path from yoda-config, but
>>>> it is not yet in yoda...
>>> Right, that will appear in 1.0.4. But it doesn't help if YODA's bin dir
>>> is not in the PATH, so I didn't push that release out: it would just be
>>> one more thing for you to build!
>>>
>>>> there is only one way to run it is to explicitly add yoda python
>>>> path to
>>>> PYTHON_PATH (YODA_PYTHONPATH can't be used for it as you put it to
>>>> "" in
>>>> the script).
>>> Hmm, that is strange: that value is auto-generated from the configure
>>> script, based on where it is told to find the YODA installation. This is
>>> the code that does that:
>>> https://rivet.hepforge.org/trac/browser/configure.ac#L65
>>>
>>> So this is failing for some reason: I will check whether $YODAPATH is
>>> defined. See, it's good (but frustrating) to double check! For the 10th
>>> time...
>>>
>>>> test -n "$YODA_PYTHONPATH" || { (which yoda-config > /dev/null) &&
>>>> YODA_PYTHONPATH=`yoda-config --pythonpath`; }
>>>> test -n "$YODA_PYTHONPATH" || echo "yoda-config could not be found: you
>>>> may need to manually set paths to libYODA and the yoda Python
>>>> package" 1>&2
>>>>
>>>> And morever rivet crashes for me ....I am investigating - probably I am
>>>> doing something wrong...:
>>>>
>>>> ./rivet
>>>> 'import site' failed; use -v for traceback
>>>> Traceback (most recent call last):
>>>>    File "./rivet", line 20, in <module>
>>>>      import os, sys
>>>>    File
>>>> "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-test/Python/2.7.3/x86_64-slc6-gcc48-opt/lib/python2.7/os.py",
>>>>
>>>> line 398, in <module>
>>>>      import UserDict
>>>>    File
>>>> "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-test/Python/2.7.3/x86_64-slc6-gcc48-opt/lib/python2.7/UserDict.py",
>>>>
>>>> line 84, in <module>
>>>>      _abcoll.MutableMapping.register(IterableUserDict)
>>>>    File
>>>> "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-test/Python/2.7.3/x86_64-slc6-gcc48-opt/lib/python2.7/abc.py",
>>>>
>>>> line 109, in register
>>>>      if issubclass(subclass, cls):
>>>>    File
>>>> "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-test/Python/2.7.3/x86_64-slc6-gcc48-opt/lib/python2.7/abc.py",
>>>>
>>>> line 184, in __subclasscheck__
>>>>      cls._abc_negative_cache.add(subclass)
>>>>    File
>>>> "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-test/Python/2.7.3/x86_64-slc6-gcc48-opt/lib/python2.7/_weakrefset.py",
>>>>
>>>> line 84, in add
>>>>      self.data.add(ref(item, self._remove))
>>>> TypeError: cannot create weak reference to 'classobj' object
>>> Ok, that is *really* weird :-(  I think that "import site" is a built-in
>>> part of the Python interpreter, so this suggests to me that the Python
>>> you are using is somehow broken. The rivet script doesn't even try to
>>> import the rivet module until long after this sort of thing, once the
>>> command-line parsing has been done, etc.
>>>
>>> Andy
>>>
>>>
>>>> On 10/22/13 9:17 PM, Dmitri Konstantinov wrote:
>>>>> Hi Andy,
>>>>>
>>>>> I have reloaded GENSER tarball repository with updated rc version of
>>>>> Rivet 2.0.0.
>>>>> I will let you know tomorrow after nightly builds.
>>>>>
>>>>> You are always welcome,
>>>>>   Dima
>>>>>
>>>>>
>>>>> On 10/22/13 5:20 PM, Andy Buckley wrote:
>>>>>> Hi again Dima (& Anton),
>>>>>>
>>>>>> Thanks for the feedback, and apologies for the longer than
>>>>>> expected time
>>>>>> that it took to sort out this and a couple of other issues. I believe
>>>>>> the setting of YODA's LD_LIBRARY_PATH should now work (as should
>>>>>> auto-detection of the YODA PYTHONPATH) even when they are
>>>>>> installed into
>>>>>> separate directory hierarchies. If not, the next version of YODA will
>>>>>> provide a script to help with environment setup. We also fixed a last
>>>>>> (?!) few minor bugs detected by the Herwig++ validation suite.
>>>>>>
>>>>>> I have updated the Rivet-2.0.0rc tarballs with this new version:
>>>>>> would
>>>>>> you please try to build this and see if it now works as expected?
>>>>>> We are
>>>>>> then set to *finally* make this Rivet 2.0.0 release!
>>>>>>
>>>>>> Thanks,
>>>>>> Andy
>>>>>>
>>>>>>
>>>>>> On 09/10/13 12:18, Dmitri Konstantinov wrote:
>>>>>>> Hi Andy,
>>>>>>>
>>>>>>> I have tried to run rivet 2.0.0rc from temporary installation place:
>>>>>>>
>>>>>>> source
>>>>>>> /afs/cern.ch/sw/lcg/external/gcc/4.8.0/x86_64-slc6-gcc48-opt/setup.sh
>>>>>>>
>>>>>>>
>>>>>>> cd
>>>>>>> /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-preview/MCGenerators_lcgcmtpreview/rivet/2.0.0rc/x86_64-slc6-gcc48-opt/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> source ../rivetenv.sh
>>>>>>>
>>>>>>> ./rivet --help
>>>>>>>
>>>>>>> And it says:
>>>>>>>
>>>>>>> -bash-4.1$ rivet --help
>>>>>>> The rivet Python module could not be loaded: is your PYTHONPATH set
>>>>>>> correctly?
>>>>>>>
>>>>>>> While same procedure for rivet 1.8.3 works for me.
>>>>>>> (
>>>>>>> /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GENSER/lcgcmake-install-preview/MCGenerators_lcgcmtpreview/rivet/1.8.3/x86_64-slc6-gcc48-opt/bin/
>>>>>>>
>>>>>>>
>>>>>>> )
>>>>>>>
>>>>>>> For both cases my initial (before rivetenv.sh execution)
>>>>>>> PYTHONPATH was
>>>>>>> not defined.
>>>>>>>
>>>>>>> Could you please take a look?
>>>>>>>
>>>>>>> Cheers,
>>>>>>>    Dima
>>>>>>>
>>>>>>>
>>>>>>> On 10/9/13 12:00 PM, Dmitri Konstantinov wrote:
>>>>>>>> Hi Andy,
>>>>>>>>
>>>>>>>> Great news! :)
>>>>>>>>
>>>>>>>>   From genser side we have added Rivet 2.0.0rc and YODA 1.0.3 to
>>>>>>>> our
>>>>>>>> preview configuration.
>>>>>>>> It was successfully compiled for x86_64-slc6-gcc48-opt,
>>>>>>>> x86_64-slc6-gcc46-opt, x86_64-slc5-gcc46-opt, x86_64-mac108-gcc42.
>>>>>>>>
>>>>>>>> Though I have not tried to run rivet itself.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>          Dima
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 10/9/13 1:56 AM, Andy Buckley wrote:
>>>>>>>>> Hi Anton and Genser,
>>>>>>>>>
>>>>>>>>> We *finally* have a release candidate for Rivet 2.0.0! This has
>>>>>>>>> taken an
>>>>>>>>> extraordinary length of time to make... but the testing was
>>>>>>>>> definitely
>>>>>>>>> worth doing and it's the best Rivet yet. We hope to make the
>>>>>>>>> proper
>>>>>>>>> 2.0.0 release in the next few days, but it's best that we
>>>>>>>>> provide you
>>>>>>>>> with a preview to test that we didn't break anything in the
>>>>>>>>> last few
>>>>>>>>> updates! It works fine on my system, on lxplus6, and in our
>>>>>>>>> automated
>>>>>>>>> build system, so hopefully there should be no problems.
>>>>>>>>>
>>>>>>>>> Could you please run a quick test build, and a couple of
>>>>>>>>> analyses in
>>>>>>>>> mcplots if you have a setup to use our YODA histogram interface
>>>>>>>>> already,
>>>>>>>>> and let us know if you encounter any problems? The code to use
>>>>>>>>> is the
>>>>>>>>> Rivet 2.0.0rc tarball from http://www.hepforge.org/downloads/rivet
>>>>>>>>> , and
>>>>>>>>> the new version 1.0.3 of YODA, from
>>>>>>>>> http://www.hepforge.org/downloads/yoda
>>>>>>>>>
>>>>>>>>> If all goes well, we will release Rivet 2.0.0 this week, and
>>>>>>>>> shortly
>>>>>>>>> afterward we will produce version 1.8.4 (the guaranteed last
>>>>>>>>> point in
>>>>>>>>> the 1.x series) and 2.0.1, which will include equal sets of new
>>>>>>>>> analysis
>>>>>>>>> codes from ATLAS, CMS, and LHCb. Just so you know what is
>>>>>>>>> planned ;-)
>>>>>>>>>
>>>>>>>>> Thanks again,
>>>>>>>>> Andy & the rest of the Rivet team
>>>>>>>>>
>>>
>>
> 


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


More information about the Rivet mailing list