コード例 #1
0
def invokeGen(infile):
    if infile[-6:] == '.djcdc':
        dc = DataCollection(infile)
        td = dc.dataclass()
        tdclass = dc.dataclass
        dc.setBatchSize(1)
        gen = dc.invokeGenerator()
    elif infile[-6:] == '.djctd':
        td = TrainData_NanoML()
        tdclass = TrainData_NanoML
        td.readFromFile(infile)
        gen = TrainDataGenerator()
        gen.setBatchSize(1)
        gen.setBuffer(td)
    elif infile[-5:] == '.root':
        print('reading from root file')
        td = TrainData_NanoML()
        tdclass = TrainData_NanoML
        td.readFromSourceFile(infile,{},True)
        td.writeToFile(infile+'.djctd')
        td.readFromFile(infile+'.djctd')
        gen = TrainDataGenerator()
        gen.setBatchSize(1)
        gen.setBuffer(td)
        
    gen.setSkipTooLargeBatches(False)
    nevents = gen.getNBatches()
    gen.cast_to = tdclass
    return gen.feedTrainData,nevents,td
コード例 #2
0
parser = ArgumentParser('')
parser.add_argument('--inputFile')
parser.add_argument('--outputDir')
#parser.add_argument('--outName', default='recHits_3D.html',type=str)
args = parser.parse_args()

infile = args.inputFile
outdir = args.outputDir + "/"
events_max = 1
os.system('mkdir -p ' + outdir)
#outfile = args.outName
#if not outfile[-5:] == ".html":
#    outfile+=".html"

td = TrainData_NanoML()
td.readFromFile(infile)

#for event_num in range(1,17,2): #looking at jsut one half of event
for event_num in range(1, 2, 2):  #looking at jsut one half of event
    df = (td.createPandasDataFrame(event_num)
          )  #[:1000] just looking at some 1000 hits
    front_face_z = 323
    noise_filter = (df['truthHitAssignementIdx'] > -1)
    #hgcal_front_face_filter = (abs(df['truthHitAssignedZ']) < front_face_z) # < - on front, > not on front
    hgcal_front_face_filter = (df['truthHitFullyContainedFlag'] > 0)
    selected_pids = [22, 11, 211, 2211, 13, 2112]
    pid_filter = np.isin(abs(df['truthHitAssignedPIDs']), selected_pids)
    filt = noise_filter & hgcal_front_face_filter  #if including the filter np.logical_not(pid_filter)
    df = df[filt]
    spectator_filter = (df['truthHitSpectatorFlag'] > 7)
    df_spectators_only = df[spectator_filter]