Back Skip to the content.

parameterSetList

< back to parent (propagatorConfig)

Description

Parameter sets contain lists of parameters that are grouped together by the fit, and which may share a prior covariance matrix. Examples parameter sets might be “oscillation parameters”, “flux systematics”, “cross section systematics”, and “detector systematics”, but GUNDAM handles them all the same, so you can use any name, and assign any meaning to the different sets. Parameter set lists occur in two contexts. The parameters are defined in the parametersManagerConfig which will have the syntax in the YAML file of

parametersManagerConfig:
    parameterSetList:
        - name: "First set"
          <and so on>

The other context is the through the parameterInjection which follows the same syntax, and provides a way to explicitly set the value of the parameters (primarily to override the values in the parametersManagerConfig.

Each parameter set is defined using the fields in the next section. The name is the only required field in a parameter set, however at least one parameter must be defined. Parameters are defined by using the parameterDefinitions which will contain a list of parameter definitions. Parameters can also be defined using a prior covariance matrix, and vectors of parameter names, prior values, and bounds (see covarianceMatrix, parameterNameList, and parameterPriorValueList).

The event reweighting dials that depend on the parameters should be defined in the dialSetDefinitions. This defines all of the event reweighting associated with this set of parameters. For simple sets of parameters (which only have one parameter per dial), the dial definitions can be defined as part of the parameterDefinitions, but this practice is discouraged. If multi-dimensional dials are used, then a dialSetDefinition is required.

If a parameter set has a prior covariance, it may be decomposed, and it’s eigen vectors can be used as the effective fit parameters. This is primarily needed with the prior covariance is singular (i.e. it has extremely large correlations between parameters). In this case, the eigenValueThreshold may be set to ignore very small parameters. Typically a singular covariance matrix will have one (or several) eigen values that are approximately zero (e.g. with a magnitude of about 1E-14), so an eigenValueThreshold of 1E-12 is usually appropriate.

Parameter set config options

Field Type Description Default
name string Required: The parameter set name  
parameterDefinitions list(Json) The list parameters that are part of this set  
dialSetDefinitions list(Json) The list of “dials” that modify the model  
isEnabled bool Is the set is enabled for the fit  
isScanEnabled bool Should the set be “scanned” by the parameter scanner  
nominalStepSize double The step scale used by the minimizer 1.0
printDialSetSummary bool Should the dial set summary be printed false
printParameterSummary bool Should the parameter set summary be printed false
parameterLimits/minValue double Define a minimum value for all parameters in this set -inf
parameterLimits/maxValue double Define a maximum value for all parameters in this set +inf
enablePca bool Fix parameter if 1 sigma scan doesn’t change LLH (DANGEROUS) false
enableThrowToyParameters bool This set should be thrown when generating toy data true
releaseFixedParametersOnHesse bool Fixed parameters are considered for HESSIAN false
parameterDefinitionFilePath string Name of a file defining parameters and covariance empty
covarianceMatrix string Name of TH2D covariance in parameter definition file empty
parameterNameList string Name of TObjArray of strings for parameter names empty
parameterPriorValueList string Name of TVectorD with prior values for each parameter empty
parameterLowerBoundsList string Name of TVectorD with parameter lower bounds empty
parameterUpperBoundsList string Name of TVectorD with parameter lower bounds empty
enableOnlyParameters list List of enabled parameter for this set (others disabled) empty
disableParameters list List of disabled parameters for this set (others enabled) empty
useEigenDecompForThrows bool Throw toys in eigen decomposed basis false
enableEigenDecomp bool Eigen decompose the prior covariance matrix false
allowEigenDecompWithBounds bool Allow bounds to be ignored when eigen decomposing false
maxNbEigenParameters int Only use this many eigen parameters inf
maxEigenFraction double Fraction of total “eigen” power to use 1.0
eigenValueThreshold double Ignore eigenvectors with eigenvalues below this threshold 0.0

JSON sub-structures

parameterDefinitions

The parameterDefinitions field holds a list that defines the parameters that are part of this set. The fields for each parameter vary depending on the circumstances, but each definition must contain a parameter name. For example

parameterDefinitions:
    - parameterName "First Parameter"
      <other fields>

    - parameterName "Second Parameter"
      <other fields>

dialSetDefinitions

The dialSetDefinitions field holds a list that the defines the dials which translate the parameters into event weights. The fields for each dial vary depending on the dial type, but each dial must contain the dialType, and the parameter names (in dialInputList) that are used.

dialSetDefinitions:
    - dialType: "Spline"
      dialInputList:
          - name: "First Parameter"
          - name: "Second Parameter"
      <other fields>

parameterLimits options

Options Type Description Default
minValue double min value of parameters from the set -inf
maxValue double max value of parameters from the set +inf