-
Notifications
You must be signed in to change notification settings - Fork 7
Description
(draft based on discussion with Ilya)
To evaluate systematic uncertainties we compare different estimations (Q-vector components, reference subevent, cuts, etc).
Currently Qn::StatCalculate provides machinery to evaluate only statistical uncertainties.
To evaluate systematic uncertainties one has to operate either on exported TGraph or play with DataContainer and develop own structures to keep variations and maintain consistency during various transformations.
Ilya proposed to extend current Qn::StatCalculate with internal field (structure) Systematics which will keep systematic variations and calculate significance of variation.
Variations (V) are added to 'reference' (R) estimation (it is usually all components and all references combined), so I propose method: Qn::StatCalculate::AddVariation (const Qn::StatCalculate& variation)
Internal structure Systematics contains list of systematic variations each of them consists of:
- Variation itself (Qn::StatCalculate?)
- Sample-by-sample difference between variation (V) and the (R) reference. It could be Qn::StatCalculare object (R-V).
For QA purposes I propose to keep (or calculate ad-hoc) in Systematics a matrix with correlations:
|| R | V1 | V2 | ...
| R || 1 | cor(R,V1) | cor(R,V2) | ...
| V1 || cor(V1,R) | 1 | cor(V1,V2) | ...
Where correlation coefficient is obtained as follows
cor(R,V) = sum_{b-st. samples} (R_s - <R>) (V_s - <V>)/Var(R)/Var(V)
Using this matrix one can obtain 'independent' (uncorrelated) sources of systematic uncertainty by changing basis.
See:
https://en.wikipedia.org/wiki/Principal_component_analysis and
https://root.cern.ch/doc/master/classTPrincipal.html