fit module¶
Defines the basic components of the reaction plane fit.
-
class
reaction_plane_fit.fit.BackgroundFitComponent(rp_orientation: str, *args: Any, **kwargs: Any)[source]¶ Bases:
reaction_plane_fit.fit.FitComponentFit component in the background region.
- Parameters
rp_orientation (str) – Reaction plane orientation for the component.
*args (list) – Only use named args.
**kwargs (dict) – Named arguments to be passed on to the base component.
-
determine_fit_function(resolution_parameters: Dict[str, float], reaction_plane_parameter: reaction_plane_fit.base.ReactionPlaneParameter) → None[source]¶ Use the class parameters to determine the fit and background functions and store them.
-
set_data_limits(hist: pachyderm.histogram.Histogram1D) → pachyderm.histogram.Histogram1D[source]¶ Set the limits of the fit to only use near-side data (ie dPhi < pi/2)
Only the near-side will be used for the fit to avoid the signal at large dPhi on the away-side.
- Parameters
hist (histogram.Histogram1D) – The input data.
- Returns
The data limited to the near-side.
- Return type
histogram.Histogram1D
-
class
reaction_plane_fit.fit.FitComponent(fit_type: reaction_plane_fit.base.FitType, resolution_parameters: Dict[str, float], use_log_likelihood: bool = False)[source]¶ Bases:
abc.ABCA component of the fit.
- Parameters
fit_type (FitType) – Type (region and orientation) of the fit component.
resolution_parameters (dict) – Maps resolution parameters of the form “R22” (for the R_{2,2} parameter) to the value. Expects “R22” - “R82”
use_log_likelihood (bool) – If true, use log likelihood cost function. Often used when statistics are limited. Default: False
-
use_log_likelihood¶ True if the fit should be performed using log likelihood.
- Type
bool
-
fit_function¶ Function of the component.
- Type
function
-
cost_func¶ Cost function associated with the fit component.
- Type
pachyderm.fit.CostFunctionBase
-
calculate_background_function_errors(x: numpy.ndarray) → numpy.ndarray[source]¶ Calculate the background function errors based on values from the fit.
- Parameters
x – x values where the errors will be evaluated.
- Returns
The calculated error values.
-
calculate_fit_errors(x: numpy.ndarray) → numpy.ndarray[source]¶ Calculate the fit function errors based on values from the fit.
- Parameters
x – x values where the errors will be evaluated.
- Returns
The calculated error values.
-
abstract
determine_fit_function(resolution_parameters: Dict[str, float], reaction_plane_parameter: reaction_plane_fit.base.ReactionPlaneParameter) → None[source]¶ Use the class parameters to determine the fit and background functions and store them.
-
determine_parameters_limits() → Dict[str, Union[bool, float, Tuple[float, float], Tuple[int, int]]][source]¶ Determine the parameter seed values, limits, step sizes for the component.
Note
These values should be specified with the proper names so that they will be recognized by Minuit. This is the user’s responsibility.
- Parameters
None. –
- Returns
Dictionary of the function arguments which specifies their
-
evaluate_background(x: numpy.ndarray) → numpy.ndarray[source]¶ Evaluates the background components of the fit function.
In the case of a background component, this is identical to
evaluate_fit(...). However, in the case of a signal component, this describes the background contribution to the signal.- Parameters
x – x values where the fit component will be evaluated.
- Returns
Background function values at the given x values.
-
evaluate_fit(x: numpy.ndarray) → numpy.ndarray[source]¶ Evaluate the fit component.
- Parameters
x – x values where the fit component will be evaluated.
- Returns
Function values at the given x values.
-
property
region¶
-
property
rp_orientation¶
-
set_data_limits(hist: pachyderm.histogram.Histogram1D) → pachyderm.histogram.Histogram1D[source]¶ Extract the data from the histogram.
-
set_fit_type(region: Optional[str] = None, orientation: Optional[str] = None) → None[source]¶ Update the fit type.
Will use the any of the existing parameters if they are not specified.
- Parameters
region (str) – Region of the fit type.
orientation (str) – Orientation of the fit type.
- Returns
The fit type is set in the component.
- Return type
None
-
class
reaction_plane_fit.fit.ReactionPlaneFit(resolution_parameters: Dict[str, float], use_log_likelihood: bool, signal_region: Optional[Tuple[float, float]] = None, background_region: Optional[Tuple[float, float]] = None, use_minos: bool = False)[source]¶ Bases:
abc.ABCContains the reaction plane fit for one particular set of data and fit components.
- Parameters
resolution_parameters (dict) – Maps resolution parameters of the form “R22” (for the R_{2,2} parameter) to the value. Expects “R22” - “R82” (even RP only).
use_log_likelihood (bool) – If true, use log likelihood cost function. Often used when statistics are limited. Default: False
signal_region – Min and max extraction range for the signal dominated region. Should be provided as the absolute value (ex: (0., 0.6)).
background_region – Min and max extraction range for the background dominated region. Should be provided as the absolute value (ex: (0.8, 1.2)).
use_minos – Calculate the errors using Minos in addition to Hesse.
-
resolution_parameters¶ Maps resolution parameters of the form “R22” (for the R_{2,2} parameter) to the value. Expects “R22” - “R82” (even RP only).
- Type
dict
-
use_log_likelihood¶ If true, use log likelihood cost function. Often used when statistics are limited. Default: False
- Type
bool
-
signal_region¶ Min and max extraction range for the signal dominated region. Should be provided as the absolute value (ex: (0., 0.6)).
-
background_region¶ Min and max extraction range for the background dominated region. Should be provided as the absolute value (ex: (0.8, 1.2)).
-
use_minos¶ Calculate the errors using Minos in addition to Hesse. It will give a better error estimate, but it will be much slower. Errors will be printed but not stored because we don’t store the errors directly (rather, we store the covariance matrix, which one cannot extract from Minos). By printing out the values, the use can check that the Hesse and Minos errors are similar, which will indicate that the function is well approximated by a hyperparabola at the minima (and thus Hesse errors are okay to be used).
-
fit_result¶ Result of the RP fit.
-
_fit¶ Fit function for the RP fit.
- Type
Callable
-
abstract
create_full_set_of_components(input_data: Dict[FitType, pachyderm.histogram.Histogram1D]) → Dict[str, reaction_plane_fit.fit.FitComponent][source]¶ Create the full set of fit components.
-
fit(data: Union[Dict[str, Dict[str, Union[Any, pachyderm.histogram.Histogram1D]]], Dict[FitType, pachyderm.histogram.Histogram1D]], user_arguments: Optional[Dict[str, Union[bool, float, Tuple[float, float], Tuple[int, int]]]] = None) → Tuple[bool, Dict[reaction_plane_fit.base.FitType, pachyderm.histogram.Histogram1D], iminuit._libiminuit.Minuit][source]¶ Perform the actual fit.
- Parameters
data – Input data to be used for the fit. The keys should either be of the form
[region][orientation]or[FitType]. The values can be uproot or ROOT 1D histograms.user_arguments – User arguments to override the arguments to the fit. Default: None.
- Returns
- (fit_success, formatted_data, minuit) where fit_success (bool) is
Trueif the fitting procedure was successful, formatted_data (dict) is the data reformatted in the preferred format for the fit, and minuit (iminuit.Minuit) is the minuit object, which is provided it is provided for specialized use cases. Note that the fit results (which contains most of the information in the minuit object) are stored in the class.
- (fit_success, formatted_data, minuit) where fit_success (bool) is
- Return type
tuple
-
reaction_plane_parameters= {}¶
-
read_fit_results(filename: str, y: ruamel.yaml.main.YAML = None) → bool[source]¶ Read all fit results from the specified filename using YAML.
We don’t read the entire object from YAML because they we would have to deal with serializing many classes. Instead, we read the fit results, with the expectation that the fit object will be created independently, and then the results will be loaded.
- Parameters
filename – Name of the file under which the fit results are saved.
y – YAML object to be used for reading the result. If none is specified, one will be created automatically.
- Returns
True if the reading was successful. The results will be read into the fit object.
-
property
rp_orientations¶ Get the RP orientations (excluding the inclusive, which is the last entry).
-
write_fit_results(filename: str, y: ruamel.yaml.main.YAML = None) → bool[source]¶ Write all fit results to the specified filename using YAML.
We don’t write the entire object to YAML because they we would have to deal with serializing many classes. Instead, we write the results, with the expectation that the fit object will be created independently, and then the results will be loaded.
- Parameters
filename – Name of the file under which the fit results will be saved.
y – YAML object to be used for writing the result. If none is specified, one will be created automatically.
- Returns
True if the writing was successful.
-
class
reaction_plane_fit.fit.SignalFitComponent(rp_orientation: str, *args: Any, **kwargs: Any)[source]¶ Bases:
reaction_plane_fit.fit.FitComponentFit component in the signal region.
- Parameters
rp_orientation (str) – Reaction plane orientation for the component.
*args (list) – Only use named args.
**kwargs (dict) – Named arguments to be passed on to the base component.