Rex Tayloe, Andrew Green
7/19/2005
Find in this document the status of the trigger during the period January 25, 2005 to the present. See the references listed below for background information. References to particular pieces of C-code are given by name. Find these at the MiniBooNE CVS repository (Reference 6).
The notes below explain what major changes were added for each version of the trigger. The trigger specs in the remaining part of the document reflect the latest version of the trigger. See the trigger notes document for that particular version to get details on all of the trigger specs valid for that version of the trigger. The dates of validity for a particular trigger version are also given below.
Version 5.0 (this document, 1/25/2005 to present)
Addition of NuMI trigger. See MB TN 155 for more info.
Version 4.0 (Trigger v4.0. 3/25/2004 to 1/25/2005)
Summary of trigger work done during the March 2004 10-day shutdown:
Addition of zerobias follower event types. The need to look at events with lower Nhit that DET1 allows motivate the need for these new event types. The NIM hardware making the E-bits was modified slightly to add another E2 input to take the place of DET1, and to minimize the impact to triggerloop.c.
Solution to trigger latency problem. I say solution (even though a little latency exists) because latency is no longer the limitation to the trigger software that it once was. This allows very low rates of latency for follower triggers which come after beam/strobe events very close in time. Before the fix, latency rates for follower events were in the tens of percent, now they are <1/10000 (over 3 orders of magnitude improvement).
Version 3.0 (Trigger v3.0, 11/1/2003 to 3/15/2004)
Summary of work done during the Fall 2003 shutdown:
Added trigger history data to the trigger's component of the data going into the data-stream. The trigger history data consists of three components:
The past 90 entries into the trigger stack (FIFO). This is a running record of all inputs into the trigger, and their associated times.
The past 4 trigger "events." These have the same form as the FIFO entries, except the various inputs are ORed within a contiguous group of activity in time.
24 Activity timers. These use information from the trigger inputs as well. Timers such as "when was the last beam trigger?" or "when was the last cosmic?"
The anti-proton debuncher event (IRM signal "81") causes one of the activity timers, ACT_DT_DEBUNCHER (see TriggerActivityChunk), to be reset. This timer measures the time since the last anti-proton debuncher event fired. There currently is no actual debuncher event, but the activity timers are available in all event types. Neutrinos emanating from the debucher would be fairly energetic, and would be expected to land in a "Big Nu" event.
With DET3 fixed by the electronics group, I have it set to 200 hits (out of range of our michel spectrum), and have introduced a new event type based on DET3 (& !VETO1), called "Big Nu." It has a rate of ~0.7 Hz, and has no need of a cosmic holdoff or prescale.
Trigger, timing & history data made available via AnalysisFramework chunks in the CalibrateHits package, DAQbitFieldsChunk, and TriggerActivityChunk.
Version 2.0 (Trigger v2.0, 2/1/2003 to 11/1/2003)
An explanation of changes made to the MiniBooNE trigger during the January 2003 shutdown may be found in January shutdown work.
Version 1.0 (Trigger v1.0, 9/1/2002 to ~1/10/2003 )
Detector (DET) Trigger bit |
Setting |
VETO Trigger bit |
Setting |
DET1 |
# tank hits >= 10 |
VETO1 |
# veto hits >= 6 |
DET2 |
# tank hits >= 24 |
VETO2 |
# veto hits >= 4 |
DET3 |
# tank hits >= 200 |
|
|
DET4 |
# tank hits >= 100 |
|
|
DET5 |
# tank hits >= 60 |
|
Notes:
DET/VETO comparator signals to the trigger come from the following ideas:
Each QT crate has a "Sum PMT" card in the last slot. This card is responsible for getting the digital sum of the number of PMTs above 0.25 p.e. threhsold (hits) in a 200 ns window of time.
A crate is either a tank crate or a veto crate, so its respective sum will contribute to a DET or VETO sum respectively.
The trigger contains sum boards with take the "sum of sums" for tank & veto crates separately.
Whenever the total number of hit PMTs in the tank is above a predefined number of hits (above table, set with jumpers on the trigger sum boards), then the corresponding comparator fires, and that information is available to the trigger, and the trigger software.
DET1, VETO1, and E4 are the bits which cause a "stack load." This is when the trigger actually registers the current state (on or off) of ALL comparator and E-bit settings and the time (a 16 bit counter in 100 ns tics).
There is no way to monitor the
comparator settings in software. The current settings are documented
in on hal9000 in /export/DAQ/share/current_comparator_settings.txt
.
This file is also accessible via hal9002 and hal9004 via the same
path, since this is a common NFS mount-point.
The DET3 bit has been repaired, and is now being used for the "BigNu" trigger. This was the only setting to change since the Januaray, 2003 shutdown.
Definition of External Inputs to the trigger
The External inputs, or "E bits," are formed using discriminator and logic modules in a NIM crate above the trigger (VME) crate. The NIM logic pulses were set to be >=150ns and routed to the 4 BNC inputs of the trigger memory card.
External Trigger Input |
Explanation |
E1 |
Beam on target. IRM signal is $ID & $1F |
E2 |
2.01 Hz Strobe (pulser), Debuncher, Follower, and NuMI. The table "Strobe & Debuncher" below explains how this bit is shared. |
E3 |
calibration: used for CALIB_LASER, CALIB_CUBE, CALIB_TRACKER, and CALIB_BEAM event types. The table below explains how this bit is shared by the calibration event types. |
E4 |
NIM Hardware OR of E1-E3. Causes a stack load on the trigger FIFO. |
Notes:
The E bits are formed using discriminator and logic modules in a NIM crate above the trigger (VME) crate. The NIM logic pulses were set to be >=150ns and routed to the 4 external NIM BNC inputs of the trigger memory card.
The debuncher trigger was added by varying the E2 signal to the trigger. Details below.
The details of how the E1 ("beam on target") signal was formed may be found at: http://www-boone.fnal.gov/memos/memo2.html
The OR of the Ebits was formed and routed to E4 as only E4 or E2 can cause a trigger FIFO stack load. With this scheme the hardware jumper on E2 is now redundant and can be removed.
An additional "beam-on-target" signal was formed that preceded the one used for the trigger by 5 u-sec. This is used to veto the laser for 10 u-sec prior to the beam spill, and up to the end of the spill.
Hardware and software work was done to allow for different calibration types to be coded into the E2/E3 bits based on the time length of the bit into the trigger.
Calibration activity types (using the E3 input to trigger):
Calibration Activity |
Width of E3 pulse |
Times E3 asserted to trig FIFO |
Explanation |
CALIB_CUBE |
150ns |
1 or 2 |
Prescaled cube trigger |
CALIB_LASER |
450ns |
4 or 5 |
Simple laser event. The laser is veto'd around beam & strobe events 5 u-sec before, and 30 ms after the event. |
CALIB_TRACKER |
650ns |
6 or 7 |
Prescaled cube + 4-plane tracker coincidence OR just tracker |
CALIB_BEAM |
850ns |
8 or 9 |
Laser in time with non-M'BooNE Booster shot |
Notes:
This information is coded into activitystack.c, in the routine, CalibActivityType.
The number of times E3 is asserted to trigger memory depends on how many times the 10 Mhz clock (100ns interval) crosses the pulse in quesiton.
Shared Inputs to E2:
Activity |
Width of E2 pulse |
Times E2 asserted to trig FIFO |
Explanation |
FOLLOWER |
150ns |
1 or 2 |
Single pulse is delayed 20u-sec from a beam or a strobe pulse. This is meant to force a stack load so that triggerloop.c will produce the zerobias follower events explained below. |
STROBE |
350ns |
3 or 4 |
Strobe event from the 2.01 Hz Pulser |
DEBUNCHER |
550ns |
5 or 6 |
Debuncher event from IRM: $81 event (injection to target at anti-proton source.) |
NUMI |
750ns |
7 or 8 |
NuMI event from IRM: $A9 (tclk) with a delay of 199mus |
Notes:
This information is coded into activitystack.c. in the routine, E2ActivityType.
The number of times E2 is asserted to trigger memory depends on how many times the 10 Mhz clock (100ns interval) crosses the pulse in quesiton, which is why it can be a variable number.
The Debuncher does not produce an actual event in the data stream, but it resets the "debuncher timer", which is one of the timers that are in the trigger history data (described below).
Trigger Software
Trigger History & Activity timers:
Added trigger history data to the trigger's component of the data going into the data-stream. The trigger history data consists of three components:
The past 90 entries into the trigger stack (FIFO). This is a running record of all inputs into the trigger, and their associated times.
The past 4 trigger "events." These have the same form as the FIFO entries, except the various inputs are ORed within a contiguous group of activity in time.
24 Activity timers. These use information from the trigger inputs as well. Timers such as "when was the last beam trigger?" or "when was the last cosmic?"
The anti-proton debuncher event (IRM signal "81") causes one of the activity timers, ACT_DT_DEBUNCHER (see TriggerActivityChunk), to be reset. This timer measures the time since the last anti-proton debuncher event fired. There currently is no actual debuncher event, but the activity timers are available in all event types. Neutrinos emanating from the debucher would be fairly energetic, and would be expected to land in a "Big Nu" event.
Trigger, timing & history data made available via AnalysisFramework chunks in the CalibrateHits package, DAQbitFieldsChunk, and TriggerActivityChunk.
The Trigger Loop:
Using the above bits and appropriate logic within the trigger code, these "windows" and "holdoffs" are created in the trigger software
Trigger Windows/Holdoffs:
Window name |
Abbrev. |
Definition (logical). T(*) indicates time since this activity in the trigger in microseconds. |
Explanation |
"beam holdoff" |
BH |
T(E1) <= 20 |
Holdoff of all other triggers during beam event. |
"Michel window" |
MW |
3 <= T(DET4 .and. VETO1) <= 15 |
A cosmic ray candiate has occured in a window. Look for Michel electrons. |
"Laser holdoff" |
LH |
T(CALIB_LASER) <= 2 |
No laser event 200 ns prior. |
"SuperNova holdoff" |
SNH |
T(DET4 .or. VETO1) <= 15 .or. LH |
A cosmic ray or calibration laser event has occured in recent past. Holdoff SN triggers. |
"Gamma/beta holdoff" |
GBH |
T(DET2 .and. VETO2) <= 15 |
A cosmic ray has occured in recent past. Holdoff Gamma and Beta triggers. |
"Beam nu candidate" |
BNuC |
3.6 <= T(DET2) <= 8.6 within Beam event with respect to the event origin. |
A nu candidate in beam on window. Use for beta/gamma windows. |
"Strobe nu candidate" |
SNuC |
3.6 <= T(DET2) <= 8.6 within Strobe event with respect to the event origin. |
A nu candidate in simulated "beam" window. Use for beta/gamma windows for accidentals. |
"beam gamma window" |
BGW |
54 < T(BNuC) <= 1000 ( note: the left limit is applied only when we are taking zerobias evens) |
A gamma after a beam nu candidate. |
"beam gamma zerobias window" |
BZBW |
T(BNuC) <= 54 |
Activates zerobias follower events to follow immeidate after the beam event with activity in the beam timing window, BNuC. |
"strobe gamma window" |
SGW |
54 <= T(SNuC) <= 1000 ( note: the left limit is applied only when we are taking zerobias evens) |
A gamma after a strobe nu candidate. |
"strobe gamma zerobias window" |
SZBW |
T(SNuC) <= 54 |
Activates zerobias follower events to follow immeidate after the strobe event with activity in the simulated "beam" timing window, SNuC. |
"beam beta window" |
BBW |
1000 <= T(BNuC) <= 30000 |
A beta after a beam nu candidate. |
"strobe beta window" |
SBW |
1000 <= T(SNuC) <= 30000 |
A beta after a strobe nu candidate. |
"calibration cube window" |
CalCuW |
0.4 <= T(CALIB_CUBE) <= 0.8 |
Account for time delay between cube trigger (real time) and associated DET/VETO activity (sum PMT system takes ~6 cycles to compute detector sum). |
Notes:
The time resolution of activity
detected by the trigger is 100ns. The logic of the trigger windows
and holdoffs in encoded into triggerloop.c
The abbreviation of the various windows above are used below in the full explanation of each trigger.
Event Types:
Trigger event type |
Trigger name |
Condition (! = .not.) |
Base TSA offset |
# of TSAs broadcast |
Explanation |
1 |
beam |
!BH .and. E1 |
0 |
192 |
Neutrino beam on target signal. This signal comes 5μs before beam is on target so no addtional offset is needed. |
2 |
strobe |
!BH .and. STROBE (see "Shared Inputs to E2" table) |
0 |
192 |
Pulser signal. Everything else just like beam triggers. |
4 |
Michel |
!BH .and. MW .and. !VETO1 .and. DET2 |
-160 |
192 |
Muon decay Michel electrons. The TSA window is large enough to contain the parent (cosmic-ray) muon. |
5 |
SuperNova |
!BH .and. !SNH .and. !VETO1 .and. DET5 |
0 |
32 |
SuperNova candidate. |
6 |
Tank |
!BH .and. DET1 |
-96 |
192 |
Minimum bias tank tube trigger. |
7 |
Veto |
!BH .and. VETO1 |
-96 |
192 |
Minimum bias veto tube trigger. |
8 |
calibration: laser |
!BH .and. CALIB_LASER |
6 |
96 |
laser event |
9 |
calibration: beam |
!BH .and. CALIB_BEAM |
0 |
96 |
Laser in time with non-MiniBooNE Booster shot. |
10 |
calibration: cube |
!BH .and. CalCuW .and. DET4 |
-5 |
128 |
Cube in time with DET4 tank hits. |
11 |
calibration: tracker |
!BH .and. CALIB_TRACKER |
-4 |
128 |
muon tracker 4-plane coincidence, plus cube (this varies) |
12 |
beam gamma |
!GBH .and. BGW .and. DET1 .and. !DET4 .and. !VETO2 |
0 |
32 |
gamma candidate following a beam nu candidate |
13 |
beam beta |
!GBH .and. BBW .and. DET2 .and. !VETO2 |
0 |
32 |
beta candidate following a beam nu candidate |
14 |
strobe gamma |
!GBH .and. SGW .and. DET1 .and. !DET4 .and. !VETO2 |
0 |
32 |
gamma candidate following a strobe nu candidate |
15 |
strobe beta |
!GBH .and. SBW .and. DET2 .and. !VETO2 |
0 |
32 |
beta candidate following a strobe nu candidate |
16 |
big nu |
!LH.and.DET3.and.!VETO1 |
0 |
192 |
tank hits > 200, no veto, no laser, no beam. Used for debuncher events, high-energy neutrinos from the environment, veto efficiency. |
17 |
beam gamma zerobias |
|
0 |
192 |
Immediately follows the beam event in time. A configurable number of these events will be produced for every beam event containing activity within the neutrino candidate window. |
18 |
strobe gamma zerobias |
SZBW.and.FOLLOWER (see "Shared Inputs to E2" table) |
0 |
192 |
Same configuration as the beam version, but follows strobe events instead. This is means as a background-measuring event. |
19 |
NuMI |
!BH .and. NuMI (see "Shared Inputs to E2" table) |
0 |
192 |
NuMI trigger. All else like beam triggers |
Notes:
Event Type = 3 (old Calibration event type) has been retired. This is replaced by event types 8,9,10,11.
The "trigger event type" number identifies the event type in the data stream. These types are defined in event_types.h.
Base TSA offset and num TSAs broadcast are also set in event_types.h.
These triggers are listed in order
of precedence. The code is set up so that one and only one of the
conditions can be true for any given trigger data word. See
triggerloop.c
to examine the code. Note that this does bias some of the
lower-precedence triggers. E.g. The Veto trigger is actually biased
as the Tank trigger must not be true for the Veto trigger condition
to be satisfied.
The prescaling is done after the trigger decision is made. So, e.g. the prescaling is done on Michel events only for when the (lower precedence) Michel decision is made. The prescale settings are taken from the values set in the trigger_conf_file which is read by the trigger at the beginning of each run. The file is linked to hal9002:~daqadmin/trigger_conf_file.
LSND NIM paper: NIM A388, 149, '97.
miniBooNE TDR
"Data Acquistion Electronics and Programmer's Model, BooNE TN-038, Vern Sanberg, 2001.
Los Alamos talk, with lots MiniBooNE DAQ slides near end, Andrew Green, http://www-boone.fnal.gov/operation/DAQ_trigger/daq_status_slides/2004/lanl_daq_miniboone_talk/ .
Slides from MiniBooNE analysis meeting, Rex Tayloe, 2/13/02, "http://www-boone.fnal.gov/software_and_analysis/meetings/02-13-02/minutes_02-13-02.html .
MiniBooNE CVS Repository, Trigger Source Code, http://cdcvs0.fnal.gov/cgi-bin/public-cvs/cvsweb-public.cgi/miniboone/DAQ/target/trigger/src/" , and http://cdcvs0.fnal.gov/cgi-bin/public-cvs/cvsweb-public.cgi/miniboone/DAQ/share/src/"
Last modified: July 19, 2004