File indexing completed on 2024-04-06 12:23:58
0001 #include "PhysicsTools/PatAlgos/interface/KinResolutionsLoader.h"
0002 #include "PhysicsTools/PatAlgos/interface/KinematicResolutionRcd.h"
0003
0004 #include <algorithm>
0005
0006 using pat::helper::KinResolutionsLoader;
0007
0008 KinResolutionsLoader::KinResolutionsLoader(const edm::ParameterSet &iConfig, edm::ConsumesCollector iCollector) {
0009
0010 patlabels_ = iConfig.getParameterNamesForType<std::string>();
0011
0012
0013 estokens_.reserve(patlabels_.size());
0014 for (auto const &label : patlabels_) {
0015 estokens_.emplace_back(iCollector.esConsumes(edm::ESInputTag("", iConfig.getParameter<std::string>(label))));
0016 }
0017
0018 resolutions_.resize(patlabels_.size());
0019
0020
0021 for (std::vector<std::string>::iterator it = patlabels_.begin(), ed = patlabels_.end(); it != ed; ++it) {
0022 if (*it == "default")
0023 *it = "";
0024 }
0025 }
0026
0027 void KinResolutionsLoader::newEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) {
0028 for (size_t i = 0, n = patlabels_.size(); i < n; ++i) {
0029 resolutions_[i] = &iSetup.getData(estokens_[i]);
0030 }
0031 }
0032
0033 void KinResolutionsLoader::fillDescription(edm::ParameterSetDescription &iDesc) {
0034 iDesc.add<bool>("addResolutions", false)->setComment("Add resolutions into this PAT Object");
0035 edm::ParameterSetDescription resolutionPSet;
0036 resolutionPSet.setAllowAnything();
0037 iDesc.addOptional("resolutions", resolutionPSet)->setComment("Resolution values to get from EventSetup");
0038 }