def _define_lo_fragment(self, mo, num_of_AOs, AO_frg_tbl, CSC):
        judge = {}
        total = 0.0
        for ao in range(num_of_AOs):
            frg_name = AO_frg_tbl[ao]
            v = math.fabs(CSC.get(ao, mo))
            total += v
            judge.setdefault(frg_name, 0.0)
            judge[frg_name] += v

        for frg_name in judge.keys():
            judge[frg_name] /= total

        ranked_judge = sorted(judge.items(), key=lambda x: x[1], reverse=True)

        for rank, (k, v) in enumerate(ranked_judge):
            logger.info(
                "{header} [{rank}] name:{name}, score:{score:.3f}".format(
                    header=self.header, rank=rank + 1, name=k, score=v
                )
            )

        high_score = ranked_judge[0][1]
        if high_score < 0.5:
            logger.warning(
                "{header} 1st score is too small: {score}".format(
                    header=self.header, score=high_score
                )
            )

        return ranked_judge[0][0]