Project

General

Profile

AssemblerAppevb Config Parameters

The assemblerAppevb section of the config file contains parameters for the assemblerApp on evb (this is the process that collects data from the SEBs and writes it to disk on the EVB), including the software trigger configuration. You can see examples of software trigger configurations for beam on and beam off here. An example of the full assemblerAppevb section of the config file is below (from config 681, PHYSICS_BNB_NUMI_MUCS_EXT6990mHz_SWTrigger_2Stream_LowThreshold50_c2.fcl), with explanations of what the parameters mean.

assemblerAppevb: [  {
  dispatcher:{
    shmKey : 0x0deaf0
    shmSize : 1000000000
  }
  fragment_reception:{
    assembler_max_wait : 1000
  }
  process_and_ship:{
    data_dir_name : "/data/uboonedaq/rawdata" 
    data_file_name : "PhysicsRun" 
    do_dispatcher_feed : true
    events_per_subrun : 50
  }
  • dispatcher:
    • shmKey:
    • shmSize:
  • fragment_reception:
    • assembler_max_wait:
  • process_and_ship:
    • data_dir_name:
    • data_file_name: We have RunType conventions between the DAQ and data management groups for bookkeeping. We choose the RunType when uploading DAQ configurations, and it should be consistent with the file name set in this variable. For example, if the RunType is BeamOff, the file name parameter should be BeamOffRun. More documentation about the current RunType conventions is available here.
    • do_dispatcher_feed:
    • events_per_subrun: controls how many events are in a subrun (leave at 50)
  registration:{
    seb1:{
      name : "sebpriv01" 
      port : 33421
      timeout : 5e3
      type : "TPC" 
    }
    seb10:{
      name : "sebpriv10" 
      port : 33421
      timeout : 5e3
      type : "PMT" 
    }
...repeated for seb2-seb9...
    trg:{
      name : "sebpriv10" 
      port : 33422
      timeout : 5e3
      type : "TRIGGER" 
    }
  }
This is repeated for sebs 2-9, even though they have been cut out of the example above. All are identical (same sub-parameters and same parameter values) to seb1, with the exception that the name updates in line with the seb number (eg. name: "sebpriv02" for seb02, and so on).
  • name: sets the name of the seb
  • port: The port number for the socket connection. This must be unique for each socket connection, and shared between the assembler and the sebApp -- that means that the number given here must match the nu_stream.port and sn_stream.port parameters given in the sebApp config for each given SEB. Note that SEB 10 has an additional stream, the trigger stream, so the port number given in trg must match the trg_stream.port given in the sebApp config for SEB 10.
  • timeout:
  • type: type of the seb. Should be "TPC" for seb1-seb9, "PMT" for seb10, and "TRIGGER" for trg.
  software_trg:{
    drop_event : true
    swtrg_algonames : ["EXT_BNBwin","EXT_NUMIwin","EXT_unbiased","EXT_HSN_c0","BNB","BNB_unbiased","NUMI","NUMI_unbiased","BNB_HSN_c0","EXT_BNBwin_2017Dec_SWTrigger5PE","BNB_2017Dec_SWTrigger5PE"]
    swtrg_algotype : ["FEMBeamTriggerAlgo","FEMBeamTriggerAlgo","PrescaleAlgo","FEMBeamTriggerAlgo","FEMBeamTriggerAlgo","PrescaleAlgo","FEMBeamTriggerAlgo","PrescaleAlgo","FEMBeamTriggerAlgo","FEMBeamTriggerAlgo","FEMBeamTriggerAlgo"]
    swtrg_beam_window_size : 1100
    swtrg_bits : [0x200,0x200,0x200,0x200,0x800,0x800,0x1000,0x1000,0x800,0x200,0x800]
  • drop_event:
  • swtrg_algonames: Name the software trigger algorithms! You can make these names up to be whatever you like, but try to follow the pattern, and make sure to communicate the names you use to the Data Management experts, because they will need to match the names in the swizzler. Note that theremust be one entry in swtrg_algonames per software trigger algorithm, and all names should be unique.
  • swtrg_algotype: The type of algorithm you want to use for each software trigger. This should be either "FEMBeamTriggerAlgo" (for the beam-related triggers) or "PrescaleAlgo" (for the unbiased triggers). Note that there must be one entry per software trigger algorithm, and you have to match these up (in the right order) to the algorithms defined in swtrg_algonames.
  • swtrg_beam_window_size:
  • swtrg_bits: These codes define the hardware trigger you want each algorithm to run on. Note that there must be one entry per software trigger algorithm, and you have to match these up (in the right order) to the algorithms defined in swtrg_algonames. The trigger bits used here are:

0x200 = EXT
0x800 = BNB
0x1000 = NuMI

The part of the config file (example below) then has one subsection for each software trigger algorithm. This is where you define the detailed parameters for the software triggers. There will be one subsection per software trigger algorithm, following the naming convention <entry in swtrg_algonames>_<entry in swtrg_algotype>.

For swtrg_algotype FEMBeamTriggerAlgo the subsection will have to define the following parameters:
  • Discr0deadtime:
  • Discr0delay:
  • Discr0precount:
  • Discr0threshold:
  • Discr3WindowSize:
  • Discr3WindowStart:
  • Discr3deadtime:
  • Discr3delay:
  • Discr3threshold:
  • Discr3width:
  • MinReadoutTicks:
  • PrescaleFactor:
  • TriggerThresMult:
  • TriggerThresPHMAX: PH threshold for software trigger, in ADC. One ADC = 20 PE, so TriggerThresPHMAX=130 is a threshold of 6.5 PE (and TriggerThresPHMAX=100 gives a threshold of 5.0 PE, and so on)
  • TriggerWindowSize:
  • TriggerWindowStart:
  • Verbosity:
For swtrg_algotype PrescaleAlgo the subsection will have to define the following parameters:
  • PrescaleFactor:
    BNB_2017Dec_SWTrigger5PE_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 124
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 100
      TriggerWindowSize : 120
      TriggerWindowStart : 190
      Verbosity : 3
    }
    BNB_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 124
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 130
      TriggerWindowSize : 120
      TriggerWindowStart : 190
      Verbosity : 3
    }
    BNB_HSN_c0_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 164
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 210
      TriggerWindowSize : 160
      TriggerWindowStart : 190
      Verbosity : 3
    }
    BNB_unbiased_PrescaleAlgo:{
      PrescaleFactor : 0.0026
    }
    EXT_BNBwin_2017Dec_SWTrigger5PE_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 124
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 100
      TriggerWindowSize : 120
      TriggerWindowStart : 190
      Verbosity : 3
    }
    EXT_BNBwin_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 124
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 130
      TriggerWindowSize : 120
      TriggerWindowStart : 190
      Verbosity : 3
    }
    EXT_HSN_c0_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 164
      Discr3WindowStart : 186
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 0.2
      TriggerThresMult : 1
      TriggerThresPHMAX : 210
      TriggerWindowSize : 160
      TriggerWindowStart : 190
      Verbosity : 3
    }
    EXT_NUMIwin_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 754
      Discr3WindowStart : 296
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 0.175
      TriggerThresMult : 1
      TriggerThresPHMAX : 190
      TriggerWindowSize : 750
      TriggerWindowStart : 300
      Verbosity : 3
    }
    EXT_unbiased_PrescaleAlgo:{
      PrescaleFactor : 0.02
    }
    NUMI_FEMBeamTriggerAlgo:{
      Discr0deadtime : 6
      Discr0delay : 4
      Discr0precount : 1
      Discr0threshold : 5
      Discr3WindowSize : 754
      Discr3WindowStart : 296
      Discr3deadtime : 6
      Discr3delay : 4
      Discr3threshold : 10
      Discr3width : 6
      MinReadoutTicks : 500
      PrescaleFactor : 1.0
      TriggerThresMult : 1
      TriggerThresPHMAX : 190
      TriggerWindowSize : 750
      TriggerWindowStart : 300
      Verbosity : 3
    }
    NUMI_unbiased_PrescaleAlgo:{
      PrescaleFactor : 0.016
    }
  }
}  ]