128 {
133
160
161 if (!
b.m_isComputed)
b.Compute();
162 if (!a.m_isComputed) a.Compute();
163
164 ret.m_n_entries = a.m_n_entries +
b.m_n_entries;
165 ret.m_k_evt_weight = a.m_k_evt_weight +
b.m_k_evt_weight * ( 1.0 - a.m_k_evt_weight );
166 ret.m_variance = a.m_variance * ( 1.0 -
b.m_k_evt_weight ) * ( 1.0 -
b.m_k_evt_weight ) +
b.m_variance * ( 1.0 - a.m_k_evt_weight ) * ( 1.0 - a.m_k_evt_weight );
167 ret.m_variance_sys = a.m_variance_sys * ( 1.0 -
b.m_k_evt_weight ) * ( 1.0 -
b.m_k_evt_weight ) +
b.m_variance_sys * ( 1.0 - a.m_k_evt_weight ) * ( 1.0 - a.m_k_evt_weight );
168 return ret;
169 }
172 cout << "WARNING in APEvtWeight::operator||: Trying to combine already combined event weights with overlapping objects. Uncertainties will be incorrect." << endl;
173 }
174
176
201
202 if (!
b.m_isComputed)
b.Compute();
203 if (!a.m_isComputed) a.Compute();
204
205 ret.m_n_entries = a.m_n_entries +
b.m_n_entries;
206 ret.m_k_evt_weight = 1.0 - (1.0 - a.m_k_evt_weight) * (1.0 -
b.m_k_evt_weight);
207 ret.m_variance = a.m_variance * (1.0 -
b.m_k_evt_weight) * (1.0 -
b.m_k_evt_weight) +
b.m_variance * (1.0 - a.m_k_evt_weight) * (1.0 - a.m_k_evt_weight);
208 ret.m_variance_sys = a.m_variance_sys * (1.0 -
b.m_k_evt_weight) * (1.0 -
b.m_k_evt_weight) +
b.m_variance_sys * (1.0 - a.m_k_evt_weight) * (1.0 - a.m_k_evt_weight);
209 return ret;
210}