@@ -248,6 +248,7 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es)
248248 if (!layerClustersHandle.isValid () || !layerClustersTimesHandle.isValid () || !inputClusterMaskHandle.isValid ()) {
249249 edm::LogWarning (" SimTrackstersProducer" ) << " Missing input collections. Producing empty outputs." ;
250250
251+ evt.put (std::move (result));
251252 evt.put (std::move (result_ticlCandidates));
252253 evt.put (std::move (output_mask));
253254 evt.put (std::move (result_fromCP), " fromCPs" );
@@ -280,7 +281,22 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es)
280281 evt.getByToken (trackingParticleToken_, trackingParticles_h);
281282 edm::Handle<std::vector<reco::Track>> recoTracks_h;
282283 evt.getByToken (recoTracksToken_, recoTracks_h);
283- const auto & TPtoRecoTrackMap = evt.get (associatormapStRsToken_);
284+
285+ // TP to reco track map
286+ const auto TPtoRecoTrackMapHandle = evt.getHandle (associatormapStRsToken_);
287+ if (!TPtoRecoTrackMapHandle.isValid ()) {
288+ edm::LogWarning (" SimTrackstersProducer" ) << " Missing TP->RecoTrack association." ;
289+ evt.put (std::move (result));
290+ evt.put (std::move (result_ticlCandidates));
291+ evt.put (std::move (output_mask));
292+ evt.put (std::move (result_fromCP), " fromCPs" );
293+ evt.put (std::move (resultPU), " PU" );
294+ evt.put (std::move (output_mask_fromCP), " fromCPs" );
295+ evt.put (std::move (cpToSc_SimTrackstersMap));
296+ return ;
297+ }
298+ const auto & TPtoRecoTrackMap = *TPtoRecoTrackMapHandle;
299+
284300 const auto & simTrackToTPMap = evt.get (associationSimTrackToTPToken_);
285301 const auto & recoTracks = *recoTracks_h;
286302
0 commit comments