35 if (sCAlgo_str==
"Hybrid") {
38 }
else if (sCAlgo_str==
"Island") {
41 }
else if (sCAlgo_str==
"DynamicHybrid") {
44 }
else if (sCAlgo_str==
"Multi5x5") {
49 <<
"Error! SuperClusterAlgo in config file must be Hybrid or Island: " 50 << sCAlgo_str <<
" Using Hybrid by default";
58 ps.
getParameter<
bool>(
"applyLocalContCorrection") :
false;
87 if (applyCrackCorrection_ )
91 if (applyLocalContCorrection_ )
123 if(rHInputCollection ==
"EcalRecHitsEB") {
125 }
else if(rHInputCollection ==
"EcalRecHitsEE") {
127 }
else if(rHInputCollection ==
"EcalRecHitsPS") {
130 std::string str =
"\n\nSCCorrectionMaker encountered invalied ecalhitcollection type: " + rHInputCollection +
".\n\n";
131 throw(std::runtime_error( str.c_str() ));
147 auto corrClusters = std::make_unique<reco::SuperClusterCollection>();
150 reco::SuperClusterCollection::const_iterator aClus;
152 for(aClus = rawClusters->begin(); aClus != rawClusters->end(); aClus++)
167 crackcorrClus=enecorrClus;
173 localContCorrClus = crackcorrClus;
178 corrClusters->push_back(localContCorrClus);
T getParameter(std::string const &) const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
const math::XYZPoint & position() const
cluster centroid position
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
bool getByToken(EDGetToken token, Handle< PROD > &result) const
~EgammaSCCorrectionMaker() override
Sin< T >::type sin(const T &t)
std::string energyCorrectorName_
edm::EDGetTokenT< EcalRecHitCollection > rHInputProducer_
std::string localContCorrectorName_
EgammaSCCorrectionMaker(const edm::ParameterSet &)
double sigmaElectronicNoise_
bool applyEnergyCorrection_
std::string outputCollection_
std::string crackCorrectorName_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
reco::CaloCluster::AlgoId sCAlgo_
edm::EDGetTokenT< reco::SuperClusterCollection > sCInputProducer_
bool applyCrackCorrection_
double energy() const
cluster energy
void produce(edm::Event &, const edm::EventSetup &) override
std::unique_ptr< EcalClusterFunctionBaseClass > energyCorrectionFunction_
bool applyLocalContCorrection_
T const * product() const
std::unique_ptr< EcalClusterFunctionBaseClass > crackCorrectionFunction_
std::unique_ptr< EcalClusterFunctionBaseClass > localContCorrectionFunction_
std::unique_ptr< EgammaSCEnergyCorrectionAlgo > energyCorrector_
T get(const Candidate &c)