question: public void selectParameters ( List < Parameter > params ) { if ( nodeHeightPrior == TreePriorType . CONSTANT ) { params . add ( getParameter ( "constant.popSize" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXPONENTIAL ) { params . add ( getParameter ( "exponential.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { params . add ( getParameter ( "exponential.growthRate" ) ) ; } else { params . add ( getParameter ( "exponential.doublingTime" ) ) ; } } else if ( nodeHeightPrior == TreePriorType . LOGISTIC ) { params . add ( getParameter ( "logistic.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { params . add ( getParameter ( "logistic.growthRate" ) ) ; } else { params . add ( getParameter ( "logistic.doublingTime" ) ) ; } params . add ( getParameter ( "logistic.t50" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXPANSION ) { params . add ( getParameter ( "expansion.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { params . add ( getParameter ( "expansion.growthRate" ) ) ; } else { params . add ( getParameter ( "expansion.doublingTime" ) ) ; } params . add ( getParameter ( "expansion.ancestralProportion" ) ) ; } else if ( nodeHeightPrior == TreePriorType . SKYLINE ) { params . add ( getParameter ( "skyline.popSize" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXTENDED_SKYLINE ) { params . add ( getParameter ( "demographic.populationSizeChanges" ) ) ; params . add ( getParameter ( "demographic.populationMean" ) ) ; } else if ( nodeHeightPrior == TreePriorType . GMRF_SKYRIDE ) { params . add ( getParameter ( "skyride.precision" ) ) ; } else if ( nodeHeightPrior == TreePriorType . SKYGRID ) { params . add ( getParameter ( "skygrid.precision" ) ) ; } else if ( nodeHeightPrior == TreePriorType . YULE || nodeHeightPrior == TreePriorType . YULE_CALIBRATION ) { params . add ( getParameter ( "yule.birthRate" ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH || nodeHeightPrior == TreePriorType . BIRTH_DEATH_INCOMPLETE_SAMPLING ) { params . add ( getParameter ( BirthDeathModelParser . MEAN_GROWTH_RATE_PARAM_NAME ) ) ; params . add ( getParameter ( BirthDeathModelParser . RELATIVE_DEATH_RATE_PARAM_NAME ) ) ; if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_INCOMPLETE_SAMPLING ) params . add ( getParameter ( BirthDeathModelParser . BIRTH_DEATH + "." + BirthDeathModelParser . SAMPLE_PROB ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_SERIAL_SAMPLING ) { params . add ( getParameter ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . LAMBDA ) ) ; params . add ( getParameter ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . RELATIVE_MU ) ) ; Parameter psi = getParameter ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . PSI ) ; if ( options . maximumTipHeight > 0 ) { psi . setInitial ( MathUtils . round ( 1 / options . maximumTipHeight , 4 ) ) ; } params . add ( psi ) ; params . add ( getParameter ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . ORIGIN ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_BASIC_REPRODUCTIVE_NUMBER ) { params . add ( getParameter ( BirthDeathEpidemiologyModelParser . ORIGIN ) ) ; params . add ( getParameter ( BirthDeathEpidemiologyModelParser . R0 ) ) ; params . add ( getParameter ( BirthDeathEpidemiologyModelParser . RECOVERY_RATE ) ) ; params . add ( getParameter ( BirthDeathEpidemiologyModelParser . SAMPLING_PROBABILITY ) ) ; } }
target:  return a list of parameters that are required