Skip to content

Commit

Permalink
[NTuplizers] added RecoGen{Jet,MET}CollectionContainer
Browse files Browse the repository at this point in the history
  • Loading branch information
missirol committed Oct 23, 2019
1 parent 7fb5029 commit 8d2c1de
Show file tree
Hide file tree
Showing 8 changed files with 263 additions and 1 deletion.
29 changes: 29 additions & 0 deletions NTuplizers/interface/RecoGenJetCollectionContainer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#ifndef JMETriggerAnalysis_RecoGenJetCollectionContainer_h
#define JMETriggerAnalysis_RecoGenJetCollectionContainer_h

#include <JMETriggerAnalysis/NTuplizers/interface/VRecoCandidateCollectionContainer.h>
#include <DataFormats/JetReco/interface/GenJet.h>

class RecoGenJetCollectionContainer : public VRecoCandidateCollectionContainer<reco::GenJet> {

public:
explicit RecoGenJetCollectionContainer(const std::string&, const std::string&, const edm::EDGetToken&, const std::string& strCut="", const bool orderByHighestPt=false);
virtual ~RecoGenJetCollectionContainer() {}

void clear();
void reserve(const size_t);
void emplace_back(const reco::GenJet&);

std::vector<float>& vec_pt(){ return pt_; }
std::vector<float>& vec_eta(){ return eta_; }
std::vector<float>& vec_phi(){ return phi_; }
std::vector<float>& vec_mass(){ return mass_; }

protected:
std::vector<float> pt_;
std::vector<float> eta_;
std::vector<float> phi_;
std::vector<float> mass_;
};

#endif
39 changes: 39 additions & 0 deletions NTuplizers/interface/RecoGenMETCollectionContainer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef JMETriggerAnalysis_RecoGenMETCollectionContainer_h
#define JMETriggerAnalysis_RecoGenMETCollectionContainer_h

#include <JMETriggerAnalysis/NTuplizers/interface/VRecoCandidateCollectionContainer.h>
#include <DataFormats/METReco/interface/GenMET.h>

class RecoGenMETCollectionContainer : public VRecoCandidateCollectionContainer<reco::GenMET> {

public:
explicit RecoGenMETCollectionContainer(const std::string&, const std::string&, const edm::EDGetToken&, const std::string& strCut="", const bool orderByHighestPt=false);
virtual ~RecoGenMETCollectionContainer() {}

void clear();
void reserve(const size_t);
void emplace_back(const reco::GenMET&);

std::vector<float>& vec_pt(){ return pt_; }
std::vector<float>& vec_phi(){ return phi_; }
std::vector<float>& vec_sumEt(){ return sumEt_; }
std::vector<float>& vec_NeutralEMEtFraction(){ return NeutralEMEtFraction_; }
std::vector<float>& vec_NeutralHadEtFraction(){ return NeutralHadEtFraction_; }
std::vector<float>& vec_ChargedEMEtFraction(){ return ChargedEMEtFraction_; }
std::vector<float>& vec_ChargedHadEtFraction(){ return ChargedHadEtFraction_; }
std::vector<float>& vec_MuonEtFraction(){ return MuonEtFraction_; }
std::vector<float>& vec_InvisibleEtFraction(){ return InvisibleEtFraction_; }

protected:
std::vector<float> pt_;
std::vector<float> phi_;
std::vector<float> sumEt_;
std::vector<float> NeutralEMEtFraction_;
std::vector<float> NeutralHadEtFraction_;
std::vector<float> ChargedEMEtFraction_;
std::vector<float> ChargedHadEtFraction_;
std::vector<float> MuonEtFraction_;
std::vector<float> InvisibleEtFraction_;
};

#endif
113 changes: 113 additions & 0 deletions NTuplizers/plugins/JMETriggerNTuple.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@
#include <JMETriggerAnalysis/NTuplizers/interface/RecoVertexCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFCandidateCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATPackedCandidateCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoCaloMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATMETCollectionContainer.h>
Expand Down Expand Up @@ -63,8 +65,10 @@ class JMETriggerNTuple : public edm::EDAnalyzer {
std::vector<RecoVertexCollectionContainer> v_recoVertexCollectionContainer_;
std::vector<RecoPFCandidateCollectionContainer> v_recoPFCandidateCollectionContainer_;
std::vector<PATPackedCandidateCollectionContainer> v_patPackedCandidateCollectionContainer_;
std::vector<RecoGenJetCollectionContainer> v_recoGenJetCollectionContainer_;
std::vector<RecoPFJetCollectionContainer> v_recoPFJetCollectionContainer_;
std::vector<PATJetCollectionContainer> v_patJetCollectionContainer_;
std::vector<RecoGenMETCollectionContainer> v_recoGenMETCollectionContainer_;
std::vector<RecoCaloMETCollectionContainer> v_recoCaloMETCollectionContainer_;
std::vector<RecoPFMETCollectionContainer> v_recoPFMETCollectionContainer_;
std::vector<PATMETCollectionContainer> v_patMETCollectionContainer_;
Expand Down Expand Up @@ -148,6 +152,27 @@ JMETriggerNTuple::JMETriggerNTuple(const edm::ParameterSet& iConfig)
}
}

