for mu in in_muons:
            if mu.bitword != 0:
                if mu.qualityBits == 2:
                    _log.debug(print_in_word(mu.bitword))
                    _log.debug(hex(mu.bitword))
        out_muons = output_parser.get_output_muons()
        intermediate_muons = output_parser.get_intermediate_muons()
        ranks = output_parser.get_ranks()
        #### here the number of nonzero ranks is counted
        rank_num_of_non_zeros = 0
        for i in xrange(len(ranks)):
            if ranks[i]!=0:
                rank_num_of_non_zeros = rank_num_of_non_zeros+1
        ####

        _log.info("in_muons : {nz} / {all}".format(nz=non_zero(in_muons), all=len(in_muons)))
        _log.info("num of final non-zero Output-Muons: {nz} / {all}".format(nz=non_zero(out_muons), all=len(out_muons)))#,"), corresponds to ", len(out_muons)/8," Events")
        _log.info("num of intermediate non-zero Output-Muons: {nz} / {all}".format(nz=non_zero(intermediate_muons), all=len(intermediate_muons)))#, "), corresponds to ", len(intermediate_muons)/24," Events" )
        _log.info("n_ranks {nz} / {all}".format(nz=rank_num_of_non_zeros, all=len(ranks)))

        cntr = 0
        while cntr < len(out_muons)+1:
            event = cntr/8
            if non_zero(out_muons[cntr:cntr+8]) == 0:
                for mu in in_muons[event*108:(event+1)*108]:
                    if mu.bitword != 0:
                        _log.debug("input-link, frame: {l}, {fr}".format(l=mu.link, fr=mu.frame))
                        #print "imd: ", non_zero(intermediate_muons[event*24:(event+1)*24])
            else: # do some sorting analysis
                _log.debug("-"*10+"sorting analysis BX"+str(event)+"-"*10)
                _log.debug("-- final muons: --")
        for mu in in_muons:
            if mu.bitword != 0:
                if mu.qualityBits == 2:
                    _log.debug(print_in_word(mu.bitword))
                    _log.debug(hex(mu.bitword))
        out_muons = output_parser.get_output_muons()
        intermediate_muons = output_parser.get_intermediate_muons()
        ranks = output_parser.get_ranks()
        #### here the number of nonzero ranks is counted
        rank_num_of_non_zeros = 0
        for i in xrange(len(ranks)):
            if ranks[i] != 0:
                rank_num_of_non_zeros = rank_num_of_non_zeros + 1
        ####

        _log.info("in_muons : {nz} / {all}".format(nz=non_zero(in_muons),
                                                   all=len(in_muons)))
        _log.info("num of final non-zero Output-Muons: {nz} / {all}".format(
            nz=non_zero(out_muons), all=len(out_muons))
                  )  #,"), corresponds to ", len(out_muons)/8," Events")
        _log.info(
            "num of intermediate non-zero Output-Muons: {nz} / {all}".format(
                nz=non_zero(intermediate_muons), all=len(intermediate_muons))
        )  #, "), corresponds to ", len(intermediate_muons)/24," Events" )
        _log.info("n_ranks {nz} / {all}".format(nz=rank_num_of_non_zeros,
                                                all=len(ranks)))

        cntr = 0
        while cntr < len(out_muons) + 1:
            event = cntr / 8
            if non_zero(out_muons[cntr:cntr + 8]) == 0:
            ranks = output_parser.get_ranks()
            rank_num_of_non_zeros = 0
            for i in xrange(len(ranks)):
                if ranks[i]!=0:
                    rank_num_of_non_zeros = rank_num_of_non_zeros+1

            if pattern in phys_patterns:
                del emu_imd_list[len(intermediate_muons):]

            hist_rnk = create_and_fill_rank_hist(ranks, pattern)
            plot_modifier(hist_rnk, "rank", "N", ROOT.kBlack)
            hist_rnk.Draw()
            canvas.Print("{f}/figures/hw_rank.pdf".format(f=fnames['base']))

        print "{fn}_in_muons :".format(fn=pattern), non_zero(in_muons), "/", len(in_muons)
        print "{fn}_num of final non-zero Output-Muons: ".format(fn=pattern), non_zero(out_muons), "/", len(out_muons)#,"), corresponds to ", len(out_muons)/8," Events"
        
        if not options.nodebug:
            print "{fn}_num of intermediate non-zero Output-Muons: ".format(fn=pattern), non_zero(intermediate_muons), "/" , len(intermediate_muons)#, "), corresponds to ", len(intermediate_muons)/24," Events" 
            print "{fn}_n_ranks".format(fn=pattern), rank_num_of_non_zeros, "/", len(ranks)

        hists_input = create_and_fill_muon_hists(hist_parameters, in_muons, pattern+"in")
        hists_output = create_and_fill_muon_hists(hist_parameters, out_muons, pattern+"out")
        if gt_muons:
            hists_gt = create_and_fill_muon_hists(hist_parameters, gt_muons, pattern+"gt")

        if not options.nodebug:
            hists_imd = create_and_fill_muon_hists(hist_parameters, intermediate_muons, pattern+"imd")
            hists_emu_imd = create_and_fill_muon_hists(hist_parameters, emu_imd_list, pattern+"emuimd")
        
        if options.gtdumps != "":
            _log.info("{info:>90}".format(info="GT PARSING"))
            nbx = 158
            if pattern == "FakeMuons":
                nbx = 91
            gt_fname = os.path.join(
                options.gtdumps,
                "spy1-test-out_{patt}.dat".format(patt=pattern))
            if os.path.isfile(gt_fname):
                gt_muons = get_gt_muons(gt_fname, options.gtoffset, nbx,
                                        vhdl_dict)
            else:
                _log.debug("Could not find GT pattern")

        print "{fn}_in_muons :".format(
            fn=pattern), non_zero(in_muons), "/", len(in_muons)
        print "{fn}_num of final non-zero Output-Muons: ".format(
            fn=pattern), non_zero(out_muons), "/", len(
                out_muons)  #,"), corresponds to ", len(out_muons)/8," Events"
        if not options.nodebug:
            print "{fn}_num of intermediate non-zero Output-Muons: ".format(
                fn=pattern
            ), non_zero(intermediate_muons), "/", len(
                intermediate_muons
            )  #, "), corresponds to ", len(intermediate_muons)/24," Events"
            print "{fn}_n_ranks".format(
                fn=pattern), rank_num_of_non_zeros, "/", len(ranks)

        h2_emu_vs_gmt = ROOT.TH2D("{f}_comparison1".format(f=pattern), "", 64,
                                  0, 64, 8, 1, 9)
        mucnt = -1