RUB-EP1 / amplitude-serialization

Prototype for the amplitude model serialization format
https://rub-ep1.github.io/amplitude-serialization
MIT License
2 stars 1 forks source link

Add arguments for functions #36

Closed mmikhasenko closed 5 months ago

mmikhasenko commented 6 months ago

Our functions used for lineshapes, should indicared mass squared variable that in depends on.

The description,

    {
      "name": "D1232_BW",
      "l": 1,
      "mb": 0.13957018,
      "type": "BreitWigner",
      "d": 1.5,
      "mass": 1.232,
      "ma": 0.938272046,
      "width": 0.117
    },

would need to mention x: m_ppi_squared, and define m_ppi_squared below.

In HS3, all distributions and functions have their variables listed, e.g. Gauss(x|mean,sigma) describes all three variables.

{
  "distributions": [
    {
      "mean": "mean",
      "name": "gauss",
      "sigma": "sigma",
      "type": "gaussian_dist",
      "x": "x"
    }
  ],
  "domains": [
    {
      "axes": [
        { "max": 10.0, "min": -10.0, "name": "mean" },
        { "max": 10.0, "min": 0.1, "name": "sigma" },
        { "max": 10.0, "min": -10.0, "name": "x" }
      ],
      "name": "default_domain",
      "type": "product_domain"
    }
  ],
  "metadata": {
    "hs3_version": "0.2",
    "packages": [{ "name": "ROOT", "version": "6.33.01" }]
  },
  "parameter_points": [
    {
      "name": "default_values",
      "parameters": [
        { "name": "x", "value": 0.0 },
        { "name": "mean", "value": 1.0 },
        { "name": "sigma", "value": 1.0 }
      ]
    }
  ]
}

How to proceed

Preparation

Incorporate it in JSON:

mmikhasenko commented 6 months ago

ROOT Exponent is interesting in this context,

{
  "distributions": [
    { "name": "bw" },
    {
      "c": "alpha_exponential_inverted",
      "name": "exp",
      "type": "exponential_dist",
      "x": "x"
    }
  ],
  "domains": [
    {
      "axes": [
        { "max": 10.0, "min": 0.1, "name": "alpha" },
        { "max": 10.0, "min": -10.0, "name": "x" }
      ],
      "name": "default_domain",
      "type": "product_domain"
    }
  ],
  "functions": [
    {
      "expression": "-alpha",
      "name": "alpha_exponential_inverted",
      "type": "generic_function"
    }
  ],
  "metadata": {
    "hs3_version": "0.2",
    "packages": [{ "name": "ROOT", "version": "6.33.01" }]
  },
  "misc": {
    "ROOT_internal": {
      "attributes": {
        "alpha_exponential_inverted": {
          "dict": { "autogen_transform_exponential_original": "alpha" },
          "tags": ["autogen_transform_exponential"]
        }
      }
    }
  },
  "parameter_points": [
    {
      "name": "default_values",
      "parameters": [
        { "name": "x", "value": 0.0 },
        { "name": "alpha", "value": 1.0 },
      ]
    }
  ]
}
redeboer commented 6 months ago

After some discussion we settled on generalizing the checksum definitions, for instance

  "misc": {
    "checksums": [
      {
        "function": "my_model_for_reaction_intensity",
        "point": "validation_point1",
        "return_value": 9345.853380852355
      },
      {
        "function": "D1232_BW",
        "point": "validation_point2",
        "return_value": "1.0 - 3.14i"
      }
    ]
  },

Compare with what is is currently: https://github.com/RUB-EP1/amplitude-serialization/blob/ecee71af8f77bc0360b3c5d8bc85592802652eb0/models/Lc2ppiK.json#L938-L946

For this, we indeed need to define which arguments the function expects, e.g.:

    {
      "name": "D1232_BW",
      "x": "x", // variable because value is string
      "l": 1,
      "mb": 0.13957018,
      "type": "BreitWigner",
      "d": 1.5,
      "mass": 1.232,
      "ma": 0.938272046,
      "width": 0.117
    },

Bit tricky how to call the argument for a Breit-Wigner. $\sigma$ would be a common choice, but that's is confusing with Gaussian (where the BW $\sigma$ has the role of $\mu$). In the example, we stick with x to indicate that it is the first argument in a 1-dimensional function.

mmikhasenko commented 5 months ago

@IlyaSegal would you like to help with this issue?

(updating the header with the guidelines)