// reco::GenJetCollection
v_recoGenJetCollectionContainer_.clear();

if(iConfig.exists("recoGenJetCollections")){

const edm::ParameterSet& pset_recoGenJetCollections = iConfig.getParameter<edm::ParameterSet>("recoGenJetCollections");

const auto& inputTagLabels_recoGenJetCollections = pset_recoGenJetCollections.getParameterNamesForType<edm::InputTag>();

v_recoGenJetCollectionContainer_.reserve(inputTagLabels_recoGenJetCollections.size());

for(const std::string& label : inputTagLabels_recoGenJetCollections){

const auto& inputTag = pset_recoGenJetCollections.getParameter<edm::InputTag>(label);

LogDebug("JMETriggerNTuple::JMETriggerNTuple") << "adding reco::GenJetCollection \"" << inputTag.label() << "\" (NTuple branches: \"" << label << "_*\")";

v_recoGenJetCollectionContainer_.emplace_back(RecoGenJetCollectionContainer(label, inputTag.label(), this->consumes<std::vector<reco::GenJet> >(inputTag)));
}
}

// reco::PFJetCollection
v_recoPFJetCollectionContainer_.clear();

Expand Down Expand Up @@ -190,6 +215,27 @@ JMETriggerNTuple::JMETriggerNTuple(const edm::ParameterSet& iConfig)
}
}

// reco::GenMETCollection
v_recoGenMETCollectionContainer_.clear();

if(iConfig.exists("recoGenMETCollections")){

const edm::ParameterSet& pset_recoGenMETCollections = iConfig.getParameter<edm::ParameterSet>("recoGenMETCollections");

const auto& inputTagLabels_recoGenMETCollections = pset_recoGenMETCollections.getParameterNamesForType<edm::InputTag>();

v_recoGenMETCollectionContainer_.reserve(inputTagLabels_recoGenMETCollections.size());

for(const std::string& label : inputTagLabels_recoGenMETCollections){

const auto& inputTag = pset_recoGenMETCollections.getParameter<edm::InputTag>(label);

LogDebug("JMETriggerNTuple::JMETriggerNTuple") << "adding reco::GenMETCollection \"" << inputTag.label() << "\" (NTuple branches: \"" << label << "_*\")";

v_recoGenMETCollectionContainer_.emplace_back(RecoGenMETCollectionContainer(label, inputTag.label(), this->consumes<std::vector<reco::GenMET> >(inputTag)));
}
}

// reco::CaloMETCollection
v_recoCaloMETCollectionContainer_.clear();

Expand Down Expand Up @@ -398,6 +444,29 @@ void JMETriggerNTuple::analyze(const edm::Event& iEvent, const edm::EventSetup&
}
}

// fill recoGenJetCollectionContainers
if(not iEvent.isRealData()){

for(auto& recoGenJetCollectionContainer_i : v_recoGenJetCollectionContainer_){

edm::Handle<std::vector<reco::GenJet> > i_handle;
iEvent.getByToken(recoGenJetCollectionContainer_i.token(), i_handle);

if(not i_handle.isValid()){

edm::LogWarning("JMETriggerNTuple::analyze")
<< "invalid handle for input collection: \"" << recoGenJetCollectionContainer_i.inputTagLabel()
<< "\" (NTuple branches: \"" << recoGenJetCollectionContainer_i.name() << "_*\")";

recoGenJetCollectionContainer_i.clear();
}
else {

recoGenJetCollectionContainer_i.fill(*i_handle);
}
}
}

// fill recoPFJetCollectionContainers
for(auto& recoPFJetCollectionContainer_i : v_recoPFJetCollectionContainer_){

Expand Down Expand Up @@ -438,6 +507,29 @@ void JMETriggerNTuple::analyze(const edm::Event& iEvent, const edm::EventSetup&
}
}

