Hi @jonas,
Here is a simple macro,
import ROOT
f = ROOT.TFile("DYTreeNoBCut2018Skim.root", "read")
zhTree = f.Get("dyTree")
zM = ROOT.RooRealVar("z_mass_roccor", "z_mass_roccor", 75, 105)
ds = ROOT.RooDataSet("ds", "ds", zhTree, ROOT.RooArgSet(zM))
kest = ROOT.RooKeysPdf("kest", "kest", zM, ds, ROOT.RooKeysPdf.MirrorBoth)
kest.fitTo(ds)
The output is like
[#1] INFO:DataHandling -- RooTreeDataStore::loadValues(ds) Skipping event #2887 because z_mass_roccor cannot accommodate the value 105.694
[#1] INFO:DataHandling -- RooTreeDataStore::loadValues(ds) Skipping event #14014 because z_mass_roccor cannot accommodate the value 105.341
[#1] INFO:DataHandling -- RooTreeDataStore::loadValues(ds) Skipping event #29568 because z_mass_roccor cannot accommodate the value 105.015
[#1] INFO:DataHandling -- RooTreeDataStore::loadValues(ds) Skipping event #35699 because z_mass_roccor cannot accommodate the value 105.244
[#1] INFO:DataHandling -- RooTreeDataStore::loadValues(ds) Skipping ...
[#0] WARNING:DataHandling -- RooTreeDataStore::loadValues(ds) Ignored 46 out-of-range events
[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization
[#1] INFO:Minimization -- The following expressions have been identified as constant and will be precalculated and cached: (kest)
Error in <ROOT::Math::Fitter::SetFCN>: FCN function has zero parameters
Assertion failed: (fResult.get()), function Result, file /tmp/test/root-feedstock/miniforge3/conda-bld/root_base_1649916745549/work/root-source/math/mathcore/inc/Fit/Fitter.h, line 385.
*** Break *** abort
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libCore.6.26.02.so] TUnixSystem::DispatchSignals(ESignals) (no debug info)
[/usr/lib/system/libsystem_platform.dylib] _sigtramp (no debug info)
[/usr/lib/system/libsystem_pthread.dylib] pthread_kill (no debug info)
[/usr/lib/system/libsystem_c.dylib] abort (no debug info)
[/usr/lib/system/libsystem_c.dylib] err (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libRooFitCore.6.26.02.so] RooMinimizer::profileStart() (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libRooFitCore.6.26.02.so] RooAbsPdf::minimizeNLL(RooAbsReal&, RooAbsData const&, RooAbsPdf::MinimizerConfig const&) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libRooFitCore.6.26.02.so] RooAbsPdf::fitTo(RooAbsData&, RooLinkedList const&) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libRooFitCore.6.26.02.so] RooAbsPdf::fitTo(RooAbsData&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&, RooCmdArg const&) (no debug info)
[<unknown binary>] (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy_backend3_10.6.26.02.so] WrapperCall(long, unsigned long, void*, void*, void*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy_backend3_10.6.26.02.so] Cppyy::CallR(long, void*, unsigned long, void*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy3_10.6.26.02.so] CPyCppyy::(anonymous namespace)::InstancePtrExecutor::Execute(long, void*, CPyCppyy::CallContext*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy3_10.6.26.02.so] CPyCppyy::CPPMethod::ExecuteFast(void*, long, CPyCppyy::CallContext*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy3_10.6.26.02.so] CPyCppyy::CPPMethod::ExecuteProtected(void*, long, CPyCppyy::CallContext*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy3_10.6.26.02.so] CPyCppyy::CPPMethod::Call(CPyCppyy::CPPInstance*&, _object*, _object*, CPyCppyy::CallContext*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/lib/libcppyy3_10.6.26.02.so] CPyCppyy::(anonymous namespace)::mp_call(CPyCppyy::CPPOverload*, _object*, _object*) (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyObject_Call (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyEval_EvalFrameDefault (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyEval_Vector (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] call_function (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyEval_EvalFrameDefault (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyEval_Vector (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyRun_SimpleFileObject (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] _PyRun_AnyFileObject (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] Py_RunMain (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] pymain_main (no debug info)
[/Users/zhangzhuolin/miniforge3/envs/my_root/bin/python3.10] main (no debug info)
[/usr/lib/dyld] start (no debug info)
Traceback (most recent call last):
File "/Users/zhangzhuolin/Hbb/MuonTnP/fitTest.py", line 8, in <module>
kest.fitTo(ds)
File "/Users/zhangzhuolin/miniforge3/envs/my_root/lib/python3.10/site-packages/ROOT/_pythonization/_roofit/_rooabspdf.py", line 40, in fitTo
return self._fitTo(*args, **kwargs)
TypeError: none of the 2 overloaded methods succeeded. Full details:
RooFitResult* RooAbsPdf::fitTo(RooAbsData& data, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none()) =>
AbortSignal: abort from C++; program state was reset
RooFitResult* RooAbsPdf::fitTo(RooAbsData& data, const RooLinkedList& cmdList) =>
TypeError: takes at least 2 arguments (1 given)
I run the macro on my Mac M1 in ROOT 6.26/02. The ROOT file is in the CERNBox link, you can check the macro by yourself.
File Link: CERNBox