if (logger.isDebugEnabled()) logger.debug(baseStateName + "=" + baseStateProb +", " + mappingVector.toString() + ", " + cumulativeProbVector.toString());
    protected Vector computeCompensatedStateProbs(String actionName, String variantSetting, AssetStateDimension baseStateDimension, AssetStateDimension compensatedDimension, StateDimensionEstimation estimatedBaseStateDimension) {        Iterator baseStateIterator = baseStateDimension.getPossibleStates().iterator();        Vector cumulativeProbVector = mediatedTechSpecMap.getEmptyCompensationVector(compensatedDimension);        while (baseStateIterator.hasNext()) {            String baseStateName = ((AssetState)baseStateIterator.next()).getName();            double baseStateProb = 0.0;            try {               baseStateProb = estimatedBaseStateDimension.getProbability(baseStateName);            }            catch (BelievabilityException e) {                logger.error(e.toString());            }            Vector mappingVector = mediatedTechSpecMap.mapCompensation(actionName, baseStateName, variantSetting);            if (cumulativeProbVector.size() != mappingVector.size()) {                logger.error("Bad Compensatory TechSpecs");            }            for (int i=0; i < mappingVector.size()-1; i++) {                ((StateProb)cumulativeProbVector.elementAt(i)).setProb(((StateProb)cumulativeProbVector.elementAt(i)).getProb() + baseStateProb * ((StateProb)mappingVector.elementAt(i)).getProb());            }        }        return cumulativeProbVector;    }