Skip to content

custom p.d.f.s

Marian Stahl requested to merge custom_pdfs into master

We had problems to generate the dictionary. The solution was to remove the custom ROOT find module from the cmakeModules directory and call include(${ROOT_USE_FILE}). ROOT's cmake configuration is then picked up from it's cvmfs installation directory and the ROOT_USE_FILE provides the correct implementation of ROOT_GENERATE_DICTIONARY. Only if this is correctly set up, the dictionary is build including pcm and rootmap file. These need to be placed in the build/lib directory. You need the set(CMAKE_INSTALL_LIBDIR ${CMAKE_BINARY_DIR}/lib) and set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") commands for this.
Note that the new p.d.f.s can be only directly used as a factory command, if the class dictionary is correctly generated with ROOT (it requires to call the ClassImp(RooIpatia2) and ClassDefOverride(RooIpatia2,1) macros in the cc and h file)
Another problem concerned a linking error: something with undefined refences and vtable. The problem was caused by a missing const declaration of the virtual evaluate method, which is defined in the abstract RooFit base class

Edited by Marian Stahl

Merge request reports