package beast.evolution.branchratemodel; import beast.core.Description; import beast.core.parameter.RealParameter; import beast.evolution.tree.Node; /** * @author Alexei Drummond */ @Description("Defines a mean rate for each branch in the beast.tree.") public class StrictClockModel extends BranchRateModel.Base { //public Input<RealParameter> muParameterInput = new Input<>("clock.rate", "the clock rate (defaults to 1.0)"); RealParameter muParameter; @Override public void initAndValidate() { muParameter = meanRateInput.get(); if (muParameter != null) { muParameter.setBounds(Math.max(0.0, muParameter.getLower()), muParameter.getUpper()); mu = muParameter.getValue(); } } @Override public double getRateForBranch(final Node node) { return mu; } @Override public boolean requiresRecalculation() { mu = muParameter.getValue(); return true; } @Override protected void restore() { mu = muParameter.getValue(); super.restore(); } @Override protected void store() { mu = muParameter.getValue(); super.store(); } private double mu = 1.0; }