Commit d0e6ecc
authored
Common: properly handle Sumw2 in THxRatio classes (#2322)
* [Common] properly handle Sumw2 in THxRatio classes
In the original implementation the creation of the sum-of-weights
structure was forcibly enabled in the `init()` function, for both the
ratio histogram and the internal numerato/denominator ones, without
the possibility to disable it.
This doubles the size of the produced objects, because of the extra
memory needed to store the sum-of-weights structures.
The new implementation allows to disable the sum-of-weights on a
per-histogram basis, by calling `Sumw2(kFALSE)` immediately after
the instantiation of the histogram ratio. This applies to both the
ratio histogram and the internal numerator/denominator ones.
The sum-of-weights is still enabled by default in the `init()` function
of the histogram ratio, to match the previous behaviour and guarantee
that errors are correctly computed and propagated at each step.
The relevant changes are the following:
- added a `Bool_t mSumw2Enabled` member variable to keep track of wether or not the sum-of-weights structure should be updated in the histogram computations
- overridden the `void Sumw2(Bool_t flag)` virtual function to propagate the flag to the internal numerator/denominator histograms
- modified the `update()` function to call `T::Scale(norm, "nosw2")` when the sum-of-weights structure is not enabled (otherwise the `Scale()` function automatically creates the structure regardless of the user settings)
* [Common] changed mSumw2Enabled default value1 parent c68e06f commit d0e6ecc
4 files changed
Lines changed: 44 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| 79 | + | |
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
| 126 | + | |
132 | 127 | | |
133 | 128 | | |
134 | 129 | | |
| |||
159 | 154 | | |
160 | 155 | | |
161 | 156 | | |
162 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| |||
279 | 279 | | |
280 | 280 | | |
281 | 281 | | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
282 | 295 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| 79 | + | |
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
| 126 | + | |
132 | 127 | | |
133 | 128 | | |
134 | 129 | | |
| |||
160 | 155 | | |
161 | 156 | | |
162 | 157 | | |
163 | | - | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| |||
286 | 286 | | |
287 | 287 | | |
288 | 288 | | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
289 | 302 | | |
0 commit comments