File indexing completed on 2024-04-06 12:25:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "RecoLocalCalo/EcalDeadChannelRecoveryAlgos/interface/EcalDeadChannelRecoveryAlgos.h"
0014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0015
0016 template <typename T>
0017 void EcalDeadChannelRecoveryAlgos<T>::setParameters(const edm::ParameterSet &ps) {
0018 bdtg_.setParameters(ps);
0019 }
0020
0021 template <typename T>
0022 void EcalDeadChannelRecoveryAlgos<T>::setCaloTopology(const CaloTopology *topo) {
0023 bdtg_.setCaloTopology(topo);
0024 }
0025
0026 template <typename T>
0027 float EcalDeadChannelRecoveryAlgos<T>::correct(const T id,
0028 const EcalRecHitCollection &hit_collection,
0029 std::string algo,
0030 double single8Cut,
0031 double sum8Cut,
0032 bool *acceptFlag) {
0033
0034 double newEnergy = 0.0;
0035 if (algo == "BDTG") {
0036 *acceptFlag = false;
0037 newEnergy = this->bdtg_.recover(id, hit_collection, single8Cut, sum8Cut, acceptFlag);
0038 if (newEnergy > 0.)
0039 *acceptFlag = true;
0040 } else {
0041 edm::LogError("EcalDeadChannelRecoveryAlgos") << "Invalid algorithm for dead channel recovery.";
0042 *acceptFlag = false;
0043 }
0044
0045 return newEnergy;
0046 }
0047
0048 template class EcalDeadChannelRecoveryAlgos<EBDetId>;
0049 template class EcalDeadChannelRecoveryAlgos<EEDetId>;