Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extension of LHEGenericMassFilter capabilities to filter on non-outgoing particles #39459

Merged
merged 6 commits into from Oct 18, 2022
6 changes: 4 additions & 2 deletions GeneratorInterface/GenFilters/plugins/LHEGenericMassFilter.cc
Expand Up @@ -35,14 +35,16 @@ class LHEGenericMassFilter : public edm::global::EDFilter<> {
const std::vector<int> particleID_; // vector of particle IDs to look for
const double minMass_;
const double maxMass_;
const bool requiredOutgoingStatus_; // Whether particles required to pass filter must have outgoing status
};

LHEGenericMassFilter::LHEGenericMassFilter(const edm::ParameterSet& iConfig)
: src_(consumes<LHEEventProduct>(iConfig.getParameter<edm::InputTag>("src"))),
numRequired_(iConfig.getParameter<int>("NumRequired")),
particleID_(iConfig.getParameter<std::vector<int> >("ParticleID")),
minMass_(iConfig.getParameter<double>("MinMass")),
maxMass_(iConfig.getParameter<double>("MaxMass")) {}
maxMass_(iConfig.getParameter<double>("MaxMass")),
requiredOutgoingStatus_(iConfig.getParameter<bool>("RequiredOutgoingStatus")) {}

// ------------ method called to skim the data ------------
bool LHEGenericMassFilter::filter(edm::StreamID iID, edm::Event& iEvent, edm::EventSetup const& iSetup) const {
Expand All @@ -57,7 +59,7 @@ bool LHEGenericMassFilter::filter(edm::StreamID iID, edm::Event& iEvent, edm::Ev
double E = 0.;

for (int i = 0; i < EvtHandle->hepeup().NUP; ++i) {
if (EvtHandle->hepeup().ISTUP[i] != 1) { // keep only outgoing particles
if (requiredOutgoingStatus_ && EvtHandle->hepeup().ISTUP[i] != 1) { // keep only outgoing particles
AWildridge marked this conversation as resolved.
Show resolved Hide resolved
continue;
}
for (unsigned int j = 0; j < particleID_.size(); ++j) {
Expand Down