eic-smear  1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
ParticleIdentifier.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_ERHIC_PARTICLEIDENTIFIER_H_
11 #define INCLUDE_EICSMEAR_ERHIC_PARTICLEIDENTIFIER_H_
12 
13 #include <cmath>
14 #include <limits>
15 #include <vector>
16 
20 
26  public:
32  ParticleIdentifier(const int leptonPdg = ~unsigned(0)/2);
33 
34  virtual ~ParticleIdentifier() { }
35 
39  virtual bool isBeamLepton(const erhic::VirtualParticle&) const;
40 
44  virtual bool isBeamNucleon(const erhic::VirtualParticle&) const;
45 
49  virtual bool isScatteredLepton(const erhic::VirtualParticle&) const;
50 
54  virtual bool IsVirtualPhoton(const erhic::VirtualParticle&) const;
55 
59  virtual bool SkipParticle(const erhic::VirtualParticle&) const;
60 
64  virtual void SetLeptonBeamPdgCode(int pdg);
65 
69  virtual int GetLeptonBeamPdgCode() const;
70 
78  virtual bool SetChargedCurrent(bool isChargedCurrent);
79 
87  static bool IdentifyBeams(const erhic::VirtualEvent&, BeamParticles&);
88 
99  static bool IdentifyBeams(const erhic::VirtualEvent&,
100  std::vector<const erhic::VirtualParticle*>&);
101 
102  protected:
114  Int_t DetermineScatteredType(Int_t);
115 
116  Bool_t mChargedCurrent;
117  Int_t mLeptonBeamPdgCode;
118  Int_t mScatteredPdgCode;
119 };
120 
122  return mLeptonBeamPdgCode;
123 }
124 
125 #endif // INCLUDE_EICSMEAR_ERHIC_PARTICLEIDENTIFIER_H_
virtual int GetLeptonBeamPdgCode() const
virtual bool isBeamLepton(const erhic::VirtualParticle &) const
Abstract base class for a physics event.
Definition: VirtualEvent.h:25
virtual bool isScatteredLepton(const erhic::VirtualParticle &) const
virtual void SetLeptonBeamPdgCode(int pdg)
virtual bool isBeamNucleon(const erhic::VirtualParticle &) const
virtual bool SkipParticle(const erhic::VirtualParticle &) const
virtual bool SetChargedCurrent(bool isChargedCurrent)
Int_t DetermineScatteredType(Int_t)
virtual bool IsVirtualPhoton(const erhic::VirtualParticle &) const
Abstract base class for a general particle.
static bool IdentifyBeams(const erhic::VirtualEvent &, BeamParticles &)
ParticleIdentifier(const int leptonPdg=~unsigned(0)/2)