ULMTrigger

Name

ULMTrigger -- control a LeCroy 2637 ULM running trigger firmware

Synopsis

ULMTrigger create name base

ULMTrigger config name option value ...

ULMTrigger cget name

DESCRIPTION

The ULMTrigger is intended to control a LeCroy 2367 ULM situated in a crate controlled by a CC-USB. It is the counterpart to the CBDULMTrigger driver that lives in the VMUSBReadout framework. In this case, the ULMTrigger does not need to be registered first to a CamacCrate, though it still can be. Instead, it can be directly registered to a stack.

Two options need to be specified to function properly. The first is firmware which defines the location of the firmware file to load. The second is the slot number in the camac crate it lives in. This will only work properly if running the usbtrig.bit firmware that Daniel Bazin has written.

On initialization the module will always be cleared and the GO bit set to 1.

At the end of the run, the GO bit is set to 0.

During stack execution initiated by an event trigger, the following logic is carried out:


if "-registerRead" is true
    Read the register

if "-eventwiseClear" is true
    Clear the register
  
By default, both -registerRead and -eventwiseClear are set to false.

OPTIONS

-slot value

Specifies the slot of the CAMAC crate the target module is occupying. Default is 1.

-firmware path

The path to the firmware file usbtrig.bit. Default is "".

-readRegister bool

Specifies whether to add a hit register read into the event stack. Defaults to true.

-eventwiseClear bool

Specifies whether to send a clear command via the CAMAC dataway at the end of the event. Defaults to true.

-forceFirmwareLoad bool

By default, the ULM will only load the firmware if it fails to validate the configuration. This occurs always after a bad firmware load or after a crate has been power cycled. Firmware loads take a bit of time so it is worthwhile to skip reloading the firmware on every run. However, sometimes it may be considered useful. This option causes the firmware to be loaded at the start of EVERY run. Defaults to false.

-configuration num

Specifies the number that will be used to validate a successful firmware configuration. This number is compared to the value returned by the function A=15 F=0.

-pcDelay num

Unknown. Default is 0.

-pcWidth num

Unknown. Default is 0.

-scDelay num

Unknown. Default is 0.

-scWidth num

Unknown. Default is 0.

-ccWidth num

Unknown. Default is 0.

-ssDelay num

Unknown. Default is 0.

-bypasses num

Unknown. Default is 0.

-pdFactor num

Unknown. Default is 0.

-sdFactor num

Unknown. Default is 0.

-triggerBox num

Unknown. Default is 0.

-inspect1 num

Unknown. Default is 0.

-inspect2 num

Unknown. Default is 0.

-inspect3 num

Unknown. Default is 0.

-inspect4 num

Unknown. Default is 0.

-adcWidth num

Unknown. Default is 0.

-qdcWidth num

Unknown. Default is 0.

-tdcWidth num

Unknown. Default is 0.

-coincWidth num

Unknown. Default is 0.

EXAMPLES

Example 1. A simple setup of a single ULM


# Define values for each parameter in TRIGGER array
ULMTrigger create sclr -slot 23
ULMTrigger config ulm firmware /user/s800/server/fpga/usbtrig.bit
ULMTrigger config ulm -pcDelay $TRIGGER(PCDelay) \
                  -pcWidth $TRIGGER(PCWidth) \
                  -scDelay $TRIGGER(SCDelay) \
                  -scWidth $TRIGGER(SCWidth) \
                  -psDelay $TRIGGER(PSDelay) \
                  -ccWidth $TRIGGER(CCWidth) \
                  -ssDelay $TRIGGER(SSDelay) \
                  -bypasses $TRIGGER(Bypasses) \
                  -pdFactor $TRIGGER(PDFactor) \
                  -sdFactor $TRIGGER(SDFactor) \
                  -triggerBox $TRIGGER(TriggerBox) \
                  -inspect1 $TRIGGER(Inspect1) \
                  -inspect2 $TRIGGER(Inspect2) \
                  -inspect3 $TRIGGER(Inspect3) \
                  -inspect4 $TRIGGER(Inspect4) \
                  -adcWidth $TRIGGER(ADCWidth) \
                  -qdcWidth $TRIGGER(QDCWidth) \
                  -tdcWidth $TRIGGER(TDCWidth) \
                  -coincWidth $TRIGGER(CoincidenceWidth) \
                  -configuration $TRIGGER(configuration) 
ULMTrigger config trig -forceFirmwareLoad off
ULMTrigger config trig -readRegister on
ULMTrigger config trig -eventwiseClear off
         

Sets up a ULM module in slot 23.