CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
GenJetGenPartMerger Class Reference
Inheritance diagram for GenJetGenPartMerger:
edm::stream::EDProducer<>

Public Member Functions

 GenJetGenPartMerger (const edm::ParameterSet &)
 
 ~GenJetGenPartMerger () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 

Private Member Functions

void beginStream (edm::StreamID) override
 
void endStream () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

const edm::EDGetTokenT< reco::GenJetCollectionjetToken_
 
const edm::EDGetTokenT< reco::GenParticleCollectionpartToken_
 
const edm::EDGetTokenT< edm::ValueMap< bool > > tauAncToken_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 24 of file GenJetGenPartMerger.cc.

Constructor & Destructor Documentation

GenJetGenPartMerger::GenJetGenPartMerger ( const edm::ParameterSet iConfig)
explicit

Definition at line 50 of file GenJetGenPartMerger.cc.

51  : jetToken_(consumes<reco::GenJetCollection>(iConfig.getParameter<edm::InputTag>("srcJet"))),
52  partToken_(consumes<reco::GenParticleCollection>(iConfig.getParameter<edm::InputTag>("srcPart"))),
53  tauAncToken_(consumes<edm::ValueMap<bool>>(iConfig.getParameter<edm::InputTag>("hasTauAnc"))) {
54  produces<reco::GenJetCollection>("merged");
55  produces<edm::ValueMap<bool>>("hasTauAnc");
56 }
T getParameter(std::string const &) const
const edm::EDGetTokenT< reco::GenJetCollection > jetToken_
const edm::EDGetTokenT< reco::GenParticleCollection > partToken_
const edm::EDGetTokenT< edm::ValueMap< bool > > tauAncToken_
GenJetGenPartMerger::~GenJetGenPartMerger ( )
override

Definition at line 58 of file GenJetGenPartMerger.cc.

58 {}

Member Function Documentation

void GenJetGenPartMerger::beginStream ( edm::StreamID  )
overrideprivate

Definition at line 107 of file GenJetGenPartMerger.cc.

107 {}
void GenJetGenPartMerger::endStream ( )
overrideprivate

Definition at line 110 of file GenJetGenPartMerger.cc.

References DEFINE_FWK_MODULE.

110 {}
void GenJetGenPartMerger::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 65 of file GenJetGenPartMerger.cc.

References edm::helper::Filler< Map >::fill(), objects.autophobj::filler, edm::Event::getByToken(), edm::helper::Filler< Map >::insert(), metsig::jet, jetToken_, eostools::move(), MillePedeFileConverter_cfg::out, partToken_, edm::Event::put(), reco::LeafCandidate::setCharge(), reco::LeafCandidate::setP4(), reco::LeafCandidate::setPdgId(), and tauAncToken_.

65  {
66  using namespace edm;
67  std::unique_ptr<reco::GenJetCollection> merged(new reco::GenJetCollection);
68 
69  std::vector<bool> hasTauAncValues;
70 
72  iEvent.getByToken(jetToken_, jetHandle);
73 
75  iEvent.getByToken(partToken_, partHandle);
76 
77  edm::Handle<edm::ValueMap<bool>> tauAncHandle;
78  iEvent.getByToken(tauAncToken_, tauAncHandle);
79 
80  for (unsigned int ijet = 0; ijet < jetHandle->size(); ++ijet) {
81  auto jet = jetHandle->at(ijet);
82  merged->push_back(reco::GenJet(jet));
83  reco::GenJetRef jetRef(jetHandle, ijet);
84  hasTauAncValues.push_back((*tauAncHandle)[jetRef]);
85  }
86 
87  for (auto& part : *partHandle) {
89  jet.setP4(part.p4());
90  jet.setPdgId(part.pdgId());
91  jet.setCharge(part.charge());
92  merged->push_back(jet);
93  hasTauAncValues.push_back(false);
94  }
95 
96  auto newmerged = iEvent.put(std::move(merged), "merged");
97 
98  std::unique_ptr<edm::ValueMap<bool>> out(new edm::ValueMap<bool>());
100  filler.insert(newmerged, hasTauAncValues.begin(), hasTauAncValues.end());
101  filler.fill();
102 
103  iEvent.put(std::move(out), "hasTauAnc");
104 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::vector< GenJet > GenJetCollection
collection of GenJet objects
void setCharge(Charge q) final
set electric charge
Definition: LeafCandidate.h:93
Jets made from MC generator particles.
Definition: GenJet.h:25
part
Definition: HCALResponse.h:20
const edm::EDGetTokenT< reco::GenJetCollection > jetToken_
HLT enums.
const edm::EDGetTokenT< reco::GenParticleCollection > partToken_
const edm::EDGetTokenT< edm::ValueMap< bool > > tauAncToken_
void setPdgId(int pdgId) final
void setP4(const LorentzVector &p4) final
set 4-momentum
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

const edm::EDGetTokenT<reco::GenJetCollection> GenJetGenPartMerger::jetToken_
private

Definition at line 34 of file GenJetGenPartMerger.cc.

Referenced by produce().

const edm::EDGetTokenT<reco::GenParticleCollection> GenJetGenPartMerger::partToken_
private

Definition at line 35 of file GenJetGenPartMerger.cc.

Referenced by produce().

const edm::EDGetTokenT<edm::ValueMap<bool> > GenJetGenPartMerger::tauAncToken_
private

Definition at line 36 of file GenJetGenPartMerger.cc.

Referenced by produce().