# Processing Mechanisms¶

## Overview¶

A ProcessingMechanism is a type of Mechanism that transforms its input in some way. A ProcessingMechanism always receives its input either from another ProcessingMechanism, or from the input to a Process or System when it is executed. Similarly, its output is generally conveyed to another ProcessingMechanism or used as the ouput for a Process or System. However, the output of a ProcessingMechanism may also be used by an AdaptiveMechanism to modify the parameters of other components (or its own). ProcessingMechanisms are always executed before all AdaptiveMechanisms in the Process and/or System to which they belong, so that any modificatons made by the AdaptiveMechanism are available to all ProcessingMechanisms in the next TRIAL.

## Creating a ProcessingMechanism¶

A ProcessingMechanism can be created by using the standard Python method of calling the constructor for the desired type. Some types of ProcessingMechanism (for example, ObjectiveMechanisms) are also created when a System or Process is created, if learning and/or control have been specified for it.

## Structure¶

A ProcessingMechanism has the same basic structure as a Mechanism. See the documentation for individual subtypes of ProcessingMechanism for more specific information about their structure.

## Execution¶

A ProcessingMechanism always executes before any AdaptiveMechanisms in the Process or System to which it belongs.