HPS-MC
 
Loading...
Searching...
No Matches
signal_pulser_overlay_to_recon_job.py
Go to the documentation of this file.
1"""!
2@file signal_pulser_overlay_to_recon_job.py
3
4Overlay MC with pulser data (evio or slcio) and run readout + reconstruction.
5Automatically detects pulser input format from file name.
6"""
7
8from hpsmc.tools import ExtractEventsWithHitAtHodoEcal, EvioToLcio, JobManager, FilterBunches, LCIOCount, HPSTR
9
10job.description = 'signal-pulse from overlay to recon'
11
12
13inputs = list(job.input_files.values())
14
15
16signal_file_name = []
17
18
19pulser_file_name = []
20
21for input in inputs:
22 if "signal" in input:
23 signal_file_name.append(input)
24 if "pulser" in input:
25 pulser_file_name.append(input)
26
27
28if len(signal_file_name) == 0:
29 raise Exception("Missing required input file(s) for signal")
30if len(pulser_file_name) == 0:
31 raise Exception("Missing required input file(s) for pulser data")
32
33
34pulser_is_evio = 'evio' in pulser_file_name[0]
35
36
37signal_name = 'signal'
38
39
40pulser_name = 'pulser'
41
42
43signal_pulser_name = 'signal_pulser'
44
45
46filter_events = ExtractEventsWithHitAtHodoEcal(inputs=signal_file_name,
47 outputs=['%s_filt.slcio' % signal_name],
48 event_interval=0, num_hodo_hits=1)
49
50
51count_filter = LCIOCount(inputs=filter_events.output_files())
52
53
54evio_to_lcio = EvioToLcio(steering='evio_to_lcio', inputs=pulser_file_name, output=['%s.slcio' % pulser_name])
55
56
57count_pulser = LCIOCount(inputs=evio_to_lcio.output_files())
58
59
60overlay = JobManager(steering='overlay',
61 inputs=filter_events.output_files(),
62 overlay_file=pulser_file_name[0],
63 outputs=['%s.slcio' % signal_pulser_name])
64
65
66space_overlay = FilterBunches(inputs=overlay.output_files(),
67 filter_no_cuts=True,
68 outputs=['%s_spaced.slcio' % signal_pulser_name],
69 filter_event_interval=250)
70
71
72count_space_overlay = LCIOCount(inputs=space_overlay.output_files())
73
74
75readout = JobManager(steering='readout',
76 inputs=space_overlay.output_files(),
77 outputs=['%s_readout.slcio' % signal_pulser_name])
78
79
80count_readout = LCIOCount(inputs=readout.output_files())
81
82
83recon = JobManager(steering='recon',
84 inputs=readout.output_files(),
85 outputs=['%s_recon.slcio' % signal_pulser_name])
86
87
88count_recon = LCIOCount(inputs=recon.output_files())
89
90
91cnv = HPSTR(inputs=recon.output_files(), cfg='cnv')
92
93
94if pulser_is_evio:
95 job.add([filter_events, count_filter, evio_to_lcio, overlay, space_overlay,
96 count_space_overlay, readout, count_readout, recon, count_recon, cnv])
97else:
98 job.add([filter_events, count_filter, overlay, space_overlay,
99 count_space_overlay, readout, count_readout, recon, count_recon, cnv])
Convert EVIO events to LCIO using the hps-java EvioToLcio command line tool.
Definition tools.py:1174
Apply hodo-hit filter and space MC events to process before readout.
Definition tools.py:1395
Space MC events and apply energy filters to process before readout.
Definition tools.py:1275
Run the hpstr analysis tool.
Definition tools.py:532
Run the hps-java JobManager class.
Definition tools.py:231
Count events in LCIO files.
Definition tools.py:1712
Tools that can be used in HPSMC jobs.
Definition tools.py:1