[Rivet] Beware of vector<Histo1DPtr>

Holger Schulz holger.schulz at durham.ac.uk
Thu Aug 7 14:56:27 BST 2014


Hi,

I just tracked down a crash in CMS_2011_S8884919 when
running rivet(HEAD) with yoda (HEAD).

The culprit was that the histogram pointers were stored in an std::vector.
After a couple 100 events,  an assertion was caught in yodas BinSeacher.h,
line 219 (trunk):

    assert(x >= _edges[index] && x < _edges[index+1]);


In the case of the crash the edges for some reason were infinite while 
the to
be filled value (x) was 63. It may be important to note that this was 
happening
when the last item of the vector was being processed.

This crash goes away when declaring

    Histo1DPtr _h_dNch_dn[4];

instead of
         vector<Histo1DPtr> _h_dNch_dn;


I am not sure right now if one should dig deeper in the histogram booking
or just avoid declaring vectors of Histo1DPtr.

Holger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20140807/bd9d0af3/attachment.html>


More information about the Rivet mailing list