@@ -29,6 +29,7 @@ class DeDxEstimatorRekeyer : public edm::global::EDProducer<> {
2929
3030 // ----------member data ---------------------------
3131 const edm::EDGetTokenT<reco::TrackCollection> tracksToken_;
32+ const bool rekey_dedxHits_;
3233 const edm::EDGetTokenT<reco::DeDxHitInfoAss> dedxHitAssToken_;
3334 const edm::EDGetTokenT<edm::ValueMap<std::vector<float >>> dedxHitMomToken_;
3435 const std::map<std::string, edm::EDGetTokenT<edm::ValueMap<reco::DeDxData>>> dedxEstimatorsTokens_;
@@ -39,8 +40,8 @@ class DeDxEstimatorRekeyer : public edm::global::EDProducer<> {
3940void DeDxEstimatorRekeyer::fillDescriptions (edm::ConfigurationDescriptions& descriptions) {
4041 edm::ParameterSetDescription desc;
4142 desc.add <edm::InputTag>(" tracks" , {" generalTracks" });
42- desc.add <edm::InputTag>(" dedxHits" , {" dedxHitInfo " });
43- desc.add <edm::InputTag>(" dedxMomentum" , {" dedxHitInfo:momentumAtHit " });
43+ desc.add <edm::InputTag>(" dedxHits" , {});
44+ desc.add <edm::InputTag>(" dedxMomentum" , {});
4445 desc.add <std::vector<edm::InputTag>>(
4546 " packedCandidates" ,
4647 {edm::InputTag (" packedPFCandidates" ), edm::InputTag (" lostTracks" ), edm::InputTag (" lostTracks:eleTracks" )});
@@ -51,6 +52,7 @@ void DeDxEstimatorRekeyer::fillDescriptions(edm::ConfigurationDescriptions& desc
5152
5253DeDxEstimatorRekeyer::DeDxEstimatorRekeyer (const edm::ParameterSet& iConfig)
5354 : tracksToken_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>(" tracks" ))),
55+ rekey_dedxHits_(not iConfig.getParameter<edm::InputTag>(" dedxHits" ).label().empty()),
5456 dedxHitAssToken_(consumes<reco::DeDxHitInfoAss>(iConfig.getParameter<edm::InputTag>(" dedxHits" ))),
5557 dedxHitMomToken_(
5658 consumes<edm::ValueMap<std::vector<float >>>(iConfig.getParameter<edm::InputTag>(" dedxMomentum" ))),
@@ -62,9 +64,11 @@ DeDxEstimatorRekeyer::DeDxEstimatorRekeyer(const edm::ParameterSet& iConfig)
6264 iConfig.getParameter<std::vector<edm::InputTag>>(" packedCandidates" ))) {
6365 for (const auto & d : dedxEstimatorsTokens_)
6466 produces<edm::ValueMap<reco::DeDxData>>(d.first );
65- produces<reco::DeDxHitInfoCollection>();
66- produces<reco::DeDxHitInfoAss>();
67- produces<edm::ValueMap<std::vector<float >>>(" momentumAtHit" );
67+ if (rekey_dedxHits_) {
68+ produces<reco::DeDxHitInfoCollection>();
69+ produces<reco::DeDxHitInfoAss>();
70+ produces<edm::ValueMap<std::vector<float >>>(" momentumAtHit" );
71+ }
6872}
6973
7074void DeDxEstimatorRekeyer::produce (edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
@@ -107,6 +111,8 @@ void DeDxEstimatorRekeyer::produce(edm::StreamID, edm::Event& iEvent, const edm:
107111 }
108112
109113 // Rekey dEdx hit info
114+ if (not rekey_dedxHits_)
115+ return ;
110116 const auto & dedxHitMom = iEvent.get (dedxHitMomToken_);
111117 const auto & dedxHitAss = iEvent.get (dedxHitAssToken_);
112118 const auto & dedxHitInfoHandle = iEvent.getRefBeforePut <reco::DeDxHitInfoCollection>();
0 commit comments