[Rivet] unusual segfault:11 while getting a simple jet projection

Raghav Kunnawalkam Elayavalli raghav.k.e at cern.ch
Thu May 12 10:01:06 BST 2016


Hi Holger,

I just realized what i was doing. The veto wasnt the issue since it did print the correct jet pT. due to the type cast of the fastjet vs jets i think.
I needed to have
      const FastJets& Ajets = applyProjection<FastJets>(event, "Jets");
      const Jets ajets = Ajets.jetsByPt(30*GeV);
instead of
      Jets ajets = applyProjection<FastJets>(event, "Jets").jetsByPt(30*GeV);

So now it does what its supposed to do.

Cheers,
Raghav


On May 12, 2016, at 10:53 AM, Holger Schulz <holger.schulz at durham.ac.uk<mailto:holger.schulz at durham.ac.uk>> wrote:


Hi Raghav,


Looks like you don't have a jet, i.e. ajet.size() might be 0 and
by explicitly accessing ajets[0] the segafault seems to come in.

Could you try a
if (ajets.size()==0) vetoEvent;

just before the cout?

Holger


On 12/05/16 09:21, Raghav Kunnawalkam Elayavalli wrote:
Hi Rivet Experts,

Im seeing a very weird seg fault when i get the jet projection. I attached the analysis code below in [1] and the error message in [2]. I cant for the life of me figure out what is causing this seg fault when i have other (much more complicated) analysis which use the exact same setup and those work fine.

Cheers
Raghav

[1] simple code:
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"

namespace Rivet {

  class JEWEL_test : public Analysis {
  public:

    JEWEL_test()
      : Analysis("JEWEL_test")
    {    }

    void init() {
      FinalState fs(-5.0, 5.0, 0.150*GeV);
      addProjection(fs, "FS");
      addProjection(FastJets(fs, FastJets::ANTIKT, 0.4), "Jets");
      _h_njets = bookHisto1D("njets", 10, 0, 10);
    }

    void analyze(const Event& event) {
      const double weight = event.weight();
      Jets ajets = applyProjection<FastJets>(event, "Jets").jetsByPt(30*GeV);
      std::cout<<"ajets leading jet pT = "<<ajets[0].pT()<<std::endl;
      _h_njets->fill(ajets.size(), weight);
    }

    void finalize() {
      scale(_h_njets, crossSection()/picobarn/sumOfWeights());
    }
  private:
    Histo1DPtr _h_njets;
  };

  DECLARE_RIVET_PLUGIN(JEWEL_test);
}

[2]: Error message:
pb-d-128-141-166-103:ANALYSIS raghav$ rivet -a JEWEL_test ../out.hepmc
Rivet 2.4.1 running on machine pb-d-128-141-166-103.cern.ch<http://pb-d-128-141-166-103.cern.ch/> (x86_64) at 2016-05-12 10:17:31
Rivet.Analysis.Handler: WARN  Analysis 'JEWEL_test' is unvalidated: be careful, it may be broken!
Reading events from '../out.hepmc'
#--------------------------------------------------------------------------
#                         FastJet release 3.2.0
#                 M. Cacciari, G.P. Salam and G. Soyez
#     A software package for jet finding and analysis at colliders
#                           http://fastjet.fr<http://fastjet.fr/>
#
# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package
# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].
#
# FastJet is provided without warranty under the terms of the GNU GPLv2.
# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code
# and 3rd party plugin jet algorithms. See COPYING file for details.
#--------------------------------------------------------------------------
ajets leading jet pT = 48.0278
Segmentation fault: 11





_______________________________________________
Rivet mailing list
Rivet at projects.hepforge.org<mailto:Rivet at projects.hepforge.org>
https://www.hepforge.org/lists/listinfo/rivet


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20160512/0e0dbe3a/attachment.html>


More information about the Rivet mailing list