1 #ifndef JetCorrectionProducer_h 2 #define JetCorrectionProducer_h 54 : mInput(consumes<
JetCollection>(fConfig.getParameter <
edm::InputTag> (
"src")))
55 , mCorrectorNames(fConfig.getParameter<
std::vector<
std::
string> >(
"correctors"))
58 , mVerbose (fConfig.getUntrackedParameter <
bool> (
"verbose",
false))
62 produces <JetCollection>();
64 produces <JetCollection>().setBranchAlias(alias);
86 typename JetCollection::const_iterator
jet;
87 for (jet = jets->begin(); jet != jets->end(); jet++)
89 const T* referenceJet = &*
jet;
90 int index = jet-jets->begin();
92 T correctedJet = *
jet;
94 std::cout<<
"JetCorrectionProducer::produce-> original jet: " 95 <<jet->print()<<std::endl;
102 scale =
mCorrectors[
i]->correction (*referenceJet,fEvent,fSetup);
104 scale =
mCorrectors[
i]->correction (*referenceJet,jetRef,fEvent,fSetup);
106 std::cout<<
"JetCorrectionProducer::produce-> Corrector # " 107 <<
i<<
", correction factor: "<<scale<<std::endl;
108 correctedJet.scaleEnergy (scale);
109 referenceJet = &correctedJet;
114 fEvent, fSetup, corrected);
116 std::cout<<
"JetCorrectionProducer::produce-> Corrector # " 117 <<
i<<
", correction factor: "<<scale<<std::endl;
118 correctedJet.setP4( corrected );
119 referenceJet = &correctedJet;
123 std::cout<<
"JetCorrectionProducer::produce-> corrected jet: " 124 <<correctedJet.print ()<<std::endl;
125 result->push_back (correctedJet);
129 std::sort (result->begin (), result->end (), compJets);
unsigned long long cacheIdentifier() const
T getUntrackedParameter(std::string const &, T const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< std::string > mCorrectorNames
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
unsigned long long mCacheId
edm::EDGetTokenT< JetCollection > mInput
Namespace of DDCMS conversion namespace.
~JetCorrectionProducer() override
std::vector< T > JetCollection
std::vector< const JetCorrector * > mCorrectors
void produce(edm::Event &, const edm::EventSetup &) override
reco::Particle::LorentzVector LorentzVector