2 #ifndef RIVET_BeamConstraint_HH
3 #define RIVET_BeamConstraint_HH
5 #include "Rivet/Rivet.hh"
6 #include "Rivet/ParticleName.hh"
7 #include "Rivet/Particle.hh"
18 return (allowed == ANY || p == allowed);
25 bool oneToOne =
compatible(pair.first, allowedpair.first);
26 bool twoToTwo =
compatible(pair.second, allowedpair.second);
27 bool oneToTwo =
compatible(pair.first, allowedpair.second);
28 bool twoToOne =
compatible(pair.second, allowedpair.first);
29 return (oneToOne && twoToTwo) || (oneToTwo && twoToOne);
37 ppair.second.pdgId()), allowedpair);
49 for (set<PdgIdPair>::const_iterator bp = allowedpairs.begin(); bp != allowedpairs.end(); ++bp) {
56 inline set<PdgIdPair>
intersection(
const set<PdgIdPair>& a,
const set<PdgIdPair>& b) {
58 for (set<PdgIdPair>::const_iterator bp = a.begin(); bp != a.end(); ++bp) {