diff --git a/Configuration/Generator/python/doubleEMEnrichingHepMCfilter_cfi.py b/Configuration/Generator/python/doubleEMEnrichingHepMCfilter_cfi.py
new file mode 100644
index 0000000000000..49f8585d589d7
--- /dev/null
+++ b/Configuration/Generator/python/doubleEMEnrichingHepMCfilter_cfi.py
@@ -0,0 +1,40 @@
+import FWCore.ParameterSet.Config as cms
+
+doubleEMenrichingHepMCfilterParams = cms.PSet(
+ # seed thresholds
+ PtSeedThr = cms.untracked.double(5.0),
+ EtaSeedThr = cms.untracked.double(2.8),
+
+ # photon thresholds
+ PtGammaThr = cms.untracked.double(0.0),
+ EtaGammaThr = cms.untracked.double(2.8),
+
+ # electron threshold
+ PtElThr = cms.untracked.double(2.0),
+ EtaElThr = cms.untracked.double(2.8),
+
+ dRSeedMax = cms.untracked.double(0.0),
+ dPhiSeedMax = cms.untracked.double(0.2),
+ dEtaSeedMax = cms.untracked.double(0.12),
+ dRNarrowCone = cms.untracked.double(0.02),
+
+ PtTkThr = cms.untracked.double(1.6),
+ EtaTkThr = cms.untracked.double(2.2),
+ dRTkMax = cms.untracked.double(0.2),
+
+ PtMinCandidate1 = cms.untracked.double(15.0),
+ PtMinCandidate2 = cms.untracked.double(15.0),
+ EtaMaxCandidate = cms.untracked.double(3.0),
+
+ NTkConeMax = cms.untracked.int32(2),
+ NTkConeSum = cms.untracked.int32(4),
+
+ # mass 80..Inf GeV
+ InvMassMin = cms.untracked.double(80.0),
+ InvMassMax = cms.untracked.double(14000.0),
+
+ EnergyCut = cms.untracked.double(1.0),
+
+ AcceptPrompts = cms.untracked.bool(True),
+ PromptPtThreshold = cms.untracked.double(15.0),
+ )
diff --git a/GeneratorInterface/Core/BuildFile.xml b/GeneratorInterface/Core/BuildFile.xml
index e3f8e7dc6b11a..4257af0e29ebe 100644
--- a/GeneratorInterface/Core/BuildFile.xml
+++ b/GeneratorInterface/Core/BuildFile.xml
@@ -9,6 +9,7 @@
+
diff --git a/GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h b/GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h
new file mode 100644
index 0000000000000..3c45818c1217a
--- /dev/null
+++ b/GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h
@@ -0,0 +1,46 @@
+#ifndef PYTHIAHEPMCFILTERGAMMAGAMMA_h
+#define PYTHIAHEPMCFILTERGAMMAGAMMA_h
+
+//
+// Package: GeneratorInterface/GenFilters
+// Class: PythiaHepMCFilterGammaGamma
+//
+// Original Author: Matteo Sani
+//
+//
+
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "GeneratorInterface/Core/interface/BaseHepMCFilter.h"
+#include "FWCore/Framework/interface/EDFilter.h"
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+
+namespace edm {
+ class HepMCProduct;
+}
+
+class PythiaHepMCFilterGammaGamma : public BaseHepMCFilter {
+ public:
+ explicit PythiaHepMCFilterGammaGamma(const edm::ParameterSet&);
+ ~PythiaHepMCFilterGammaGamma() override;
+
+ /** @return true if this GenEvent passes the double EM enrichment
+ criterion */
+ bool filter(const HepMC::GenEvent* myGenEvent) override;
+ private:
+
+ const edm::EDGetTokenT token_;
+ const int maxEvents;
+
+ const double ptSeedThr, etaSeedThr, ptGammaThr, etaGammaThr, ptTkThr, etaTkThr;
+ const double ptElThr, etaElThr, dRTkMax, dRSeedMax, dPhiSeedMax, dEtaSeedMax, dRNarrowCone, pTMinCandidate1, pTMinCandidate2, etaMaxCandidate;
+ const double invMassMin, invMassMax;
+ const double energyCut;
+ const int nTkConeMax, nTkConeSum;
+ const bool acceptPrompts;
+ const double promptPtThreshold;
+
+};
+#endif
diff --git a/GeneratorInterface/Core/src/HepMCFilterDriver.cc b/GeneratorInterface/Core/src/HepMCFilterDriver.cc
index 4eb6a5ed0b6ca..6b51a78e66562 100644
--- a/GeneratorInterface/Core/src/HepMCFilterDriver.cc
+++ b/GeneratorInterface/Core/src/HepMCFilterDriver.cc
@@ -2,6 +2,7 @@
#include "GeneratorInterface/Core/interface/GenericDauHepMCFilter.h"
#include "GeneratorInterface/Core/interface/PartonShowerBsHepMCFilter.h"
#include "GeneratorInterface/Core/interface/EmbeddingHepMCFilter.h"
+#include "GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
@@ -29,8 +30,11 @@ HepMCFilterDriver::HepMCFilterDriver(const edm::ParameterSet& pset) :
else if (filterName=="EmbeddingHepMCFilter") {
filter_ = new EmbeddingHepMCFilter(filterParameters);
}
+ else if (filterName=="PythiaHepMCFilterGammaGamma") {
+ filter_ = new PythiaHepMCFilterGammaGamma(filterParameters);
+ }
else {
- edm::LogError("HepMCFilterDriver")<< "Invalid HepMCFilter name:" << filterName;
+ throw edm::Exception(edm::errors::Configuration,"HepMCFilterDriver") << "Invalid HepMCFilter name:" << filterName;
}
}
diff --git a/GeneratorInterface/Core/src/PythiaHepMCFilterGammaGamma.cc b/GeneratorInterface/Core/src/PythiaHepMCFilterGammaGamma.cc
new file mode 100644
index 0000000000000..73140ca40f99b
--- /dev/null
+++ b/GeneratorInterface/Core/src/PythiaHepMCFilterGammaGamma.cc
@@ -0,0 +1,225 @@
+#include "GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h"
+#include "DataFormats/Math/interface/LorentzVector.h"
+#include "Math/GenVector/VectorUtil.h"
+//#include "CLHEP/HepMC/GenParticle.h"
+#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
+
+#include "TLorentzVector.h"
+
+#include
+
+using namespace edm;
+using namespace std;
+using namespace HepMC;
+
+
+PythiaHepMCFilterGammaGamma::PythiaHepMCFilterGammaGamma(const edm::ParameterSet& iConfig) :
+ maxEvents(iConfig.getUntrackedParameter("maxEvents", 0)),
+ ptSeedThr(iConfig.getUntrackedParameter("PtSeedThr")),
+ etaSeedThr(iConfig.getUntrackedParameter("EtaSeedThr")),
+ ptGammaThr(iConfig.getUntrackedParameter("PtGammaThr")),
+ etaGammaThr(iConfig.getUntrackedParameter("EtaGammaThr")),
+ ptTkThr(iConfig.getUntrackedParameter("PtTkThr")),
+ etaTkThr(iConfig.getUntrackedParameter("EtaTkThr")),
+ ptElThr(iConfig.getUntrackedParameter("PtElThr")),
+ etaElThr(iConfig.getUntrackedParameter("EtaElThr")),
+ dRTkMax(iConfig.getUntrackedParameter("dRTkMax")),
+ dRSeedMax(iConfig.getUntrackedParameter("dRSeedMax")),
+ dPhiSeedMax(iConfig.getUntrackedParameter("dPhiSeedMax")),
+ dEtaSeedMax(iConfig.getUntrackedParameter("dEtaSeedMax")),
+ dRNarrowCone(iConfig.getUntrackedParameter("dRNarrowCone")),
+ pTMinCandidate1(iConfig.getUntrackedParameter("PtMinCandidate1")),
+ pTMinCandidate2(iConfig.getUntrackedParameter("PtMinCandidate2")),
+ etaMaxCandidate(iConfig.getUntrackedParameter("EtaMaxCandidate")),
+ invMassMin(iConfig.getUntrackedParameter("InvMassMin")),
+ invMassMax(iConfig.getUntrackedParameter("InvMassMax")),
+ energyCut(iConfig.getUntrackedParameter("EnergyCut")),
+ nTkConeMax(iConfig.getUntrackedParameter("NTkConeMax")),
+ nTkConeSum(iConfig.getUntrackedParameter("NTkConeSum")),
+ acceptPrompts(iConfig.getUntrackedParameter("AcceptPrompts")),
+ promptPtThreshold(iConfig.getUntrackedParameter("PromptPtThreshold")) {
+
+ if (maxEvents != 0) edm::LogInfo("PythiaFilterGammaGamma::PythiaFilterGammaGamma") << "WARNING, ignoring unsuported option, maxEvents = " << maxEvents << endl;
+
+}
+
+PythiaHepMCFilterGammaGamma::~PythiaHepMCFilterGammaGamma()
+{
+}
+
+bool PythiaHepMCFilterGammaGamma::filter(const HepMC::GenEvent* myGenEvent) {
+
+ bool accepted = false;
+
+ std::vector seeds, egamma, stable;
+ std::vector::const_iterator itPart, itStable, itEn;
+
+ // Loop on egamma
+ for(HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p) {
+
+ if (
+ ((*p)->status()==1&&(*p)->pdg_id() == 22) || // gamma
+ ((*p)->status()==1&&abs((*p)->pdg_id()) == 11)) // electron
+
+ {
+ // check for eta and pT threshold for seed in gamma, el
+ if ((*p)->momentum().perp() > ptSeedThr &&
+ fabs((*p)->momentum().eta()) < etaSeedThr) {
+
+ seeds.push_back(*p);
+ }
+ }
+
+
+ if ((*p)->status() == 1) {
+
+ // save charged stable tracks
+ if (abs((*p)->pdg_id()) == 211 ||
+ abs((*p)->pdg_id()) == 321 ||
+ abs((*p)->pdg_id()) == 11 ||
+ abs((*p)->pdg_id()) == 13 ||
+ abs((*p)->pdg_id()) == 15) {
+ // check if it passes the cut
+ if ((*p)->momentum().perp() > ptTkThr &&
+ fabs((*p)->momentum().eta()) < etaTkThr) {
+ stable.push_back(*p);
+ }
+ }
+
+ // save egamma for candidate calculation
+ if ((*p)->pdg_id() == 22 &&
+ (*p)->momentum().perp() > ptGammaThr &&
+ fabs((*p)->momentum().eta()) < etaGammaThr) {
+ egamma.push_back(*p);
+ }
+ if (abs((*p)->pdg_id()) == 11 &&
+ (*p)->momentum().perp() > ptElThr &&
+ fabs((*p)->momentum().eta()) < etaElThr) {
+ egamma.push_back(*p);
+ }
+ }
+ }
+
+ if (seeds.size() < 2) return accepted;
+
+ std::vector nTracks;
+ std::vector candidate, candidateNarrow, candidateSeed;
+ std::vector::iterator itSeed;
+
+ const GenParticle* mom;
+ int this_id;
+ int first_different_id;
+
+ for(itSeed = seeds.begin(); itSeed != seeds.end(); ++itSeed) {
+
+ TLorentzVector energy, narrowCone, temp1, temp2, tempseed;
+
+ tempseed.SetXYZM((*itSeed)->momentum().px(), (*itSeed)->momentum().py(), (*itSeed)->momentum().pz(), 0);
+ for(itEn = egamma.begin(); itEn != egamma.end(); ++itEn) {
+ temp1.SetXYZM((*itEn)->momentum().px(), (*itEn)->momentum().py(), (*itEn)->momentum().pz(), 0);
+
+ double DR = temp1.DeltaR(tempseed);
+ double DPhi = temp1.DeltaPhi(tempseed);
+ double DEta = (*itEn)->momentum().eta()-(*itSeed)->momentum().eta();
+ if(DPhi<0) DPhi=-DPhi;
+ if(DEta<0) DEta=-DEta;
+
+ if (DR < dRSeedMax || (DPhimomentum().px(), (*itStable)->momentum().py(), (*itStable)->momentum().pz(), 0);
+ double DR = temp1.DeltaR(temp2);
+ if (DR < dRTkMax) counter++;
+ }
+
+ if(acceptPrompts) {
+
+ if ((*itSeed)->momentum().perp()>promptPtThreshold)
+ {
+ bool isPrompt=true;
+ this_id = (*itSeed)->pdg_id();
+ mom = (*itSeed);
+ while (mom->pdg_id() == this_id) {
+
+ const GenParticle* mother = mom->production_vertex() ?
+ *(mom->production_vertex()->particles_in_const_begin()) : nullptr;
+
+ mom = mother;
+ if (mom == nullptr) {
+ break;
+ }
+ }
+
+ first_different_id = mom->pdg_id();
+
+ if (mom->status() == 2 && std::abs(first_different_id)>100) isPrompt=false;
+
+
+ if(isPrompt) counter=0;
+ }
+ }
+ }
+ }
+
+ candidate.push_back(energy);
+ candidateSeed.push_back(tempseed);
+ candidateNarrow.push_back(narrowCone);
+ nTracks.push_back(counter);
+ }
+
+ if (candidate.size() <2) return accepted;
+
+ TLorentzVector minvMin, minvMax;
+
+ int i1, i2;
+ for(unsigned int i=0; inTkConeMax) continue;
+ if (fabs(candidate[i].Eta()) > etaMaxCandidate) continue;
+
+ for(unsigned int j=i+1; jnTkConeMax) continue;
+ if (fabs(candidate[j].Eta()) > etaMaxCandidate) continue;
+
+ if (nTracks[i] + nTracks[j] > nTkConeSum) continue;
+
+ if (candidate[i].Pt() > candidate[j].Pt()) {
+ i1 = i;
+ i2 = j;
+ }
+ else {
+ i1 = j;
+ i2 = i;
+ }
+
+ if (candidate[i1].Pt() < pTMinCandidate1 || candidate[i2].Pt() < pTMinCandidate2) continue;
+
+ minvMin = candidate[i] + candidate[j];
+ if (minvMin.M() < invMassMin) continue;
+
+ minvMax = candidate[i] + candidate[j];
+ if (minvMax.M() > invMassMax) continue;
+
+ accepted = true;
+
+ }
+ }
+
+ return accepted;
+}
+
diff --git a/GeneratorInterface/GenFilters/interface/PythiaFilterGammaGamma.h b/GeneratorInterface/GenFilters/interface/PythiaFilterGammaGamma.h
index 9163b3289fc6c..bcdc9626ec7bf 100644
--- a/GeneratorInterface/GenFilters/interface/PythiaFilterGammaGamma.h
+++ b/GeneratorInterface/GenFilters/interface/PythiaFilterGammaGamma.h
@@ -16,8 +16,10 @@
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "GeneratorInterface/Core/interface/PythiaHepMCFilterGammaGamma.h"
+
namespace edm {
- class HepMCProduct;
+ class HepMCProduct;
}
class PythiaFilterGammaGamma : public edm::global::EDFilter<> {
@@ -29,15 +31,14 @@ class PythiaFilterGammaGamma : public edm::global::EDFilter<> {
private:
const edm::EDGetTokenT token_;
- const int maxEvents;
-
- const double ptSeedThr, etaSeedThr, ptGammaThr, etaGammaThr, ptTkThr, etaTkThr;
- const double ptElThr, etaElThr, dRTkMax, dRSeedMax, dPhiSeedMax, dEtaSeedMax, dRNarrowCone, pTMinCandidate1, pTMinCandidate2, etaMaxCandidate;
- const double invMassMin, invMassMax;
- const double energyCut;
- const int nTkConeMax, nTkConeSum;
- const bool acceptPrompts;
- const double promptPtThreshold;
+
+ /** the actual implementation of the filter,
+ adapted to be used with HepMCFilterDriver.
+
+ We make this a pointer because EDFilter::filter() is const
+ while BaseHepMCFilter::filter() is not.
+ */
+ std::auto_ptr hepMCFilter_;
};
#endif
diff --git a/GeneratorInterface/GenFilters/src/PythiaFilterGammaGamma.cc b/GeneratorInterface/GenFilters/src/PythiaFilterGammaGamma.cc
index 3fae109692ce9..6918b62229a79 100644
--- a/GeneratorInterface/GenFilters/src/PythiaFilterGammaGamma.cc
+++ b/GeneratorInterface/GenFilters/src/PythiaFilterGammaGamma.cc
@@ -12,33 +12,7 @@ using namespace HepMC;
PythiaFilterGammaGamma::PythiaFilterGammaGamma(const edm::ParameterSet& iConfig) :
token_(consumes(edm::InputTag(iConfig.getUntrackedParameter("moduleLabel",std::string("generator")),"unsmeared"))),
- maxEvents(iConfig.getUntrackedParameter("maxEvents", 0)),
- ptSeedThr(iConfig.getUntrackedParameter("PtSeedThr")),
- etaSeedThr(iConfig.getUntrackedParameter("EtaSeedThr")),
- ptGammaThr(iConfig.getUntrackedParameter("PtGammaThr")),
- etaGammaThr(iConfig.getUntrackedParameter("EtaGammaThr")),
- ptTkThr(iConfig.getUntrackedParameter("PtTkThr")),
- etaTkThr(iConfig.getUntrackedParameter("EtaTkThr")),
- ptElThr(iConfig.getUntrackedParameter("PtElThr")),
- etaElThr(iConfig.getUntrackedParameter("EtaElThr")),
- dRTkMax(iConfig.getUntrackedParameter("dRTkMax")),
- dRSeedMax(iConfig.getUntrackedParameter("dRSeedMax")),
- dPhiSeedMax(iConfig.getUntrackedParameter("dPhiSeedMax")),
- dEtaSeedMax(iConfig.getUntrackedParameter("dEtaSeedMax")),
- dRNarrowCone(iConfig.getUntrackedParameter("dRNarrowCone")),
- pTMinCandidate1(iConfig.getUntrackedParameter("PtMinCandidate1")),
- pTMinCandidate2(iConfig.getUntrackedParameter("PtMinCandidate2")),
- etaMaxCandidate(iConfig.getUntrackedParameter("EtaMaxCandidate")),
- invMassMin(iConfig.getUntrackedParameter("InvMassMin")),
- invMassMax(iConfig.getUntrackedParameter("InvMassMax")),
- energyCut(iConfig.getUntrackedParameter("EnergyCut")),
- nTkConeMax(iConfig.getUntrackedParameter("NTkConeMax")),
- nTkConeSum(iConfig.getUntrackedParameter("NTkConeSum")),
- acceptPrompts(iConfig.getUntrackedParameter("AcceptPrompts")),
- promptPtThreshold(iConfig.getUntrackedParameter("PromptPtThreshold")) {
-
- if (maxEvents != 0) edm::LogInfo("PythiaFilterGammaGamma::PythiaFilterGammaGamma") << "WARNING, ignoring unsuported option, maxEvents = " << maxEvents << endl;
-
+ hepMCFilter_(new PythiaHepMCFilterGammaGamma(iConfig)) {
}
PythiaFilterGammaGamma::~PythiaFilterGammaGamma()
@@ -47,182 +21,11 @@ PythiaFilterGammaGamma::~PythiaFilterGammaGamma()
bool PythiaFilterGammaGamma::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
- bool accepted = false;
-
Handle evt;
iEvent.getByToken(token_, evt);
const HepMC::GenEvent *myGenEvent = evt->GetEvent();
- std::vector seeds, egamma, stable;
- std::vector::const_iterator itPart, itStable, itEn;
-
- // Loop on egamma
- for(HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p) {
-
- if (
- ((*p)->status()==1&&(*p)->pdg_id() == 22) || // gamma
- ((*p)->status()==1&&abs((*p)->pdg_id()) == 11)) // electron
-
- {
- // check for eta and pT threshold for seed in gamma, el
- if ((*p)->momentum().perp() > ptSeedThr &&
- fabs((*p)->momentum().eta()) < etaSeedThr) {
-
- seeds.push_back(*p);
- }
- }
-
-
- if ((*p)->status() == 1) {
-
- // save charged stable tracks
- if (abs((*p)->pdg_id()) == 211 ||
- abs((*p)->pdg_id()) == 321 ||
- abs((*p)->pdg_id()) == 11 ||
- abs((*p)->pdg_id()) == 13 ||
- abs((*p)->pdg_id()) == 15) {
- // check if it passes the cut
- if ((*p)->momentum().perp() > ptTkThr &&
- fabs((*p)->momentum().eta()) < etaTkThr) {
- stable.push_back(*p);
- }
- }
-
- // save egamma for candidate calculation
- if ((*p)->pdg_id() == 22 &&
- (*p)->momentum().perp() > ptGammaThr &&
- fabs((*p)->momentum().eta()) < etaGammaThr) {
- egamma.push_back(*p);
- }
- if (abs((*p)->pdg_id()) == 11 &&
- (*p)->momentum().perp() > ptElThr &&
- fabs((*p)->momentum().eta()) < etaElThr) {
- egamma.push_back(*p);
- }
- }
- }
-
- if (seeds.size() < 2) return accepted;
-
- std::vector nTracks;
- std::vector candidate, candidateNarrow, candidateSeed;
- std::vector::iterator itSeed;
-
- const GenParticle* mom;
- int this_id;
- int first_different_id;
-
- for(itSeed = seeds.begin(); itSeed != seeds.end(); ++itSeed) {
-
- TLorentzVector energy, narrowCone, temp1, temp2, tempseed;
-
- tempseed.SetXYZM((*itSeed)->momentum().px(), (*itSeed)->momentum().py(), (*itSeed)->momentum().pz(), 0);
- for(itEn = egamma.begin(); itEn != egamma.end(); ++itEn) {
- temp1.SetXYZM((*itEn)->momentum().px(), (*itEn)->momentum().py(), (*itEn)->momentum().pz(), 0);
-
- double DR = temp1.DeltaR(tempseed);
- double DPhi = temp1.DeltaPhi(tempseed);
- double DEta = (*itEn)->momentum().eta()-(*itSeed)->momentum().eta();
- if(DPhi<0) DPhi=-DPhi;
- if(DEta<0) DEta=-DEta;
-
- if (DR < dRSeedMax || (DPhifilter(myGenEvent);
- temp2.SetXYZM(energy.Px(), energy.Py(), energy.Pz(), 0);
-
- for(itStable = stable.begin(); itStable != stable.end(); ++itStable) {
- temp1.SetXYZM((*itStable)->momentum().px(), (*itStable)->momentum().py(), (*itStable)->momentum().pz(), 0);
- double DR = temp1.DeltaR(temp2);
- if (DR < dRTkMax) counter++;
- }
-
- if(acceptPrompts) {
-
- if ((*itSeed)->momentum().perp()>promptPtThreshold)
- {
- bool isPrompt=true;
- this_id = (*itSeed)->pdg_id();
- mom = (*itSeed);
- while (mom->pdg_id() == this_id) {
-
- const GenParticle* mother = mom->production_vertex() ?
- *(mom->production_vertex()->particles_in_const_begin()) : nullptr;
-
- mom = mother;
- if (mom == nullptr) {
- break;
- }
- }
-
- first_different_id = mom->pdg_id();
-
- if (mom->status() == 2 && std::abs(first_different_id)>100) isPrompt=false;
-
-
- if(isPrompt) counter=0;
- }
- }
- }
- }
-
- candidate.push_back(energy);
- candidateSeed.push_back(tempseed);
- candidateNarrow.push_back(narrowCone);
- nTracks.push_back(counter);
- }
-
- if (candidate.size() <2) return accepted;
-
- TLorentzVector minvMin, minvMax;
-
- int i1, i2;
- for(unsigned int i=0; inTkConeMax) continue;
- if (fabs(candidate[i].Eta()) > etaMaxCandidate) continue;
-
- for(unsigned int j=i+1; jnTkConeMax) continue;
- if (fabs(candidate[j].Eta()) > etaMaxCandidate) continue;
-
- if (nTracks[i] + nTracks[j] > nTkConeSum) continue;
-
- if (candidate[i].Pt() > candidate[j].Pt()) {
- i1 = i;
- i2 = j;
- }
- else {
- i1 = j;
- i2 = i;
- }
-
- if (candidate[i1].Pt() < pTMinCandidate1 || candidate[i2].Pt() < pTMinCandidate2) continue;
-
- minvMin = candidate[i] + candidate[j];
- if (minvMin.M() < invMassMin) continue;
-
- minvMax = candidate[i] + candidate[j];
- if (minvMax.M() > invMassMax) continue;
-
- accepted = true;
-
- }
- }
-
- return accepted;
}
-
diff --git a/GeneratorInterface/GenFilters/test/GJets_HT-200To400_8TeV-madgraph.lhe b/GeneratorInterface/GenFilters/test/GJets_HT-200To400_8TeV-madgraph.lhe
new file mode 100644
index 0000000000000..d6dc973e51eb0
--- /dev/null
+++ b/GeneratorInterface/GenFilters/test/GJets_HT-200To400_8TeV-madgraph.lhe
@@ -0,0 +1,858 @@
+
+
+
+
+# MG version : 5.1.3.30
+
+
+#************************************************************
+#* MadGraph 5 *
+#* *
+#* * * *
+#* * * * * *
+#* * * * * 5 * * * * *
+#* * * * * *
+#* * * *
+#* *
+#* *
+#* VERSION 1.3.30 2011-11-18 *
+#* *
+#* The MadGraph Development Team - Please visit us at *
+#* https://server06.fynu.ucl.ac.be/projects/madgraph *
+#* *
+#************************************************************
+#* *
+#* Command File for MadGraph 5 *
+#* *
+#* run as ./bin/mg5 filename *
+#* *
+#************************************************************
+import model sm-no_b_mass
+# Define multiparticle labels
+define p u c s d b u~ c~ s~ d~ b~ g
+define j = p
+define l e+ e- mu+ mu- ta+ ta-
+# Specify process(es) to run
+generate p p > a j @0
+add process p p > a j j @1
+add process p p > a j j j @2
+add process p p > a j j j j @3
+# Output processes to MadEvent directory
+output -f
+
+
+#*********************************************************************
+# MadGraph/MadEvent *
+# http://madgraph.hep.uiuc.edu *
+# *
+# proc_card.dat *
+#*********************************************************************
+# *
+# This Files is generated by MADGRAPH 5 *
+# *
+# WARNING: This Files is generated for MADEVENT (compatibility issue)*
+# This files is NOT a valid MG4 proc_card.dat *
+# Running this in MG4 will NEVER reproduce the result of MG5*
+# *
+#*********************************************************************
+#*********************************************************************
+# Process(es) requested : mg2 input *
+#*********************************************************************
+# Begin PROCESS # This is TAG. Do not modify this line
+p p > a j @0 #Process
+# Be carefull the coupling are here in MG5 convention
+end_coup # End the couplings input
+done # this tells MG there are no more procs
+# End PROCESS # This is TAG. Do not modify this line
+#*********************************************************************
+# Model information *
+#*********************************************************************
+# Begin MODEL # This is TAG. Do not modify this line
+sm-no_b_mass
+# End MODEL # This is TAG. Do not modify this line
+#*********************************************************************
+# Start multiparticle definitions *
+#*********************************************************************
+# Begin MULTIPARTICLES # This is TAG. Do not modify this line
+# End MULTIPARTICLES # This is TAG. Do not modify this line
+
+
+######################################################################
+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
+######################################################################
+###################################
+## INFORMATION FOR SMINPUTS
+###################################
+Block SMINPUTS
+ 1 1.325070e+02 # aEWM1
+ 2 1.166390e-05 # Gf
+ 3 1.180000e-01 # aS
+###################################
+## INFORMATION FOR MASS
+###################################
+Block MASS
+ 4 0.000000e+00 # MC
+ 5 0.000000e+00 # MB
+ 6 1.725000e+02 # MT
+ 11 0.000000e+00 # Me
+ 13 0.000000e+00 # MM
+ 15 1.777000e+00 # MTA
+ 23 9.118800e+01 # MZ
+ 25 1.200000e+02 # MH
+## Not dependent paramater.
+## Those values should be edited following analytical the
+## analytical expression. Some generator could simply ignore
+## those values and use the analytical expression
+ 12 0.000000 # ve : 0.0
+ 14 0.000000 # vm : 0.0
+ 16 0.000000 # vt : 0.0
+ 2 0.000000 # u : 0.0
+ 1 0.000000 # d : 0.0
+ 3 0.000000 # s : 0.0
+ 9000001 0.000000 # ghA : 0.0
+ 9000003 80.419000 # ghWp : cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))
+ 9000004 80.419000 # ghWm : cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))
+ 9000005 0.000000 # ghG : 0.0
+ 22 0.000000 # A : 0.0
+ 24 80.419000 # W+ : cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))
+ 21 0.000000 # G : 0.0
+ 251 80.419000 # phi+ : cmath.sqrt(MZ**2/2. + cmath.sqrt(MZ**4/4. - (aEW*cmath.pi*MZ**2)/(Gf*cmath.sqrt(2))))
+###################################
+## INFORMATION FOR DECAY
+###################################
+DECAY 6 1.398815e+00
+DECAY 15 0.000000e+00
+DECAY 23 2.441404e+00
+DECAY 24 2.047600e+00
+DECAY 25 5.753088e-03
+## Not dependent paramater.
+## Those values should be edited following analytical the
+## analytical expression. Some generator could simply ignore
+## those values and use the analytical expression
+DECAY 12 0.000000 # ve : 0.0
+DECAY 14 0.000000 # vm : 0.0
+DECAY 16 0.000000 # vt : 0.0
+DECAY 2 0.000000 # u : 0.0
+DECAY 4 0.000000 # c : 0.0
+DECAY 1 0.000000 # d : 0.0
+DECAY 3 0.000000 # s : 0.0
+DECAY 5 0.000000 # b : 0.0
+DECAY 9000001 0.000000 # ghA : 0.0
+DECAY 9000002 0.000000 # ghZ : 0.0
+DECAY 9000003 0.000000 # ghWp : 0.0
+DECAY 9000004 0.000000 # ghWm : 0.0
+DECAY 9000005 0.000000 # ghG : 0.0
+DECAY 22 0.000000 # A : 0.0
+DECAY 21 0.000000 # G : 0.0
+DECAY 250 0.000000 # phi0 : 0.0
+DECAY 251 0.000000 # phi+ : 0.0
+DECAY 11 0.000000 # e- : 0.0
+DECAY 13 0.000000 # m- : 0.0
+###################################
+## INFORMATION FOR WOLFENSTEIN
+###################################
+Block Wolfenstein
+ 1 0.000000e+00 # lamWS
+ 2 0.000000e+00 # AWS
+ 3 0.000000e+00 # rhoWS
+ 4 0.000000e+00 # etaWS
+###################################
+## INFORMATION FOR YUKAWA
+###################################
+Block YUKAWA
+ 4 0.000000e+00 # ymc
+ 5 0.000000e+00 # ymb
+ 6 1.645000e+02 # ymt
+ 11 0.000000e+00 # yme
+ 13 0.000000e+00 # ymm
+ 15 1.777000e+00 # ymtau
+#===========================================================
+# QUANTUM NUMBERS OF NEW STATE(S) (NON SM PDG CODE)
+#===========================================================
+Block QNUMBERS 9000001 # ghA
+ 1 0 # 3 times electric charge
+ 2 -1 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 9000002 # ghZ
+ 1 0 # 3 times electric charge
+ 2 -1 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 9000003 # ghWp
+ 1 3 # 3 times electric charge
+ 2 -1 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 9000004 # ghWm
+ 1 -3 # 3 times electric charge
+ 2 -1 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 9000005 # ghG
+ 1 0 # 3 times electric charge
+ 2 -1 # number of spin states (2S+1)
+ 3 8 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 250 # phi0
+ 1 0 # 3 times electric charge
+ 2 3 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 0 # Particle/Antiparticle distinction (0=own anti)
+Block QNUMBERS 251 # phi+
+ 1 3 # 3 times electric charge
+ 2 3 # number of spin states (2S+1)
+ 3 1 # colour rep (1: singlet, 3: triplet, 8: octet)
+ 4 1 # Particle/Antiparticle distinction (0=own anti)
+
+
+#*********************************************************************
+# MadGraph/MadEvent *
+# http://madgraph.hep.uiuc.edu *
+# *
+# run_card.dat *
+# *
+# This file is used to set the parameters of the run. *
+# *
+# Some notation/conventions: *
+# *
+# Lines starting with a '# ' are info or comments *
+# *
+# mind the format: value = variable ! comment *
+#*********************************************************************
+#
+#*******************
+# Running parameters
+#*******************
+#
+#*********************************************************************
+# Tag name for the run (one word) *
+#*********************************************************************
+ 'ajets_200_inf' = run_tag ! name of the run
+#*********************************************************************
+# Run to generate the grid pack *
+#*********************************************************************
+ .true. = gridpack !True = setting up the grid pack
+#*********************************************************************
+# Number of events and rnd seed *
+#*********************************************************************
+ 0 = nevents ! Number of unweighted events requested
+ 0 = iseed ! rnd seed (0=assigned automatically=default))
+#*********************************************************************
+# Collider type and energy *
+#*********************************************************************
+ 1 = lpp1 ! beam 1 type (0=NO PDF)
+ 1 = lpp2 ! beam 2 type (0=NO PDF)
+ 4000 = ebeam1 ! beam 1 energy in GeV
+ 4000 = ebeam2 ! beam 2 energy in GeV
+#*********************************************************************
+# Beam polarization from -100 (left-handed) to 100 (right-handed) *
+#*********************************************************************
+ 0 = polbeam1 ! beam polarization for beam 1
+ 0 = polbeam2 ! beam polarization for beam 2
+#*********************************************************************
+# PDF CHOICE: this automatically fixes also alpha_s and its evol. *
+#*********************************************************************
+ 'cteq6l1' = pdlabel ! PDF set
+#*********************************************************************
+# Renormalization and factorization scales *
+#*********************************************************************
+ F = fixed_ren_scale ! if .true. use fixed ren scale
+ F = fixed_fac_scale ! if .true. use fixed fac scale
+ 91.1880 = scale ! fixed ren scale
+ 91.1880 = dsqrt_q2fact1 ! fixed fact scale for pdf1
+ 91.1880 = dsqrt_q2fact2 ! fixed fact scale for pdf2
+ 1 = scalefact ! scale factor for event-by-event scales
+#*********************************************************************
+# Matching - Warning! ickkw > 0 is still beta
+#*********************************************************************
+ 1 = ickkw ! 0 no matching, 1 MLM, 2 CKKW matching
+ 1 = highestmult ! for ickkw=2, highest mult group
+ 1 = ktscheme ! for ickkw=1, 1 Durham kT, 2 Pythia pTE
+ 1 = alpsfact ! scale factor for QCD emission vx
+ F = chcluster ! cluster only according to channel diag
+ F = pdfwgt ! for ickkw=1, perform pdf reweighting
+
+#*********************************************************************
+#
+#**********************************
+# BW cutoff (M+/-bwcutoff*Gamma)
+#**********************************
+ 15 = bwcutoff ! BWCUTOFF
+
+ F = cut_decays ! Apply decays to products
+#*******************
+# Standard Cuts
+#*******************
+#
+#*********************************************************************
+# Minimum and maximum pt's *
+#*********************************************************************
+ 5 = ptj ! minimum pt for the jets
+ 0 = ptb ! minimum pt for the b
+ 20 = pta ! minimum pt for the photons
+ 10 = ptl ! minimum pt for the charged leptons
+ 0 = misset ! minimum missing Et (sum of neutrino's momenta)
+ 0 = ptheavy ! minimum pt for one heavy final state
+ 1d5 = ptjmax ! maximum pt for the jets
+ 1d5 = ptbmax ! maximum pt for the b
+ 1d5 = ptamax ! maximum pt for the photons
+ 1d5 = ptlmax ! maximum pt for the charged leptons
+ 1d5 = missetmax ! maximum missing Et (sum of neutrino's momenta)
+#*********************************************************************
+# Minimum and maximum E's (in the lab frame) *
+#*********************************************************************
+ 0 = ej ! minimum E for the jets
+ 0 = eb ! minimum E for the b
+ 0 = ea ! minimum E for the photons
+ 0 = el ! minimum E for the charged leptons
+ 1d5 = ejmax ! maximum E for the jets
+ 1d5 = ebmax ! maximum E for the b
+ 1d5 = eamax ! maximum E for the photons
+ 1d5 = elmax ! maximum E for the charged leptons
+#*********************************************************************
+# Maximum and minimum rapidity *
+#*********************************************************************
+ 5 = etaj ! max rap for the jets
+ 1d2 = etab ! max rap for the b
+ 2.5 = etaa ! max rap for the photons
+ 2.5 = etal ! max rap for the charged leptons
+ 0d0 = etajmin ! min rap for the jets
+ 0d0 = etabmin ! min rap for the b
+ 0d0 = etaamin ! min rap for the photons
+ 0d0 = etalmin ! main rap for the charged leptons
+#*********************************************************************
+# Minimum and maximum DeltaR distance *
+#*********************************************************************
+ 0.001 = drjj ! min distance between jets
+ 0 = drbb ! min distance between b's
+ 0.4 = drll ! min distance between leptons
+ 0.4 = draa ! min distance between gammas
+ 0 = drbj ! min distance between b and jet
+ 0.3 = draj ! min distance between gamma and jet
+ 0.4 = drjl ! min distance between jet and lepton
+ 0 = drab ! min distance between gamma and b
+ 0 = drbl ! min distance between b and lepton
+ 0.4 = dral ! min distance between gamma and lepton
+ 1d2 = drjjmax ! max distance between jets
+ 1d2 = drbbmax ! max distance between b's
+ 1d2 = drllmax ! max distance between leptons
+ 1d2 = draamax ! max distance between gammas
+ 1d2 = drbjmax ! max distance between b and jet
+ 1d2 = drajmax ! max distance between gamma and jet
+ 1d2 = drjlmax ! max distance between jet and lepton
+ 1d2 = drabmax ! max distance between gamma and b
+ 1d2 = drblmax ! max distance between b and lepton
+ 1d2 = dralmax ! maxdistance between gamma and lepton
+#*********************************************************************
+# Minimum and maximum invariant mass for pairs *
+#*********************************************************************
+ 0 = mmjj ! min invariant mass of a jet pair
+ 0 = mmbb ! min invariant mass of a b pair
+ 0 = mmaa ! min invariant mass of gamma gamma pair
+ 0 = mmll ! min invariant mass of l+l- (same flavour) lepton pair
+ 1d5 = mmjjmax ! max invariant mass of a jet pair
+ 1d5 = mmbbmax ! max invariant mass of a b pair
+ 1d5 = mmaamax ! max invariant mass of gamma gamma pair
+ 1d5 = mmllmax ! max invariant mass of l+l- (same flavour) lepton pair
+#*********************************************************************
+# Minimum and maximum invariant mass for all letpons *
+#*********************************************************************
+ 0 = mmnl ! min invariant mass for all letpons (l+- and vl)
+ 1d5 = mmnlmax ! max invariant mass for all letpons (l+- and vl)
+#*********************************************************************
+# Inclusive cuts *
+#*********************************************************************
+ 0 = xptj ! minimum pt for at least one jet
+ 0 = xptb ! minimum pt for at least one b
+ 0 = xpta ! minimum pt for at least one photon
+ 0 = xptl ! minimum pt for at least one charged lepton
+#*********************************************************************
+# Control the pt's of the jets sorted by pt *
+#*********************************************************************
+ 0 = ptj1min ! minimum pt for the leading jet in pt
+ 0 = ptj2min ! minimum pt for the second jet in pt
+ 0 = ptj3min ! minimum pt for the third jet in pt
+ 0 = ptj4min ! minimum pt for the fourth jet in pt
+ 1d5 = ptj1max ! maximum pt for the leading jet in pt
+ 1d5 = ptj2max ! maximum pt for the second jet in pt
+ 1d5 = ptj3max ! maximum pt for the third jet in pt
+ 1d5 = ptj4max ! maximum pt for the fourth jet in pt
+ 0 = cutuse ! reject event if fails any (0) / all (1) jet pt cuts
+#*********************************************************************
+# Control the Ht(k)=Sum of k leading jets *
+#*********************************************************************
+ 200 = htjmin ! minimum jet HT=Sum(jet pt)
+ 400 = htjmax ! maximum jet HT=Sum(jet pt)
+ 0 = ht2min ! minimum Ht for the two leading jets
+ 0 = ht3min ! minimum Ht for the three leading jets
+ 0 = ht4min ! minimum Ht for the four leading jets
+ 1d5 = ht2max ! maximum Ht for the two leading jets
+ 1d5 = ht3max ! maximum Ht for the three leading jets
+ 1d5 = ht4max ! maximum Ht for the four leading jets
+#*********************************************************************
+# WBF cuts *
+#*********************************************************************
+ 0 = xetamin ! minimum rapidity for two jets in the WBF case
+ 0 = deltaeta ! minimum rapidity for two jets in the WBF case
+#*********************************************************************
+# maximal pdg code for quark to be considered as a jet *
+# otherwise b cuts are applied *
+#*********************************************************************
+ 5 = maxjetflavor ! Apply b cuts
+#*********************************************************************
+# Jet measure cuts *
+#*********************************************************************
+ 10 = xqcut ! minimum kt jet measure between partons
+#*********************************************************************
+
+
+#*********************************************************************
+# MadGraph/MadEvent *
+# http://madgraph.hep.uiuc.edu *
+# *
+# grid_card.dat *
+# *
+# This file is used to set the parameters of the run. *
+# *
+# Some notation/conventions: *
+# *
+# Lines starting with a '# ' are info or comments *
+# *
+# mind the format: value = variable ! comment *
+#*********************************************************************
+#
+#*******************
+# Running parameters
+#*******************
+#
+#*********************************************************************
+# Tell if this is a grid run or not, false during warm-up on the *
+# cluster, automatically set to true after warm-up and the gridpack *
+# is ready. The user should not change this. *
+#*********************************************************************
+ .true. = GridRun !True = Runs in the grid mode
+#*********************************************************************
+# Number of events and rnd seed *
+#*********************************************************************
+ 0 = gevents ! Number of unweighted events requested
+ 0 = gseed ! rnd seed
+ -1 = ngran ! Granularity (minimum # events per channel)
+#*********************************************************************
+
+
+# All parameters that are given here can be selected to be set from this
+# header by setting the # corresponding CMSSW config parameter to -1
+# In case this is done, the entries here must exist of an error message
+# is given.
+ 5 = nqmatch ! Max Jet Flavor
+ 4 = maxjets ! Largest number (inclusive ktMLM matching multipl.)
+ 1 = minjets ! Smallest number of additional light flavour jets
+ 5.0 = etaclmax ! Maximum pseudorapidity for particles to cluster
+ 15.0 = qcut ! Jet matching threshold for ktMLM scheme
+
+
+
+ 2212 2212 0.40000000000E+04 0.40000000000E+04 0 0 10042 10042 3 4
+ 0.37982292738E+04 0.41212834528E+01 0.12970600000E+00 3
+ 0.20718293603E+04 0.22480465091E+01 0.12970600000E+00 2
+ 0.59586368761E+03 0.64654421281E+00 0.12970600000E+00 1
+ 0.19377678327E+02 0.21025825270E-01 0.12970600000E+00 0
+
+
+ 6 2 1.2970600E-01 1.7191250E+02 7.9577470E-02 1.1811980E-01
+ 21 -1 0 0 501 502 0.00000000000E+00 0.00000000000E+00 7.53010386210E+01 7.53010386210E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 504 503 0.00000000000E+00 0.00000000000E+00 -6.33003241130E+02 6.33003241130E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -6.77924084310E+01 7.66919490220E+01 -2.21278452240E+02 2.43806519830E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 502 -1.04069130990E+01 4.09956277220E+00 1.35297551280E+01 1.75546156040E+01 0.00000000000E+00 0.0000E+00 1.0
+ 4 1 1 2 501 0 1.29676479110E+02 -1.16705082340E+02 -1.28254254880E+02 2.16529950290E+02 0.00000000000E+00 0.0000E+00 1.0
+ -4 1 1 2 0 503 -5.14771575750E+01 3.59135705480E+01 -2.21699250520E+02 2.30413194030E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.3266433E+02 0.1118527E+02 0.1667454E+03 0.1719125E+03
+
+
+ 7 3 1.2970600E-01 2.3379640E+02 7.9577470E-02 1.1310750E-01
+ 4 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 8.82839883060E+01 8.82839883060E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 -6.17995440530E+02 6.17995440530E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 1.26304755350E+01 -8.06961994940E+01 -8.95482384400E+01 1.21203517000E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 502 -4.88086257660E+01 5.75822879150E+01 -6.89527279570E+01 1.02237373420E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 1.18050184400E+01 -2.62799413770E+00 -9.99780845400E+00 1.56914303820E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 7.67330436730E+01 -1.09295298540E+02 -2.53943609510E+02 2.86915979140E+02 0.00000000000E+00 0.0000E+00 1.0
+ 4 1 1 2 502 0 -5.23599118830E+01 1.35037204250E+02 -1.07269067870E+02 1.80231128900E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.5336110E+02 0.2698322E+02 0.1181102E+02 0.2337964E+03 0.2207585E+03
+
+
+ 6 2 1.2970600E-01 1.6407660E+02 7.9577470E-02 1.1891940E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 1.05889403470E+03 1.05889403470E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 501 502 0.00000000000E+00 0.00000000000E+00 -2.51377427400E+01 2.51377427400E+01 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 5.35103991740E+01 1.78890071470E+01 1.87626024670E+02 1.95925762800E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 504 -4.36897275400E+01 -3.03000123530E+01 1.12650100010E+02 1.24566962210E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 -9.34808046320E+01 -5.15567245450E+01 3.78324163000E+02 3.93097861850E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 8.36601329980E+01 6.39677297510E+01 3.55156004240E+02 3.70441190540E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.1855911E+02 0.2645140E+02 0.1640766E+03 0.1617380E+03
+
+
+ 7 3 1.2970600E-01 1.7545120E+02 7.9577470E-02 1.1777390E-01
+ -2 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 4.04812141170E+02 4.04812141170E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 -3.21622705770E+02 3.21622705770E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 2.00301137490E+00 2.68551692020E+01 7.97166710140E+01 8.41424970210E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 -2.70848000510E+01 1.66004237180E+01 -3.40218037500E+01 4.65472189480E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 -6.51762677160E+01 -1.60541258450E+02 -2.28835547970E+02 2.87031617690E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 504 1.93589681760E+00 1.73904733910E+01 1.08219426250E+01 2.05740298300E+01 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 505 8.83221595750E+01 9.96951921370E+01 2.55508173480E+02 2.88139483450E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.2089477E+02 0.3188800E+02 0.1695246E+03 0.1749789E+02 0.1754512E+03
+
+
+ 6 2 1.2970600E-01 1.1191420E+02 7.9577470E-02 1.2590950E-01
+ 21 -1 0 0 502 503 0.00000000000E+00 0.00000000000E+00 2.79157473430E+01 2.79157473430E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 -5.62362311670E+02 5.62362311670E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 1.94038400970E+01 1.08156864010E+01 -2.06655756780E+01 3.03406344850E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 9.18509861480E+01 -4.70482178900E+01 -2.50234870490E+02 2.70679938070E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 3 1 1 2 502 0 -6.65346944710E+01 3.09459334800E+01 -1.79230032640E+02 1.93669618080E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -3 1 1 2 0 501 -4.47201317740E+01 5.28659800960E+00 -8.43160855220E+01 9.55878683840E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.2221460E+02 0.1095531E+03 0.1119142E+03 0.1791360E+02
+
+
+ 7 3 1.2970600E-01 7.4357330E+01 7.9577470E-02 1.3434830E-01
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 2.59088745690E+01 2.59088745690E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 501 503 0.00000000000E+00 0.00000000000E+00 -1.14906246780E+03 1.14906246780E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 1.88270913680E+01 2.10405220140E+01 -3.48345808810E+01 4.48398367650E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 503 -3.73943373490E+01 5.02921747590E+01 -2.80702381060E+02 2.87613396830E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 504 -5.85350717290E+00 -1.74197712040E+01 -1.40313451730E+01 2.31212158500E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 4 1 1 2 501 0 1.07283046100E+01 -8.55538773820E+01 -7.75849216460E+02 7.80625754850E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -4 1 1 2 0 502 1.36924485430E+01 3.16409518130E+01 -1.77360696300E+01 3.87711380370E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.1796876E+02 0.7435733E+02 0.1837694E+02 0.7435733E+02 0.5287179E+02
+
+
+ 7 3 1.2970600E-01 1.6024140E+02 7.9577470E-02 1.1932890E-01
+ 2 -1 0 0 505 0 0.00000000000E+00 0.00000000000E+00 1.25724251010E+03 1.25724251010E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 -2.51321921450E+01 2.51321921450E+01 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 -4.13518546470E+00 7.64113404040E+01 3.51646358490E+02 3.59876303940E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 -6.58159487820E+01 -1.39004369890E+02 4.12959711610E+02 4.40669578450E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 1.09355966560E+01 -7.04683435090E-01 2.02029827500E+01 2.29835672810E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 503 1.42628117470E+01 -9.11872086420E+00 8.60217224960E+01 8.76716351520E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 4.47527258430E+01 7.24164337890E+01 3.61279542580E+02 3.71173617380E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.4488878E+02 0.1526636E+03 0.1095828E+02 0.1726295E+02 0.1602414E+03
+
+
+ 6 2 1.2970600E-01 1.6271200E+02 7.9577470E-02 1.1906370E-01
+ 3 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 9.26638383840E+01 9.26638383840E+01 0.00000000000E+00 0.0000E+00 1.0
+ 4 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 -1.19738361180E+03 1.19738361180E+03 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 -1.67800840960E+02 -2.47021789950E+01 -3.08797342190E+02 3.52311110260E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 501 -3.25659513730E+00 -1.89210725930E+01 2.57357367200E+01 3.21082628690E+01 0.00000000000E+00 0.0000E+00 1.0
+ 4 1 1 2 501 0 1.60462788780E+02 5.92708011760E+00 -8.44947015580E+02 8.60069122800E+02 0.00000000000E+00 0.0000E+00 1.0
+ 3 1 1 2 502 0 1.05946473120E+01 3.76961714710E+01 2.32888475800E+01 4.55589542990E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.1627120E+03 0.1919928E+02 0.1627121E+03 0.2886353E+02
+
+
+ 7 3 1.2970600E-01 8.0759910E+01 7.9577470E-02 1.3255350E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 3.75145203620E+02 3.75145203620E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 -2.35268586430E+02 2.35268586430E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 2.04298936460E+01 -1.43295196460E+01 6.05376240590E+01 6.54791540440E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 502 -9.82989418910E+00 2.33491710420E+00 9.68979165600E+00 1.39989542460E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 2.61678661810E+00 -8.51849239550E+01 -9.16924994170E+00 8.57169410680E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 504 1.17406420680E+01 8.61738334610E+00 -1.74810199720E+02 1.75415814280E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 -2.49574281430E+01 8.85621431510E+01 2.53628651140E+02 2.69802926410E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.2352317E+02 0.1010340E+02 0.8075991E+02 0.1455827E+02 0.8075991E+02
+
+
+ 7 3 1.2970600E-01 8.6309510E+01 7.9577470E-02 1.3114380E-01
+ 2 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 3.93088958750E+02 3.93088958750E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 -4.13885811260E+02 4.13885811260E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 2.23463133560E+01 9.14162660870E+00 6.64953499460E+01 7.07429051000E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 501 3.79666995160E+01 -8.22590313460E+01 -3.33972440690E+02 3.46042785860E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 -2.42284171630E-01 -2.08331295800E+01 5.11188443750E+00 2.14524905830E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 503 -6.32858319990E+01 4.48044648270E+01 -3.69519818840E+01 8.58952010620E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 3.21510329900E+00 4.91460694900E+01 2.78520335680E+02 2.82841387400E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.2294174E+02 0.8630951E+02 0.2083454E+02 0.8630951E+02 0.4501156E+02
+
+
+ 7 3 1.2970600E-01 1.2633940E+02 7.9577470E-02 1.2360710E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 4.56880787840E+02 4.56880787840E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 -8.73554905580E+02 8.73554905580E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -2.47794465730E+01 -3.60417186840E+01 2.30692618160E+02 2.34802279660E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 2.80700342150E+01 6.98034218170E+00 9.26817975980E-01 2.89397821240E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 -1.02324404970E+02 -1.71533644200E+01 3.75021804790E+01 1.10321962020E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 -6.96446448620E+00 -2.64314855710E+01 1.28817320540E+02 1.31685341880E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 502 0 1.05998281810E+02 7.26462264930E+01 -8.14613054890E+02 8.24686327750E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.9848481E+01 0.2892494E+02 0.1263394E+03 0.5873752E+02 0.1263394E+03
+
+
+ 7 3 1.2970600E-01 9.8013030E+01 7.9577470E-02 1.2852850E-01
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 3.84605763890E+02 3.84605763890E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -2 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 -2.65932981470E+02 2.65932981470E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -9.47893374420E+00 -8.48565728680E+01 -1.12194734770E+02 1.40989881390E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 504 1.48805219240E+01 -4.81005734350E+01 1.74085630400E+02 1.81220588810E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 505 5.81267166080E+01 -4.48658050840E+01 6.19280159250E+01 9.60558941750E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 501 -5.25019594450E+01 1.48585425740E+01 -3.69100125290E+01 6.58754966420E+01 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 502 -1.10263453430E+01 1.62964408810E+02 3.17638833880E+01 1.66396884340E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.9801303E+02 0.5034973E+02 0.8419613E+02 0.5272826E+02 0.9801303E+02
+
+
+ 7 3 1.2970600E-01 1.5080270E+02 7.9577470E-02 1.2039310E-01
+ -2 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 1.78380966320E+02 1.78380966320E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 -6.95252298160E+02 6.95252298160E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 3.17375419520E+01 2.24066025470E+01 5.70144577920E+01 6.89925778920E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 501 -4.60338183790E+01 -3.00056234970E+01 -1.93047968510E+02 2.00716137920E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 502 -4.81729655510E+01 -6.30420135780E+00 -6.51228733970E+01 8.12487920170E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 503 -2.96979882710E+01 -4.11916719720E+01 -3.89238808500E+02 3.92537354130E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 504 9.21672302500E+01 5.50948942790E+01 7.35238607740E+01 1.30138402520E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.2130044E+02 0.1508027E+03 0.4858372E+02 0.4392155E+02 0.1480136E+03
+
+
+ 7 3 1.2970600E-01 1.7956610E+02 7.9577470E-02 1.1738290E-01
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 1.29538425900E+03 1.29538425900E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 4 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 -6.07690418010E+02 6.07690418010E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 5.92542767140E+01 4.14207977920E+01 -2.97531485370E+02 3.06189053670E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 501 -9.90140072750E+00 -2.91853671230E+01 7.57648799100E+01 8.17932785640E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 503 1.11735804490E+01 -3.66842608740E+00 -3.45374245710E+01 3.64847906120E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 -1.30589322210E+02 -6.92057364880E+01 1.19859520960E+03 1.20767275430E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 4 1 1 2 502 0 7.00628657710E+01 6.06387319070E+01 -2.54597338570E+02 2.70934799860E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.2395989E+02 0.3081920E+02 0.1161487E+02 0.1712430E+03 0.1795661E+03
+
+
+ 7 3 1.2970600E-01 1.7083900E+02 7.9577470E-02 1.1822650E-01
+ -1 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 1.24075845980E+03 1.24075845980E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 -1.82753837680E+02 1.82753837680E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -8.35960844810E+01 -5.04310917850E+01 2.71410864830E+02 2.88436228490E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 502 -1.36512696670E+01 4.19832708180E+00 -2.21873866120E+01 2.63868004600E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 505 2.68675251600E+00 -1.19776593440E+01 -9.90748253760E+01 9.98323794450E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 501 -1.24517499960E+01 -1.08831036320E+02 7.42678369960E+02 7.50713262010E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -1 1 1 2 0 503 1.07012351630E+02 1.67041460370E+02 1.65177599290E+02 2.58143627060E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.9956397E+02 0.1288728E+02 0.1227530E+02 0.1708390E+03 0.1708390E+03
+
+
+ 5 1 1.2970600E-01 1.7653080E+02 7.9577470E-02 1.1767020E-01
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 3.26051028380E+01 3.26051028380E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 -1 0 0 501 0 0.00000000000E+00 0.00000000000E+00 -1.46114213260E+03 1.46114213260E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -3.79858247000E+01 -4.42924565820E+01 -2.74546907470E+02 2.80679085420E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 9.86117673680E+01 1.39620047720E+02 -2.54894167540E+02 3.06902386820E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 502 0 -6.06259426680E+01 -9.53275911340E+01 -8.99095954780E+02 9.06165763240E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.3169595E+02 0.1709328E+03 0.1765308E+03
+
+
+ 7 3 1.2970600E-01 1.1388260E+02 7.9577470E-02 1.2557310E-01
+ -2 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 4.58033166890E+02 4.58033166890E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 -1 0 0 501 0 0.00000000000E+00 0.00000000000E+00 -1.07015602720E+03 1.07015602720E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 3.30314046980E+01 4.24734944730E+00 1.32839528280E+02 1.36950552930E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 504 1.33700758020E+01 6.07205535040E+00 4.91196833760E+01 5.12676513810E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 -1.74363465850E+01 4.74975838220E+01 3.23979777560E+00 5.07005220960E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 502 0 -1.11664584340E+02 2.34077947210E+01 -1.02630071070E+03 1.03262289980E+03 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 503 8.26994504280E+01 -8.12247833410E+01 2.28978840950E+02 2.56647567950E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.3797247E+02 0.1468430E+02 0.5019045E+02 0.1138826E+03 0.1138826E+03
+
+
+ 6 2 1.2970600E-01 1.2039480E+02 7.9577470E-02 1.2451220E-01
+ 1 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 8.84946780030E+02 8.84946780030E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 -3.76613464110E+01 3.76613464110E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 1.97428992150E+01 3.47782704640E+01 1.67025825960E+02 1.71746722540E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 504 -1.09943057250E+02 3.10592723820E+01 8.14706783700E+01 1.40319726600E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 1.16003880630E+00 -1.80321386310E+01 9.94890969550E+01 1.01116685700E+02 0.00000000000E+00 0.0000E+00 1.0
+ 1 1 1 2 501 0 8.90401192260E+01 -4.78054042150E+01 4.99299832340E+02 5.09424991610E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.3999138E+02 0.1129274E+03 0.1764984E+02 0.1203948E+03
+
+
+ 7 3 1.2970600E-01 7.9357430E+01 7.9577470E-02 1.3293010E-01
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 1.39849345330E+02 1.39849345330E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 504 503 0.00000000000E+00 0.00000000000E+00 -1.93851320750E+02 1.93851320750E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 1.03650763280E+01 3.94483586390E+01 -5.57668852550E+01 6.90909060410E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 1.95478995030E+01 -1.30943042190E+01 3.35552197560E+01 4.09821174520E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 501 -8.79683116980E+01 3.97282519990E+01 3.43927522720E+01 1.02467649910E+02 0.00000000000E+00 0.0000E+00 1.0
+ 4 1 1 2 501 0 1.75578656070E+01 5.14222884330E+00 -2.00074845030E+01 2.71112633110E+01 0.00000000000E+00 0.0000E+00 -1.0
+ -4 1 1 2 0 503 4.04974702590E+01 -7.12245352620E+01 -4.61755776830E+01 9.40487293640E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.1828154E+02 0.2352831E+02 0.7935743E+02 0.5925381E+02 0.7935743E+02
+
+
+ 7 3 1.2970600E-01 1.2788400E+02 7.9577470E-02 1.2338100E-01
+ 4 -1 0 0 501 0 0.00000000000E+00 0.00000000000E+00 1.83755985890E+02 1.83755985890E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 -2.84910874580E+02 2.84910874580E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 3.52471883460E+01 3.01517524630E+00 -2.60099148360E+01 4.39086692790E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 502 -1.46491802680E+01 -4.35013224390E+01 -1.11265847810E+02 1.20362171900E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 503 -8.30263399420E+00 -2.57447132940E+01 -7.80760408130E+00 2.81546208520E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 1.07372118080E+02 3.10897622520E+01 -4.76449768920E+01 1.21512916520E+02 0.00000000000E+00 0.0000E+00 1.0
+ 4 1 1 2 502 0 -1.19667492170E+02 3.51410982350E+01 9.15734549370E+01 1.54728481910E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.1174445E+02 0.5763738E+02 0.2705040E+02 0.1278840E+03 0.1261685E+03
+
+
+ 7 3 1.2970600E-01 2.7926390E+02 7.9577470E-02 1.1039990E-01
+ -1 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 8.78612319200E+02 8.78612319200E+02 0.00000000000E+00 0.0000E+00 1.0
+ 1 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 -1.28814098750E+03 1.28814098750E+03 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 -1.64579751870E+02 -2.06693691890E+02 3.38894908880E+02 4.29719136480E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 5.19170016870E+00 -3.57959196950E+01 4.24898817150E+01 5.58004629510E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 -3.61640356950E+01 -2.16473298800E+00 -3.71553414050E+02 3.73315500660E+02 0.00000000000E+00 0.0000E+00 1.0
+ 1 1 1 2 502 0 2.41538539650E+01 3.56763874360E+00 -8.14198676940E+02 8.14564682660E+02 0.00000000000E+00 0.0000E+00 1.0
+ -1 1 1 2 0 503 1.71398233440E+02 2.41086705830E+02 3.94838632120E+02 4.93353523920E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.2792639E+03 0.3597422E+02 0.1718798E+02 0.2441591E+02 0.2792639E+03
+
+
+ 6 2 1.2970600E-01 1.2378360E+02 7.9577470E-02 1.2398930E-01
+ -4 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 4.03348451510E+02 4.03348451510E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 501 502 0.00000000000E+00 0.00000000000E+00 -2.08493319420E+02 2.08493319420E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -4.91729457230E+01 -1.04892136620E+02 2.79202661850E+02 3.02282095570E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 504 1.26055144620E+01 1.30989423850E+02 -5.04120207220E+01 1.40920190130E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 502 2.32463072330E+01 6.55905090790E+01 -3.03531244010E+01 7.59198119210E+01 0.00000000000E+00 0.0000E+00 -1.0
+ -4 1 1 2 0 503 1.33211240290E+01 -9.16877963080E+01 -3.58238463650E+00 9.27196733000E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.1214694E+03 0.1237836E+03 0.1732417E+02 0.9265044E+02
+
+
+ 5 1 1.2970600E-01 1.1163370E+02 7.9577470E-02 1.2595810E-01
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 3.14562178930E+01 3.14562178930E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 -1.50096465290E+03 1.50096465290E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -5.84555307210E+00 -5.34957944280E+01 -1.25163573650E+02 1.36242029790E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 -9.49783736260E+01 6.30296154870E+01 -1.12424560050E+02 1.60102796940E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 1.00823926700E+02 -9.53382105850E+00 -1.23192030140E+03 1.23607604410E+03 0.00000000000E+00 0.0000E+00 -1.0
+# 0.5381425E+02 0.1116337E+03 0.1116337E+03
+
+
+ 7 3 1.2970600E-01 1.4060670E+02 7.9577470E-02 1.2164410E-01
+ 5 -1 0 0 504 0 0.00000000000E+00 0.00000000000E+00 4.26011213110E+02 4.26011213110E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 -1.79119569490E+02 1.79119569490E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 2.74258108880E+01 3.94786895500E+00 7.47415759520E+01 7.97123826520E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 505 -6.45471864400E+00 1.06999916190E+01 -3.30872444940E+01 3.53683327520E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 502 -7.23284765160E+01 3.58176066720E+01 -9.44792321770E+01 1.24260350780E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 501 -5.89044440820E+01 -9.68755919520E+00 2.09785929960E+01 6.32746687060E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 5 1 1 2 501 0 1.10261828350E+02 -4.07779080510E+01 2.78737951340E+02 3.02515047720E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.1403457E+02 0.1138663E+02 0.1406067E+03 0.5969575E+02 0.1406006E+03
+
+
+ 6 2 1.2970600E-01 1.3182000E+02 7.9577470E-02 1.2282050E-01
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 8.52187969970E+01 8.52187969970E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 -1.06575269680E+03 1.06575269680E+03 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 -2.93071080450E+01 -1.64699842090E+02 -3.74958004170E+02 4.10583060360E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 6.22960136100E+01 7.10808569900E+00 -2.01974177990E+02 2.11482592120E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 8.73692734010E+01 6.92401119760E+01 -1.48440464240E+01 1.12463010610E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 -1.20358178970E+02 8.83516444130E+01 -3.88757671190E+02 4.16442830680E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.1318200E+03 0.6270022E+02 0.1154501E+03 0.1318200E+03
+
+
+ 6 2 1.2970600E-01 1.2879700E+02 7.9577470E-02 1.2324900E-01
+ -2 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 5.00085959130E+02 5.00085959130E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 -1.42275863660E+02 1.42275863660E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -1.83028094790E+01 1.58721682200E+01 9.55449697530E+01 9.85685538290E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 504 1.20222653080E+02 -2.42661616930E+01 -1.02882945660E+02 1.60085081830E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 3.15352515330E+00 1.03732958150E+01 5.99660312480E+01 6.09382875590E+01 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 502 -1.05073368760E+02 -1.97930234240E+00 3.05182040120E+02 3.22769899570E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.1938290E+02 0.1227168E+03 0.1084205E+02 0.1287970E+03
+
+
+ 6 2 1.2970600E-01 2.3734230E+02 7.9577470E-02 1.1287300E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 2.90595006370E+02 2.90595006370E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 -1.78350487230E+02 1.78350487230E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 -5.27536131780E+01 5.92743216080E+01 3.93781163350E+01 8.85834349730E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 2.04768709180E+02 -6.79307284230E+01 3.03238979700E+01 2.17863138030E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 -1.73826761220E+01 -7.71626428040E+00 1.47218297690E+01 2.40505807700E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 -1.34632419880E+02 1.63726710950E+01 2.78206750710E+01 1.38448339830E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.6305437E+02 0.2157425E+03 0.1407388E+02 0.2373423E+03
+
+
+ 7 3 1.2970600E-01 9.7625000E+01 7.9577470E-02 1.2860850E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 1.11709859590E+03 1.11709859590E+03 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 505 502 0.00000000000E+00 0.00000000000E+00 -5.72356247410E+01 5.72356247410E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -2.10939516620E+01 9.16141446460E+00 1.62918483440E+01 2.81835170650E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 502 -2.60966749230E+01 -1.12931530020E+01 -3.08274508160E+01 4.19392831430E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 501 8.47062718060E+01 -4.24235149660E+01 9.34364250920E+02 9.39154652070E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 504 1.81954156560E+01 4.48795223700E+00 2.90339010750E+01 3.45569425410E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 -5.57110608770E+01 4.00673012660E+01 1.11000421600E+02 1.30499825790E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.1481138E+02 0.1622500E+02 0.9421271E+02 0.1874073E+02 0.9762500E+02
+
+
+ 6 2 1.2970600E-01 1.8135050E+02 7.9577470E-02 1.1721680E-01
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 7.93449758240E+02 7.93449758240E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 -8.29324675660E+01 8.29324675660E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 8.96873760420E+01 -1.40323306290E+02 3.63116222900E+02 3.99484476590E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 -9.59371488590E+01 1.96544819320E+02 2.22762279330E+02 3.12180773950E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 503 2.95711322030E+01 1.44973164320E+01 3.27766575330E+01 4.64643231150E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 -2.33213593860E+01 -7.07188294610E+01 9.18621309150E+01 1.18252652150E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.1813505E+03 0.1813505E+03 0.3293363E+02 0.7058947E+02
+
+
+ 7 3 1.2970600E-01 1.3357680E+02 7.9577470E-02 1.2257730E-01
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 2.26975120550E+02 2.26975120550E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 505 503 0.00000000000E+00 0.00000000000E+00 -2.77064198510E+02 2.77064198510E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 1.18043511650E+01 -4.00724433450E+01 1.83859732900E+00 4.18153543830E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 -1.37981921180E+02 5.52133708990E+01 1.45133856250E+02 2.07729061830E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 502 -4.49378585620E+00 -1.56886519450E+01 -7.29347213000E+00 1.78751964150E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 6.84197298910E+01 -2.44072444370E+01 -1.16485265160E+02 1.37279969470E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -2 1 1 2 0 503 6.22516259820E+01 2.49549688290E+01 -7.32827942560E+01 9.93397369670E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.4310307E+02 0.1335768E+03 0.1631956E+02 0.1335768E+03 0.6393950E+02
+
+
+ 6 2 1.2970600E-01 9.9026240E+01 7.9577470E-02 1.2832150E-01
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 4.42804748120E+02 4.42804748120E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 -2.11662609040E+02 2.11662609040E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 6.60621555460E+01 5.75458095810E+01 -6.51568811070E+01 1.09184008680E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 1.17228585900E+01 -3.13612736610E+01 -4.30769321010E+01 5.45580147950E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 503 -8.86960235140E+01 4.26729411900E+01 3.91496320890E+02 4.03679741590E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 1.09110093780E+01 -6.88574771100E+01 -5.21203686040E+01 8.70455920940E+01 0.00000000000E+00 0.0000E+00 1.0
+# 0.8761124E+02 0.1441968E+02 0.9681544E+02 0.9902624E+02
+
+
+ 6 2 1.2970600E-01 1.0689890E+02 7.9577470E-02 1.2680270E-01
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 1.95967330660E+02 1.95967330660E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 -1 0 0 503 502 0.00000000000E+00 0.00000000000E+00 -2.63799344380E+02 2.63799344380E+02 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 3.38713563380E+01 -1.27457672300E+01 4.03573035320E+01 5.42073363190E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 504 2.08936446490E+01 4.58822874470E+01 -1.00519530950E+02 1.12454011890E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 501 -8.24870177760E+00 5.64002927610E+01 -1.25583734600E+02 1.37914134520E+02 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 -4.65162992090E+01 -8.95368129780E+01 1.17913948290E+02 1.55191192310E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.3619010E+02 0.2883267E+02 0.1068989E+03 0.1024084E+03
+
+
+ 7 3 1.2970600E-01 1.3630140E+02 7.9577470E-02 1.2220820E-01
+ 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 7.65944157250E+02 7.65944157250E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 -1 0 0 504 502 0.00000000000E+00 0.00000000000E+00 -3.68246245950E+02 3.68246245950E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 22 1 1 2 0 0 -5.35982439620E+01 -8.19675625150E-01 2.07824119330E+02 2.14625972790E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 2.39456334720E+00 4.42452058130E+01 -1.81950754090E+01 4.79002394590E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 504 505 1.10909013740E+02 -1.68038910770E+01 -2.98521028450E+02 3.18901214350E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 505 503 1.78165018550E+01 -1.27043102030E+01 -1.41773576390E+01 2.60734482900E+01 0.00000000000E+00 0.0000E+00 1.0
+ 2 1 1 2 501 0 -7.75218349800E+01 -1.39173289080E+01 5.20767253470E+02 5.26689528310E+02 0.00000000000E+00 0.0000E+00 -1.0
+# 0.2964901E+02 0.4323268E+02 0.1314703E+03 0.2188212E+02 0.1363014E+03
+
+
+ 6 2 1.2970600E-01 1.2357700E+02 7.9577470E-02 1.2402070E-01
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 4.15126876650E+02 4.15126876650E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -5 -1 0 0 0 501 0.00000000000E+00 0.00000000000E+00 -9.81629538910E+01 9.81629538910E+01 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 5.26065032520E+01 7.04075031670E+00 2.34752812470E+02 2.40677999230E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 21 1 1 2 503 501 -3.48311727700E+01 1.30037487480E+01 -1.26395255740E+01 3.92691441820E+01 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 502 0 8.36108587240E+01 -1.24144258240E+00 9.96865753730E+01 1.30114296620E+02 0.00000000000E+00 0.0000E+00 -1.0
+ -5 1 1 2 0 502 -1.01386189210E+02 -1.88030564820E+01 -4.83593951600E+00 1.03228390500E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.5307557E+02 0.2255839E+02 0.1177282E+03 0.1235770E+03
+
+
+ 7 3 1.2970600E-01 7.7823320E+01 7.9577470E-02 1.3335240E-01
+ 21 -1 0 0 501 502 0.00000000000E+00 0.00000000000E+00 1.09591262540E+02 1.09591262540E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 -1.32594199270E+03 1.32594199270E+03 0.00000000000E+00 0.0000E+00 1.0
+ 22 1 1 2 0 0 2.54142451160E+01 1.31018376780E+01 -5.51112519130E+01 6.20869720050E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 503 504 -4.21421548100E+01 -1.55822357410E+01 -8.58181275310E+02 8.59356659710E+02 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 504 505 8.72610880220E+00 -1.55419027970E+01 -2.44744803680E+00 1.79912678620E+01 0.00000000000E+00 0.0000E+00 1.0
+ 21 1 1 2 505 502 -3.17481688820E+00 -6.32753784750E+01 8.26567048420E+01 1.04144053300E+02 0.00000000000E+00 0.0000E+00 -1.0
+ 2 1 1 2 501 0 1.11766177790E+01 8.12976793360E+01 -3.83267459760E+02 3.91954302390E+02 0.00000000000E+00 0.0000E+00 1.0
+# 0.2862093E+02 0.2569029E+02 0.1782402E+02 0.7782332E+02 0.7782332E+02
+
+
diff --git a/GeneratorInterface/GenFilters/test/test_doubleEMEnrichingHepMCfilter.py b/GeneratorInterface/GenFilters/test/test_doubleEMEnrichingHepMCfilter.py
new file mode 100644
index 0000000000000..9249df25c8a6c
--- /dev/null
+++ b/GeneratorInterface/GenFilters/test/test_doubleEMEnrichingHepMCfilter.py
@@ -0,0 +1,110 @@
+import FWCore.ParameterSet.Config as cms
+
+from Configuration.StandardSequences.Eras import eras
+
+process = cms.Process('GEN2',eras.Run2_2017)
+
+# import of standard configurations
+process.load('Configuration.StandardSequences.Services_cff')
+process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
+process.load('FWCore.MessageService.MessageLogger_cfi')
+process.load('Configuration.EventContent.EventContent_cff')
+process.load('SimGeneral.MixingModule.mixNoPU_cfi')
+process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
+process.load('Configuration.StandardSequences.MagneticField_cff')
+process.load('Configuration.StandardSequences.Generator_cff')
+process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic25ns13TeVEarly2017Collision_cfi')
+process.load('GeneratorInterface.Core.genFilterSummary_cff')
+process.load('Configuration.StandardSequences.EndOfProcess_cff')
+process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
+
+#----------
+# Input source
+#----------
+process.source = cms.Source("LHESource",
+ # first few events from /eos/cms/store/lhe/5542/GJets_HT-200To400_8TeV-madgraph_10001.lhe
+ fileNames = cms.untracked.vstring("file:GJets_HT-200To400_8TeV-madgraph.lhe")
+)
+
+process.options = cms.untracked.PSet()
+
+#----------
+# Output definition
+#----------
+process.output = cms.OutputModule("PoolOutputModule",
+ fileName = cms.untracked.string('file:double-em-enrichment-test.root'),
+)
+
+process.output_step = cms.EndPath(process.output)
+
+#----------
+# PYTHIA hadronizer
+# with double EM enrichment filter
+#----------
+from Configuration.Generator.doubleEMEnrichingHepMCfilter_cfi import *
+from Configuration.Generator.Pythia8CommonSettings_cfi import *
+from Configuration.Generator.MCTunes2017.PythiaCP5Settings_cfi import *
+
+process.generator = cms.EDFilter("Pythia8HadronizerFilter",
+
+ HepMCFilter = cms.PSet(
+ filterName = cms.string('PythiaHepMCFilterGammaGamma'),
+
+ # double EM enrichment filter parameters
+ filterParameters = doubleEMenrichingHepMCfilterParams
+ ),
+
+ PythiaParameters = cms.PSet(
+ pythia8CommonSettingsBlock,
+ pythia8CP5SettingsBlock,
+
+ parameterSets = cms.vstring('pythia8CommonSettings',
+ 'pythia8CP5Settings',
+ 'processParameters'),
+
+ # e.g. from /GJets_HT-40To100_TuneCP5_13TeV-madgraphMLM-pythia8 configuration
+ processParameters = cms.vstring('JetMatching:setMad = off',
+ 'JetMatching:scheme = 1',
+ 'JetMatching:merge = on',
+ 'JetMatching:jetAlgorithm = 2',
+ 'JetMatching:etaJetMax = 5.',
+ 'JetMatching:coneRadius = 1.',
+ 'JetMatching:slowJetPower = 1',
+ 'JetMatching:qCut = 19.',
+ 'JetMatching:nQmatch = 5',
+ 'JetMatching:nJetMax = 4',
+ 'JetMatching:doShowerKt = off'),
+ ),
+
+ comEnergy = cms.double(13000.0),
+ filterEfficiency = cms.untracked.double(1.0),
+ maxEventsToPrint = cms.untracked.int32(0),
+
+ # number of hadronization attempts per LHE event
+ nAttempts = cms.uint32(20),
+
+ pythiaHepMCVerbosity = cms.untracked.bool(False),
+ pythiaPylistVerbosity = cms.untracked.int32(1),
+)
+
+
+# Path and EndPath definitions
+process.generation_step = cms.Path(process.pgen)
+process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
+process.endjob_step = cms.EndPath(process.endOfProcess)
+
+# Schedule definition
+process.schedule = cms.Schedule(process.generation_step,
+ process.genfiltersummary_step,
+ process.endjob_step,
+ process.output_step,
+)
+
+from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask
+associatePatAlgosToolsTask(process)
+
+for path in process.paths:
+ if path in ['lhe_step']: continue
+ getattr(process,path)._seq = process.generator * getattr(process,path)._seq
+
+process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100))