95 : spyReorderedDigisTag_(iConfig.getParameter<
edm::
InputTag>(
"SpyReorderedDigisTag")),
96 spyVirginRawDigisTag_(iConfig.getParameter<
edm::
InputTag>(
"SpyVirginRawDigisTag")),
97 byModule_(iConfig.getParameter<
bool>(
"ByModule")),
99 consumesCollector())) {
107 produces<std::map<uint32_t, std::vector<uint32_t> > >(
"Medians");
108 produces<edm::DetSetVector<SiStripRawDigi> >(
"PedestalsOrdered");
109 produces<edm::DetSetVector<SiStripProcessedRawDigi> >(
"NoisesOrdered");
110 produces<edm::DetSetVector<SiStripRawDigi> >(
"PedSubtrDigisOrdered");
111 produces<edm::DetSetVector<SiStripRawDigi> >(
"CMSubtrDigisOrdered");
113 produces<edm::DetSetVector<SiStripRawDigi> >(
"ModulePedestals");
114 produces<edm::DetSetVector<SiStripProcessedRawDigi> >(
"ModuleNoises");
115 produces<edm::DetSetVector<SiStripRawDigi> >(
"PedSubtrModuleDigis");
116 produces<std::map<uint32_t, std::vector<uint32_t> > >(
"ModuleMedians");
117 produces<edm::DetSetVector<SiStripRawDigi> >(
"CMSubtrModuleDigis");
118 produces<edm::DetSetVector<SiStripDigi> >(
"ZSModuleDigis");
150 unsigned int lNDigis = lInputDigis->
size();
154 std::vector<edm::DetSetVector<SiStripRawDigi>::detset> pedsData;
155 pedsData.reserve(lNDigis);
156 std::vector<edm::DetSetVector<SiStripProcessedRawDigi>::detset> noiseData;
157 noiseData.reserve(lNDigis);
158 std::vector<edm::DetSetVector<SiStripRawDigi>::detset> pedSubtrData;
159 pedSubtrData.reserve(lNDigis);
160 std::vector<edm::DetSetVector<SiStripRawDigi>::detset> cmSubtrData;
161 cmSubtrData.reserve(lNDigis);
163 std::vector<edm::DetSet<SiStripDigi> > zsData;
166 std::map<uint32_t, std::vector<uint32_t> > medsData;
170 for (; inputChannel != lInputDigis->
end(); ++inputChannel) {
171 uint32_t lDetId = inputChannel->detId();
178 unsigned int lNStrips = inputChannel->
size();
181 std::vector<SiStripRawDigi>& pedsDetSetData = pedsData.back().data;
182 pedsDetSetData.reserve(lNStrips);
183 std::vector<SiStripProcessedRawDigi>& noiseDetSetData = noiseData.back().data;
184 noiseDetSetData.reserve(lNStrips);
185 std::vector<SiStripRawDigi>& pedSubtrDetSetData = pedSubtrData.back().data;
186 pedSubtrDetSetData.reserve(lNStrips);
187 std::vector<SiStripRawDigi>& cmSubtrDetSetData = cmSubtrData.back().data;
188 cmSubtrDetSetData.reserve(lNStrips);
196 std::vector<uint32_t> medsDetSetData;
197 medsDetSetData.reserve(lNPairs * 2);
202 uint16_t lFedChannel = 0;
206 lDetId = lConnection.
detId();
222 inputChannel, pedsDetSetData, noiseDetSetData, pedSubtrDetSetData, medsDetSetData,
true);
227 medsData[inputChannel->detId()] = medsDetSetData;
231 if (!zsDetSetData.
empty())
232 zsData.push_back(zsDetSetData);
237 std::unique_ptr<edm::DetSetVector<SiStripProcessedRawDigi> > lNoises(
240 std::unique_ptr<edm::DetSetVector<SiStripRawDigi> > lOutputPedSubtr(
243 std::unique_ptr<edm::DetSetVector<SiStripRawDigi> > lOutputCMSubtr(
246 std::unique_ptr<std::map<uint32_t, std::vector<uint32_t> > > lMedians(
247 new std::map<uint32_t, std::vector<uint32_t> >(medsData));