Definition at line 20 of file Type2CorrectionProducer.cc.
Definition at line 106 of file Type2CorrectionProducer.cc.
References data, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), and type2Binning_.
109 if ( cfg.
exists(
"type2Binning") ) {
110 typedef std::vector<edm::ParameterSet> vParameterSet;
111 vParameterSet cfgType2Binning = cfg.
getParameter<vParameterSet>(
"type2Binning");
112 for ( vParameterSet::const_iterator cfgType2BinningEntry = cfgType2Binning.begin();
113 cfgType2BinningEntry != cfgType2Binning.end(); ++cfgType2BinningEntry ) {
114 type2Binning_.push_back(
new type2BinningEntryType(*cfgType2BinningEntry, srcUnclEnergySums));
117 std::string type2CorrFormula = cfg.
getParameter<std::string>(
"type2CorrFormula").
data();
119 type2Binning_.push_back(
new type2BinningEntryType(type2CorrFormula, type2CorrParameter, srcUnclEnergySums));
121 produces<CorrMETData>(
"");
T getParameter(std::string const &) const
std::vector< edm::InputTag > vInputTag
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::vector< type2BinningEntryType * > type2Binning_
char data[epos_bytes_allocation]
Type2CorrectionProducer::~Type2CorrectionProducer |
( |
| ) |
|
|
inline |
Implements edm::EDProducer.
Definition at line 125 of file Type2CorrectionProducer.cc.
References edm::Event::getByLabel(), CorrMETData::mex, CorrMETData::mey, edm::Event::put(), mathSSE::sqrt(), and type2Binning_.
129 for ( std::vector<type2BinningEntryType*>::const_iterator type2BinningEntry =
type2Binning_.begin();
130 type2BinningEntry !=
type2Binning_.end(); ++type2BinningEntry ) {
132 for (vInputTag::const_iterator inputTag = (*type2BinningEntry)->srcUnclEnergySums_.begin();
133 inputTag != (*type2BinningEntry)->srcUnclEnergySums_.end(); ++inputTag) {
137 unclEnergySum += (*unclEnergySummand);
140 double unclEnergySumPt =
sqrt(unclEnergySum.
mex*unclEnergySum.
mex + unclEnergySum.
mey*unclEnergySum.
mey);
141 double unclEnergyScaleFactor = (*type2BinningEntry)->binCorrFormula_->Eval(unclEnergySumPt);
143 unclEnergySum.
mex = -unclEnergySum.
mex;
144 unclEnergySum.
mey = -unclEnergySum.
mey;
146 product += (unclEnergyScaleFactor - 1.)*unclEnergySum;
149 std::auto_ptr<CorrMETData> pprod(
new CorrMETData(product));
std::vector< type2BinningEntryType * > type2Binning_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const