|
[Rivet] issue with linking fjcontrib with rivetRaghav Kunnawalkam Elayavalli raghav.k.e at cern.chTue 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 |