Extension points
One section per seam: what you write, where it goes in, and what is registered through it in this build. Generated from the registries themselves.
Curve type
A shape that can be placed on data and fitted. The only seam whose members self-register, from the unit's own initialization section.
- You write —
TCurveClass (class of TNamedPointsSet) - Entry point —
TCurveTypesSingleton.CreateCurveFactory.RegisterCurveType - Registered here — 18
| name | id | class | analytic | group | amplitude unbounded | placed by point set | explanation | preferred argument axis | preferred value axis |
|---|---|---|---|---|---|---|---|---|---|
| 2 br. Pseudo-Voigt | {6DE06C1B-E51A-48C6-B036-C81A841EC468} | T2BranchesPseudoVoigtPointsSet | yes | — | — | — | A pseudo-Voigt peak with an independent width and Gaussian-Lorentzian mix on each side of its maximum. | diffraction.two-theta | diffraction.intensity |
| Asym. Pseudo-Voigt | {74A6EC30-A019-475D-99A3-B62C4AB03A6C} | TAsymPseudoVoigtPointsSet | yes | — | — | — | A pseudo-Voigt peak made asymmetric by giving its two sides different widths, sigma + deltasigma on the right and sigma - deltasigma on the left. | diffraction.two-theta | diffraction.intensity |
| Constant background | {D6553D98-F367-41D7-A717-6A4EA29605F2} | TConstantBackgroundPointsSet | yes | — | — | — | A flat background of level b0 under the peaks of each fit interval. | — | — |
| Doniach-Sunjic | {EC663A56-0E89-4BC3-91FD-F243AADB253E} | TDoniachSunjicPointsSet | yes | — | — | — | An asymmetric photoemission line of metals: a Lorentzian of half-width sigma skewed by the singularity index alpha. | diffraction.two-theta | diffraction.intensity |
| Exponential background | {1413E48F-A118-4B6F-99AC-7F708C3CE019} | TExponentialBackgroundPointsSet | yes | — | — | — | An exponentially decaying background: level b0 at the start of the interval, falling by a factor e every tau. | — | — |
| Exponentially Modified Gaussian | {4D320BBE-1000-4D70-A860-3AC0D7076FF5} | TEmgPointsSet | yes | — | — | — | A Gaussian convolved with a one-sided exponential decay, giving a peak with a tail of time constant tau. | diffraction.two-theta | diffraction.intensity |
| Gaussian | {FF4E399C-C33C-482E-84D7-952700BCD4AE} | TGaussPointsSet | yes | — | — | — | A symmetric bell-shaped peak whose area is A, centred at x0, with standard deviation sigma. | diffraction.two-theta | diffraction.intensity |
| Linear background | {A7D78941-8A02-4AF6-89E3-C14810A4EC6F} | TLinearBackgroundPointsSet | yes | — | — | — | A straight-line background, level b0 at the start of the interval and slope b1. | — | — |
| Lorentzian | {7CA6FDAF-95B7-4D84-BCBA-130C828407CC} | TLorentzPointsSet | yes | — | — | — | A symmetric peak with heavy tails, whose area is A, centred at x0, with full width at half maximum sigma. | diffraction.two-theta | diffraction.intensity |
| Moffat | {E6E51486-6970-4AB3-8010-908664116379} | TMoffatPointsSet | yes | — | — | — | A symmetric peak of height A with core width sigma and power-law wings set by m, used for stellar images. | diffraction.two-theta | diffraction.intensity |
| Pearson VII | {195B2208-9AA0-4281-8CAB-7D29D959AC4D} | TPearson7PointsSet | yes | — | — | — | A symmetric peak of height A and full width at half maximum sigma, whose tail weight m runs from Lorentzian to Gaussian. | diffraction.two-theta | diffraction.intensity |
| Power-law background | {4A7F9793-F2E8-4D61-B3C1-155BAA0C344B} | TPowerLawBackgroundPointsSet | yes | — | — | — | A background that changes as a power of x: level b0 at the start of the interval, exponent p. | — | — |
| Pseudo-Voigt | {9F27DC7C-970F-4DAC-88CD-F5FB3400D38D} | TPseudoVoigtPointsSet | yes | — | — | — | A weighted sum of a Gaussian and a Lorentzian with one shared width, used as a fast stand-in for the Voigt profile. | diffraction.two-theta | diffraction.intensity |
| Quadratic background | {85AEDDBA-26A1-4D1A-A95B-DB730BD76AB8} | TQuadraticBackgroundPointsSet | yes | — | — | — | A parabolic background: level b0 at the start of the interval, slope b1 and curvature b2. | — | — |
| Skewed Gaussian | {A32763F7-18DC-4378-A8E6-C0CCE28B5FD6} | TSkewedGaussianPointsSet | yes | — | — | — | A Gaussian made asymmetric by the shape parameter beta, following the skew-normal distribution. | diffraction.two-theta | diffraction.intensity |
| Step (erf) | {3FC3B846-3A44-4ACE-B91B-CF84304391F9} | TStepPointsSet | yes | — | — | — | A smooth step of height A centred at x0, whose sharpness is set by sigma. | diffraction.two-theta | diffraction.intensity |
| User Defined | {D8CAFCE5-8B03-4CCE-9E93-EA28ACB8E7CA} | TUserPointsSet | yes | — | — | — | A curve whose formula you type yourself, with parameters named in that formula. | — | — |
| Voigt | {EEED2EC3-D036-473E-81E1-8E40943D8158} | TVoigtPointsSet | yes | — | — | — | The convolution of a Gaussian of width sigma with a Lorentzian of half-width gamma, scaled by A. | diffraction.two-theta | diffraction.intensity |
Data loader
Reads one file format. The Open dialog's filter is built from this registry, so a build can only offer what something can actually read.
- You write —
TDataLoaderClass + extensions + format name - Entry point —
RegisterDataLoader - Registered here — 2
| class | extensions | format |
|---|---|---|
| TDATFileLoader | .DAT | Diffraction profile |
| TDATFileLoader | .XY;.TXT | Two-column numeric |
Data source
Where data comes from before a loader reads it: a service, a repository or a directory. A source declares what it asks the user for and what extensions it produces; the wizard builds its own steps and its own input controls from that, and the file is parsed by whichever loader claims the extension. The framework names no service.
- You write —
TDataSourceClass (class of TDataSource) - Entry point —
RegisterDataSource - Registered here — 3
| class | id | title | category | produces | needs network |
|---|---|---|---|---|---|
| TSamplesSource | samples | Sample data | General | .DAT;.XY;.TXT | — |
| TUrlSource | url | Web address | General | .DAT;.XY;.TXT | yes |
| TDoiSource | doi | Published data (DOI) | General | .DAT;.XY;.TXT | yes |
Axis mode
A way of showing the argument or the value: a name and unit, a display-only transform, and how the axis is marked and read out. Curve types and data formats say which one their coordinates are in, by id; both axis menus are built from this registry.
- You write —
TAxisModeClass (class of TAxisMode) - Entry point —
RegisterAxisMode - Registered here — 8
| class | id | caption | topic |
|---|---|---|---|
| TPositionAxisMode | position | General Position | data/argument-axes |
| TValueAxisMode | value | General Value | data/value-axes |
| TLogarithmicAxisMode | logarithmic | Logarithmic | data/logarithmic-axis |
| TCustomAxisMode | custom | Custom... | data/custom-axis |
| TThetaAxisMode | diffraction.theta | Theta | peaks-and-diffraction/diffraction-angles |
| TTwoThetaAxisMode | diffraction.two-theta | 2 * Theta | peaks-and-diffraction/diffraction-angles |
| TSinThetaOverLambdaAxisMode | diffraction.sin-theta-over-lambda | Sin Theta / Lambda | peaks-and-diffraction/diffraction-angles |
| TIntensityAxisMode | diffraction.intensity | Intensity | peaks-and-diffraction/diffraction-angles |
Minimizer
An engine, and the capability answers the client greys choices out from. Its factory returns the IFitBackend that does the work.
- You write —
TMinimizerInfo (with a TBackendFactory) - Entry point —
RegisterMinimizer - Registered here — 4
| kind | name | description | needs formula | needs python sidecar | supports weighting | supports curve scaling | has backend factory |
|---|---|---|---|---|---|---|---|
| 0 | Downhill Simplex (native) | The original algorithm. Needs no Python and fits any curve type, including those with no formula. | — | — | — | yes | yes |
| 1 | Levenberg-Marquardt (Python/lmfit) | Trust-region least squares with uncertainties. Needs the Python sidecar, and a curve type that has a formula. | yes | yes | yes | — | yes |
| 2 | Downhill Simplex, curve by curve (native) | The same simplex over one curve's parameters at a time, widest curve first, repeated until a pass gains nothing. Faster on models of many curves that each shape their own stretch; curves that trade off against each other may settle less well than under the simplex over everything. | — | — | — | yes | yes |
| 3 | Downhill Simplex, restarted (native) | The same simplex over every parameter, started again from its own best, stepping each parameter forward or backward at random, until a run improves the loss by less than one percent. Never worse than the simplex, which is its first run; slower, and often a good deal better. | — | — | — | yes | yes |
Loss function
What "best fit" means. Compatibility with a curve type is DERIVED from the two capability flags, never from a table of type names.
- You write —
TLossInfo (evaluate + pool) - Entry point —
RegisterLoss - Registered here — 4
| kind | name | description | self normalising | least squares | poolable |
|---|---|---|---|---|---|
| 0 | R-factor | Squared deviations normalised by the data, so values are comparable between datasets. | — | yes | yes |
| 1 | R-factor (legacy) | The original objective. Normalised by the model rather than by the data, so with curve scaling on it can be lowered by inflating the model. Kept for comparison. | yes | — | — |
| 2 | Sum of squares | Plain least squares, with no normalisation at all - the value scales with the data, so compare it only within one dataset. | — | yes | yes |
| 3 | Relative deviation | Absolute deviations as a fraction of the data - reads directly as "the model is off by this much". | — | — | yes |
REST action
One verb of the HTTP API the desktop client and any other caller use.
- You write —
TActionInfo (with a TActionHandler) - Entry point —
RegisterAction - Registered here — 15
| name | description | asynchronous |
|---|---|---|
| minimize-difference | Fit the current model to the profile. | yes |
| minimize-difference-again | Continue fitting from where the last fit stopped. | yes |
| minimize-number-of-curves | Fit, then drop curves that do not earn their place. | yes |
| do-all-automatically | Background, positions and fit, in one pass. | yes |
| smooth-profile | Smooth the experimental profile. | yes |
| compute-curve-bounds | Work out where each curve begins and ends. | yes |
| compute-background-points | Propose background points from the profile. | yes |
| compute-curve-positions | Propose a curve position for each peak found. | yes |
| select-all-points-as-curve-positions | Use every profile point as a curve position. | yes |
| select-entire-profile | Fit over the whole profile rather than a marked interval. | yes |
| create-curve-list | Rebuild the curve list from the current model. | — |
| evaluate-model | Measure the model as it stands, without fitting it. | — |
| stop | Stop the operation now, keeping what it has reached. | — |
| subtract-background | Subtract the background from the profile. | — |
| select-profile-interval | Restrict the fit to the interval between start and stop. | — |
Explanation
What everything a user meets says about itself: what it is, why it is allowed or refused, whether that rests on the field's sources, on convention or on this software's own choice, what it does not cover, and where to read more. A curve type explains itself through its class; anything else a module adds, through its own provider.
- You write —
IExplanationProvider (a namespace and its topics) - Entry point —
RegisterExplanationProvider - Registered here — 136
| topic | title | summary | standing | standing hint | quote |
|---|---|---|---|---|---|
| getting-started/what-fit-is | What Fit is | Fit describes a measured profile as a sum of curves and tells you the parameters of each curve. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/two-programs | The window and the compute server | Fit is two programs: the window you work in, and a compute server, fit_server, that does every fit. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/main-window | The main window at a glance | The window has a chart in the middle, tools on the left, the model on the right and tables of numbers along the bottom. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/first-fit | A first fit | Import a profile, choose a curve type, run Fit > Automatically and read the result in the tables below the chart. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/fitting-by-hand | Fitting by hand, step by step | Instead of letting the program decide, you can say where the background is, what to fit and where the curves go, and then fit. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/explain-pane | The Explain pane | A pane below the model list that explains whatever you are looking at, as you look at it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/explain-everything | Explain Everything | Help > Explain Everything opens a window listing every explanation this build can give, including this user guide. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/standing | How much authority an explanation has | Every explanation carries one of four labels saying whether it rests on the field's sources, on common practice, or on a choice this program made. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/about | About Fit | Help > About shows which version of Fit you are running, and the terms it is licensed under. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| getting-started/updates | Keeping Fit up to date | Fit checks for a new version by itself, at most every six hours, and asks before installing anything. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/projects | Projects | A project is your whole piece of work in one file, so that you can close Fit and later carry on fitting from where you stopped. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/new-project | New Project | File > New Project closes what is open and leaves an empty window, ready for a profile to be imported. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/open-project | Open Project | File > Open Project asks for a .fitproj file and restores the work it holds. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/open-recent | Open Recent | File > Open Recent lists the projects you opened or saved most recently, newest first, and opens one with a click. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/save-project | Save Project | File > Save Project writes the project to its file, and asks for a name the first time. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/save-project-as | Save Project As | File > Save Project As always asks for a file name and saves the project there. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/project-contents | What a project file holds | A project holds the data and everything needed to continue fitting it, but nothing that can be recalculated from those. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/project-format | The .fitproj file format | A .fitproj file is a ZIP archive of JSON parts, which any archive tool can open. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/source-file | Where the data came from | A project remembers which data file it was imported from, and notes in the log when that file no longer says the same thing. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/unsaved-changes | Unsaved changes | Closing Fit, starting a new project or opening another with unsaved work asks whether to save the project first, and a save that does not happen stops the command. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/import-profile | Import Profile | File > Import Profile reads a data file and makes it the profile of the current project. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/dat-files | Two-column data files (.dat) | A .dat file is plain text with the argument and the measured value on each line, and Fit reads the first two numbers of every line. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/reload-profile | Reload Profile | File > Reload Profile reads the data file the open project came from again, for when it has changed on disk. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/export-curve-parameters | Export Curve Parameters | File > Export > Curve Parameters writes the Curve Attributes table to a tab-separated text file. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/export-summary-table | Export Summary Table | File > Export > Summary Table writes the Summary table - data, model and difference point by point - to a tab-separated text file. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/quit | Quit | File > Quit closes Fit, asking first whether to save unsaved work. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/sample-data | Sample data | Fit comes with a few data files to try it on, in a folder called Data. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/command-line | Command-line options | Fit's window accepts a few options that say what to open at start-up and how much to log. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/log-files | Log files | The window and the compute server each keep a log file, which is where to look when something went wrong. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/remembered-settings | What Fit remembers on this computer | Choices that belong to you and to this computer rather than to a project are kept in one file, settings.json. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| projects-and-files/file-locations | Where Fit keeps its files | Fit keeps your settings, your own curve types, its logs and the data it downloads in the folders each system names for them, never in your home folder itself. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/the-profile | The profile | The profile is the measured data a model is fitted to: a list of points, each an argument and the amplitude measured at it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/data-table | The Data table | The Data tab on the left lists every point of the profile, or of the data interval in force, and lets you correct a value by typing over it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/argument-axes | Argument axes and units | The horizontal axis can show the stored argument in several ways - as the model and the data say it should, as a plain position, on a logarithmic scale, through formulas of your own or as a module included in the build reads it - without changing the data or the fit. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/value-axes | Value axes | The vertical axis is chosen the same way as the horizontal one: what the model and the data say the value is, a plain value, a logarithmic scale or formulas of your own - without changing the data or the fit. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/logarithmic-axis | The logarithmic axis | Logarithmic draws a coordinate at the decimal logarithm of its value, so equal ratios are equal distances, and marks and reads it in the value itself. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| data/custom-axis | A custom argument axis | Data > Argument Transformation > Use Rule > Custom Position shows the argument through a formula of your own, given together with its inverse. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/data-interval | Working on part of the profile | Data > Range narrows the program's work to the stretch of the profile between two points you pick, and brings the whole profile back. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/smoothing | Smoothing the profile | Data > Smooth Profile replaces each amplitude by the mean of itself and its two neighbours, keeping the total of all amplitudes the same. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/data-sources | Data sources | File > New Project from Data Source finds data in a published collection or at an address, downloads it and starts a project with it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/source-samples | Sample data | The Sample data source offers the example files installed with Fit, so there is something to fit before any data has been found. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/source-url | Web address | The Web address source downloads a data file from an address you paste in. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| data/source-doi | Published data (DOI) | The DOI source opens a Zenodo or figshare record by its DOI and lists the files it publishes. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/the-model | The model | The model is what the program fits to the profile: curves of a chosen shape, placed at positions and fitted over intervals. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/curve-type | Choosing a curve type | The curve type is the shape every curve placed from a position takes, and is chosen from Model > Curve Type or from the list at the top of the Tools tab. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/tools-pane | Building the model from the Tools tab | The Tools tab on the left carries the model-building commands as buttons, so a round of picking, fitting and adjusting needs no trip through the menus. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/picking-on-the-chart | Picking points on the chart | In a picking mode each left click on the chart adds the data point nearest the pointer to the set being built, and a click on a point already in the set takes it out. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/curve-positions | Curve positions | A curve position is the argument where one curve of the model is placed; positions can be picked on the chart, proposed by the program or put at every data point. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/fit-intervals | Fit intervals | A fit interval is a stretch of the profile fitted as a problem of its own, marked by a pair of bounds. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/model-panel | The Model tab | The Model tab on the right lists the curves of the model, one row per curve with where it sits, and is where one curve is chosen to be explained or deleted. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/curve-attributes | The Curve Attributes table | The Curve Attributes tab at the bottom of the window lists every curve of the model with the value of each of its parameters. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/parameter-kinds | Parameter kinds: fitted, shared, fixed and computed | Each parameter value in the Curve Attributes table is one of four kinds, which say whether and how the fit moves it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/parameter-limits | Limits on parameter values | Every parameter keeps to a range of its own, and a value outside it - proposed by a fit, typed into the table or read from a saved project - is held at the nearest one the range allows. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/delete-curve | Deleting a curve | Right-click a curve in the Model tab and choose Delete curve to remove it, together with the position it was placed from. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/clear-model | Clearing the model | Model > Clear Model removes every curve from the model at once, after asking. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| model/model-history | The model history | Every run that ends records the model it reached, so you can go back to any of them, compare them and carry on from the best. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/overview | Fitting a model | A fit adjusts the parameters of the model's curves until the calculated profile matches the measured one as closely as it can. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/automatically | Automatic decomposition | Fit > Automatically decides how many curves the profile needs: it starts with far more than any profile needs and removes every one the fit can do without. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/how-many-curves | How many curves | Fit > Remove Curves By chooses how the program decides how many curves a profile needs: by BIC, the default, or within a maximum difference you set. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| fitting/minimize-number-of-curves | Minimize Number of Curves | Removes every curve the fit can do without, starting from the curves and fit intervals you already have. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/minimize-difference | Minimize Difference | Fits the model as it stands: every curve is kept and only their parameters change. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/stop | Stop | Ends the fit or other long computation that is running. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/why-fit-commands-are-greyed | Why a fit command is greyed | The fit commands are offered only when there is something to fit, the background has been dealt with, and nothing else is running. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/r-factor | The difference (R-factor) | The number Fit reports for how well the model matches the data is an R-factor: the squared differences divided by the square of the summed data. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/max-acceptable-difference | Max Acceptable Difference | The ceiling on the R-factor that decides how many curves are kept while Fit > Remove Curves By > Max Acceptable Difference is chosen. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/curve-scaling | Curve scaling | With curve scaling on, the model is multiplied by one factor per fit interval so that its area matches the data before the two are compared. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/minimizer | Minimizer | Fit > Minimizer chooses the algorithm that searches for the best parameters; the first one, the default, needs nothing extra. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/loss-function | Loss Function | Fit > Loss Function chooses the number a fit makes as small as possible; the default, R-factor, suits almost every fit. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/weighting | Weighting | Weighting decides how much each point counts in a fit by the Python engine; counting data are conventionally weighted by one over the square root of the count. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| fitting/what-the-fit-will-do | What the fit will actually do | When a choice cannot be honoured, the fit changes it and says so: always in the status bar, and in a dialog when you make the choice. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/when-a-fit-ends | When a fit ends | The chart, the tables and the Model panel are refreshed from the result, and the status bar shows how long the fit took and how good it is. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/samples-no-curve-covers | Samples no curve covers | A point inside a fit interval that no curve of the model reaches is modelled as 0, still counts in the R-factor, and is named where the result is shown. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/is-the-difference-noise | Is the difference only noise? | A model that explains the data leaves a difference that is noise; after every fit the Ljung-Box test asks whether it is, and the wavelet transform names where it is not. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | Q = n(n + 2) sum_(k=1..h) r_k^2 / (n - k), which for white noise follows a chi-square of h degrees of freedom. |
| fitting/compute-server | Compute Server | The window does no fitting itself: every computation runs in a compute server, fit_server, and Fit > Compute Server says where it is. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/compute-backends | Compute backends | Help > Compute Backends summarises the engines a fit can run on and how to set up the optional Python one. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fitting/python-setup | Setting up the Python engine | An installed copy needs no setup: the installer puts the Python engine beside the compute server, with its own Python. A copy built from source needs a one-time setup: a private Python environment with numpy, scipy and lmfit at the tested versions. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/layout | The main window | Data and tools on the left, the chart in the middle, the legend and the model on the right, tables along the bottom and a status bar under them. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/tools-tab | The Tools tab | The Tools tab holds the list of curve types and a group of buttons for each step of building and fitting a model. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/chart | The chart | The chart draws the measured profile and everything the model adds to it, and shows the coordinates of the point nearest the pointer. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/zoom-and-scroll | Zooming and scrolling the chart | Drag a rectangle from its top-left corner to its bottom-right corner to zoom into it; drag in any other direction to see everything again. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/view-markers | View Markers | View > View Markers marks every point of the profile and of the model curves, not only the line through them. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/graphs-tab | The Graphs tab | The Graphs tab is the chart's legend: one row per series, with a tick to show or hide it and a square of its colour. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/theme | Theme | View > Theme chooses whether the chart, the tables and the explanation panes are painted light or dark. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/model-panel | The Model panel | The Model tab lists the curves the model is made of, one row per curve, with the Explain pane under the list. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/history-tab | The History tab | The History tab lists every model a fit reached, newest first, with a graph of which model each was fitted from. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/explain-pane | The Explain pane | The pane under the Model panel explains what you are looking at: the selected curve, the curve type you clicked, or an entry of the Model panel's right-click menu. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/explain-everything | Explain Everything | Help > Explain Everything opens every explanation this build can give: this guide, every curve type and every rule a module adds. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/tables | The tables at the bottom | Tabs along the bottom show the model's inputs and results as numbers: Fit Intervals, Curve Positions, Curve Attributes and Summary, and any table a module adds. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/fit-intervals-table | The Fit Intervals table | Lists each fit interval by its Starting Position and Final Position. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/curve-positions-table | The Curve Positions table | Lists where curves are placed: the positions you picked, or where the fit put the curves when you picked none. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/curve-attributes-table | The Curve Attributes table | One row per curve and one column per parameter, holding the values the last fit found. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/summary-table | The Summary table | For every point inside every fit interval: the measured value, the model's value, their difference and each curve's own contribution. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/run-log | The Run Log | The Run Log tab says what a run decided and why: each curve it removed, each it kept, and whether what it left is only noise. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/edit-menu | The Edit menu | Edit > Copy to Clipboard, Edit > Delete and Edit > Select All act on the table that has the keyboard focus. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/status-bar | The status bar | Four panels along the bottom: the elapsed time, the fit's figures, a hint, and what the next fit will do. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/screen-scaling | Screen scaling | The window scales itself to the screen's pixel density; the --dpi option or the FIT_UI_DPI variable sets the density when the guess is wrong. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/remembered-settings | What the window remembers | A few choices are kept between sessions in this computer's settings.json; everything about the model is kept in the project instead. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| the-window/remembered-layout | The window's size and its parts | The window opens at the size and place you left it, with each part as large as you made it; View > Reset Layout puts it back as it was designed. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| the-window/modules | Modules in the window | A build that contains a module shows its commands in a submenu of Model and a group on the Tools tab, and can give it a table tab of its own. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fit-progress/live-progress | Fit progress | While a fit runs, the line over the charts and the R-factor tab show how far it has got. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fit-progress/animation-mode | Animation Mode | With View > Animation Mode ticked, a running fit redraws the model over the data in the Model tab as it improves; the R-factor tab draws its progress either way. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| fit-progress/r-factor-scale | R-factor scale | View > R-factor Scale chooses how the R-factor of a running fit is drawn on the progress chart, and how the status bar and the History tab give it; right-clicking that chart offers the same choices. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background | The background | The background is the slowly varying level under the peaks; the program can fit it as a curve of the model, or mark it with background points and subtract it. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background-curve | The background curve | Model > Background > Curve puts the background under the peaks as a curve of the model, fitted with them, drawn and saved with the project - and leaves the profile as it was measured. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background-subtraction | Subtracting the background | Model > Background > Subtract joins the background points by straight lines and subtracts those lines from the profile. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background-fraction | Background fraction | The background fraction decides how small a peak the automatic searches still count: a point below 1/N of the highest point, for the factor N you set, is treated as background. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background-variation | Background variation | With Model > Background > Enable Variation ticked, a fit also adjusts a smooth background of its own alongside the curves. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/background-points-table | The Background Points table | Lists the background points by Position and Amplitude, beside the buttons that find, subtract and remove them. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/diffraction-angles | Diffraction angles: Theta, 2 Theta and sin(Theta)/lambda | For a diffraction pattern the stored argument is read as the scattering angle 2 Theta in degrees, and the axis can show it as 2 Theta, as Theta, or as sin(Theta)/lambda. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| peaks-and-diffraction/wavelength | Wavelength | The wavelength of the radiation, in angstrom, is the number the Sin Theta / Lambda axis divides by. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/sample-profiles | Sample diffraction profiles | Nine diffraction profiles come with the peaks, in the Data folder, to try a fit on. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/first-peak-fit | A first fit of peaks | Two overlapping peaks in 2.dat, fitted automatically in a few clicks. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/parameter-limits | Limits on the peaks, the backgrounds and your own formulas | How wide each peak shape may be, how the backgrounds keep above zero, and what the parameters of a formula you define may take. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/residual-spectrum | The Residual Spectrum | The Residual Spectrum tab of the chart area maps where, and at which length of rhythm, the difference between the data and the model holds more than noise. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/user-defined-curves | User-defined curves | You can fit a shape of your own by typing its formula; the program turns it into a curve type that is saved and offered like the built-in ones. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/user-curve-formula | Writing the formula of a user-defined curve | In the Create New Curve Type dialog you give the curve a name and a formula in x; every other name in the formula becomes a parameter. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/user-curve-roles | Parameter roles and starting values | The Set Curve Type Properties dialog says which parameter of a user-defined curve is its argument, position, amplitude and width, which are held, and where each starts. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| peaks-and-diffraction/user-curve-library | Selecting and deleting user-defined curves | The curve types you have defined are chosen and deleted under Model > Curve Type > User. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| curve-type/6de06c1b-e51a-48c6-b036-c81a841ec468 | 2 br. Pseudo-Voigt | A pseudo-Voigt peak with an independent width and Gaussian-Lorentzian mix on each side of its maximum. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| curve-type/74a6ec30-a019-475d-99a3-b62c4ab03a6c | Asym. Pseudo-Voigt | A pseudo-Voigt peak made asymmetric by giving its two sides different widths, sigma + deltasigma on the right and sigma - deltasigma on the left. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| curve-type/d6553d98-f367-41d7-a717-6a4ea29605f2 | Constant background | A flat background of level b0 under the peaks of each fit interval. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| curve-type/ec663a56-0e89-4bc3-91fd-f243aadb253e | Doniach-Sunjic | An asymmetric photoemission line of metals: a Lorentzian of half-width sigma skewed by the singularity index alpha. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | I(E) = cos(pi alpha / 2 + (1 - alpha) arctan(E / gamma)) / (E^2 + gamma^2)^((1 - alpha) / 2) |
| curve-type/1413e48f-a118-4b6f-99ac-7f708c3ce019 | Exponential background | An exponentially decaying background: level b0 at the start of the interval, falling by a factor e every tau. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| curve-type/4d320bbe-1000-4d70-a860-3ac0d7076ff5 | Exponentially Modified Gaussian | A Gaussian convolved with a one-sided exponential decay, giving a peak with a tail of time constant tau. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | f(t) = Gaussian(t; t_G, sigma) convolved with exp(-t / tau) / tau |
| curve-type/ff4e399c-c33c-482e-84d7-952700bcd4ae | Gaussian | A symmetric bell-shaped peak whose area is A, centred at x0, with standard deviation sigma. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | f(x) = exp(-(x - mu)^2 / (2 sigma^2)) / (sigma sqrt(2 pi)) |
| curve-type/a7d78941-8a02-4af6-89e3-c14810a4ec6f | Linear background | A straight-line background, level b0 at the start of the interval and slope b1. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| curve-type/7ca6fdaf-95b7-4d84-bcba-130c828407cc | Lorentzian | A symmetric peak with heavy tails, whose area is A, centred at x0, with full width at half maximum sigma. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | f(x) = 1 / (pi s (1 + ((x - t) / s)^2)) |
| curve-type/e6e51486-6970-4ab3-8010-908664116379 | Moffat | A symmetric peak of height A with core width sigma and power-law wings set by m, used for stellar images. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | I(r) = I0 (1 + (r / alpha)^2)^(-beta) |
| curve-type/195b2208-9aa0-4281-8cab-7d29d959ac4d | Pearson VII | A symmetric peak of height A and full width at half maximum sigma, whose tail weight m runs from Lorentzian to Gaussian. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | y = A / (1 + (2^(1/m) - 1) (2 (x - x0) / w)^2)^m |
| curve-type/4a7f9793-f2e8-4d61-b3c1-155baa0c344b | Power-law background | A background that changes as a power of x: level b0 at the start of the interval, exponent p. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| curve-type/9f27dc7c-970f-4dac-88cd-f5fb3400d38d | Pseudo-Voigt | A weighted sum of a Gaussian and a Lorentzian with one shared width, used as a fast stand-in for the Voigt profile. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | pV = eta L + (1 - eta) G |
| curve-type/85aeddba-26a1-4d1a-a95b-db730bd76ab8 | Quadratic background | A parabolic background: level b0 at the start of the interval, slope b1 and curvature b2. | Convention | Common practice or a guideline in the field, not a rule its sources require. | — |
| curve-type/a32763f7-18dc-4378-a8e6-c0cce28b5fd6 | Skewed Gaussian | A Gaussian made asymmetric by the shape parameter beta, following the skew-normal distribution. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | f(x) = 2 phi(x) Phi(alpha x) |
| curve-type/3fc3b846-3a44-4ace-b91b-cf84304391f9 | Step (erf) | A smooth step of height A centred at x0, whose sharpness is set by sigma. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | erf z = (2 / sqrt(pi)) integral from 0 to z of exp(-t^2) dt |
| curve-type/d8cafce5-8b03-4cce-9e93-ea28acb8e7ca | User Defined | A curve whose formula you type yourself, with parameters named in that formula. | This software's choice | A decision made by this software rather than by the field's sources; the explanation says why it was made. | — |
| curve-type/eeed2ec3-d036-473e-81e1-8e40943d8158 | Voigt | The convolution of a Gaussian of width sigma with a Lorentzian of half-width gamma, scaled by A. | Canonical | Stated by the field's authoritative sources, which the explanation quotes and cites. | U(x, t) + i V(x, t) = sqrt(pi / (4 t)) exp(z^2) erfc(z), z = (1 - i x) / (2 sqrt(t)) |
Server module
An analysis vertical's server side: the resources it answers and its per-problem session state.
- You write —
IAppModule - Entry point —
RegisterAppModule - Registered here — 1
| name |
|---|
| scientific |
UI module
A module's contribution to the window, declared as data. One declaration serves three surfaces: the menu bar, the Tools pane and the Model panel's context menu - Surface says where an entry is shown and Scope whether it acts on the selected row. Structure for the Model panel is pushed separately under structure_id, and the panel itself belongs to the framework. WHICH contributor fills it is not arbitrated: it follows the selected curve type's placed_by_point_set, reported on the curve_types seam - empty means the framework's flat list of curves, and a named set means the module owning that set describes what its markup produced. The client names no module type.
- You write —
IUiModule - Entry point —
RegisterUiModule - Registered here — none. This seam exists for modules; the public framework ships none, and it is yours to claim.
Python sidecar pack
Names a module's <name>_routes.py, which the sidecar imports on start. Only the name travels; the sidecar finds the file itself.
- You write —
a package name - Entry point —
RegisterSidecarModule - Registered here — none. This seam exists for modules; the public framework ships none, and it is yours to claim.
Curve builder
Builds every curve a marked point set describes. Without one, the engine takes the position-based path.
- You write —
point set name -> TCurveBuilder - Entry point —
RegisterCurveBuilder - Registered here — none. This seam exists for modules; the public framework ships none, and it is yours to claim.
Chart overlay
Redraws a module's own marks after the model is recomputed, so the client need not name the module to refresh it.
- You write —
TModuleOverlayProc - Entry point —
RegisterModuleOverlay - Registered here — none. This seam exists for modules; the public framework ships none, and it is yours to claim.