1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <iostream>
#include <string>
#include <memory>
#include "HepMC/GenEvent.h"
#include "HepMC/SimpleVector.h"
#include "FWCore/Framework/interface/one/EDFilter.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
class LHEFilter : public edm::one::EDFilter<> {
public:
explicit LHEFilter(const edm::ParameterSet ¶ms);
~LHEFilter() override = default;
protected:
bool filter(edm::Event &event, const edm::EventSetup &es) override;
private:
const edm::EDGetTokenT<edm::HepMCProduct> hepMCToken_;
};
LHEFilter::LHEFilter(const edm::ParameterSet ¶ms)
: hepMCToken_(consumes<edm::HepMCProduct>(params.getParameter<edm::InputTag>("src"))) {}
bool LHEFilter::filter(edm::Event &event, const edm::EventSetup &es) {
const edm::Handle<edm::HepMCProduct> &product = event.getHandle(hepMCToken_);
return product->GetEvent();
}
DEFINE_FWK_MODULE(LHEFilter);
|