public void selectOperators(List<Operator> ops){
  if (nodeHeightPrior == TreePriorType.CONSTANT) {
    ops.add(getOperator("constant.popSize"));
  }
 else   if (nodeHeightPrior == TreePriorType.EXPONENTIAL) {
    ops.add(getOperator("exponential.popSize"));
    if (parameterization == TreePriorParameterizationType.GROWTH_RATE) {
      ops.add(getOperator("exponential.growthRate"));
    }
 else {
      ops.add(getOperator("exponential.doublingTime"));
    }
  }
 else   if (nodeHeightPrior == TreePriorType.LOGISTIC) {
    ops.add(getOperator("logistic.popSize"));
    if (parameterization == TreePriorParameterizationType.GROWTH_RATE) {
      ops.add(getOperator("logistic.growthRate"));
    }
 else {
      ops.add(getOperator("logistic.doublingTime"));
    }
    ops.add(getOperator("logistic.t50"));
  }
 else   if (nodeHeightPrior == TreePriorType.EXPANSION) {
    ops.add(getOperator("expansion.popSize"));
    if (parameterization == TreePriorParameterizationType.GROWTH_RATE) {
      ops.add(getOperator("expansion.growthRate"));
    }
 else {
      ops.add(getOperator("expansion.doublingTime"));
    }
    ops.add(getOperator("expansion.ancestralProportion"));
  }
 else   if (nodeHeightPrior == TreePriorType.SKYLINE) {
    ops.add(getOperator("skyline.popSize"));
    ops.add(getOperator("skyline.groupSize"));
  }
 else   if (nodeHeightPrior == TreePriorType.GMRF_SKYRIDE) {
    ops.add(getOperator("gmrfGibbsOperator"));
  }
 else   if (nodeHeightPrior == TreePriorType.SKYGRID) {
    ops.add(getOperator("gmrfSkyGridGibbsOperator"));
    ops.add(getOperator("skygrid.precision"));
  }
 else   if (nodeHeightPrior == TreePriorType.EXTENDED_SKYLINE) {
    ops.add(getOperator("demographic.populationMean"));
    ops.add(getOperator("demographic.popSize"));
    ops.add(getOperator("demographic.indicators"));
    ops.add(getOperator("demographic.scaleActive"));
  }
 else   if (nodeHeightPrior == TreePriorType.YULE || nodeHeightPrior == TreePriorType.YULE_CALIBRATION) {
    ops.add(getOperator("yule.birthRate"));
  }
 else   if (nodeHeightPrior == TreePriorType.BIRTH_DEATH || nodeHeightPrior == TreePriorType.BIRTH_DEATH_INCOMPLETE_SAMPLING) {
    ops.add(getOperator(BirthDeathModelParser.MEAN_GROWTH_RATE_PARAM_NAME));
    ops.add(getOperator(BirthDeathModelParser.RELATIVE_DEATH_RATE_PARAM_NAME));
    if (nodeHeightPrior == TreePriorType.BIRTH_DEATH_INCOMPLETE_SAMPLING)     ops.add(getOperator(BirthDeathModelParser.BIRTH_DEATH + "." + BirthDeathModelParser.SAMPLE_PROB));
  }
 else   if (nodeHeightPrior == TreePriorType.BIRTH_DEATH_SERIAL_SAMPLING) {
    ops.add(getOperator(BirthDeathSerialSamplingModelParser.BDSS + "." + BirthDeathSerialSamplingModelParser.LAMBDA));
    ops.add(getOperator(BirthDeathSerialSamplingModelParser.BDSS + "." + BirthDeathSerialSamplingModelParser.RELATIVE_MU));
    ops.add(getOperator(BirthDeathSerialSamplingModelParser.BDSS + "." + BirthDeathSerialSamplingModelParser.PSI));
    ops.add(getOperator(BirthDeathSerialSamplingModelParser.BDSS + "." + BirthDeathSerialSamplingModelParser.ORIGIN));
  }
 else   if (nodeHeightPrior == TreePriorType.BIRTH_DEATH_BASIC_REPRODUCTIVE_NUMBER) {
    ops.add(getOperator(BirthDeathEpidemiologyModelParser.ORIGIN));
    ops.add(getOperator(BirthDeathEpidemiologyModelParser.R0));
    ops.add(getOperator(BirthDeathEpidemiologyModelParser.RECOVERY_RATE));
    ops.add(getOperator(BirthDeathEpidemiologyModelParser.SAMPLING_PROBABILITY));
  }
}

