CMS 3D CMS Logo

ParticleLevelProducer.h
Go to the documentation of this file.
1 #ifndef GeneratorInterface_RivetInterface_ParticleLevelProducer_H
2 #define GeneratorInterface_RivetInterface_ParticleLevelProducer_H
3 
9 
14 
15 #include "Rivet/AnalysisHandler.hh"
17 
18 class ParticleLevelProducer : public edm::one::EDProducer<edm::one::SharedResources> {
19 public:
21  ~ParticleLevelProducer() override {}
22  void produce(edm::Event& event, const edm::EventSetup& eventSetup) override;
23 
24 private:
26  std::unique_ptr<reco::GenJetCollection>& jets,
27  std::unique_ptr<reco::GenParticleCollection>& consts,
29  int& iConstituent,
30  std::unique_ptr<reco::GenParticleCollection>& tags,
32  int& iTag);
33 
34  template <typename T>
36  return reco::Candidate::LorentzVector(p.px(), p.py(), p.pz(), p.energy());
37  }
38 
41 
43 
45  std::unique_ptr<Rivet::AnalysisHandler> analysisHandler_;
46 };
47 
48 #endif
reco::Candidate::LorentzVector p4(const T &p) const
const edm::ParameterSet pset_
math::XYZPoint Point
point in the space
Definition: Particle.h:25
void addGenJet(Rivet::Jet jet, std::unique_ptr< reco::GenJetCollection > &jets, std::unique_ptr< reco::GenParticleCollection > &consts, edm::RefProd< reco::GenParticleCollection > &constsRefHandle, int &iConstituent, std::unique_ptr< reco::GenParticleCollection > &tags, edm::RefProd< reco::GenParticleCollection > &tagsRefHandle, int &iTag)
Rivet::RivetAnalysis * rivetAnalysis_
std::unique_ptr< Rivet::AnalysisHandler > analysisHandler_
ParticleLevelProducer(const edm::ParameterSet &pset)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
void produce(edm::Event &event, const edm::EventSetup &eventSetup) override
const edm::EDGetTokenT< edm::HepMC3Product > srcToken_
long double T
Definition: event.py:1
reco::Particle::Point genVertex_