@@ -248,6 +248,7 @@ void sbnd::trigger::pmtSoftwareTriggerProducer::produce(art::Event& e)
248248 if (!ptbHandle.isValid () || ptbHandle->size () == 0 )
249249 continue ;
250250 foundgate = getGateTime (ptbHandle, gateTime);
251+ // std::cout << "Gate time: " << int(gateTime) << std::endl;
251252 }
252253 }
253254
@@ -355,6 +356,7 @@ void sbnd::trigger::pmtSoftwareTriggerProducer::produce(art::Event& e)
355356 if (contf.fragment_type ()==sbndaq::detail::FragmentType::CAENV1730 ) {
356357 if (std::find (fFragIDs .begin (), fFragIDs .end (), contf[0 ].get ()->fragmentID ()) == fFragIDs .end ()) continue ;
357358 if (fVerbose >=3 ) TLOG (TLVL_INFO ) << " Found " << contf.block_count () << " CAEN1730 fragments in container with fragID " << contf[0 ].get ()->fragmentID ();
359+ // std::cout << "Found " << contf.block_count() << " CAEN1730 fragments in container with fragID " << contf[0].get()->fragmentID() << std::endl;
358360
359361 if (etrig_frag_dt==1e9 ){
360362 for (size_t ii = 0 ; ii < contf.block_count (); ++ii){
@@ -486,13 +488,15 @@ void sbnd::trigger::pmtSoftwareTriggerProducer::produce(art::Event& e)
486488
487489 flash_prelimPE = (flash_baseline-(*std::min_element (wvfm_sum.begin ()+prelimStart,wvfm_sum.begin ()+windowStartBin)))/fADCtoPE ;
488490 flash_promptPE = (flash_baseline-(*std::min_element (wvfm_sum.begin ()+windowStartBin,wvfm_sum.begin ()+promptEnd)))/fADCtoPE ;
489- flash_peakPE = (flash_baseline-(*std::min_element (wvfm_sum.begin (),wvfm_sum.end ())))/fADCtoPE ;
490491 // auto flash_peak_it = std::min_element(wvfm_sum.begin(),wvfm_sum.end());
491492 // look at only the last 5000 samples of the waveform
492493 // important because our "chosen" ftrig may be an extended fragment
493494 auto flash_peak_it = std::min_element (wvfm_sum.end ()-fWvfmLength ,wvfm_sum.end ());
494495 // time is referenced to the end of the waveform; this is correct assuming we grabbed the right fragment!
496+ flash_peakPE = (flash_baseline-(*flash_peak_it))/fADCtoPE ;
495497 flash_peaktime = (fWvfmLength *fWvfmPostPercent - (wvfm_sum.end () - flash_peak_it))*ticks_to_us; // us
498+ // std::cout << "Flash peak time: " << flash_peaktime << " us" << std::endl;
499+ // std::cout << "Flash peak PE: " << flash_peakPE << " PE" << std::endl;
496500 }
497501 trig_metrics.nAboveThreshold = nAboveThreshold;
498502 if (fCalculatePEMetrics ){
@@ -567,7 +571,10 @@ bool sbnd::trigger::pmtSoftwareTriggerProducer::getGateTime(art::Handle<std::vec
567571 for (size_t word_i = 0 ; word_i < ctb_frag.NWords (); ++word_i){
568572 if (ctb_frag.Trigger (word_i)){
569573 auto wt = ctb_frag.Word (word_i)->word_type ;
570- if (wt == 2 && ( ctb_frag.Trigger (word_i)->IsTrigger (26 ) || ctb_frag.Trigger (word_i)->IsTrigger (27 ) )){
574+ bool gate_hlt = false ;
575+ if ((fStreamType == 2 ) && (ctb_frag.Trigger (word_i)->IsTrigger (26 ))) gate_hlt = true ;
576+ if ((fStreamType == 4 ) && (ctb_frag.Trigger (word_i)->IsTrigger (27 ))) gate_hlt = true ;
577+ if (wt == 2 && gate_hlt){
571578 foundgate = true ;
572579 gateTime = double ((std::bitset<64 >(ctb_frag.Trigger (word_i)->timestamp ).to_ullong ()*20 )%(uint (1e9 )) - fPTBDelay );
573580 if (fVerbose >=3 ) TLOG (TLVL_INFO ) << " PTB gated FTRIG HLT timestamp: " << uint (gateTime) << " ns" ;
@@ -592,6 +599,7 @@ int8_t sbnd::trigger::pmtSoftwareTriggerProducer::getClosestFTrig(double refTime
592599 // auto iftrig = ftrig_v[i];
593600 double diff = ftrig_v[i] - refTime;
594601 diff_v[i] = std::abs (diff);
602+ // std::cout << "ftrig " << i << ": " << int(ftrig_v[i]) << "diff = " << diff << std::endl;
595603 if (std::abs (diff) < min_diff){
596604 min_idx = int8_t (i);
597605 min_diff = std::abs (diff);
0 commit comments