@@ -1600,29 +1600,52 @@ 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);
16071607
16081608 art::Handle<std::vector<raw::Trigger>> trig_handle;
1609- std::cout<<" Trigger label: " <<fParams .TriggerLabel ()<<std::endl;
16101609 GetByLabelStrict (evt, fParams .TriggerLabel ().encode (), trig_handle);
16111610
16121611 art::Handle<std::vector<raw::Trigger>> unshifted_trig_handle;
16131612 if (!isRealData)
16141613 GetByLabelStrict (evt, fParams .UnshiftedTriggerLabel ().encode (), unshifted_trig_handle);
16151614
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
16161629 const bool isValidTrigger = extratrig_handle.isValid () && trig_handle.isValid () && trig_handle->size () == 1 ;
16171630 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 ();
16181632
16191633 const double triggerShift = (isValidUnshiftedTrigger && isValidTrigger)?
16201634 unshifted_trig_handle->at (0 ).TriggerTime () - trig_handle->at (0 ).TriggerTime () : 0 .;
16211635
1636+ // Fill local ExtraTriggerInfo struct
1637+ sbn::ExtraTriggerInfo extratrig;
1638+ if (extratrig_handle.isValid ()) extratrig = *extratrig_handle;
1639+
16221640 caf::SRTrigger srtrigger;
16231641 if (isValidTrigger) {
16241642 FillTrigger (*extratrig_handle, trig_handle->at (0 ), srtrigger, triggerShift);
16251643 }
1644+ // Fill trigger emulation information
1645+ if (isValidEmulationTrigger) {
1646+ FillTriggerEmulation (monpulses_handle, monpulse_sizes_handle, pairs_handle, trigemu_handle, srtrigger);
1647+ }
1648+
16261649 // If not real data, fill in enough of the SRTrigger to make (e.g.) the CRT
16271650 // time referencing work. TODO: add more stuff to a "MC"-Trigger?
16281651 // No longer needed with incorporation of trigger emulation in the MC.
0 commit comments