LDMX Software
EcalVetoResult.cxx
1
3
5
6namespace ldmx {
8
10 passes_veto_ = false;
11
12 n_readout_hits_ = 0;
13 summed_det_ = 0;
14 summed_tight_iso_ = 0;
15 max_cell_dep_ = 0;
16 shower_rms_ = 0;
17 x_std_ = 0;
18 y_std_ = 0;
19 avg_layer_hit_ = 0;
20 std_layer_hit_ = 0;
21 deepest_layer_hit_ = 0;
22 ecal_back_energy_ = 0;
24 ep_ang_ = 0;
26 ep_sep_ = 0;
27 ep_dot_ = 0;
29
30 electron_containment_energy_.clear();
31 photon_containment_energy_.clear();
32 outside_containment_energy_.clear();
33 outside_containment_n_hits_.clear();
34 outside_containment_x_std_.clear();
35 outside_containment_y_std_.clear();
36
37 energy_seg_.clear();
38 x_mean_seg_.clear();
39 y_mean_seg_.clear();
40 x_std_seg_.clear();
41 y_std_seg_.clear();
42 layer_mean_seg_.clear();
43 layer_std_seg_.clear();
44
45 e_cont_energy_.clear();
46 e_cont_x_mean_.clear();
47 e_cont_y_mean_.clear();
48 g_cont_energy_.clear();
49 g_cont_n_hits_.clear();
50 g_cont_x_mean_.clear();
51 g_cont_y_mean_.clear();
52 o_cont_energy_.clear();
53 o_cont_n_hits_.clear();
54 o_cont_x_mean_.clear();
55 o_cont_y_mean_.clear();
56 o_cont_x_std_.clear();
57 o_cont_y_std_.clear();
58 o_cont_layer_mean_.clear();
59 o_cont_layer_std_.clear();
60
61 disc_value_ = 0;
62
63 recoil_px_ = -9999;
64 recoil_py_ = -9999;
65 recoil_pz_ = -9999;
66 recoil_x_ = -9999;
67 recoil_y_ = -9999;
68
69 ecal_layer_edep_readout_.clear();
70}
71
73 int n_readout_hits, int deepest_layer_hit, int n_tracking_hits,
74 float summed_det, float summed_tight_iso, float max_cell_dep,
75 float shower_rms, float x_std, float y_std, float avg_layer_hit,
76 float std_layer_hit, float ecal_back_energy, float ep_ang,
77 float ep_ang_at_target, float ep_sep, float ep_dot, float ep_dot_at_target,
78
79 std::vector<float> electron_containment_energy,
80 std::vector<float> photon_containment_energy,
81 std::vector<float> outside_containment_energy,
82 std::vector<int> outside_containment_n_hits,
83 std::vector<float> outside_containment_x_std,
84 std::vector<float> outside_containment_y_std,
85
86 std::vector<float> energy_seg, std::vector<float> x_mean_seg,
87 std::vector<float> y_mean_seg, std::vector<float> x_std_seg,
88 std::vector<float> y_std_seg, std::vector<float> layer_mean_seg,
89 std::vector<float> layer_std_seg,
90
91 std::vector<std::vector<float>> e_cont_energy,
92 std::vector<std::vector<float>> e_cont_x_mean,
93 std::vector<std::vector<float>> e_cont_y_mean,
94 std::vector<std::vector<float>> g_cont_energy,
95 std::vector<std::vector<int>> g_cont_n_hits,
96 std::vector<std::vector<float>> g_cont_x_mean,
97 std::vector<std::vector<float>> g_cont_y_mean,
98 std::vector<std::vector<float>> o_cont_energy,
99 std::vector<std::vector<int>> o_cont_n_hits,
100 std::vector<std::vector<float>> o_cont_x_mean,
101 std::vector<std::vector<float>> o_cont_y_mean,
102 std::vector<std::vector<float>> o_cont_x_std,
103 std::vector<std::vector<float>> o_cont_y_std,
104 std::vector<std::vector<float>> o_cont_layer_mean,
105 std::vector<std::vector<float>> o_cont_layer_std,
106
107 std::vector<float> ecal_layer_edep_readout, std::array<float, 3> recoil_p,
108 std::array<float, 3> recoil_pos) {
109 n_readout_hits_ = n_readout_hits;
110 summed_det_ = summed_det;
111 summed_tight_iso_ = summed_tight_iso;
112 max_cell_dep_ = max_cell_dep;
113 shower_rms_ = shower_rms;
114 x_std_ = x_std;
115 y_std_ = y_std;
116 avg_layer_hit_ = avg_layer_hit;
117 std_layer_hit_ = std_layer_hit;
118 deepest_layer_hit_ = deepest_layer_hit;
119 ecal_back_energy_ = ecal_back_energy;
120 n_tracking_hits_ = n_tracking_hits;
121 ep_ang_ = ep_ang;
122 ep_ang_at_target_ = ep_ang_at_target;
123 ep_sep_ = ep_sep;
124 ep_dot_ = ep_dot;
125 ep_dot_at_target_ = ep_dot_at_target;
126
127 electron_containment_energy_ = electron_containment_energy;
128 photon_containment_energy_ = photon_containment_energy;
129 outside_containment_energy_ = outside_containment_energy;
130 outside_containment_n_hits_ = outside_containment_n_hits;
131 outside_containment_x_std_ = outside_containment_x_std;
132 outside_containment_y_std_ = outside_containment_y_std;
133
134 energy_seg_ = energy_seg;
135 x_mean_seg_ = x_mean_seg;
136 y_mean_seg_ = y_mean_seg;
137 x_std_seg_ = x_std_seg;
138 y_std_seg_ = y_std_seg;
139 layer_mean_seg_ = layer_mean_seg;
140 layer_std_seg_ = layer_std_seg;
141
142 e_cont_energy_ = e_cont_energy;
143 e_cont_x_mean_ = e_cont_x_mean;
144 e_cont_y_mean_ = e_cont_y_mean;
145 g_cont_energy_ = g_cont_energy;
146 g_cont_n_hits_ = g_cont_n_hits;
147 g_cont_x_mean_ = g_cont_x_mean;
148 g_cont_y_mean_ = g_cont_y_mean;
149 o_cont_energy_ = o_cont_energy;
150 o_cont_n_hits_ = o_cont_n_hits;
151 o_cont_x_mean_ = o_cont_x_mean;
152 o_cont_y_mean_ = o_cont_y_mean;
153 o_cont_x_std_ = o_cont_x_std;
154 o_cont_y_std_ = o_cont_y_std;
155 o_cont_layer_mean_ = o_cont_layer_mean;
156 o_cont_layer_std_ = o_cont_layer_std;
157
158 // discvalue not set here
159
160 if (!recoil_p.empty()) {
161 recoil_px_ = recoil_p[0];
162 recoil_py_ = recoil_p[1];
163 recoil_pz_ = recoil_p[2];
164 }
165 if (!recoil_pos.empty()) {
166 recoil_x_ = recoil_pos[0];
167 recoil_y_ = recoil_pos[1];
168 }
169
170 ecal_layer_edep_readout_ = ecal_layer_edep_readout;
171}
172
173std::ostream& operator<<(std::ostream& o, const EcalVetoResult& c) {
174 return o << "EcalVetoResult { Passes veto : " << c.passes_veto_ << " }";
175}
176} // namespace ldmx
Class used to encapsulate the results obtained from EcalVetoProcessor.
float disc_value_
discriminator value from the BDT
float ep_sep_
Distance between the projected photon and electron trajectories at the ECal face.
float ep_ang_
Angular separation between the projected photon and electron trajectories as projected at the ECAL.
float recoil_y_
y-position of recoil electron at the Ecal face.
void setVariables(int n_readout_hits, int deepest_layer_hit, int n_tracking_hits, float summed_det, float summed_tight_iso, float max_cell_dep, float shower_rms, float x_std, float y_std, float avg_layer_hit, float std_layer_hit, float ecal_back_energy, float ep_ang, float ep_ang_at_target, float ep_sep, float ep_dot, float ep_dot_at_target, std::vector< float > electron_containment_energy, std::vector< float > photon_containment_energy, std::vector< float > outside_containment_energy, std::vector< int > outside_containment_n_hits, std::vector< float > outside_containment_x_std, std::vector< float > outside_containment_y_std, std::vector< float > energy_seg, std::vector< float > x_mean_seg, std::vector< float > y_mean_seg, std::vector< float > x_std_seg, std::vector< float > y_std_seg, std::vector< float > layer_mean_seg, std::vector< float > layer_std_seg, std::vector< std::vector< float > > e_cont_energy, std::vector< std::vector< float > > e_cont_x_mean, std::vector< std::vector< float > > e_cont_y_mean, std::vector< std::vector< float > > g_cont_energy, std::vector< std::vector< int > > g_cont_n_hits, std::vector< std::vector< float > > g_cont_x_mean, std::vector< std::vector< float > > g_cont_y_mean, std::vector< std::vector< float > > o_cont_energy, std::vector< std::vector< int > > o_cont_n_hits, std::vector< std::vector< float > > o_cont_x_mean, std::vector< std::vector< float > > o_cont_y_mean, std::vector< std::vector< float > > o_cont_x_std, std::vector< std::vector< float > > o_cont_y_std, std::vector< std::vector< float > > o_cont_layer_mean, std::vector< std::vector< float > > o_cont_layer_std, std::vector< float > ecal_layer_edep_readout, std::array< float, 3 > recoil_p, std::array< float, 3 > recoil_pos)
Set the sim particle and 'is findable' flag.
float recoil_x_
x-position of recoil electron at the Ecal face.
void clear()
Reset the object.
float ep_dot_at_target_
Dot product of the photon and electron momenta unit vectors as at Target.
float recoil_pz_
pz of recoil electron at the Ecal face.
bool passes_veto_
Flag indicating whether the event is vetoed by the Ecal.
float recoil_px_
px of recoil electron at the Ecal face.
float recoil_py_
py of recoil electron at the Ecal face.
int n_tracking_hits_
Number of hits outside of the electron roc in the Ecal or if the electron trajectory is missing,...
float ep_dot_
Dot product of the photon and electron momenta unit vectors as at ECAL.
virtual ~EcalVetoResult()
Destructor.
float ep_ang_at_target_
Angular separation between the projected photon and electron trajectories as projected at the target.