Source code for pydiana.pat.trigger_random_pulses

from pydiana.init import *
from pydiana.pat import trigger_tryout
from tqdm import tqdm
[docs] def main(input:str,channel:int,run:int,trigger:str,params:list,cuts:str="",num:int=1,owner:str='DAQ',label:str="Pulse"): #Reading channel rundata chrundata = pydianaIO.get_channel_run_data(filename=input, ch=channel, run=run, ) #READING Pulses datafile = pydianaIO.openfile(input) if cuts!='': cuts = f"Channel == {channel} && "+args.cuts else: cuts = f"Channel == {channel}" pulses = pydianaIO.get_random_pulses( datafile = datafile, num = num, cuts = cuts, owner=owner, label=label, ) plots=[] for signal in tqdm(pulses,leave=True,desc='Triggering Pulses'): p = trigger_tryout.main(trigger=trigger, stream = signal, params = params, channel = channel, SamplingFrequency =chrundata.fSamplingFrequency, Window = len(signal)/chrundata.fSamplingFrequency, Debounce = 0, ) plots.append(p) return plots
if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description="Program for testing trigger algorithms on data.") parser.add_argument('-t','--trigger', type=str,help='String indicating the trigger to be used.',required=True) parser.add_argument('-i','--input', type=str,help='String indicating the path to the input file to be triggered.',required=True) parser.add_argument('-n','--num', type=int,help='How many pulses to trigger.',required=True) parser.add_argument('-r','--run', type=int,help='Run number.',required=True) parser.add_argument('-p','--params' , action='append',help='List with all the trigger-specific parameters. Repeat flag for each argument.') parser.add_argument('-ch','--channel', type=int,help='Integer with the channel to trigger.',default=7) parser.add_argument('-c','--cuts', type=str,help='Cuts to be applied to the data.',default="") parser.add_argument('-o','--owner', type=str,help='Pulse Owner.',default="DAQ") parser.add_argument('-l','--label', type=str,help='Pulse label.',default="Pulse") args = parser.parse_args() if args.params is not None: for i in range(len(args.params)): try: args.params[i]=int(args.params[i]) except: try: args.params[i]=float(args.params[i]) except: args.params[i]=args.params[i] else: args.params=[] plots = main(input=args.input, channel=args.channel, run=args.run, cuts=args.cuts, num=args.num, owner=args.owner, label=args.label, trigger=args.trigger, params=args.params) [p.show() for p in plots]