Feature description
Proposal: add analytic_convolution_dist to HS3 / RooFitHS3
RooFit currently serializes RooDecay via a dedicated decay_dist key. This is somewhat special-case: RooDecay is not just an exponential distribution, but a RooAbsAnaConvPdf that declares analytic basis functions to be convolved with a RooResolutionModel.
I propose introducing a generic analytic_convolution_dist node that represents the RooAbsAnaConvPdf concept directly:
- observable/convolution variable
- resolution model
- list of analytic basis terms
- coefficient expression/function per term
Example for RooDecay(DoubleSided):
{
"name": "decay_gm",
"type": "analytic_convolution_dist",
"x": "dt",
"resolution_model": "gm",
"terms": [
{
"coefficient": "1",
"basis": {
"type": "exp_decay",
"tau": "tau",
"side": "both"
}
}
]
}
This generic node could support the following Classes:
- RooDecay
- RooBMixDecay
- RooBDecay
- RooBCPGenDecay
- RooBCPEffDecay
- RooNonCPEigenDecay
Requirements
This feature requires serializable categorical variables to fully support these classes in a clean way.
@cburgard @stalbrec
Feature description
Proposal: add
analytic_convolution_distto HS3 / RooFitHS3RooFit currently serializes
RooDecayvia a dedicateddecay_distkey. This is somewhat special-case:RooDecayis not just an exponential distribution, but aRooAbsAnaConvPdfthat declares analytic basis functions to be convolved with aRooResolutionModel.I propose introducing a generic
analytic_convolution_distnode that represents theRooAbsAnaConvPdfconcept directly:Example for
RooDecay(DoubleSided):{ "name": "decay_gm", "type": "analytic_convolution_dist", "x": "dt", "resolution_model": "gm", "terms": [ { "coefficient": "1", "basis": { "type": "exp_decay", "tau": "tau", "side": "both" } } ] }This generic node could support the following Classes:
Requirements
This feature requires serializable categorical variables to fully support these classes in a clean way.
@cburgard @stalbrec