Array/table: pandas + numpy + hdf5

  1D array -> collection of 1D arrays
    dict(array)
    dataframe
    h5 table

  give me the charge:
    tab['charge']

  give me event no 3
    tab[3]
    tab[3, :]     # 2d ndarray, hm
  
  give me the first 5 events:
    tab[:5]

  give me the charge of all triggered
    mask = tab['triggered'] == True
    tab[mask]


pipeline

  event-by-event
  pipe: module1 - module2 - module3

  for event in file.read():
    module1.process(event)
    module2.process(event)
    outfile.write(event)
 

  pipe = [module1, module2, module3, writer]
  for event in file:
    for mod in pipe:
      mod.process(event)
 

  pipe = Pipeline()
  pipe.attach(Module1)
  pipe.attach(Module2, some_opt=bla, ...)
  pipe.attach(Module3)
  pipe.attach(writer)
