Implements methods to identify particles based on their species and status codes.
virtual void SetLeptonBeamPdgCode(int pdg)
Sets the PDG code to use when identifying the lepton beam.
ParticleIdentifier(const int leptonPdg=~unsigned(0)/2)
Default constructor.
virtual bool isBeamNucleon(const erhic::VirtualParticle &) const
Returns whether the particle is the beam hadron.
Int_t DetermineScatteredType(Int_t)
Determine the scattered lepton type from an incident lepton type.
static bool IdentifyBeams(const erhic::VirtualEvent &, BeamParticles &)
Identify the beams from an event and store their properties in a BeamParticles object.
Abstract base class for a general particle.
virtual bool SetChargedCurrent(bool isChargedCurrent)
Look for charged current events.
virtual bool IsVirtualPhoton(const erhic::VirtualParticle &) const
Returns whether the particle is a virtual photon.
virtual bool SkipParticle(const erhic::VirtualParticle &) const
Returns whether the particles should be skipped by the tree building code.
virtual bool isScatteredLepton(const erhic::VirtualParticle &) const
Returns whether the particle is the scattered lepton beam particle.
virtual bool isBeamLepton(const erhic::VirtualParticle &) const
Returns whether the particle is the beam lepton.
virtual int GetLeptonBeamPdgCode() const
Returns the PDG code to use when identifying the lepton beam.
virtual ~ParticleIdentifier()
Wrapper class around energy-momentum 4-vectors defining the incident and scattered beams and the exch...