CMS 3D CMS Logo

EcalUncalibRecHitProducer.cc
Go to the documentation of this file.
4 
7 
9 
12 
15 
21 
23  ebHitCollection_ = ps.getParameter<std::string>("EBhitCollection");
24  eeHitCollection_ = ps.getParameter<std::string>("EEhitCollection");
25  produces<EBUncalibratedRecHitCollection>(ebHitCollection_);
26  produces<EEUncalibratedRecHitCollection>(eeHitCollection_);
27 
28  ebDigiCollectionToken_ = consumes<EBDigiCollection>(ps.getParameter<edm::InputTag>("EBdigiCollection"));
29 
30  eeDigiCollectionToken_ = consumes<EEDigiCollection>(ps.getParameter<edm::InputTag>("EEdigiCollection"));
31 
32  std::string componentType = ps.getParameter<std::string>("algo");
33  edm::ParameterSet algoConf = ps.getParameter<edm::ParameterSet>("algoPSet");
34 
35  edm::ConsumesCollector c{consumesCollector()};
36  worker_ = EcalUncalibRecHitWorkerFactory::get()->create(componentType, algoConf, c);
37 }
38 
40 
43  std::vector<edmplugin::PluginInfo> infos = factory->available();
44 
45  {
47  desc.add<edm::InputTag>("EBdigiCollection", edm::InputTag("ecalDigis", "ebDigis"));
48  desc.add<std::string>("EEhitCollection", "EcalUncalibRecHitsEE");
49  desc.add<edm::InputTag>("EEdigiCollection", edm::InputTag("ecalDigis", "eeDigis"));
50  desc.add<std::string>("EBhitCollection", "EcalUncalibRecHitsEB");
51 
52  auto itInfos = infos.begin();
53  assert(itInfos != infos.end());
54 
55  std::unique_ptr<edm::ParameterDescriptionCases<std::string>> s;
56  {
57  std::unique_ptr<EcalUncalibRecHitWorkerBaseClass> tmw(
59  s = (itInfos->name_ >>
60  edm::ParameterDescription<edm::ParameterSetDescription>("algoPSet", tmw->getAlgoDescription(), true));
61  }
62  for (++itInfos; itInfos != infos.end(); ++itInfos) {
63  std::unique_ptr<EcalUncalibRecHitWorkerBaseClass> tmw(
66  "algoPSet", tmw->getAlgoDescription(), true));
67  }
68  desc.ifValue(edm::ParameterDescription<std::string>("algo", "EcalUncalibRecHitWorkerMultiFit", true), std::move(s));
69 
70  descriptions.addDefault(desc);
71  }
72 
73  for (std::vector<edmplugin::PluginInfo>::const_iterator itInfos = infos.begin(); itInfos != infos.end(); itInfos++) {
74  std::unique_ptr<EcalUncalibRecHitWorkerBaseClass> fdWorker(
76 
78  desc.add<edm::InputTag>("EBdigiCollection", edm::InputTag("ecalDigis", "ebDigis"));
79  desc.add<std::string>("EEhitCollection", "EcalUncalibRecHitsEE");
80  desc.add<edm::InputTag>("EEdigiCollection", edm::InputTag("ecalDigis", "eeDigis"));
81  desc.add<std::string>("EBhitCollection", "EcalUncalibRecHitsEB");
82  desc.add<std::string>("algo", itInfos->name_);
83  desc.add<edm::ParameterSetDescription>("algoPSet", fdWorker->getAlgoDescription());
84 
85  std::string algoName = itInfos->name_.substr(itInfos->name_.find("Worker") + 6, itInfos->name_.length());
86  descriptions.add("ecal" + algoName + "UncalibRecHit", desc);
87  }
88 }
89 
91  using namespace edm;
92 
93  Handle<EBDigiCollection> pEBDigis;
94  Handle<EEDigiCollection> pEEDigis;
95 
96  const EBDigiCollection* ebDigis = nullptr;
97  const EEDigiCollection* eeDigis = nullptr;
98 
99  evt.getByToken(ebDigiCollectionToken_, pEBDigis);
100  ebDigis = pEBDigis.product(); // get a ptr to the produc
101  edm::LogInfo("EcalUncalibRecHitInfo") << "total # ebDigis: " << ebDigis->size();
102 
103  evt.getByToken(eeDigiCollectionToken_, pEEDigis);
104  eeDigis = pEEDigis.product(); // get a ptr to the product
105  edm::LogInfo("EcalUncalibRecHitInfo") << "total # eeDigis: " << eeDigis->size();
106 
107  // tranparently get things from event setup
108  worker_->set(es);
109  worker_->set(evt);
110 
111  // prepare output
112  auto ebUncalibRechits = std::make_unique<EBUncalibratedRecHitCollection>();
113  auto eeUncalibRechits = std::make_unique<EEUncalibratedRecHitCollection>();
114 
115  // loop over EB digis
116  if (ebDigis)
117  worker_->run(evt, *ebDigis, *ebUncalibRechits);
118 
119  // loop over EB digis
120  if (eeDigis)
121  worker_->run(evt, *eeDigis, *eeUncalibRechits);
122 
123  // put the collection of recunstructed hits in the event
124  evt.put(std::move(ebUncalibRechits), ebHitCollection_);
125  evt.put(std::move(eeUncalibRechits), eeHitCollection_);
126 }
127 
ConfigurationDescriptions.h
EcalUncalibRecHitProducer::produce
void produce(edm::Event &evt, const edm::EventSetup &es) override
Definition: EcalUncalibRecHitProducer.cc:90
Handle.h
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
EcalUncalibRecHitFillDescriptionWorkerFactory.h
MessageLogger.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
Algorithms.h
cms::cuda::assert
assert(be >=bs)
HIPAlignmentAlgorithm_cfi.algoName
algoName
Definition: HIPAlignmentAlgorithm_cfi.py:5
EcalUncalibRecHitProducer::~EcalUncalibRecHitProducer
~EcalUncalibRecHitProducer() override
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
edm::Handle< EBDigiCollection >
EcalRecHitCollections.h
EcalUncalibRecHitProducer::ebHitCollection_
std::string ebHitCollection_
Definition: EcalUncalibRecHitProducer.h:28
EcalUncalibRecHitProducer.h
MakerMacros.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
EcalUncalibRecHitProducer::EcalUncalibRecHitProducer
EcalUncalibRecHitProducer(const edm::ParameterSet &ps)
Definition: EcalUncalibRecHitProducer.cc:22
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
PluginInfo.h
EcalDigiCollections.h
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
ParameterSetDescription.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
standard.h
EcalUncalibRecHitProducer
Definition: EcalUncalibRecHitProducer.h:17
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
EcalUncalibRecHitProducer::eeDigiCollectionToken_
edm::EDGetTokenT< EEDigiCollection > eeDigiCollectionToken_
Definition: EcalUncalibRecHitProducer.h:26
EBDigiCollection
Definition: EcalDigiCollections.h:32
edmplugin::PluginFactory
Definition: PluginFactory.h:34
EEDigiCollection
Definition: EcalDigiCollections.h:45
MessageLogger_cfi.infos
infos
Definition: MessageLogger_cfi.py:67
edm::ParameterSetDescription::ifValue
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases)
Definition: ParameterSetDescription.h:220
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:132
edm::EventSetup
Definition: EventSetup.h:57
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
get
#define get
EcalUncalibRecHitProducer::ebDigiCollectionToken_
edm::EDGetTokenT< EBDigiCollection > ebDigiCollectionToken_
Definition: EcalUncalibRecHitProducer.h:25
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EcalUncalibRecHitProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: EcalUncalibRecHitProducer.cc:41
EcalUncalibRecHitWorkerFactory.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
EcalUncalibRecHitProducer::worker_
std::unique_ptr< EcalUncalibRecHitWorkerBaseClass > worker_
Definition: EcalUncalibRecHitProducer.h:31
PluginManager.h
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
Exception.h
EcalUncalibRecHitProducer::eeHitCollection_
std::string eeHitCollection_
Definition: EcalUncalibRecHitProducer.h:29
ConsumesCollector.h
edm::Event
Definition: Event.h:73
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
edm::ParameterDescription
Definition: ParameterDescription.h:110
SimL1EmulatorDM_cff.eeDigis
eeDigis
Definition: SimL1EmulatorDM_cff.py:18
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
edm::DataFrameContainer::size
size_type size() const
Definition: DataFrameContainer.h:162