29 gen_ = consumes<GenEventInfoProduct>(
edm::InputTag(
"generator"));
34 file_ =
new TFile(histogramFile_.c_str(),
"RECREATE");
35 mcTruthTree_ =
new TTree(
"mcTruthTree",
"mcTruthTree");
37 mcTruthTree_->Branch(
"ptJet", &ptJet_,
"ptJet_/F");
38 mcTruthTree_->Branch(
"ptGen", &ptGen_,
"ptGen_/F");
39 mcTruthTree_->Branch(
"ptHat", &ptHat_,
"ptHat_/F");
40 mcTruthTree_->Branch(
"chfJet", &chfJet_,
"chfJet_/F");
41 mcTruthTree_->Branch(
"nhfJet", &nhfJet_,
"nhfJet_/F");
42 mcTruthTree_->Branch(
"cemfJet", &cemfJet_,
"cemfJet_/F");
43 mcTruthTree_->Branch(
"nemfJet", &nemfJet_,
"nemfJet_/F");
44 mcTruthTree_->Branch(
"cmultiJet", &cmultiJet_,
"cmultiJet_/I");
45 mcTruthTree_->Branch(
"nmultiJet", &nmultiJet_,
"nmultiJet_/I");
46 mcTruthTree_->Branch(
"etaJet", &etaJet_,
"etaJet_/F");
47 mcTruthTree_->Branch(
"etaGen", &etaGen_,
"etaGen_/F");
48 mcTruthTree_->Branch(
"phiJet", &phiJet_,
"phiJet_/F");
49 mcTruthTree_->Branch(
"phiGen", &phiGen_,
"phiGen_/F");
50 mcTruthTree_->Branch(
"dR", &dR_,
"dR_/F");
51 mcTruthTree_->Branch(
"rank", &rank_,
"rank_/I");
55 if (file_ !=
nullptr) {
57 mcTruthTree_->Write();
66 PFJetCollection::const_iterator i_jet, i_matched;
67 GenJetCollection::const_iterator i_genjet;
68 event.getByToken(genjets_, genjets);
69 event.getByToken(jets_,
jets);
70 event.getByToken(gen_, hEventInfo);
74 if (!
jets->empty() && !genjets->empty()) {
75 for (i_genjet = genjets->begin(); i_genjet != genjets->end(); i_genjet++) {
77 for (i_jet =
jets->begin(); i_jet !=
jets->end(); i_jet++) {
84 ptGen_ = i_genjet->pt();
85 etaGen_ = i_genjet->eta();
86 phiGen_ = i_genjet->phi();
87 ptJet_ = i_matched->pt();
88 etaJet_ = i_matched->eta();
89 phiJet_ = i_matched->phi();
90 chfJet_ = i_matched->chargedHadronEnergyFraction();
91 nhfJet_ = i_matched->neutralHadronEnergyFraction();
92 cemfJet_ = i_matched->chargedEmEnergyFraction();
93 nemfJet_ = i_matched->neutralEmEnergyFraction();
94 cmultiJet_ = i_matched->chargedMultiplicity();
95 nmultiJet_ = i_matched->neutralMultiplicity();
void analyze(edm::Event const &e, edm::EventSetup const &iSetup) override
const std::vector< double > & binningValues() const
~PFMCTruthTreeProducer() override
PFMCTruthTreeProducer(edm::ParameterSet const &cfg)