// fill recoGenMETCollectionContainers
if(not iEvent.isRealData()){

for(auto& recoGenMETCollectionContainer_i : v_recoGenMETCollectionContainer_){

edm::Handle<std::vector<reco::GenMET> > i_handle;
iEvent.getByToken(recoGenMETCollectionContainer_i.token(), i_handle);

if(not i_handle.isValid()){

edm::LogWarning("JMETriggerNTuple::analyze")
<< "invalid handle for input collection: \"" << recoGenMETCollectionContainer_i.inputTagLabel()
<< "\" (NTuple branches: \"" << recoGenMETCollectionContainer_i.name() << "_*\")";

recoGenMETCollectionContainer_i.clear();
}
else {

recoGenMETCollectionContainer_i.fill(*i_handle);
}
}
}

// fill recoCaloMETCollectionContainers
for(auto& recoCaloMETCollectionContainer_i : v_recoCaloMETCollectionContainer_){

Expand Down Expand Up @@ -603,6 +695,14 @@ void JMETriggerNTuple::beginJob(){
this->addBranch(patPackedCandidateCollectionContainer_i.name()+"_fromPV", &patPackedCandidateCollectionContainer_i.vec_fromPV());
}

for(auto& recoGenJetCollectionContainer_i : v_recoGenJetCollectionContainer_){

this->addBranch(recoGenJetCollectionContainer_i.name()+"_pt", &recoGenJetCollectionContainer_i.vec_pt());
this->addBranch(recoGenJetCollectionContainer_i.name()+"_eta", &recoGenJetCollectionContainer_i.vec_eta());
this->addBranch(recoGenJetCollectionContainer_i.name()+"_phi", &recoGenJetCollectionContainer_i.vec_phi());
this->addBranch(recoGenJetCollectionContainer_i.name()+"_mass", &recoGenJetCollectionContainer_i.vec_mass());
}

for(auto& recoPFJetCollectionContainer_i : v_recoPFJetCollectionContainer_){

this->addBranch(recoPFJetCollectionContainer_i.name()+"_pt", &recoPFJetCollectionContainer_i.vec_pt());
Expand All @@ -619,6 +719,19 @@ void JMETriggerNTuple::beginJob(){
this->addBranch(patJetCollectionContainer_i.name()+"_mass", &patJetCollectionContainer_i.vec_mass());
}

for(auto& recoGenMETCollectionContainer_i : v_recoGenMETCollectionContainer_){

this->addBranch(recoGenMETCollectionContainer_i.name()+"_pt", &recoGenMETCollectionContainer_i.vec_pt());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_phi", &recoGenMETCollectionContainer_i.vec_phi());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_sumEt", &recoGenMETCollectionContainer_i.vec_sumEt());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_NeutralEMEtFraction", &recoGenMETCollectionContainer_i.vec_NeutralEMEtFraction());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_NeutralHadEtFraction", &recoGenMETCollectionContainer_i.vec_NeutralHadEtFraction());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_ChargedEMEtFraction", &recoGenMETCollectionContainer_i.vec_ChargedEMEtFraction());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_ChargedHadEtFraction", &recoGenMETCollectionContainer_i.vec_ChargedHadEtFraction());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_MuonEtFraction", &recoGenMETCollectionContainer_i.vec_MuonEtFraction());
this->addBranch(recoGenMETCollectionContainer_i.name()+"_InvisibleEtFraction", &recoGenMETCollectionContainer_i.vec_InvisibleEtFraction());
}

