custom p.d.f.s
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