Skip to content
Snippets Groups Projects
Commit 1d960089 authored by Eric Torrence's avatar Eric Torrence
Browse files

Merge branch 'mdc_reco' into 'master'

MC reco fixes

See merge request !223
parents 35c4b0bd 025e04e3
No related branches found
No related tags found
1 merge request!223MC reco fixes
Pipeline #3963365 passed
......@@ -22,6 +22,7 @@ def WaveformReconstructionCfg(flags, naive = False):
if flags.Input.isMC and naive:
if "TB" not in flags.GeoModel.FaserVersion:
acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoTriggerHitWaveformRecAlg", "Trigger"))
acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoVetoHitToWaveformRecAlg", "Veto"))
acc.merge(PseudoScintHitToWaveformRecCfg(flags, "PseudoPresehowerHitWaveformRecAlg", "Preshower"))
acc.merge(PseudoCaloHitToWaveformRecCfg(flags, "PseudoCaloHitWaveformRecAlg"))
......@@ -29,7 +30,10 @@ def WaveformReconstructionCfg(flags, naive = False):
acc.merge(WaveformHitRecCfg(flags, "TriggerWaveformRecAlg", "Trigger"))
acc.merge(WaveformHitRecCfg(flags, "VetoWaveformRecAlg", "Veto"))
acc.merge(WaveformHitRecCfg(flags, "VetoNuWaveformRecAlg", "VetoNu"))
if flags.Input.isMC:
print("Turning off VetoNu reco in MC!")
else:
acc.merge(WaveformHitRecCfg(flags, "VetoNuWaveformRecAlg", "VetoNu"))
acc.merge(WaveformHitRecCfg(flags, "PreshowerWaveformRecAlg", "Preshower"))
acc.merge(WaveformHitRecCfg(flags, "CaloWaveformRecAlg", "Calo"))
......@@ -58,8 +62,8 @@ def WaveformHitRecCfg(flags, name="WaveformRecAlg", source="", **kwargs):
acc = ComponentAccumulator()
if flags.Input.isMC:
kwargs.setdefault("PeakThreshold", 5)
#if flags.Input.isMC:
# kwargs.setdefault("PeakThreshold", 5)
tool = WaveformReconstructionTool(name=source+"WaveformRecTool", **kwargs)
......
......@@ -44,6 +44,9 @@ StatusCode
RawWaveformRecAlg::execute(const EventContext& ctx) const {
ATH_MSG_DEBUG("Executing");
// Keep track of some statistics
m_numberOfEvents++;
ATH_MSG_DEBUG("Run: " << ctx.eventID().run_number()
<< " Event: " << ctx.eventID().event_number());
......@@ -96,7 +99,6 @@ RawWaveformRecAlg::execute(const EventContext& ctx) const {
ATH_MSG_DEBUG("WaveformsHitContainer '" << hitContainerHandle.name() << "' filled with "<< hitContainerHandle->size() <<" items");
// Keep track of some statistics
m_numberOfEvents++;
for (const auto& hit : *(hitContainerHandle.ptr())) {
if (hit->status_bit(xAOD::WaveformStatus::THRESHOLD_FAILED)) continue;
......
......@@ -55,9 +55,6 @@ WaveformReconstructionTool::reconstructPrimary(
ATH_MSG_DEBUG(" reconstructPrimary called");
// Get the nominal trigger time (in ns) from config
float trigger_time = m_timingTool->nominalTriggerTime();
xAOD::WaveformHit* newhit = new xAOD::WaveformHit();
hitContainer->push_back(newhit);
......@@ -90,6 +87,9 @@ WaveformReconstructionTool::reconstructPrimary(
if (newhit->status_bit(xAOD::WaveformStatus::BASELINE_FAILED))
return StatusCode::SUCCESS;
// Get the nominal trigger time (in ns) from config
float trigger_time = m_timingTool->nominalTriggerTime();
// Set range for windowed data in digitizer samples
float offset = m_timingTool->triggerTimeOffset(wave.channel());
......@@ -126,7 +126,10 @@ WaveformReconstructionTool::reconstructSecondary(
for( const auto& hit : *hitContainer) {
if (hit->channel() == wave.channel()) {
// Use id rather than channel to make sure this works on MC
if (hit->identify() == wave.identify()) {
ATH_MSG_DEBUG("Found primary hit in channel "<< hit->channel()
<< " with id 0x" << std::hex << hit->identify() << std::dec );
primaryHit = hit;
break;
}
......@@ -138,6 +141,16 @@ WaveformReconstructionTool::reconstructSecondary(
return StatusCode::FAILURE;
}
if (primaryHit->status_bit(xAOD::WaveformStatus::WAVEFORM_MISSING)) {
ATH_MSG_DEBUG("Found primary hit with waveform missing");
return StatusCode::SUCCESS;
}
if (primaryHit->status_bit(xAOD::WaveformStatus::WAVEFORM_INVALID)) {
ATH_MSG_DEBUG("Found primary hit with waveform invalid");
return StatusCode::SUCCESS;
}
WaveformBaselineData baseline;
baseline.mean = primaryHit->baseline_mean();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment