From d2434f9d32aa5091e0ee7784cbdb7011d3fa84ca Mon Sep 17 00:00:00 2001 From: Ruby Ferguson <ruby.alice.molly.ferguson@cern.ch> Date: Fri, 3 Apr 2020 13:00:18 +0100 Subject: [PATCH] fixes taumonitoring crashes when running AOD --- .../tauMonitoring/src/tauMonitorAlgorithm.cxx | 108 +++++++++--------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx b/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx index b96ea0c30b1..23c949b2e19 100644 --- a/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx +++ b/Reconstruction/tauMonitoring/src/tauMonitorAlgorithm.cxx @@ -296,63 +296,65 @@ StatusCode tauMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const fill(tool,ipZ0SinThetaSigLeadTrk); fill(tool,leadTrkPt); + if ( environment() != Environment_t::AOD ){ + const xAOD::TrackParticle* track = tau->track(0)->track(); + const Trk::Perigee perigee = track->perigeeParameters(); - const xAOD::TrackParticle* track = tau->track(0)->track(); - const Trk::Perigee perigee = track->perigeeParameters(); - - uint8_t dummy(0); - - if (track->summaryValue(dummy, xAOD::numberOfSCTSharedHits)){ - numberOfSCTSharedHits = dummy; - fill(tool,numberOfSCTSharedHits); - } + uint8_t dummy(0); + + if (track->summaryValue(dummy, xAOD::numberOfSCTSharedHits)){ + numberOfSCTSharedHits = dummy; + fill(tool,numberOfSCTSharedHits); + } + + if (track->summaryValue(dummy, xAOD::numberOfSCTHits)){ + numberOfSCTHits = dummy; + fill(tool,numberOfSCTHits); + } + + if (track->summaryValue(dummy, xAOD::numberOfPixelSharedHits)){ + numberOfPixelSharedHits = dummy; + fill(tool,numberOfPixelSharedHits); + } + + if (track->summaryValue(dummy, xAOD::numberOfInnermostPixelLayerHits)){ + numberOfInnermostPixelLayerHits = dummy; + fill(tool,numberOfInnermostPixelLayerHits); + } + + if (track->summaryValue(dummy, xAOD::numberOfPixelHits)){ + numberOfPixelHits = dummy; + fill(tool,numberOfPixelHits); + } + if (track->summaryValue(dummy, xAOD::numberOfTRTHighThresholdHits)){ + numberOfTRTHighThresholdHits = dummy; + fill(tool,numberOfTRTHighThresholdHits); + } + if (track->summaryValue(dummy, xAOD::numberOfTRTHighThresholdOutliers)){ + numberOfTRTHighThresholdOutliers = dummy; + fill(tool,numberOfTRTHighThresholdOutliers); + } + if (track->summaryValue(dummy, xAOD::numberOfTRTHits)){ + numberOfTRTHits = dummy; + fill(tool,numberOfTRTHits); + } + if (track->summaryValue(dummy, xAOD::numberOfTRTOutliers)){ + numberOfTRTOutliers = dummy; + fill(tool,numberOfTRTOutliers); + } + - if (track->summaryValue(dummy, xAOD::numberOfSCTHits)){ - numberOfSCTHits = dummy; - fill(tool,numberOfSCTHits); - } + d0 = perigee.parameters()[Trk::d0]; + fill(tool,d0); + //z0 missing + phiTrack = perigee.parameters()[Trk::phi]; + fill(tool,phiTrack); + etaTrack = perigee.eta(); + fill(tool,etaTrack); + ptTrack = perigee.pT()/GeV; + fill(tool,ptTrack); - if (track->summaryValue(dummy, xAOD::numberOfPixelSharedHits)){ - numberOfPixelSharedHits = dummy; - fill(tool,numberOfPixelSharedHits); - } - - if (track->summaryValue(dummy, xAOD::numberOfInnermostPixelLayerHits)){ - numberOfInnermostPixelLayerHits = dummy; - fill(tool,numberOfInnermostPixelLayerHits); - } - - if (track->summaryValue(dummy, xAOD::numberOfPixelHits)){ - numberOfPixelHits = dummy; - fill(tool,numberOfPixelHits); - } - if (track->summaryValue(dummy, xAOD::numberOfTRTHighThresholdHits)){ - numberOfTRTHighThresholdHits = dummy; - fill(tool,numberOfTRTHighThresholdHits); - } - if (track->summaryValue(dummy, xAOD::numberOfTRTHighThresholdOutliers)){ - numberOfTRTHighThresholdOutliers = dummy; - fill(tool,numberOfTRTHighThresholdOutliers); - } - if (track->summaryValue(dummy, xAOD::numberOfTRTHits)){ - numberOfTRTHits = dummy; - fill(tool,numberOfTRTHits); - } - if (track->summaryValue(dummy, xAOD::numberOfTRTOutliers)){ - numberOfTRTOutliers = dummy; - fill(tool,numberOfTRTOutliers); } - - - d0 = perigee.parameters()[Trk::d0]; - fill(tool,d0); - //z0 missing - phiTrack = perigee.parameters()[Trk::phi]; - fill(tool,phiTrack); - etaTrack = perigee.eta(); - fill(tool,etaTrack); - ptTrack = perigee.pT()/GeV; - fill(tool,ptTrack); } //this else can be removed, but it sets any track variable to 0 if there are no tracks //this solution makes entry numbers match calo which is desired but there are too many zeros. -- GitLab