99 ebUncalibRecHits = pEBUncalibRecHits.
product();
100 LogDebug(
"EcalRecHitDebug") <<
"total # EB uncalibrated rechits: " << ebUncalibRecHits->
size();
105 eeUncalibRecHits = pEEUncalibRecHits.
product();
106 LogDebug(
"EcalRecHitDebug") <<
"total # EE uncalibrated rechits: " << eeUncalibRecHits->
size();
109 auto ebRecHits = std::make_unique<EBRecHitCollection>();
110 auto eeRecHits = std::make_unique<EERecHitCollection>();
121 if (ebUncalibRecHits)
129 if (eeUncalibRecHits)
144 const std::set<EBDetId> * detIds =
nullptr;
152 for( std::set<EBDetId>::const_iterator it = detIds->begin(); it != detIds->end(); ++it ) {
156 if ( chit != chStatus->
end() ) {
157 chStatusCode = *chit;
159 edm::LogError(
"EcalRecHitProducerError") <<
"No channel status found for xtal " 161 <<
"! something wrong with EcalChannelStatus in your DB? ";
181 const std::set<EEDetId> * detIds =
nullptr;
189 for( std::set<EEDetId>::const_iterator it = detIds->begin(); it != detIds->end(); ++it ) {
193 if ( chit != chStatus->
end() ) {
194 chStatusCode = *chit;
196 edm::LogError(
"EcalRecHitProducerError") <<
"No channel status found for xtal " 198 <<
"! something wrong with EcalChannelStatus in your DB? ";
217 const std::set<EcalTrigTowerDetId> * ttIds =
nullptr;
223 for( std::set<EcalTrigTowerDetId>::const_iterator it = ttIds->begin(); it != ttIds->end(); ++it ) {
225 int ieta = (((*it).ietaAbs()-1)*5+1)*(*it).zside();
226 int iphi = (((*it).iphi()-1)*5+11)%360;
227 if( iphi <= 0 ) iphi += 360;
237 const std::set<EcalScDetId> * scIds =
nullptr;
244 for( std::set<EcalScDetId>::const_iterator it = scIds->begin(); it != scIds->end(); ++it ) {
267 LogInfo(
"EcalRecHitInfo") <<
"total # EB calibrated rechits: " << ebRecHits->size();
268 LogInfo(
"EcalRecHitInfo") <<
"total # EE calibrated rechits: " << eeRecHits->size();
276 desc.
add<
bool>(
"recoverEEVFE",
false);
278 desc.
add<
bool>(
"recoverEBIsolatedChannels",
false);
279 desc.
add<
bool>(
"recoverEBVFE",
false);
280 desc.
add<
bool>(
"laserCorrection",
true);
281 desc.
add<
double>(
"EBLaserMIN",0.5);
282 desc.
add<
bool>(
"killDeadChannels",
true);
284 std::vector<int> temp1;
288 temp1.push_back(142);
289 desc.
add<std::vector<int> >(
"dbStatusToBeExcludedEB",temp1);
293 std::vector<int> temp1;
297 temp1.push_back(142);
298 desc.
add<std::vector<int> >(
"dbStatusToBeExcludedEE",temp1);
300 desc.
add<
double>(
"EELaserMIN",0.5);
304 psd0.
add<
double>(
"e6e2thresh",0.04);
305 psd0.
add<
double>(
"tightenCrack_e6e2_double",3);
306 psd0.
add<
double>(
"e4e1Threshold_endcap",0.3);
307 psd0.
add<
double>(
"tightenCrack_e4e1_single",3);
308 psd0.
add<
double>(
"tightenCrack_e1_double",2);
309 psd0.
add<
double>(
"cThreshold_barrel",4);
310 psd0.
add<
double>(
"e4e1Threshold_barrel",0.08);
311 psd0.
add<
double>(
"tightenCrack_e1_single",2);
312 psd0.
add<
double>(
"e4e1_b_barrel",-0.024);
313 psd0.
add<
double>(
"e4e1_a_barrel",0.04);
314 psd0.
add<
double>(
"ignoreOutOfTimeThresh",1000000000.0);
315 psd0.
add<
double>(
"cThreshold_endcap",15);
316 psd0.
add<
double>(
"e4e1_b_endcap",-0.0125);
317 psd0.
add<
double>(
"e4e1_a_endcap",0.02);
318 psd0.
add<
double>(
"cThreshold_double",10);
321 desc.
add<
double>(
"logWarningEtThreshold_EE_FE",50);
323 desc.
add<
bool>(
"recoverEBFE",
true);
326 desc.
add<
double>(
"singleChannelRecoveryThreshold",8);
328 std::vector<std::string> temp1;
330 temp1.push_back(
"kNoisy");
331 temp1.push_back(
"kNNoisy");
332 temp1.push_back(
"kFixedG6");
333 temp1.push_back(
"kFixedG1");
334 temp1.push_back(
"kFixedG0");
335 temp1.push_back(
"kNonRespondingIsolated");
336 temp1.push_back(
"kDeadVFE");
337 temp1.push_back(
"kDeadFE");
338 temp1.push_back(
"kNoDataNoTP");
339 desc.
add<std::vector<std::string> >(
"ChannelStatusToBeExcluded",temp1);
343 desc.
add<
bool>(
"recoverEEFE",
true);
344 desc.
add<
std::string>(
"singleChannelRecoveryMethod",
"NeuralNetworks");
345 desc.
add<
double>(
"EBLaserMAX",3.0);
349 std::vector<std::string> temp2;
351 temp2.push_back(
"kOk");
352 temp2.push_back(
"kDAC");
353 temp2.push_back(
"kNoLaser");
354 temp2.push_back(
"kNoisy");
355 psd0.
add<std::vector<std::string> >(
"kGood",temp2);
358 std::vector<std::string> temp2;
360 temp2.push_back(
"kFixedG0");
361 temp2.push_back(
"kNonRespondingIsolated");
362 temp2.push_back(
"kDeadVFE");
363 psd0.
add<std::vector<std::string> >(
"kNeighboursRecovered",temp2);
366 std::vector<std::string> temp2;
368 temp2.push_back(
"kNoDataNoTP");
369 psd0.
add<std::vector<std::string> >(
"kDead",temp2);
372 std::vector<std::string> temp2;
374 temp2.push_back(
"kNNoisy");
375 temp2.push_back(
"kFixedG6");
376 temp2.push_back(
"kFixedG1");
377 psd0.
add<std::vector<std::string> >(
"kNoisy",temp2);
380 std::vector<std::string> temp2;
382 temp2.push_back(
"kDeadFE");
383 psd0.
add<std::vector<std::string> >(
"kTowerRecovered",temp2);
390 desc.
add<
double>(
"EELaserMAX",8.0);
391 desc.
add<
double>(
"logWarningEtThreshold_EB_FE",50);
392 desc.
add<
bool>(
"recoverEEIsolatedChannels",
false);
393 desc.
add<
bool>(
"skipTimeCalib",
false);
394 descriptions.
add(
"ecalRecHit",desc);
std::string eeRechitCollection_
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void reserve(SetDescriptionEntries::size_type n)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
Code getStatusCode() const
return decoded status
std::vector< EcalUncalibratedRecHit >::const_iterator const_iterator
bool recoverEEIsolatedChannels_
EcalRecHitWorkerBaseClass * worker_
~EcalRecHitProducer() override
EcalRecHitProducer(const edm::ParameterSet &ps)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
EcalCleaningAlgo * cleaningAlgo_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::EDGetTokenT< EEUncalibratedRecHitCollection > eeUncalibRecHitToken_
edm::EDGetTokenT< std::set< EcalScDetId > > eeFEToBeRecoveredToken_
static const int ETAPHIMODE
edm::EDGetTokenT< EBUncalibratedRecHitCollection > ebUncalibRecHitToken_
const_iterator end() const
EcalRecHitWorkerBaseClass * workerRecover_
virtual bool run(const edm::Event &evt, const EcalUncalibratedRecHit &uncalibRH, EcalRecHitCollection &result)=0
edm::EDGetTokenT< std::set< EBDetId > > ebDetIdToBeRecoveredToken_
T const * product() const
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
std::string ebRechitCollection_
std::vector< Item >::const_iterator const_iterator
void add(std::string const &label, ParameterSetDescription const &psetDescription)
virtual void set(const edm::EventSetup &es)=0
void produce(edm::Event &evt, const edm::EventSetup &es) override
const_iterator find(uint32_t rawId) const
const_iterator end() const
void setFlags(EcalRecHitCollection &rhs)
edm::EDGetTokenT< std::set< EEDetId > > eeDetIdToBeRecoveredToken_
T get(const Candidate &c)
const_iterator begin() const
edm::EDGetTokenT< std::set< EcalTrigTowerDetId > > ebFEToBeRecoveredToken_
bool recoverEBIsolatedChannels_