44#include " FWCore/Framework/interface/EventSetup.h"
55#include " FWCore/MessageLogger/interface/MessageLogger.h"
66#include " FWCore/ParameterSet/interface/ParameterSet.h"
7- #include " DataFormats/Common/interface/DetSetVector.h"
8- #include " DataFormats/Common/interface/DetSetVectorNew.h"
9- #include " DataFormats/SiStripDigi/interface/SiStripDigi.h"
7+ #include " FWCore/Utilities/interface/InputTag.h"
108
11- ShallowDigisProducer::ShallowDigisProducer (const edm::ParameterSet& conf)
12- : inputTags(conf.getParameter<std::vector<edm::InputTag> >(" DigiProducersList" )), noisesToken_(esConsumes()) {
13- produces<std::vector<unsigned > >(" id" );
14- produces<std::vector<unsigned > >(" subdet" );
15- produces<std::vector<unsigned > >(" strip" );
16- produces<std::vector<unsigned > >(" adc" );
17- produces<std::vector<float > >(" noise" );
9+ ShallowDigisProducer::ShallowDigisProducer (const edm::ParameterSet& conf) : noisesToken_(esConsumes()) {
10+ for (auto const & tag : conf.getParameter <std::vector<edm::InputTag>>(" DigiProducersList" )) {
11+ oldTokens_.emplace_back (consumes<edm::DetSetVector<SiStripDigi>>(tag));
12+ newTokens_.emplace_back (consumes<edmNew::DetSetVector<SiStripDigi>>(tag));
13+ }
14+ produces<std::vector<unsigned >>(" id" );
15+ produces<std::vector<unsigned >>(" subdet" );
16+ produces<std::vector<unsigned >>(" strip" );
17+ produces<std::vector<unsigned >>(" adc" );
18+ produces<std::vector<float >>(" noise" );
1819}
1920
2021void ShallowDigisProducer::insert (products& p, edm::Event& e) {
@@ -41,24 +42,25 @@ inline void ShallowDigisProducer::recordDigis(const T& digiCollection, products&
4142
4243void ShallowDigisProducer::produce (edm::Event& e, const edm::EventSetup& es) {
4344 products p;
44- edm::Handle<edm::DetSetVector<SiStripDigi> > inputOld;
45- edm::Handle<edmNew::DetSetVector<SiStripDigi> > inputNew;
45+ edm::Handle<edm::DetSetVector<SiStripDigi>> inputOld;
46+ edm::Handle<edmNew::DetSetVector<SiStripDigi>> inputNew;
4647 const auto & noises = es.getData (noisesToken_);
47- if (findInput (inputOld, e))
48+ if (findInput (inputOld, oldTokens_, e))
4849 recordDigis (*inputOld, p, noises);
49- else if (findInput (inputNew, e))
50+ else if (findInput (inputNew, newTokens_, e))
5051 recordDigis (*inputNew, p, noises);
5152 else
5253 edm::LogWarning (" Input Not Found" );
5354 insert (p, e);
5455}
5556
5657template <class T >
57- inline bool ShallowDigisProducer::findInput (edm::Handle<T>& handle, const edm::Event& e) {
58- for (auto const & inputTag : inputTags) {
59- e.getByLabel (inputTag, handle);
58+ inline bool ShallowDigisProducer::findInput (edm::Handle<T>& handle,
59+ std::vector<edm::EDGetTokenT<T>> const & tokens,
60+ const edm::Event& e) {
61+ for (auto const & token : tokens) {
62+ handle = e.getHandle (token);
6063 if (handle.isValid () && !handle->empty ()) {
61- LogDebug (" Input" ) << inputTag;
6264 return true ;
6365 }
6466 }
0 commit comments