private TPopulationAnalysis convertedAnalysis <TPopulationAnalysis>(PopulationAnalysis templatePopulationAnalysis) where TPopulationAnalysis : PopulationAnalysis, new()
        {
            //same type? No need to convert the template. It can be use as is
            if (templatePopulationAnalysis.GetType() == typeof(TPopulationAnalysis))
            {
                return(templatePopulationAnalysis.DowncastTo <TPopulationAnalysis>());
            }

            var typedAnalysis = new TPopulationAnalysis();

            typedAnalysis.UpdatePropertiesFrom(templatePopulationAnalysis, _cloner);
            return(typedAnalysis);
        }