SpecTcl Programming Reference.

Ron Fox


Table of Contents
1. Introduction
I. SpecTclAPI class
2. SpecTcl
SpecTcl -- API Singleton class.
II. Tree Parameter, Tree Variable API
3. Tree parameter, tree variable API
CTreeParameter -- Parameter object 'independent' of rEvent
CTreeParameterArray -- Arrays of tree parameters
CTreeVariable -- Access to Tcl variables with metadata
CTreeVariableProperites -- Shared properties of CTreeVariable
CTreeVariableArray -- Container for an array of tree variables.
III. Tcl++ classes
4. Tcl++ classes
CTCLInterpreter --  Encapsulate a Tcl interpreter.
CTCLInterpreterObject --  Base class for objects that are associated with a Tcl Interpreter.
CTCLResult --  Provide an object oriented interace to the Tcl interpreter result.
CTCLException --  Class for reporting exceptional conditions in Tcl applications via the C++ try/catch mechanism.
CTCLObjectProcessor --  Abstract base class to encapsulate the Tcl object command interface exposed by Tcl_CreateObjCommand.
CTCLProcessor --  Provide argc, argv extension commands to Tcl.
CTCLCompatibiltyProcessor --  Adaptor between CTCLOjbectProcessor and CTCLProcessor.
CTCLCommandPackage --  Group several related Tcl command extensions and common services they may require together.
CTCLPackagedCommand --  Base class for a command that lives in a CTCLCommandPackage
CTCLVariable --  Encapsulate Tcl interpreter variables.
CTCLApplication 3 --  Base class for TCL/Tk applications.
CTCLHashTable --  Object oriented interface to Tcl's hash table functions.
CTCLHashTableItem --  Encapsulation of an entry in a Tcl Hash table as encapsulated in CTCLHashTable
CTCLHashTableIterator --  Iterator for visiting all elements of a CTCLHashTable
CTCLString --  Provide a wrapper for the Tcl_DString data type and its API
CTCLList --  Provide access to Tcl List parsing.
CTCLChannel --  Provide a C++ abstraction wrapper for Tcl Channels.
CTCLFileHandler --  Base class for building object oriented Tcl File event handlers.
CTCLIdleProcess --  Allows the establishment of an executable object that can be scheduled to be invoked when the Tcl/Tk intperpreter has no events that require processing.
CTCLTimer --  Abstract base class for C++ objects attached to timer events.
CTCLLiveEventLoop -- Run Tcl with event loop.
CTCLChannelCommander -- Accept commands on a Tcl channel from the event loop.
CTCLStdioCommander -- Event driven command input on stdin/stdout
CTCLServer -- Listener for a Tcl server.
CTCLTcpServerInstance -- Channel commander that is a server instance for CTCLServer
CItemConfiguration -- Hold a configuration
CConfigurableObject -- Base class for objects tht have a configuration.
CTCLObjectPackage -- Provide common functionality for a set of related commands.
CTCLPackagedObjectProcessor -- Base class for commands living in a CTCLObjectPackage
IV. Core SpecTcl classes
Extensible Factories -- Create factories that don't have hard-coded creationals.
CEventProcessor -- Abstract base class convering events to parameters
CEventBuilderEventProcessor -- Event processor for event built data.
CTclGrammerApp -- Base Application class
CHistogrammer -- SpecTcl histogramming core
Dictionaries -- Describe dictionaries used by SpecTcl
CAnalyzer -- Analyzer base class and classic analyzer
CTclAnalyzer -- Analyzer integrated with Tcl supporting pipeline
CBufferDecoder -- Base class for SpecTcl buffer decoders
CNSCLBufferDecoder -- Decode fixed sized event buffers from NSCLDAQ-7.x/8.x
CNSCLJumboBufferDecoder -- Decode NSCLDAQ 7.x/8.x buffers bigger than 128Kbytes.
CRingBufferDecoder -- Decode data from ring buffers
CRingFormatHelper -- ABC for4 ring buffer format helpers
CNamedItem -- Base class for items with names and ids.
CParameter -- Parameter definition.
CEvent -- Destination for decoded event data.
CSpectrum -- Classes implementing SpecTcl spectra
CFold -- Process gamma ray spectrum folds
CAxis -- Spectrum axis coordinate transforms.
CGate -- SpecTcl gate classes
CGateContainer -- Pointer like class for Gates.
CGateObserver -- Observe changes in the gate dictionary.
CFit -- Base class for spectrum fitting subsystem.
Predefined CFit classes -- 3SpecTcl
CSpectrumFit -- Fit of spectrum channels.
CFitFactory -- Creating fit objects by name
CFitDictionary -- Fitting subsystem dictionary.
CEventSink -- Base class for event sink pipeline elements
CEventFilter -- Abstract base class for event filters.
CGatedEventFilter -- Filter with output conditionalized on a gate check.
CFilterOutputStage -- Abstract base class for filter output streamers.
CXdrFilterOutputStage -- Filter output stage for writing Xdr filters.
CFilterOutputStageCreator -- Create filter output stages for CFilterOutputStageFactory
CFilterOutputStageFactory -- Create filter output stage objects.
CXdrFilterOutputStageCreator --  Create CXrFilterOutputStage objects
FilterEventProcessor --  Decodes events from a filter file into parameters.
CFold -- Process gamma ray spectrum folds
CAxis -- Spectrum axis coordinate transforms.
CGate -- SpecTcl gate classes
CGateContainer -- Pointer like class for Gates.
CGateObserver -- Observe changes in the gate dictionary.
CFit -- Base class for spectrum fitting subsystem.
Predefined CFit classes -- 3SpecTcl
CSpectrumFit -- Fit of spectrum channels.
CFitFactory -- Creating fit objects by name
CFitDictionary -- Fitting subsystem dictionary.
CEventSink -- Base class for event sink pipeline elements
CEventFilter -- Abstract base class for event filters.
Root tree building -- Classes to build root trees.
RootTreeSink -- Event sink that writes root trees.
RootEventProcessor -- Event processor to manage root event sinks
CPipelineManager -- v5.1+ Dynamic pipeline management
CPipelineEventProcessor -- Encapsulate an event processing pipeline as a processor.
V. SpecTcl Displays
CDisplay -- Display interface base class
CNullDisplay -- Batch mode displayer
CXamine -- Displayer class for Xamine
Xamine Gates -- Represent gates in Xamine
XamineButton -- Describe a client button
CXamineButtonPrompt -- Base class for button prompter descriptions
CXamineNoPrompt -- Prompter that does not prompt
CXamineConfirmPrompt -- Prompt for confirmation
CXamineTextPrompt -- Prompt for a text string
CXamineSpectrumPrompt -- Prompt for a spectrum
CXamineFilePrompt -- Prompt for a filename.
CXaminePointsPrompt -- Prompt for points
CXamineEvent -- Encapsulate events from Xamine.
CButtonEvent -- Encapsulate button press events
CDisplayInterface -- Manages displayers
CDisplayCollection -- Maintain a named set of display objects.
CDisplayFactory -- Associate display creators with display type names
VI. Callback based analysis framework.
CAnalysisEventProcessor -- Event processor for callback analysis.
CAnalysisBase -- Base class for callout objects
CAnalysisBase -- Base class for callout analyzers.
List of Examples
1. evttclsh