@@ -1600,7 +1600,7 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16001600 // #######################################################
16011601 // Fill detector & reco
16021602 // #######################################################
1603-
1603+
16041604 // Beam gate and Trigger info
16051605 art::Handle<sbn::ExtraTriggerInfo> extratrig_handle;
16061606 GetByLabelStrict (evt, fParams .TriggerLabel ().encode (), extratrig_handle);
@@ -1612,16 +1612,40 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16121612 if (!isRealData)
16131613 GetByLabelStrict (evt, fParams .UnshiftedTriggerLabel ().encode (), unshifted_trig_handle);
16141614
1615+ // Trigger emulation handles
1616+ art::Handle<std::vector<int >> monpulses_handle;
1617+ GetByLabelStrict (evt, fParams .MonPulsesTriggerLabel ().encode (), monpulses_handle);
1618+
1619+ art::Handle<std::vector<int >> monpulse_sizes_handle;
1620+ GetByLabelStrict (evt, fParams .MonPulseSizesTriggerLabel ().encode (), monpulse_sizes_handle);
1621+
1622+ art::Handle<int > pairs_handle;
1623+ GetByLabelStrict (evt, fParams .PairsTriggerLabel ().encode (), pairs_handle);
1624+
1625+ art::Handle<bool > trigemu_handle;
1626+ GetByLabelStrict (evt, fParams .EmulatedTriggerLabel ().encode (), trigemu_handle);
1627+
1628+ // Check trigger handles
16151629 const bool isValidTrigger = extratrig_handle.isValid () && trig_handle.isValid () && trig_handle->size () == 1 ;
16161630 const bool isValidUnshiftedTrigger = unshifted_trig_handle.isValid () && unshifted_trig_handle->size () == 1 ;
1631+ const bool isValidEmulationTrigger = monpulses_handle.isValid () && monpulse_sizes_handle.isValid () && pairs_handle.isValid () && trigemu_handle.isValid ();
16171632
16181633 const double triggerShift = (isValidUnshiftedTrigger && isValidTrigger)?
16191634 unshifted_trig_handle->at (0 ).TriggerTime () - trig_handle->at (0 ).TriggerTime () : 0 .;
16201635
1636+ // Fill local ExtraTriggerInfo struct
1637+ sbn::ExtraTriggerInfo extratrig;
1638+ if (extratrig_handle.isValid ()) extratrig = *extratrig_handle;
1639+
16211640 caf::SRTrigger srtrigger;
16221641 if (isValidTrigger) {
16231642 FillTrigger (*extratrig_handle, trig_handle->at (0 ), srtrigger, triggerShift);
16241643 }
1644+ // Fill trigger emulation information
1645+ if (isValidEmulationTrigger) {
1646+ FillTriggerEmulation (monpulses_handle, monpulse_sizes_handle, pairs_handle, trigemu_handle, srtrigger);
1647+ }
1648+
16251649 // If not real data, fill in enough of the SRTrigger to make (e.g.) the CRT
16261650 // time referencing work. TODO: add more stuff to a "MC"-Trigger?
16271651 // No longer needed with incorporation of trigger emulation in the MC.
0 commit comments