Skip to content

Machinery for systematics studies in Qn::StatCalculate #60

@eugene274

Description

@eugene274

(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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions