Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 7 additions & 16 deletions sbncode/CAFMaker/CAFMaker_module.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2649,27 +2649,18 @@ void CAFMaker::produce(art::Event& evt) noexcept {
FixPMTReferenceTimes(rec, PMT_reference_time);

// TODO: TPC?

// SBND: Fix the Reference time in data depending on the stream
// For more information, see:
// https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=43090


if (isRealData && (fDet == kSBND) && fSubRunPOT > 0)
if (isRealData && (fDet == kSBND))
{
// Fill trigger info
FillTriggerSBND(srsbndtiminginfo, srtrigger);

// Shift timing reference frame
if (!std::isnan(rec.sbnd_frames.frameApplyAtCaf) && (rec.sbnd_frames.frameApplyAtCaf != 0.0)){
mf::LogInfo("CAFMaker") << "Setting Reference Timing for timing object in SBND \n"
<< " Shift Apply At Caf Level = " << rec.sbnd_frames.frameApplyAtCaf << " ns\n";

//shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);

//shift reference frame for PMT objects: opflash, opt0
SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
}
//// Legacy code: Timing correction is now done at decoding/reconstruction level
////shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
//SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
////shift reference frame for PMT objects: opflash, opt0
//SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
Comment on lines +2659 to +2663
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend to remove this completely, but if you feel strongly about keeping it, make these non-Doxygen comments (//// starts a Doxygen comment). For example:

Suggested change
//// Legacy code: Timing correction is now done at decoding/reconstruction level
////shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
//SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
////shift reference frame for PMT objects: opflash, opt0
//SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
#if 0
// Legacy code: Timing correction is now done at decoding/reconstruction level
//shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
//shift reference frame for PMT objects: opflash, opt0
SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
#endif // 0

}

// Get metadata information for header
Expand Down
23 changes: 16 additions & 7 deletions sbncode/CAFMaker/FillReco.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -211,13 +211,22 @@ namespace caf
caf::SRSBNDFrameShiftInfo &srsbndframe,
bool allowEmpty)
{
srsbndframe.timingType = frame.TimingType();
srsbndframe.frameTdcCrtt1 = frame.FrameTdcCrtt1();
srsbndframe.frameTdcBes = frame.FrameTdcBes();
srsbndframe.frameTdcRwm = frame.FrameTdcRwm();
srsbndframe.frameHltCrtt1 = frame.FrameHltCrtt1();
srsbndframe.frameHltBeamGate = frame.FrameHltBeamGate();
srsbndframe.frameApplyAtCaf = frame.FrameApplyAtCaf();
srsbndframe.frameCrtt1 = frame.FrameCrtt1();
srsbndframe.timingTypeCrtt1 = frame.TimingTypeCrtt1();
srsbndframe.timingChannelCrtt1 = frame.TimingChannelCrtt1();

srsbndframe.frameBeamGate = frame.FrameBeamGate();
srsbndframe.timingTypeBeamGate = frame.TimingTypeBeamGate();
srsbndframe.timingChannelBeamGate = frame.TimingChannelBeamGate();

srsbndframe.frameEtrig = frame.FrameEtrig();
srsbndframe.timingTypeEtrig = frame.TimingTypeEtrig();
srsbndframe.timingChannelEtrig = frame.TimingChannelEtrig();

srsbndframe.frameDefault = frame.FrameDefault();
srsbndframe.timingTypeDefault = frame.TimingTypeDefault();
srsbndframe.timingChannelDefault = frame.TimingChannelDefault();

}

void FillSBNDTimingInfo(const sbnd::timing::TimingInfo &timing,
Expand Down
19 changes: 15 additions & 4 deletions sbncode/CAFMaker/FillTrigger.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,21 @@ namespace caf
}

void FillTriggerSBND(caf::SRSBNDTimingInfo& timingInfo, caf::SRTrigger& triggerInfo){

triggerInfo.global_trigger_time = timingInfo.hltEtrig;
triggerInfo.beam_gate_time_abs = timingInfo.hltBeamGate;
double diff_ts = triggerInfo.global_trigger_det_time - triggerInfo.beam_gate_det_time;

if (timingInfo.hltEtrig != std::numeric_limits<uint64_t>::max()) triggerInfo.global_trigger_time = timingInfo.hltEtrig;
if (timingInfo.hltBeamGate != std::numeric_limits<uint64_t>::max()) triggerInfo.beam_gate_time_abs = timingInfo.hltBeamGate;

double diff_ts = std::numeric_limits<double>::max();

if ((triggerInfo.global_trigger_time != std::numeric_limits<uint64_t>::max()) & (triggerInfo.beam_gate_time_abs != std::numeric_limits<uint64_t>::max())){
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ((triggerInfo.global_trigger_time != std::numeric_limits<uint64_t>::max()) & (triggerInfo.beam_gate_time_abs != std::numeric_limits<uint64_t>::max())){
if ((triggerInfo.global_trigger_time != std::numeric_limits<uint64_t>::max()) && (triggerInfo.beam_gate_time_abs != std::numeric_limits<uint64_t>::max())){


if (triggerInfo.global_trigger_time > triggerInfo.beam_gate_time_abs){
diff_ts = triggerInfo.global_trigger_time - triggerInfo.beam_gate_time_abs;
}
else{
diff_ts = (triggerInfo.beam_gate_time_abs - triggerInfo.global_trigger_time)*(double)-1;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can also go as

Suggested change
diff_ts = (triggerInfo.beam_gate_time_abs - triggerInfo.global_trigger_time)*(double)-1;
diff_ts = -1.0 * (triggerInfo.beam_gate_time_abs - triggerInfo.global_trigger_time);

}
}
triggerInfo.trigger_within_gate = diff_ts;
}

Expand Down