diff --git a/src/Projections/InitialQuarks.cc b/src/Projections/InitialQuarks.cc --- a/src/Projections/InitialQuarks.cc +++ b/src/Projections/InitialQuarks.cc @@ -1,65 +1,61 @@ // -*- C++ -*- #include "Rivet/Projections/InitialQuarks.hh" - -#define IS_PARTON_PDGID(id) ( abs(id) <= 100 && abs(id) != 22 && (abs(id) < 11 || abs(id) > 18) ) - - namespace Rivet { int InitialQuarks::compare(const Projection& p) const { return EQUIVALENT; } void InitialQuarks::project(const Event& e) { _theParticles.clear(); for (const GenParticle* p : Rivet::particles(e.genEvent())) { const GenVertex* pv = p->production_vertex(); const GenVertex* dv = p->end_vertex(); const PdgId pid = abs(p->pdg_id()); bool passed = inRange((long)pid, 1, 6); if (passed) { if (pv != 0) { for (const GenParticle* pp : particles_in(pv)) { // Only accept if parent is electron or Z0 const PdgId pid = abs(pp->pdg_id()); passed = (pid == PID::ELECTRON || abs(pp->pdg_id()) == PID::ZBOSON || abs(pp->pdg_id()) == PID::GAMMA); } } else { passed = false; } } if (getLog().isActive(Log::TRACE)) { const int st = p->status(); const double pT = p->momentum().perp(); const double eta = p->momentum().eta(); MSG_TRACE(std::boolalpha << "ID = " << p->pdg_id() << ", status = " << st << ", pT = " << pT << ", eta = " << eta << ": result = " << passed); if (pv != 0) { for (const GenParticle* pp : particles_in(pv)) { MSG_TRACE(std::boolalpha << " parent ID = " << pp->pdg_id()); } } if (dv != 0) { for (const GenParticle* pp : particles_out(dv)) { MSG_TRACE(std::boolalpha << " child ID = " << pp->pdg_id()); } } } if (passed) _theParticles.push_back(Particle(*p)); } MSG_DEBUG("Number of initial quarks = " << _theParticles.size()); if (!_theParticles.empty()) { for (size_t i = 0; i < _theParticles.size(); i++) { MSG_DEBUG("Initial quark[" << i << "] = " << _theParticles[i].pid()); } } } }