for(auto& recoCaloMETCollectionContainer_i : v_recoCaloMETCollectionContainer_){

this->addBranch(recoCaloMETCollectionContainer_i.name()+"_pt", &recoCaloMETCollectionContainer_i.vec_pt());
Expand Down
30 changes: 30 additions & 0 deletions NTuplizers/src/RecoGenJetCollectionContainer.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenJetCollectionContainer.h>

RecoGenJetCollectionContainer::RecoGenJetCollectionContainer(
const std::string& name, const std::string& inputTagLabel, const edm::EDGetToken& token, const std::string& strCut, const bool orderByHighestPt
) : VRecoCandidateCollectionContainer(name, inputTagLabel, token, strCut, orderByHighestPt) {
}

void RecoGenJetCollectionContainer::clear(){

pt_.clear();
eta_.clear();
phi_.clear();
mass_.clear();
}

void RecoGenJetCollectionContainer::reserve(const size_t vec_size){

pt_.reserve(vec_size);
eta_.reserve(vec_size);
phi_.reserve(vec_size);
mass_.reserve(vec_size);
}

void RecoGenJetCollectionContainer::emplace_back(const reco::GenJet& obj){

pt_.emplace_back(obj.pt());
eta_.emplace_back(obj.eta());
phi_.emplace_back(obj.phi());
mass_.emplace_back(obj.mass());
}
45 changes: 45 additions & 0 deletions NTuplizers/src/RecoGenMETCollectionContainer.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenMETCollectionContainer.h>

RecoGenMETCollectionContainer::RecoGenMETCollectionContainer(
const std::string& name, const std::string& inputTagLabel, const edm::EDGetToken& token, const std::string& strCut, const bool orderByHighestPt
) : VRecoCandidateCollectionContainer(name, inputTagLabel, token, strCut, orderByHighestPt) {
}

void RecoGenMETCollectionContainer::clear(){

pt_.clear();
phi_.clear();
sumEt_.clear();
NeutralEMEtFraction_.clear();
NeutralHadEtFraction_.clear();
ChargedEMEtFraction_.clear();
ChargedHadEtFraction_.clear();
MuonEtFraction_.clear();
InvisibleEtFraction_.clear();
}

void RecoGenMETCollectionContainer::reserve(const size_t vec_size){

pt_.reserve(vec_size);
phi_.reserve(vec_size);
sumEt_.reserve(vec_size);
NeutralEMEtFraction_.reserve(vec_size);
NeutralHadEtFraction_.reserve(vec_size);
ChargedEMEtFraction_.reserve(vec_size);
ChargedHadEtFraction_.reserve(vec_size);
MuonEtFraction_.reserve(vec_size);
InvisibleEtFraction_.reserve(vec_size);
}

void RecoGenMETCollectionContainer::emplace_back(const reco::GenMET& obj){

pt_.emplace_back(obj.pt());
phi_.emplace_back(obj.phi());
sumEt_.emplace_back(obj.sumEt());
NeutralEMEtFraction_.emplace_back(obj.NeutralEMEtFraction());
NeutralHadEtFraction_.emplace_back(obj.NeutralHadEtFraction());
ChargedEMEtFraction_.emplace_back(obj.ChargedEMEtFraction());
ChargedHadEtFraction_.emplace_back(obj.ChargedHadEtFraction());
MuonEtFraction_.emplace_back(obj.MuonEtFraction());
InvisibleEtFraction_.emplace_back(obj.InvisibleEtFraction());
}
4 changes: 4 additions & 0 deletions NTuplizers/src/classes.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
#include <JMETriggerAnalysis/NTuplizers/interface/RecoVertexCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFCandidateCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATPackedCandidateCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATJetCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoGenMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoCaloMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/RecoPFMETCollectionContainer.h>
#include <JMETriggerAnalysis/NTuplizers/interface/PATMETCollectionContainer.h>
Expand All @@ -18,8 +20,10 @@ namespace {
RecoVertexCollectionContainer RecoVertexCollectionContainer1;
RecoPFCandidateCollectionContainer RecoPFCandidateCollectionContainer1;
PATPackedCandidateCollectionContainer PATPackedCandidateCollectionContainer1;
RecoGenJetCollectionContainer RecoGenJetCollectionContainer1;
RecoPFJetCollectionContainer RecoPFJetCollectionContainer1;
PATJetCollectionContainer PATJetCollectionContainer1;
RecoGenMETCollectionContainer RecoGenMETCollectionContainer1;
RecoCaloMETCollectionContainer RecoCaloMETCollectionContainer1;
RecoPFMETCollectionContainer RecoPFMETCollectionContainer1;
PATMETCollectionContainer PATMETCollectionContainer1;
Expand Down
2 changes: 2 additions & 0 deletions NTuplizers/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
<class name="RecoVertexCollectionContainer"/>
<class name="RecoPFCandidateCollectionContainer"/>
<class name="PATPackedCandidateCollectionContainer"/>
<class name="RecoGenJetCollectionContainer"/>
<class name="RecoPFJetCollectionContainer"/>
<class name="PATJetCollectionContainer"/>
<class name="RecoGenMETCollectionContainer"/>
<class name="RecoCaloMETCollectionContainer"/>
<class name="RecoPFMETCollectionContainer"/>
<class name="PATMETCollectionContainer"/>
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Set up CMSSW area:
cmsrel CMSSW_10_6_1_patch3
cd CMSSW_10_6_1_patch3/src
cmsenv
git cms-merge-topic cms-egamma:EgammaPostRecoTools
#git cms-merge-topic cms-egamma:EgammaPostRecoTools
git cms-addpkg HLTrigger/Configuration
git clone https://[email protected]/missirol/JMETriggerAnalysis.git -o missirol
scram b
Expand Down

0 comments on commit 8d2c1de

Please sign in to comment.