@@ -1640,7 +1640,7 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16401640 // #######################################################
16411641 // Fill detector & reco
16421642 // #######################################################
1643-
1643+
16441644 // Beam gate and Trigger info
16451645 art::Handle<sbn::ExtraTriggerInfo> extratrig_handle;
16461646 GetByLabelStrict (evt, fParams .TriggerLabel ().encode (), extratrig_handle);
@@ -1652,16 +1652,40 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16521652 if (!isRealData)
16531653 GetByLabelStrict (evt, fParams .UnshiftedTriggerLabel ().encode (), unshifted_trig_handle);
16541654
1655+ // Trigger emulation handles
1656+ art::Handle<std::vector<int >> monpulses_handle;
1657+ GetByLabelStrict (evt, fParams .MonPulsesTriggerLabel ().encode (), monpulses_handle);
1658+
1659+ art::Handle<std::vector<int >> monpulse_sizes_handle;
1660+ GetByLabelStrict (evt, fParams .MonPulseSizesTriggerLabel ().encode (), monpulse_sizes_handle);
1661+
1662+ art::Handle<int > pairs_handle;
1663+ GetByLabelStrict (evt, fParams .PairsTriggerLabel ().encode (), pairs_handle);
1664+
1665+ art::Handle<bool > trigemu_handle;
1666+ GetByLabelStrict (evt, fParams .EmulatedTriggerLabel ().encode (), trigemu_handle);
1667+
1668+ // Check trigger handles
16551669 const bool isValidTrigger = extratrig_handle.isValid () && trig_handle.isValid () && trig_handle->size () == 1 ;
16561670 const bool isValidUnshiftedTrigger = unshifted_trig_handle.isValid () && unshifted_trig_handle->size () == 1 ;
1671+ const bool isValidEmulationTrigger = monpulses_handle.isValid () && monpulse_sizes_handle.isValid () && pairs_handle.isValid () && trigemu_handle.isValid ();
16571672
16581673 const double triggerShift = (isValidUnshiftedTrigger && isValidTrigger)?
16591674 unshifted_trig_handle->at (0 ).TriggerTime () - trig_handle->at (0 ).TriggerTime () : 0 .;
16601675
1676+ // Fill local ExtraTriggerInfo struct
1677+ sbn::ExtraTriggerInfo extratrig;
1678+ if (extratrig_handle.isValid ()) extratrig = *extratrig_handle;
1679+
16611680 caf::SRTrigger srtrigger;
16621681 if (isValidTrigger) {
16631682 FillTrigger (*extratrig_handle, trig_handle->at (0 ), srtrigger, triggerShift);
16641683 }
1684+ // Fill trigger emulation information
1685+ if (isValidEmulationTrigger) {
1686+ FillTriggerEmulation (monpulses_handle, monpulse_sizes_handle, pairs_handle, trigemu_handle, srtrigger);
1687+ }
1688+
16651689 // If not real data, fill in enough of the SRTrigger to make (e.g.) the CRT
16661690 // time referencing work. TODO: add more stuff to a "MC"-Trigger?
16671691 // No longer needed with incorporation of trigger emulation in the MC.
0 commit comments