Return copy and score after being applied other system and soft features.

        Args:

        - other(system, optional): system to apply just before soft features.

        Return(tuple): tuple of the resulting system and its score.

def concrete(self, other=None):
        """
        Return copy and score after being applied other system and soft features.

        Args:

        - other(system, optional): system to apply just before soft features.

        Return(tuple): tuple of the resulting system and its score.
        """

        new_system = self.clone()
        if other:
            new_system.applyFeatures(other, missing="other")
        soft_features = self.getValue(SoftFeatures.SOFT, [])
        score = 0
        for f in sorted(soft_features, key=lambda f: f.soft, reverse=True):
            try:
                new_system.applyFeatures(f, missing="other")
                score += f.soft
            except:
                pass
        new_system.delValue(SoftFeatures.SOFT)
        return new_system, score