示例#1
0
def get_all_data(infile,verbose=False):

    print("\nLoading in the data...\n")

    data,event = h5hep.load(infile, verbose=verbose)

    return [data,event]
示例#2
0
def test_unpack():

    # This assumes you run nosetests from the h5hep directory and not
    # the tests directory.
    filename = "./test_data/FOR_TESTS.hdf5"
    desired_datasets = ['jet', 'muon']
    subset = 1000

    event, data = hp.load(filename, False, desired_datasets, subset)

    hp.unpack(data, event)

    assert isEmpty(event) == False
示例#3
0
def test_load():

    #write_h5hep_file_for_unit_tests()

    # This assumes you run nosetests from the h5hep directory and not
    # the tests directory.
    filename = "./test_data/FOR_TESTS.hdf5"
    desired_datasets = ['jet', 'muon']
    subset = 1000

    test_data, test_event = hp.load(filename, False, desired_datasets, subset)

    assert isinstance(test_data, dict)
    assert isinstance(test_event, dict)

    assert isEmpty(test_event) == True
    assert isEmpty(test_data) == False
示例#4
0
    hp.pack(data,event)

#print(data)

print("Writing the file...")
#hdfile = write_to_file('output.hdf5',data)
outputfilename = 'test_singleton_OUTPUT.hdf5'
hdfile = hp.write_to_file(outputfilename,data,comp_type='gzip',comp_opts=9)

################################################################################
# Reading in file
################################################################################
inputfilename = outputfilename

data,event = hp.load(inputfilename)

#print("----------------")
#print(data)
#print("----------------")

nentries = data['nentries']
#print("nentries: ",nentries)

for i in range(0,nentries):
    
    hp.unpack(event,data,n=i)

    t = event['time']
    rn = event['runnum']
    print('{0:f}'.format(t), rn)
示例#5
0
import h5py as h5
import numpy as np
import matplotlib.pylab as plt
import time

import h5hep as hp

import sys

filename = sys.argv[1]

energies = []

for nfiles in range(0,30):

    data,event = hp.load(filename)

    # Print out what has been read in from the files.
    '''
    for key in event.keys():
        print(key)
    '''

    nentries = data['nentries']
    print("nentries: ",nentries)
    print(type(data),type(event))

    energies += data['jet/e'].tolist()

    '''
    for i in range(0,nentries):
示例#6
0
import h5py as h5
import numpy as np
import matplotlib.pylab as plt
import time

import h5hep as hp

import sys

filename = sys.argv[1]

#data,event = hp.load(filename,subset=(0,100000))
data, event = hp.load(filename, verbose=False)  #,subset=10000)
#data,event = hp.load(filename,desired_datasets=['jet','muon'])
#data,event = hp.load(filename,desired_datasets=['jet'])
#data,event = hp.load(filename,desired_datasets=['jet','muon'],subset=(0,100000))

#print(data['list_of_counters'])

nentries = data['nentries']
print("nentries: ", nentries)

#print(type(data),type(event))

energies = []

#print("A")
#print(data.keys())
#print(data)
#
#print("B")
示例#7
0
def get_collisions(infile,verbose=False,experiment='CMS'):

    print("\nBuilding a simplified interface to the events...\n")

    collisions = []

    data,event = h5hep.load(infile, verbose=verbose)

    nentries = data['nentries']

    if experiment.lower() == 'cms':
        groups = [['jets',['e','px','py','pz','btag']], 
                  ['muons',['e','px','py','pz','q']],
                  ['electrons',['e','px','py','pz','q']],
                  ['photons',['e','px','py','pz']] ]
    elif experiment.lower() == 'babar':
        groups = [['pions',['e','px','py','pz','q','beta','dedx']], 
                  ['kaons',['e','px','py','pz','q','beta','dedx']], 
                  ['protons',['e','px','py','pz','q','beta','dedx']], 
                  ['muons',['e','px','py','pz','q','beta','dedx']],
                  ['electrons',['e','px','py','pz','q','beta','dedx']],
                  ['photons',['e','px','py','pz']] ]
    elif experiment.lower() == 'cleo':
        groups =  [ ['pions',['e','px','py','pz','q','sigpi','sigka','likpi','likka','nphopi','nphoka','depthmu','cluster_energy'] ],
                    ['kaons',['e','px','py','pz','q','sigpi','sigka','likpi','likka','nphopi','nphoka','depthmu','cluster_energy'] ],
                    ['muons',['e','px','py','pz','q','sigpi','sigka','likpi','likka','nphopi','nphoka','depthmu','cluster_energy'] ],
                    ['electrons',['e','px','py','pz','q','sigpi','sigka','likpi','likka','nphopi','nphoka','depthmu','cluster_energy'] ],
                    ['photons',['e','px','py','pz']] ]


    for i in range(0,nentries):

        #if verbose:
        if 1:
            if i%10000==0:
                print("Reading in event ",i)

        h5hep.unpack(event,data,n=i)

        collision = {}

        for group in groups:
            gname = group[0]
            gvars = group[1]
            collision[gname] = []
            key = "%s/n%s" % (gname, gname)
            ngroup = event[key]
            for j in range(ngroup):
                particle = {}
                for var in gvars:
                    event_key = '%s/%s' % (gname,var)
                    particle[var] = event[event_key][j]

                collision[gname].append(particle)

        if experiment.lower() == 'cms':
            collision['METx'] = event['METx']
            collision['METy'] = event['METy']

        collisions.append(collision)

    return collisions