[Rivet] issue with linking fjcontrib with rivet

Raghav Kunnawalkam Elayavalli raghav.k.e at cern.ch
Tue Jun 21 13:38:58 BST 2016


Hey,

I figured out the issue here. we would have to manually build the analysis since the rivet-buildanalysis doesnt point to all the necessary libraries.
in my case i needed to add the -lRecursiveTools and now it found the proper library.

Cheers
Raghav
On Jun 21, 2016, at 2:06 PM, Raghav Kunnawalkam Elayavalli <raghav.k.e at cern.ch<mailto:raghav.k.e at cern.ch>> wrote:

Hi Rivet experts,

I would require the usage of one of the tools available in fjcontrib so i installed it (http://fastjet.hepforge.org/contrib/) on my local machine pointing to the location of my fastjet config.

It seems to be installed but now when i load it in rivet by
#include "fastjet/contrib/SoftDrop.hh"
for example and just try to run the example given here: http://fastjet.hepforge.org/svn/contrib/contribs/RecursiveTools/tags/1.0.0/example_softdrop.cc

in my rivet example analysis:
    /// http://journals.aps.org/prd/pdf/10.1103/PhysRevD.91.111501
    // Anti kT jet is reclustered using CA and min(pT1, pT2)/(pT1+pT2) > z_cut * (R12/Rj)^\beta
    // for jets that satisfy this condition, z_g = min(pT1,pT2)/(pT1+pT2)
    void SoftDrop(const fastjet::PseudoJet &j, double z_cut, double beta, double z, double mu)
    {
      // give the soft drop groomer a short name
      // Use a symmetry cut z > z_cut R^beta
      // By default, there is no mass-drop requirement
      fastjet::contrib::SoftDrop sd(beta, z_cut);
      if(printDebug)
std::cout<<"SoftDrop groomer is: "<<sd.description()<<std::endl;
      PseudoJet sd_jet = sd(j);
      assert(sd_jet != 0); //because soft drop is a groomer (not a tagger), it should always return a soft-dropped jet
      if(printDebug){
std::cout << "  delta_R between subjets: " << sd_jet.structure_of<fastjet::contrib::SoftDrop>().delta_R() << std::endl;
std::cout << "  symmetry measure(z):     " << sd_jet.structure_of<fastjet::contrib::SoftDrop>().symmetry() << std::endl;
std::cout << "  mass drop(mu):           " << sd_jet.structure_of<fastjet::contrib::SoftDrop>().mu() << std::endl;
      }
      z = sd_jet.structure_of<fastjet::contrib::SoftDrop>().symmetry();
      mu = sd_jet.structure_of<fastjet::contrib::SoftDrop>().mu();
    }


it compiles fine (as in i dont see any error) but then it cant find the analysis (when i ask for rivet --list-analysis)  and gives me the following error
kunnawa:ANALYSIS raghav$ rivet --list-analyses
Rivet.AnalysisLoader: WARN  Cannot open /Users/raghav/WORK/JEWEL/ANALYSIS/RivetJEWEL_SubJet.so: dlopen(/Users/raghav/WORK/JEWEL/ANALYSIS/RivetJEWEL_SubJet.so, 1): Symbol not found: __ZTVN7fastjet7contrib8SoftDropE
  Referenced from: /Users/raghav/WORK/JEWEL/ANALYSIS/RivetJEWEL_SubJet.so
  Expected in: flat namespace
 in /Users/raghav/WORK/JEWEL/ANALYSIS/RivetJEWEL_SubJet.so

this sounds like an annoying linker library error, so i was wondering is anyone successfully linked the fastjet contrib and could use those function? thanks!

I found this tutorial from Andy https://rivet.hepforge.org/rivet-tutorial-200b3.pdf and it mentions in slide 13 about a hack required for getting fjcontrib to work. is there any more on this?

thanks a lot!

Cheers
Raghav

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20160621/588a5be4/attachment.html>


More information about the Rivet mailing list