Project

General

Profile

Tracker in DATE

A description of the tracker DAQ in Date.

Equipment which date uses:

  • VLSB
  • VLSBBank
  • VLSBMaster
  • VLSBTriggerHandler

Date Functions

Arm

ArmVLSB:

  • Creates a "MDEVLSB" object and sets up with VME Base addresses.
  • Calls MDEVLSB Arm() Function.
    • Initilises TrVLSBController. No bus ops are done. Just some memory initialisation. This seems to have all VLSB addresses inside.

ArmVLSBBank:

  • Creates "MDEVLSBank" equipments and sets up with VME Base Addresses.
  • Calls MDEVLSBank Arm() Function.
    • Initilises TrVLSBController. No bus ops are done. Just some memory initialisation. This seems to have all VLSB addresses inside.

ArmVLSBMaster:

  • Sets parameters inside MDEVLSBMaster. Note a pointer to MDEVLSBMaster is written to a global variable.
  • Calls MDEVLSBMaster Arm() Function.
    • Sets a memory address for TrVLSBMasterController

ArmVLSBTriggerHandler

  • Sets parameters inside MDEVLSBMaster. Note an extern pointer to MDEVLSBMaster is used as a global.
  • Calls MDEVLSBMaster Arm() Function.
    • Sets a memory address for TrVLSBMasterController

ReadEvent (Start of Burst)

VLSBReadEvent (Start of Burst) - Do Nothing

VLSBBankReadEvent (Start of Burst) - Do Nothing

VLSBMasterReadEvent (Start of Burst) - Do Nothing

VLSBTriggerHandlerReadEvent (Start of Burst)

  • Calls MDEVLSBMaster ReadEventVLSBMasterTrailer()
    • Calls TrVLSBMasterController enableTrigger():
      modeRegisterValue = 0xF4; // External trigger
      int result = CAENVME_WriteCycle(0, baseAddress + addresses["control"], &modeRegisterValue, addressModifier, dataWidth);
      

ReadEvent (PhysicsEvent)

VLSBReadEvent (PhysicsEvent)

  • Calls MDEVLSB.ReadEvent("READOUT"):
    • Calls TrController.setReadoutMode()
      CAENVME_WriteCycle(0, baseAddress + addresses["lvdsControl"], &lvdsSetting["disableLVDS"], addressModifier, dataWidth)

VLSBBankReadEvent (PhysicsEvent)

  • Calls MDEVLSBBank.setDataPtr(data_ptr_32)
  • Calls MDEVLSBBank.ReadEvent()
    • Calls TrVLSBController.readBank(parameters["BankNumber"],0,mde_dataPtr_)
      CAENVME_MultiRead does the work here.

VLSBMasterReadEvent (PhysicsEvent)

  • Calls MDEVLSBMaster.ReadEventVLSBMaster()
    • Calls TrVLSBMasterController.disableTrigger();
      CAENVME_WriteCycle(0, baseAddress + addresses["control"], &triggerSetting["spillDisable"], addressModifier, dataWidth)

VLSBTriggerHandlerReadEvent (PhysicsEvent) - Does Nothing

ReadEvent (End of Burst)

VLSBReadEvent (End of Burst)

  • Calls MDEVLSB.ReadEvent("ACQUIRE")
    • TrVLSBController.setDataMode()
      en = 0x40;
      CAENVME_WriteCycle(0, baseAddress + addresses["control"], &en, addressModifier, dataWidth);
      CAENVME_WriteCycle(0, baseAddress + addresses["lvdsControl"], &lvdsSetting["enableLVDS"], addressModifier, dataWidth);

VLSBBankReadEvent (End of Burst) - Do Nothing

VLSBMasterReadEvent (End of Burst) - Do Nothing

VLSBTriggerHandlerReadEvent (End of Burst) - Do Nothing