From 4d08a189510ffb3e403a0fcddb872eeb5e1745fb Mon Sep 17 00:00:00 2001 From: David Sheffield Date: Wed, 26 Aug 2015 16:09:05 -0500 Subject: [PATCH 1/3] Add index to primary vertex in scouting particle collection --- .../Scouting/interface/ScoutingParticle.h | 8 +++++--- DataFormats/Scouting/src/classes_def.xml | 4 ++-- .../JetMET/plugins/HLTScoutingPFProducer.cc | 18 ++++++++++++++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/DataFormats/Scouting/interface/ScoutingParticle.h b/DataFormats/Scouting/interface/ScoutingParticle.h index f93555748075f..03484cfb2afdd 100644 --- a/DataFormats/Scouting/interface/ScoutingParticle.h +++ b/DataFormats/Scouting/interface/ScoutingParticle.h @@ -10,10 +10,10 @@ class ScoutingParticle public: //constructor with values for all data fields ScoutingParticle(float pt, float eta, float phi, float m, - int pdgId): - pt_(pt), eta_(eta), phi_(phi), m_(m), pdgId_(pdgId) {} + int pdgId, int vertex): + pt_(pt), eta_(eta), phi_(phi), m_(m), pdgId_(pdgId), vertex_(vertex) {} //default constructor - ScoutingParticle():pt_(0), eta_(0), phi_(0), m_(0), pdgId_(0) {} + ScoutingParticle():pt_(0), eta_(0), phi_(0), m_(0), pdgId_(0), vertex_(0) {} //accessor functions float pt() const { return pt_; } @@ -21,6 +21,7 @@ class ScoutingParticle float phi() const { return phi_; } float m() const { return m_; } int pdgId() const { return pdgId_; } + int vertex() const { return vertex_; } private: float pt_; @@ -28,6 +29,7 @@ class ScoutingParticle float phi_; float m_; int pdgId_; + int vertex_; }; typedef std::vector ScoutingParticleCollection; diff --git a/DataFormats/Scouting/src/classes_def.xml b/DataFormats/Scouting/src/classes_def.xml index 3905e3877ce4c..2640c441a6597 100755 --- a/DataFormats/Scouting/src/classes_def.xml +++ b/DataFormats/Scouting/src/classes_def.xml @@ -5,8 +5,8 @@ - - + + diff --git a/HLTrigger/JetMET/plugins/HLTScoutingPFProducer.cc b/HLTrigger/JetMET/plugins/HLTScoutingPFProducer.cc index 04f0dd1de1fbb..f2a35ecda2fd0 100644 --- a/HLTrigger/JetMET/plugins/HLTScoutingPFProducer.cc +++ b/HLTrigger/JetMET/plugins/HLTScoutingPFProducer.cc @@ -150,13 +150,27 @@ void HLTScoutingPFProducer::produce(edm::StreamID sid, edm::Event & iEvent, edm: if(doCandidates){ for(auto &cand : *pfCandidateCollection){ if(cand.pt() > pfCandidatePtCut){ + int vertex_index = -1; + int index_counter = 0; + double dr2 = 0.0001; + for (auto &vtx: *outVertices) { + double tmp_dr2 = pow(vtx.x() - cand.vx(), 2) + pow(vtx.y() - cand.vy(), 2) + + pow(vtx.z() - cand.vz(), 2); + if (tmp_dr2 < dr2) { + dr2 = tmp_dr2; + vertex_index = index_counter; + } + if (dr2 == 0.0) + break; + ++index_counter; + } outPFCandidates->emplace_back( - cand.pt(), cand.eta(), cand.phi(), cand.mass(), cand.pdgId() + cand.pt(), cand.eta(), cand.phi(), cand.mass(), cand.pdgId(), vertex_index ); } } } - + //produce PF jets std::auto_ptr outPFJets(new ScoutingPFJetCollection()); for(auto &jet : *pfJetCollection){ From 2d284b7edca1facd5b7980f17c586599cc5d344d Mon Sep 17 00:00:00 2001 From: David Sheffield Date: Mon, 31 Aug 2015 12:56:10 -0500 Subject: [PATCH 2/3] Add back checksum for version 2 --- DataFormats/Scouting/src/classes_def.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/DataFormats/Scouting/src/classes_def.xml b/DataFormats/Scouting/src/classes_def.xml index 2640c441a6597..6ff839cd37b9d 100755 --- a/DataFormats/Scouting/src/classes_def.xml +++ b/DataFormats/Scouting/src/classes_def.xml @@ -6,6 +6,7 @@ + From 323483d55851fa24b9c46f0f8e70d8217926316a Mon Sep 17 00:00:00 2001 From: David Sheffield Date: Tue, 1 Sep 2015 11:54:12 -0500 Subject: [PATCH 3/3] Make default constructor set new variable to invalid value --- DataFormats/Scouting/interface/ScoutingParticle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataFormats/Scouting/interface/ScoutingParticle.h b/DataFormats/Scouting/interface/ScoutingParticle.h index 03484cfb2afdd..545d2f33db591 100644 --- a/DataFormats/Scouting/interface/ScoutingParticle.h +++ b/DataFormats/Scouting/interface/ScoutingParticle.h @@ -13,7 +13,7 @@ class ScoutingParticle int pdgId, int vertex): pt_(pt), eta_(eta), phi_(phi), m_(m), pdgId_(pdgId), vertex_(vertex) {} //default constructor - ScoutingParticle():pt_(0), eta_(0), phi_(0), m_(0), pdgId_(0), vertex_(0) {} + ScoutingParticle():pt_(0), eta_(0), phi_(0), m_(0), pdgId_(0), vertex_(-1) {} //accessor functions float pt() const { return pt_; }