@@ -54,6 +54,14 @@ def main():
54
54
n_bins , min_energy , max_energy )
55
55
summed_sim_energy_foil_hist = ROOT .TH1D ("summed_sim_energy_foil_hist" , "summed_sim_energy_foil_hist" ,
56
56
n_bins , min_energy , max_energy )
57
+ summed_sim_energy_foil_hist_same = ROOT .TH1D ("summed_sim_energy_foil_hist_same" , "summed_sim_energy_foil_hist_same" ,
58
+ n_bins , min_energy , max_energy )
59
+ summed_sim_energy_foil_hist_opposite = ROOT .TH1D ("summed_sim_energy_foil_hist_opposite" ,
60
+ "summed_sim_energy_foil_hist_opposite" ,
61
+ n_bins , min_energy , max_energy )
62
+ summed_sim_energy_foil_hist_rejected = ROOT .TH1D ("summed_sim_energy_foil_hist_rejected" ,
63
+ "summed_sim_energy_foil_hist_rejected" ,
64
+ n_bins , min_energy , max_energy )
57
65
summed_sim_energy_foil_hist_eff = ROOT .TH1D ("summed_sim_energy_foil_hist_eff" , "summed_sim_energy_foil_hist_eff" ,
58
66
n_bins , min_energy , max_energy )
59
67
displacement_hist = ROOT .TH1D ("displacement_hist" , "displacement_hist" ,
@@ -82,14 +90,15 @@ def main():
82
90
previous_time = t
83
91
84
92
escape_event = True
93
+ sides_event = True
85
94
summed_vertex_energy = 0
86
95
summed_foil_energy = 0
87
96
88
97
for index in range (len (event .og_energy )):
89
98
vertex_energy = event .og_energy [index ]
90
99
energy_loss = event .energy_loss [index ]
91
100
foil_energy = vertex_energy - energy_loss
92
- if foil_energy == 0.0 or foil_energy < 0.0001 :
101
+ if foil_energy == 0.0 :
93
102
escape_event = False
94
103
eff_energy_bin = int (vertex_energy / energy_bin_width )
95
104
val = efficiency_hist .GetBinContent (eff_energy_bin )
@@ -108,9 +117,29 @@ def main():
108
117
summed_vertex_energy += vertex_energy
109
118
summed_foil_energy += foil_energy
110
119
120
+ index0 = np .where (np .array (list (event .step_track_id )) == event .track_ids [0 ])[0 ][- 1 ]
121
+ index1 = np .where (np .array (list (event .step_track_id )) == event .track_ids [1 ])[0 ][- 1 ]
122
+ last_x0 = list (event .step_stop_vertex_x )[index0 ]
123
+ last_x1 = list (event .step_stop_vertex_x )[index1 ]
124
+
125
+ t = thickness / 1000
126
+ if abs (last_x0 ) < t / 2 and abs (last_x1 ) < t / 2 :
127
+ sides_event = False
128
+
129
+ if (last_x0 < 0 and last_x1 < 0 ) or (last_x0 > 0 and last_x1 > 0 ):
130
+ case = 0
131
+ else :
132
+ case = 1
133
+
111
134
summed_sim_energy_vertex_hist .Fill (summed_vertex_energy )
112
- if escape_event :
135
+ if escape_event and sides_event :
113
136
summed_sim_energy_foil_hist .Fill (summed_foil_energy )
137
+ if case == 0 :
138
+ summed_sim_energy_foil_hist_same .Fill (summed_foil_energy )
139
+ if case == 1 :
140
+ summed_sim_energy_foil_hist_opposite .Fill (summed_foil_energy )
141
+ else :
142
+ summed_sim_energy_foil_hist_rejected .Fill (summed_foil_energy )
114
143
summed_sim_energy_foil_hist_eff .Fill (summed_foil_energy )
115
144
116
145
i_event += 1
0 commit comments