[Rivet] issue with linking fjcontrib with rivet

Andy Buckley andy.buckley at cern.ch
Tue Jun 21 21:45:15 BST 2016


Hi Raghav,

You can add -l and other compiler flags as necessary to the end of the 
rivet-buildplugin command line and they will be used. Indeed we can't 
autodetect what libraries are needed beyond the standard ones (and the 
compatible flags) used to build Rivet itself.

Andy


On 21/06/16 13:38, Raghav Kunnawalkam Elayavalli wrote:
> 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
>
>
>
> _______________________________________________
> Rivet mailing list
> Rivet at projects.hepforge.org
> https://www.hepforge.org/lists/listinfo/rivet
>


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


More information about the Rivet mailing list