[Rivet] Various things for Rivet

Andy Buckley andy.buckley at cern.ch
Fri Jun 30 12:59:02 BST 2017


Hi Christian & al,

Thanks for your work on this. It's very comprehensive.

I would like to benefit from what you've done here: your "alt-devel" 
strategy sounds very similar to the long-term developments that we've 
had planned. Unfortunately those got held up -- for *years*! -- by the 
technical work needed to handle events with systematics weight vectors. 
In collaboration with Jan Fiete, Jochen, and Przemek we recently added 
histogram preloading to the default branch, which will become version 
2.6.0, so some pieces are at least close to release.

As we've already discussed, some of your innovations aren't things that 
we'll want to pull into the main Rivet development line, but others (and 
the documentation bugfixes!) do sound useful. How do you suggest that we 
selectively merge your changes in a git repository into our Mercurial?

Andy


On 30/06/17 11:38, cholm wrote:
> Hi Rivet'ers,
> 
> I haven't heard anything from you on this, so I was wondering what your 
> thoughts are?
> 
> The strategy I've implemented could be called _delayed finalisation_. It 
> requires very few changes to the code Rivet code.  Essentially it is,
> 
> - The addition of the member function Rivet::Analysis::updateAnalysisObject
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#cecb8ad2312d34f6d0419da75fcf812da71072ba) 
> 
> 
> - Return previously booked or added analysis objects from the various 
> Rivet::Analysis::book... member functions
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#2972eed9c689c3872643b980be7a96f49aaedbaehttps://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#2972eed9c689c3872643b980be7a96f49aaedbae) 
> 
> 
> - Some extra signatures for Rivet::AnalysisHandler::init, finalize, 
> getData, and write data
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#d133fcb9ddc3cf12f5a6ff6c841d731f6bf9307b 
> and 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#2b9d0bf2bc568cbb22dfde52711f6970d0a5e02c 
> 
> 
> - The additional tools Rivet::Runner and Rivet::Merger
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#8275cce560a21e545f0c76797440b685c950a7f4 
> and 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#6727eedca3f9146560c1fef138ba16b9e02f5ade) 
> 
> 
> - Some utility classes Rivet::Url and Rivet::Option
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#d91cb7c65ebc03224f5adf1d1c24ec492fe1fa66 
> and 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#a5f40f83729df155ebf4bd7058843117de05ea1c) 
> 
> 
> - The two small applications river-runner and rivet-merger to tie it all 
> together
>    (see 
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#5b0a6a4b3c6eb7a5ff3074825e938dc69edd2257 
> and
> https://gitlab.cern.ch/cholm/myrivet/compare/hg-tipp...master#61196a1d41697601d91fe4f65eb78e1d9753171b) 
> 
> 
> What we gain from this is actually far more
> 
> - We can parallelize the execution of Rivet runs - not just on a single 
> host but over many hosts.  In this way, it's relatively painless to 
> build up large statistics which is especially important for many Heavy 
> Ion analyses
> 
> - One can incrementally increase statistics.  E.g., one might do some 
> test runs over smaller sets of data, then incrementally add more data as 
> needed by simply merging in the new accumulated analysis objects.
> 
> - Studies of sensitivity to different backgrounds.  E.g., one may have 
> distributions of background events from different models or tunes which 
> we then add signal distributions to, and we can study how the signal 
> extraction depends on the background distribution - without re-running 
> everything again.
> 
> - Mixed analyses where the result depends on input from two or more 
> models, collision systems, energies, and so on.  E.g., to do the nuclear 
> modification factor R_AA, one need the pT spectra from both AA and pp. 
> With this, we can prepare the pp spectra in a separate Rivet run, then 
> merge it in before finalisation of the AA run, so that we can calculate 
> the full R_AA directly in the Rivet analysis.
> 
> Please refer to the following documents for more information and details
> 
> - https://gitlab.cern.ch/cholm/myrivet/blob/master/README-parallel.md
> - https://gitlab.cern.ch/cholm/alice-rivet/blob/master/doc/raa/Raa.ipynb
> 
> Also, I made a small tutorial for Python YODA that you might find 
> interesting
> 
> - 
> https://gitlab.cern.ch/cholm/alice-rivet/blob/master/doc/YODA_tutorial.ipynb 
> 
> 
> P.S.: In my gitlab fork of your mercurial repo, I have a bunch of 
> changes that isn't related to the delayed finalization strategy.  Many 
> of these have to do with correcting documentation errors, but others are 
> fixing bugs in the build system.
> 
> P.P.S.: If you have trouble accessing any of the above, please let me know.
> 
> Yours,
> 


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


More information about the Rivet mailing list