Skip to content

Commit 23f373e

Browse files
committed
Merge branch 'feature/frame_shift_refactor_v10_14_02' into develop
2 parents e0366f7 + 621fdbb commit 23f373e

3 files changed

Lines changed: 33 additions & 28 deletions

File tree

sbncode/CAFMaker/CAFMaker_module.cc

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2738,27 +2738,12 @@ void CAFMaker::produce(art::Event& evt) noexcept {
27382738
FixPMTReferenceTimes(rec, PMT_reference_time);
27392739

27402740
// TODO: TPC?
2741-
2742-
// SBND: Fix the Reference time in data depending on the stream
2743-
// For more information, see:
2744-
// https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=43090
2741+
27452742

2746-
if (isRealData && (fDet == kSBND) && fSubRunPOT > 0)
2743+
if (isRealData && (fDet == kSBND))
27472744
{
27482745
// Fill trigger info
27492746
FillTriggerSBND(srsbndtiminginfo, srtrigger);
2750-
2751-
// Shift timing reference frame
2752-
if (!std::isnan(rec.sbnd_frames.frameApplyAtCaf) && (rec.sbnd_frames.frameApplyAtCaf != 0.0)){
2753-
mf::LogInfo("CAFMaker") << "Setting Reference Timing for timing object in SBND \n"
2754-
<< " Shift Apply At Caf Level = " << rec.sbnd_frames.frameApplyAtCaf << " ns\n";
2755-
2756-
//shift reference frame for CRT objects: crt trk, crt sp, crt sp match, crt trk match
2757-
SBNDShiftCRTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
2758-
2759-
//shift reference frame for PMT objects: opflash, opt0
2760-
SBNDShiftPMTReference(rec, rec.sbnd_frames.frameApplyAtCaf);
2761-
}
27622747
}
27632748

27642749
// Get metadata information for header

sbncode/CAFMaker/FillReco.cxx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,22 @@ namespace caf
217217
caf::SRSBNDFrameShiftInfo &srsbndframe,
218218
bool allowEmpty)
219219
{
220-
srsbndframe.timingType = frame.TimingType();
221-
srsbndframe.frameTdcCrtt1 = frame.FrameTdcCrtt1();
222-
srsbndframe.frameTdcBes = frame.FrameTdcBes();
223-
srsbndframe.frameTdcRwm = frame.FrameTdcRwm();
224-
srsbndframe.frameHltCrtt1 = frame.FrameHltCrtt1();
225-
srsbndframe.frameHltBeamGate = frame.FrameHltBeamGate();
226-
srsbndframe.frameApplyAtCaf = frame.FrameApplyAtCaf();
220+
srsbndframe.frameCrtt1 = frame.FrameCrtt1();
221+
srsbndframe.timingTypeCrtt1 = frame.TimingTypeCrtt1();
222+
srsbndframe.timingChannelCrtt1 = frame.TimingChannelCrtt1();
223+
224+
srsbndframe.frameBeamGate = frame.FrameBeamGate();
225+
srsbndframe.timingTypeBeamGate = frame.TimingTypeBeamGate();
226+
srsbndframe.timingChannelBeamGate = frame.TimingChannelBeamGate();
227+
228+
srsbndframe.frameEtrig = frame.FrameEtrig();
229+
srsbndframe.timingTypeEtrig = frame.TimingTypeEtrig();
230+
srsbndframe.timingChannelEtrig = frame.TimingChannelEtrig();
231+
232+
srsbndframe.frameDefault = frame.FrameDefault();
233+
srsbndframe.timingTypeDefault = frame.TimingTypeDefault();
234+
srsbndframe.timingChannelDefault = frame.TimingChannelDefault();
235+
227236
}
228237

229238
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
@@ -50,10 +50,21 @@ namespace caf
5050
}
5151

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

0 commit comments

Comments
 (0)