コード例 #1
0
    def __init__(self, emufname, hwfname, vhdcfg):
        self.emufname = emufname
        self.hwfname = hwfname
        self.vhdcfg = vhdcfg

        self.pt_errors = {}
        self.phi_errors = {}
        self.iso_errors = {}
        self.eta_errors = {}
        self.chrg_errors = {}
        self.qual_errors = {}
        self.errors = []

        self.emuversion = Version("99_99_99")
        self.hwversion = Version("0_2_19")
        self.event_ctr = 0
        self.event_nontrivial_cntr = 0
        self.mu_cntr = 0
コード例 #2
0
        for idx, mu_imd in enumerate(imdmus):
            relation = calculate_relation(mu_imd, mu_out)
            #if relation isn't just random, put it in the dict
            if imd_match_dict[mu_out][0] < relation and relation > 19: 
                imd_match_dict[mu_out] = [relation, mu_imd]

    return in_match_dict, imd_match_dict

if __name__ == "__main__":
    vhdl_dict = VHDLConstantsParser.parse_vhdl_file("data/ugmt_constants.vhd")

    options = parse_options()
    file_dict = discover_files(options)

    for pattern, fnames in file_dict.iteritems():
        version = Version.from_filename(fnames['rx'])
        print "+"*30, pattern, "+"*30

        # Reading and processing the hardware data
        input_parser = InputBufferParser(fnames['rx'], vhdl_dict)
        output_parser = OutputBufferParser(fnames['tx'], vhdl_dict, version)

        in_muons = input_parser.get_input_muons()
        out_muons = output_parser.get_output_muons()
        imd_muons = output_parser.get_intermediate_muons()
        imd_ranks = output_parser.get_ranks()

        in_mu_non_zero = [ in_mu for in_mu in in_muons if in_mu.bitword != 0 ]
        out_mu_non_zero = [ out_mu for out_mu in out_muons if out_mu.bitword != 0 ]
        imd_mu_non_zero = [imd_mu for imd_mu in imd_muons if imd_mu.bitword != 0 ]
        imd_ranks_non_zero = [imd_rank for imd_rank in imd_ranks if imd_rank != 0]
コード例 #3
0
            relation = calculate_relation(mu_imd, mu_out)
            #if relation isn't just random, put it in the dict
            if imd_match_dict[mu_out][0] < relation and relation > 19:
                imd_match_dict[mu_out] = [relation, mu_imd]

    return in_match_dict, imd_match_dict


if __name__ == "__main__":
    vhdl_dict = VHDLConstantsParser.parse_vhdl_file("data/ugmt_constants.vhd")

    options = parse_options()
    file_dict = discover_files(options)

    for pattern, fnames in file_dict.iteritems():
        version = Version.from_filename(fnames['rx'])
        print "+" * 30, pattern, "+" * 30

        # Reading and processing the hardware data
        input_parser = InputBufferParser(fnames['rx'], vhdl_dict)
        output_parser = OutputBufferParser(fnames['tx'], vhdl_dict, version)

        in_muons = input_parser.get_input_muons()
        out_muons = output_parser.get_output_muons()
        imd_muons = output_parser.get_intermediate_muons()
        imd_ranks = output_parser.get_ranks()

        in_mu_non_zero = [in_mu for in_mu in in_muons if in_mu.bitword != 0]
        out_mu_non_zero = [
            out_mu for out_mu in out_muons if out_mu.bitword != 0
        ]
コード例 #4
0
    phi_high = 57
    pt_unit = 0.5
    pt_low = 0
    pt_high = 280
    ####

    #### Parameters for histograms may be changed here at any time
    hist_parameters = {
        "qualityBits": ["qualityBits", 16, -0.5, 15.5],
        "ptBits": ["ptBits", 128, 0, 512],#(pt_high-pt_low)/pt_unit, pt_low, pt_high],
        "phiBits": ["phiBits", 128, 0, 1024], #(phi_high-phi_low)/phi_unit, phi_low, phi_high],
        "etaBits": ["etaBits", 128, -256, 256] #(eta_high-eta_low)/eta_unit, eta_low, eta_high]
    }

    for pattern, fnames in file_dict.iteritems():
        version = Version.from_filename(fnames['base'])
        print "+"*30, "version detected:", version, "+"*30
        print "+"*30, pattern, "+"*30

        # Reading and processing the hardware data
        input_parser = InputBufferParser(fnames["rx"], vhdl_dict)
        output_parser = OutputBufferParser(fnames["tx"], vhdl_dict, version)

        in_muons = input_parser.get_input_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()
コード例 #5
0
    pt_high = 280
    ####

    #### Parameters for histograms may be changed here at any time
    hist_parameters = {
        "qualityBits": ["qualityBits", 16, -0.5, 15.5],
        "ptBits": ["ptBits", 128, 0,
                   512],  #(pt_high-pt_low)/pt_unit, pt_low, pt_high],
        "phiBits": ["phiBits", 128, 0,
                    1024],  #(phi_high-phi_low)/phi_unit, phi_low, phi_high],
        "etaBits": ["etaBits", 128, -256,
                    256]  #(eta_high-eta_low)/eta_unit, eta_low, eta_high]
    }

    for pattern, fnames in file_dict.iteritems():
        version = Version.from_filename(fnames['base'])
        print "+" * 30, "version detected:", version, "+" * 30
        print "+" * 30, pattern, "+" * 30

        # Reading and processing the hardware data
        input_parser = InputBufferParser(fnames["rx"], vhdl_dict)
        output_parser = OutputBufferParser(fnames["tx"], vhdl_dict, version)

        in_muons = input_parser.get_input_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()
コード例 #6
0
    # binning of plots:
    hist_parameters = {
        "qualityBits": ["qualityBits", 16, 0, 16],
        "ptBits": ["ptBits", 128, 0,
                   512],  #(pt_high-pt_low)/pt_unit, pt_low, pt_high],
        "phiBits": ["phiBits", 256, 0,
                    1024],  #(phi_high-phi_low)/phi_unit, phi_low, phi_high],
        "etaBits": ["etaBits", 256, -512,
                    512]  #(eta_high-eta_low)/eta_unit, eta_low, eta_high]
    }
    phys_patterns = ["ZMM", "WM", "TTbar", "MinBias", "SingleMuPt100"]

    for pattern, fnames in file_dict.iteritems():
        _log.info("{patt:+^90}".format(patt=pattern))
        version = Version.from_filename(fnames['tx'])
        emu_version = Version(
            "99_99_99")  # so workarounds are not applied for this
        # Reading and initilaising the Emulator data
        emu_out_list = []
        emu_imd_list = []

        # Reading and processing the hardware data
        print "--- Emulator parsing:"
        emu_output_parser = OutputBufferParser(fnames["emu_tx"], vhdl_dict,
                                               emu_version)
        emu_out_list = emu_output_parser.get_output_muons()
        emu_imd_list = emu_output_parser.get_intermediate_muons()

        # Reading and processing the hardware data
        print "--- HW parsing:"