public void selectOperators ( List < Operator > ops ) { if ( nodeHeightPrior == TreePriorType . CONSTANT ) { ops . add ( getOperator ( "constant.popSize" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXPONENTIAL ) { ops . add ( getOperator ( "exponential.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { ops . add ( getOperator ( "exponential.growthRate" ) ) ; } else { ops . add ( getOperator ( "exponential.doublingTime" ) ) ; } } else if ( nodeHeightPrior == TreePriorType . LOGISTIC ) { ops . add ( getOperator ( "logistic.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { ops . add ( getOperator ( "logistic.growthRate" ) ) ; } else { ops . add ( getOperator ( "logistic.doublingTime" ) ) ; } ops . add ( getOperator ( "logistic.t50" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXPANSION ) { ops . add ( getOperator ( "expansion.popSize" ) ) ; if ( parameterization == TreePriorParameterizationType . GROWTH_RATE ) { ops . add ( getOperator ( "expansion.growthRate" ) ) ; } else { ops . add ( getOperator ( "expansion.doublingTime" ) ) ; } ops . add ( getOperator ( "expansion.ancestralProportion" ) ) ; } else if ( nodeHeightPrior == TreePriorType . SKYLINE ) { ops . add ( getOperator ( "skyline.popSize" ) ) ; ops . add ( getOperator ( "skyline.groupSize" ) ) ; } else if ( nodeHeightPrior == TreePriorType . GMRF_SKYRIDE ) { ops . add ( getOperator ( "gmrfGibbsOperator" ) ) ; } else if ( nodeHeightPrior == TreePriorType . SKYGRID ) { ops . add ( getOperator ( "gmrfSkyGridGibbsOperator" ) ) ; ops . add ( getOperator ( "skygrid.precision" ) ) ; } else if ( nodeHeightPrior == TreePriorType . EXTENDED_SKYLINE ) { ops . add ( getOperator ( "demographic.populationMean" ) ) ; ops . add ( getOperator ( "demographic.popSize" ) ) ; ops . add ( getOperator ( "demographic.indicators" ) ) ; ops . add ( getOperator ( "demographic.scaleActive" ) ) ; } else if ( nodeHeightPrior == TreePriorType . YULE || nodeHeightPrior == TreePriorType . YULE_CALIBRATION ) { ops . add ( getOperator ( "yule.birthRate" ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH || nodeHeightPrior == TreePriorType . BIRTH_DEATH_INCOMPLETE_SAMPLING ) { ops . add ( getOperator ( BirthDeathModelParser . MEAN_GROWTH_RATE_PARAM_NAME ) ) ; ops . add ( getOperator ( BirthDeathModelParser . RELATIVE_DEATH_RATE_PARAM_NAME ) ) ; if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_INCOMPLETE_SAMPLING ) ops . add ( getOperator ( BirthDeathModelParser . BIRTH_DEATH + "." + BirthDeathModelParser . SAMPLE_PROB ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_SERIAL_SAMPLING ) { ops . add ( getOperator ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . LAMBDA ) ) ; ops . add ( getOperator ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . RELATIVE_MU ) ) ; ops . add ( getOperator ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . PSI ) ) ; ops . add ( getOperator ( BirthDeathSerialSamplingModelParser . BDSS + "." + BirthDeathSerialSamplingModelParser . ORIGIN ) ) ; } else if ( nodeHeightPrior == TreePriorType . BIRTH_DEATH_BASIC_REPRODUCTIVE_NUMBER ) { ops . add ( getOperator ( BirthDeathEpidemiologyModelParser . ORIGIN ) ) ; ops . add ( getOperator ( BirthDeathEpidemiologyModelParser . R0 ) ) ; ops . add ( getOperator ( BirthDeathEpidemiologyModelParser . RECOVERY_RATE ) ) ; ops . add ( getOperator ( BirthDeathEpidemiologyModelParser . SAMPLING_PROBABILITY ) ) ; } }
return a list of operators that are required
