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));
  }
}

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 ) ) ; } }
return a list of parameters that are required
