Skip to content

Commit 5810b0f

Browse files
committed
Merge branch 'feature/frameshift_refactor_v10_11_01' of https://github.com/SBNSoftware/sbncode into feature/frame_shift_refactor_v10_14_02
2 parents 1495453 + 340f043 commit 5810b0f

3 files changed

Lines changed: 39 additions & 26 deletions

File tree

sbncode/CAFMaker/CAFMaker_module.cc

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2649,27 +2649,20 @@ void CAFMaker::produce(art::Event& evt) noexcept {
26492649
FixPMTReferenceTimes(rec, PMT_reference_time);
26502650

26512651
// TODO: TPC?
2652-
2653-
// SBND: Fix the Reference time in data depending on the stream
2654-
// For more information, see:
2655-
// https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=43090
2652+
26562653

2657-
if (isRealData && (fDet == kSBND) && fSubRunPOT > 0)
2654+
if (isRealData && (fDet == kSBND))
26582655
{
26592656
// Fill trigger info
26602657
FillTriggerSBND(srsbndtiminginfo, srtrigger);
26612658

2662-
// Shift timing reference frame
2663-
if (!std::isnan(rec.sbnd_frames.frameApplyAtCaf) && (rec.sbnd_frames.frameApplyAtCaf != 0.0)){
2664-
mf::LogInfo("CAFMaker") << "Setting Reference Timing for timing object in SBND \n"
2665-
<< " Shift Apply At Caf Level = " << rec.sbnd_frames.frameApplyAtCaf << " ns\n";
2666-
2667-
//shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
2668-
SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
2659+
//// Legacy: Timing correction is being done at decoding/reconstruction level
2660+
//// SBND: Fix the Reference time in data depending on the stream
2661+
////shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
2662+
//SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
26692663

2670-
//shift reference frame for PMT objects: opflash, opt0
2671-
SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
2672-
}
2664+
////shift reference frame for PMT objects: opflash, opt0
2665+
//SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
26732666
}
26742667

26752668
// Get metadata information for header

sbncode/CAFMaker/FillReco.cxx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,22 @@ namespace caf
211211
caf::SRSBNDFrameShiftInfo &srsbndframe,
212212
bool allowEmpty)
213213
{
214-
srsbndframe.timingType = frame.TimingType();
215-
srsbndframe.frameTdcCrtt1 = frame.FrameTdcCrtt1();
216-
srsbndframe.frameTdcBes = frame.FrameTdcBes();
217-
srsbndframe.frameTdcRwm = frame.FrameTdcRwm();
218-
srsbndframe.frameHltCrtt1 = frame.FrameHltCrtt1();
219-
srsbndframe.frameHltBeamGate = frame.FrameHltBeamGate();
220-
srsbndframe.frameApplyAtCaf = frame.FrameApplyAtCaf();
214+
srsbndframe.frameCrtt1 = frame.FrameCrtt1();
215+
srsbndframe.timingTypeCrtt1 = frame.TimingTypeCrtt1();
216+
srsbndframe.timingChannelCrtt1 = frame.TimingChannelCrtt1();
217+
218+
srsbndframe.frameBeamGate = frame.FrameBeamGate();
219+
srsbndframe.timingTypeBeamGate = frame.TimingTypeBeamGate();
220+
srsbndframe.timingChannelBeamGate = frame.TimingChannelBeamGate();
221+
222+
srsbndframe.frameEtrig = frame.FrameEtrig();
223+
srsbndframe.timingTypeEtrig = frame.TimingTypeEtrig();
224+
srsbndframe.timingChannelEtrig = frame.TimingChannelEtrig();
225+
226+
srsbndframe.frameDefault = frame.FrameDefault();
227+
srsbndframe.timingTypeDefault = frame.TimingTypeDefault();
228+
srsbndframe.timingChannelDefault = frame.TimingChannelDefault();
229+
221230
}
222231

223232
void FillSBNDTimingInfo(const sbnd::timing::TimingInfo &timing,

sbncode/CAFMaker/FillTrigger.cxx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,21 @@ namespace caf
4949
}
5050

5151
void FillTriggerSBND(caf::SRSBNDTimingInfo& timingInfo, caf::SRTrigger& triggerInfo){
52-
53-
triggerInfo.global_trigger_time = timingInfo.hltEtrig;
54-
triggerInfo.beam_gate_time_abs = timingInfo.hltBeamGate;
55-
double diff_ts = triggerInfo.global_trigger_det_time - triggerInfo.beam_gate_det_time;
52+
53+
if (timingInfo.hltEtrig != std::numeric_limits<uint64_t>::max()) triggerInfo.global_trigger_time = timingInfo.hltEtrig;
54+
if (timingInfo.hltBeamGate != std::numeric_limits<uint64_t>::max()) triggerInfo.beam_gate_time_abs = timingInfo.hltBeamGate;
55+
56+
double diff_ts = std::numeric_limits<double>::max();
57+
58+
if ((triggerInfo.global_trigger_time != std::numeric_limits<uint64_t>::max()) & (triggerInfo.beam_gate_time_abs != std::numeric_limits<uint64_t>::max())){
59+
60+
if (triggerInfo.global_trigger_time > triggerInfo.beam_gate_time_abs){
61+
diff_ts = triggerInfo.global_trigger_time - triggerInfo.beam_gate_time_abs;
62+
}
63+
else{
64+
diff_ts = (triggerInfo.beam_gate_time_abs - triggerInfo.global_trigger_time)*(double)-1;
65+
}
66+
}
5667
triggerInfo.trigger_within_gate = diff_ts;
5768
}
5869

0 commit comments

Comments
 (0)