ftp.nice.ch/pub/next/science/mathematics/HippoDraw.2.0.s.tar.gz#/HippoDraw/Hippo.bproj/InspectPFunc.h

This is InspectPFunc.h in view mode; [Download] [Up]

/* InspectPFunc.h		by Paul Kunz	November 1992
 * HippoDraw inspector for Minuit fitting
 * 
 * Copyright (C)  1992  The Board of Trustees of
 * The Leland Stanford Junior University.  All Rights Reserved.
 */

#define INSPECTPFUN_H_ID "$Id: InspectPFunc.h,v 1.29.2.1 1994/01/05 02:22:28 rensing Exp $"

#import <appkit/appkit.h>
#import "InspectBase.h"
#import "minuitFCN.h"
#import "hippo.h"

@class PFunction;

@interface InspectPFunc:InspectBase
{
  /* GUI stuff, first panel... */
    id		funcBrowser;	/* The list of functions */
    id		funcRadio;	/* Radio buttons to selected functions */
    id		addButton;
    id		parmForm;	/* Form containing a parameter's values */
    id		parmSlider;	/* Slider to change the value */
    id		parmSliderU;	/* Button to nudge slider up  */
    id		parmSliderD;	/* Button to nudge slider down */
    id		parmRadio;	/* Radio buttons for parmeter type */
    id		chiSqForm;	/* holds the chi squared */
    id		fixMatrix;	/* Switch boxes to fix value or limits */
    id		emptyBinButton;	/* Button to hold popUpList */
    id		fitTypeButton;	/* Button to hold popUpList */
    id		doFitButton;	/* Button to initiate a fit */
    id		plotFuncButton;	/* Button to hold popUpList */
    id		plotFSumButton;	/* Button to hold popUpList */
    
  /* resources... */
    Matrix	*emptyBinMatrix; /* matrix in popUpList */
    Matrix	*fitTypeMatrix;	 /* matrix in popUpList */
    Matrix	*plotFuncMatrix; /* matrix in popUpList */
    Matrix	*plotFSumMatrix; /* matrix in popUpList */
    List	*availFuncList;  /* List of available functions */
    List	*dynamFuncList;  /* List of functions dynamically loaded */
    id		fitter;		 /* The fitting package */

  /* current selections cached for optimization... */
    PFunction	*plotFunction;	/* selected plot function */
    int		pfIndex;	/* index into selected parameter */
    FCNParms    fcnParms;	/* structure to ship data to Minuit FCN */
    ntuple      fitNtuple;	/* ntuple to hold the data to fit */
}

- initInspFor:aDraw;
 /*
  * Initializes inspector for global control object aDraw
  * Adds itself to Inspector Panel when done.
  */
- setFitter:anObject;
 /*
  * Set the object to be used as a fitter.
  */
  
/* Action methods */
- add:sender;
 /*
  * Adds a function to a Plot's function list
  */
  
- remove:sender;
 /*
  * Removes a function from a Plot's function list.
  */
  
- changeFix:sender;
 /*
  * Responds to requested change to fixed / free  parameters
  */
  
- funcRadioChanged:sender;
 /*
  * Responds to change on which functions to display.
  */
- parmRadioChanged:sender;
 /*
  * Responds to change in parameter type radio buttons
  */
  
- browserClicked:sender;
 /*
  * Responds to click in function browser.
  */
  
- sliderDragged:sender;
 /*
  * Responds to parameter slider being dragged by updating the
  * values and plot.
  */

- sliderNudged:sender;
 /*
  * Responds to buttons at the end of the parameter slider by updating the
  * values and plot.
  */

- checkFitValid;
 /*
  * The fit no longer matches the plot.  We copy the previously fitted   
  * parameters to the scratch area, select the Scratch button
  * and disable the Fitted button.
  */

- textDidEnd:sender endChar:(unsigned short)whyEnd;
 /*
  * Responds to change in the parameter form by running an algorithm
  * to change the value and others.
  */

- parmFormChanged:sender;
 /*
  * Ressponds to change in parameter Form when <CR> is hit
  */
- fitTypeChanged:sender;
 /*
  * Responds to request to change fit type
  */
  
- ebTypeChanged:sender;
 /*
  * Responds to request to change empty-bin action
  */
  
- plotFuncLineStyleChanged:sender;
 /*
  * Responds to request to change plot function linestyle
  */
  
- plotFSumLineStyleChanged:sender;
 /*
  * Responds to request to change plot function sum linestyle
  */

- doFit:sender;
 /*
  * Updates Minuit then does a fit.
  */

- addToAvailFuncs:sender;
 /*
  * Brings front an OpenPanel for the user to selected (multiple)
  * Plot function bundle(s) which are then loaded and made available.
  */
- startArchivingTo:(const char *)directory;
 /*
  * Searchs all Plots of the graphic view to find dynamically loaded
  * functions.   If any are found, their bundle is written to
  * directory.
  */
  
/* Internal methods */

- fetchMinuit;
 /*
  * Fetchs the results from Minuit and updates displays.
  */
  
- loadParams:(double *)param;
 /*
  * Load the parameters from an array. Used by Chi^2 calculation
  *  to set the parameters in the display's parameter blocks.
  */
  
- (List *) functionList;
 /*
  * Returns the currently selected function list, i.e either all
  * functions or ones on selected plot.
  */
  
- setParmType:(int)type;
 /*
  * Sets the parmRadio matrix to value type
  */
  
/* Updating methods */
- updatePlot;
 /*
  * Redraws the selected plot.
  */
  
- fullUpdate;
 /*
  * update everything including chi^2
  */

- updateView;
 /*
  * Updates the Inspector's content View.
  */

- updatePlotMatrix;
 /*
  * Updates the plot function linestyle popups.
  */

- updateEmptySelection;
 /*
  * Updates the Inspector's content View when there is no selection.
  */
  
- updateBrowser;
 /*
  * Updates the function NXBrowser view, making sure that both
  * columns become visible.
  */
  
- updateChiSq;
 /*
  * Calculates and updateds the chi-Square display using BWG.
  */
  
- updateParmForm;
 /*
  * Updates the parameter value Form with values from selected 
  * function, parameter and parameter type.
  */
  
- updateParmType;
 /*
  * Updates the parameter type matrix to that of the selected Plot.
  */
  
- updateDispType:(Plot *)plot;
 /*
  * Updates the data type matrix for given plot.
  */
/* Delegate Methods for NXBrowsers */
- (int) browser: sender fillMatrix: matrix inColumn: (int) column;
- (int) fillColumnZeroMatrix:matrix;
 /*
  * Fills the column 0 matrix, i.e. the list of functions.
  */
- (int) fillColumnOneMatrix:matrix;
 /*
  * Fills the column 1 matrix, i.e. the list of parameters.
  */
@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.