Compiling and using library dependent on both Fastjet and St* classes

Once one has installed a local copy of fastjet on RCF (follow these directions if you have not done this yet), it takes a little more work to compile something that uses both St* and fastjet classes (if not using St* derived classes, compiling as usual with a Makefile will work fine).

Example code using St* and FJ classes can be found here.

The thing to note is that the fastjet::PseudoJet does not work with root cint libraries, so one cannot use it in any .h files when compiling a library. The above linked code has a workaround (saving things in a temporary container and then converting to PseudoJet at runtime, very clunky). If the fastjet install has been linked properly in the users .cshrc file, any appropriate code can be compiled then using

cons EXTRA_CPPFLAGS=`fastjet-config --cxxflags` SOFLAGS='-shared -fPIC -m32 -Wno-missing-braces'

-m32 is a required flag for this to compile on RCF. This specific example is a shared library, so we are using -shared and -fPIC.
If you have NOT set your PATH and LD_LIBRARY_PATH to include fastjet, cons will not be able to find fastjet and the compilation will fail

If everything has been done properly, it should compile without error. To test on some picoDst files, one can run /StRoot/StFemtoDstMaker/macros/convertPicoDst.C (there is also an xml in the same folder to submit a job and run the macro) to create femtoDst files. This will run fastjet based on given input parameters (right now, only R and a min pt cut), and create a femtoDst.root file that includes event, track and tower hit information, as well as a jet branch.