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);
}

// 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())){

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;
}
}
triggerInfo.trigger_within_gate = diff_ts;
}

Expand Down