Yes, this is correct ! You might need also to fix the normalisation parameter, since a simple unbinned likelihood fit does not fit the normalisation. If you leave it floating, you might have problem in convergence in Minuit since some parameters will be 100% correlated
So, a more convenient way should consist in removing one parameter from the fit, for example the last one, par(n), and computing this parameter inside the function so that the integral of the function is always 1.
double fitFunction( x, par(0)... par(n-1) )
{
par(n) = helperFunction( par );
value = function( x , par(0) ... par(n) );
return value ;
}