if (createHistBackOffMap) {   histBackOffMap[level - 1].put(oldTrans.history(), currTrans.history()); }
  protected void savePrecomputeData(CountsTable trainerCounts, Filter filter) {    Transition oldTrans;    Transition currTrans = null;    Iterator keys = trainerCounts.keySet().iterator();    while (keys.hasNext()) {      TrainerEvent event = (TrainerEvent)keys.next();      if (!filter.pass(event))        continue;      for (int level = 0; level < numLevels; level++) {	oldTrans = currTrans;        Transition transition = structure.getTransition(event, level);        Event history = transition.history();        CountsTrio trio = counts[level];        MapToPrimitive.Entry histEntry = trio.history().getEntry(history);        MapToPrimitive.Entry transEntry = trio.transition().getEntry(transition);        // take care of case where history was removed due to its low count        // or because we are using smoothing parameters gotten from a file        if (histEntry == null)          continue;        currTrans = (Transition)transEntry.getKey();        if (level > 0) {          backOffMap[level - 1].put(oldTrans, currTrans);	}      }    }  }