Kinoko Module Driver リファレンス

CAEN V775 / V775N

種別VME マルチイベント TDC
製造者CAEN (http://www.caen.it)
参照名CAEN-V775 / CAEN-V775N
読み出しread() / blockRead()
サービス要求ポーリング

読み出しアクション

read(int channel_bit_mask)
read(ReadoutChannelList channel_list)
引数に指定したチャンネルからデータを読み出し,indexed 型のデータとしてストリームに送り出す.

チャンネルに 32 (V792) または 16 (V792N) を指定すると,イベントカウンタの下位 12 ビットを返す.チャンネルに 33 または 17 を指定すると,イベントカウンタの上位 12 ビットを返す.

blockRead()
モジュールのバッファ上にあるデータを block 型のデータとしてストリームに送り出す.

waitData()
モジュールからデータが読み出せるようになるまでシーケンスの実行を停止する.

clear()
モジュールのデータクリアを実行する(バッファ上のデータとイベントカウンタのクリア)

enable(int channel_bit_mask) / disable(int channel_bit_mask)
指定されたチャンネルの KILL ビットを設定(解除)する.使わないチャンネルを disable() しておくと動作がかなり速くなるはず.

resetEventCounter()
イベントカウンタをリセット.

readEventCounter(Register event_counter)
現在のイベントカウンタの値を引数のレジスタに返す.

readEventCounterOfThisEvent(Register event_counter)
最後の read() で読んだデータに対応するイベントカウンタの値を引数のレジスタに返す.

setThreshold(int channel, int threshold)
指定されたチャンネルにゼロサプレッション用のスレッショルドを設定する.threshold 値は,A/D 変換後の値で指定.

setEventTrigger(int number_of_events)
サービスリクエストを出すイベント数を指定.ここで設定した数のイベントを記録するとサービスリクエストを発行する.

setFastClearWindow(int length)
Fast Clear Window の長さを指定.10bit が有効で,T = length/32 + 7 (us) のウィンドウが設定される.最大値は 38.5us.

setFullScaleRange()
フルスケールレンジを設定する.詳細はマニュアル参照 (Full Scale Range Register).

selectCommonStartMode() / selectCommonStopMode()
COMMON START か COMMON STOP かの動作モードを設定する.

enableZeroSuppression() / disableZeroSuppression()
設定したスレッショルド値以下のデータに対するゼロサプレッションを有効(無効)にする.

enableOverflowSuppression() / disableOverflowSuppression()
オーバーフローサプレッションを有効(無効)にする.

enableNotValidDataSuppression() / disableNotValidDataSuppression()
COMMON STOP モードで Stop 信号より前に TAC がフルスケールに達した場合に発生する無効データのサプレッションを有効(無効)にする.

enableEmptyEventRecording() / disableEmptyEventRecording()
デジタイズされたデータのないイベントでも記録する(しない)ように設定する.

読み出しスクリプト例

datasource VmeTdc
{
    int base_address = 0x07750000;
    int readout_channels = #0..#3;

    VmeCrate crate;
    VmeController controller("SBS-620");
    VmeModule tdc("CAEN-V775N");
    
    crate.installController(controller);
    crate.installModule(tdc, base_address);

    on run_begin {
        // デフォルトは COMMON START モード.COMMON STOP は明示的に指定.
        //tdc.selectCommonStopMode();

        // 読み出さないチャンネルは disable() しておくと実行が速くなる
	tdc.disable(~readout_channels);  

        // 以下の設定は必要に応じて
        tdc.disableZeroSuppression();
        tdc.disableOverflowSuppression();
	tdc.disableNotValidDataSuppression();
        //tdc.setThreshold(0, 200);
	//tdc.setEventTrigger(16);
    };

    Register triggered_events, digitized_events;
    DataRecord event_info;

    on trigger(tdc) {
        // indexed 型データとして読み出す
        tdc.read(readout_channels);

        // block 型データとして読み出す.少しは速い?
	//tdc.blockRead();

        // イベントカウンタの読み出し (必要なら)
        tdc.readEventCounter(triggered_events);
        digitized_events.add(1);
	event_info.fill("triggered_event_count", triggered_events);
	event_info.fill("digitized_event_count", digitized_events);
	event_info.send();
    }
}