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
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]