|
4 | 4 | #include "FWCore/Framework/interface/Event.h" |
5 | 5 | #include "FWCore/Framework/interface/EventSetup.h" |
6 | 6 | #include "FWCore/Framework/interface/MakerMacros.h" |
7 | | -#include "FWCore/Framework/interface/stream/EDProducer.h" |
| 7 | +#include "FWCore/Framework/interface/global/EDProducer.h" |
8 | 8 | #include "FWCore/ParameterSet/interface/ParameterSet.h" |
9 | 9 | #include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" |
10 | 10 | #include "FWCore/Utilities/interface/EDGetToken.h" |
11 | 11 | #include "FWCore/Utilities/interface/EDPutToken.h" |
12 | 12 | #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitHostCollection.h" |
13 | 13 |
|
14 | | -class EcalUncalibRecHitSoAToLegacy : public edm::stream::EDProducer<> { |
| 14 | +class EcalUncalibRecHitSoAToLegacy : public edm::global::EDProducer<> { |
15 | 15 | public: |
16 | 16 | explicit EcalUncalibRecHitSoAToLegacy(edm::ParameterSet const &ps); |
17 | 17 | ~EcalUncalibRecHitSoAToLegacy() override = default; |
18 | 18 | static void fillDescriptions(edm::ConfigurationDescriptions &); |
19 | 19 |
|
20 | 20 | private: |
21 | 21 | using InputProduct = EcalUncalibratedRecHitHostCollection; |
22 | | - void produce(edm::Event &, edm::EventSetup const &) override; |
| 22 | + void produce(edm::StreamID, edm::Event &, edm::EventSetup const &) const override; |
23 | 23 |
|
24 | 24 | private: |
25 | 25 | const bool isPhase2_; |
26 | | - const edm::EDGetTokenT<InputProduct> uncalibRecHitsPortableEB_; |
27 | | - const edm::EDGetTokenT<InputProduct> uncalibRecHitsPortableEE_; |
28 | | - const edm::EDPutTokenT<EBUncalibratedRecHitCollection> uncalibRecHitsCPUEBToken_; |
29 | | - const edm::EDPutTokenT<EEUncalibratedRecHitCollection> uncalibRecHitsCPUEEToken_; |
| 26 | + const edm::EDGetTokenT<InputProduct> inputTokenEB_; |
| 27 | + const edm::EDGetTokenT<InputProduct> inputTokenEE_; |
| 28 | + const edm::EDPutTokenT<EBUncalibratedRecHitCollection> outputTokenEB_; |
| 29 | + const edm::EDPutTokenT<EEUncalibratedRecHitCollection> outputTokenEE_; |
30 | 30 | }; |
31 | 31 |
|
32 | 32 | void EcalUncalibRecHitSoAToLegacy::fillDescriptions(edm::ConfigurationDescriptions &confDesc) { |
33 | 33 | edm::ParameterSetDescription desc; |
34 | 34 |
|
35 | | - desc.add<edm::InputTag>("uncalibRecHitsPortableEB", |
| 35 | + desc.add<edm::InputTag>("inputCollectionEB", |
36 | 36 | edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEB")); |
37 | | - desc.add<std::string>("recHitsLabelCPUEB", "EcalUncalibRecHitsEB"); |
| 37 | + desc.add<std::string>("outputLabelEB", "EcalUncalibRecHitsEB"); |
38 | 38 | desc.ifValue(edm::ParameterDescription<bool>("isPhase2", false, true), |
39 | 39 | false >> (edm::ParameterDescription<edm::InputTag>( |
40 | | - "uncalibRecHitsPortableEE", |
| 40 | + "inputCollectionEE", |
41 | 41 | edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEE"), |
42 | 42 | true) and |
43 | | - edm::ParameterDescription<std::string>("recHitsLabelCPUEE", "EcalUncalibRecHitsEE", true)) or |
| 43 | + edm::ParameterDescription<std::string>("outputLabelEE", "EcalUncalibRecHitsEE", true)) or |
44 | 44 | true >> edm::EmptyGroupDescription()); |
45 | 45 | confDesc.add("ecalUncalibRecHitSoAToLegacy", desc); |
46 | 46 | } |
47 | 47 |
|
48 | 48 | EcalUncalibRecHitSoAToLegacy::EcalUncalibRecHitSoAToLegacy(edm::ParameterSet const &ps) |
49 | 49 | : isPhase2_{ps.getParameter<bool>("isPhase2")}, |
50 | | - uncalibRecHitsPortableEB_{consumes<InputProduct>(ps.getParameter<edm::InputTag>("uncalibRecHitsPortableEB"))}, |
51 | | - uncalibRecHitsPortableEE_{ |
52 | | - isPhase2_ ? edm::EDGetTokenT<InputProduct>{} |
53 | | - : consumes<InputProduct>(ps.getParameter<edm::InputTag>("uncalibRecHitsPortableEE"))}, |
54 | | - uncalibRecHitsCPUEBToken_{ |
55 | | - produces<EBUncalibratedRecHitCollection>(ps.getParameter<std::string>("recHitsLabelCPUEB"))}, |
56 | | - uncalibRecHitsCPUEEToken_{ |
57 | | - isPhase2_ ? edm::EDPutTokenT<EEUncalibratedRecHitCollection>{} |
58 | | - : produces<EEUncalibratedRecHitCollection>(ps.getParameter<std::string>("recHitsLabelCPUEE"))} {} |
| 50 | + inputTokenEB_{consumes<InputProduct>(ps.getParameter<edm::InputTag>("inputCollectionEB"))}, |
| 51 | + inputTokenEE_{isPhase2_ ? edm::EDGetTokenT<InputProduct>{} |
| 52 | + : consumes<InputProduct>(ps.getParameter<edm::InputTag>("inputCollectionEE"))}, |
| 53 | + outputTokenEB_{produces<EBUncalibratedRecHitCollection>(ps.getParameter<std::string>("outputLabelEB"))}, |
| 54 | + outputTokenEE_{isPhase2_ |
| 55 | + ? edm::EDPutTokenT<EEUncalibratedRecHitCollection>{} |
| 56 | + : produces<EEUncalibratedRecHitCollection>(ps.getParameter<std::string>("outputLabelEE"))} {} |
59 | 57 |
|
60 | | -void EcalUncalibRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &setup) { |
61 | | - auto const &uncalRecHitsEBColl = event.get(uncalibRecHitsPortableEB_); |
62 | | - auto const &uncalRecHitsEBCollView = uncalRecHitsEBColl.const_view(); |
63 | | - auto recHitsCPUEB = std::make_unique<EBUncalibratedRecHitCollection>(); |
64 | | - recHitsCPUEB->reserve(uncalRecHitsEBCollView.size()); |
| 58 | +void EcalUncalibRecHitSoAToLegacy::produce(edm::StreamID sid, edm::Event &event, edm::EventSetup const &setup) const { |
| 59 | + auto const &inputCollEB = event.get(inputTokenEB_); |
| 60 | + auto const &inputCollEBView = inputCollEB.const_view(); |
| 61 | + auto outputCollEB = std::make_unique<EBUncalibratedRecHitCollection>(); |
| 62 | + outputCollEB->reserve(inputCollEBView.size()); |
65 | 63 |
|
66 | | - for (uint32_t i = 0; i < uncalRecHitsEBCollView.size(); ++i) { |
67 | | - recHitsCPUEB->emplace_back(DetId{uncalRecHitsEBCollView.id()[i]}, |
68 | | - uncalRecHitsEBCollView.amplitude()[i], |
69 | | - uncalRecHitsEBCollView.pedestal()[i], |
70 | | - uncalRecHitsEBCollView.jitter()[i], |
71 | | - uncalRecHitsEBCollView.chi2()[i], |
72 | | - uncalRecHitsEBCollView.flags()[i]); |
| 64 | + for (uint32_t i = 0; i < inputCollEBView.size(); ++i) { |
| 65 | + outputCollEB->emplace_back(DetId{inputCollEBView.id()[i]}, |
| 66 | + inputCollEBView.amplitude()[i], |
| 67 | + inputCollEBView.pedestal()[i], |
| 68 | + inputCollEBView.jitter()[i], |
| 69 | + inputCollEBView.chi2()[i], |
| 70 | + inputCollEBView.flags()[i]); |
73 | 71 | if (isPhase2_) { |
74 | | - (*recHitsCPUEB)[i].setAmplitudeError(uncalRecHitsEBCollView.amplitudeError()[i]); |
| 72 | + (*outputCollEB)[i].setAmplitudeError(inputCollEBView.amplitudeError()[i]); |
75 | 73 | } |
76 | | - (*recHitsCPUEB)[i].setJitterError(uncalRecHitsEBCollView.jitterError()[i]); |
| 74 | + (*outputCollEB)[i].setJitterError(inputCollEBView.jitterError()[i]); |
77 | 75 | for (uint32_t sample = 0; sample < EcalDataFrame::MAXSAMPLES; ++sample) { |
78 | | - (*recHitsCPUEB)[i].setOutOfTimeAmplitude(sample, uncalRecHitsEBCollView.outOfTimeAmplitudes()[i][sample]); |
| 76 | + (*outputCollEB)[i].setOutOfTimeAmplitude(sample, inputCollEBView.outOfTimeAmplitudes()[i][sample]); |
79 | 77 | } |
80 | 78 | } |
81 | | - event.put(uncalibRecHitsCPUEBToken_, std::move(recHitsCPUEB)); |
| 79 | + event.put(outputTokenEB_, std::move(outputCollEB)); |
82 | 80 |
|
83 | 81 | if (!isPhase2_) { |
84 | | - auto const &uncalRecHitsEEColl = event.get(uncalibRecHitsPortableEE_); |
85 | | - auto const &uncalRecHitsEECollView = uncalRecHitsEEColl.const_view(); |
86 | | - auto recHitsCPUEE = std::make_unique<EEUncalibratedRecHitCollection>(); |
87 | | - recHitsCPUEE->reserve(uncalRecHitsEECollView.size()); |
| 82 | + auto const &inputCollEE = event.get(inputTokenEE_); |
| 83 | + auto const &inputCollEEView = inputCollEE.const_view(); |
| 84 | + auto outputCollEE = std::make_unique<EEUncalibratedRecHitCollection>(); |
| 85 | + outputCollEE->reserve(inputCollEEView.size()); |
88 | 86 |
|
89 | | - for (uint32_t i = 0; i < uncalRecHitsEECollView.size(); ++i) { |
90 | | - recHitsCPUEE->emplace_back(DetId{uncalRecHitsEECollView.id()[i]}, |
91 | | - uncalRecHitsEECollView.amplitude()[i], |
92 | | - uncalRecHitsEECollView.pedestal()[i], |
93 | | - uncalRecHitsEECollView.jitter()[i], |
94 | | - uncalRecHitsEECollView.chi2()[i], |
95 | | - uncalRecHitsEECollView.flags()[i]); |
96 | | - (*recHitsCPUEE)[i].setJitterError(uncalRecHitsEECollView.jitterError()[i]); |
| 87 | + for (uint32_t i = 0; i < inputCollEEView.size(); ++i) { |
| 88 | + outputCollEE->emplace_back(DetId{inputCollEEView.id()[i]}, |
| 89 | + inputCollEEView.amplitude()[i], |
| 90 | + inputCollEEView.pedestal()[i], |
| 91 | + inputCollEEView.jitter()[i], |
| 92 | + inputCollEEView.chi2()[i], |
| 93 | + inputCollEEView.flags()[i]); |
| 94 | + (*outputCollEE)[i].setJitterError(inputCollEEView.jitterError()[i]); |
97 | 95 | for (uint32_t sample = 0; sample < EcalDataFrame::MAXSAMPLES; ++sample) { |
98 | | - (*recHitsCPUEE)[i].setOutOfTimeAmplitude(sample, uncalRecHitsEECollView.outOfTimeAmplitudes()[i][sample]); |
| 96 | + (*outputCollEE)[i].setOutOfTimeAmplitude(sample, inputCollEEView.outOfTimeAmplitudes()[i][sample]); |
99 | 97 | } |
100 | 98 | } |
101 | | - event.put(uncalibRecHitsCPUEEToken_, std::move(recHitsCPUEE)); |
| 99 | + event.put(outputTokenEE_, std::move(outputCollEE)); |
102 | 100 | } |
103 | 101 | } |
104 | 102 |
|
|
0 commit comments