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
Todo List
Member erhic::EventDis::EventDis ()
Consider initialising float fields to zero, not NAN. e.g. in smeared output, particles outside acceptance retain default values, therefore in e.g. jacquet-blondel calculations, those not detected screw up the calculation because they have E, p = NAN, not zero!
Class erhic::EventPepsi
Add accessor and setter methods
Class erhic::EventPythia
Change sHat/t_hat/u_hat naming to be consistent
Member erhic::EventPythia::SetBeamPartonTheta (double radians)
enforce range [0, pi] when setting
Member erhic::EventPythia::SetLeptonPhi (double radians)
enforce range [0, 2pi) when setting
Member erhic::Forester::Plant ()
Get rid of the static counter. Replace with a member that is reset every time Plant() is called.
Class erhic::JacquetBlondelComputer
Revisit implementation, giving option for using particle energy or momentum when computing "energy", and think how to handle mass for smeared particles.
Member erhic::Pythia6::Run ()
Implement selection of correct event factory (either erhic::Pythia6EventBuilder or hadronic::Pythia6EventFactory) depending on requested beam types.
Class Smear::Acceptance
Implement data hiding
Class Smear::Detector

Add consts where possible.

Implement data hiding

Class Smear::Distributor
This could do with some reworking, to make it compatible with an arbitrary function via a functor (which I think is the best way to go). Move to its own files.
Class Smear::ParticleID
Implement data hiding
Remarks
Why is the bitwise AND assignment operator&= overloaded?!
Member Smear::ParticleMCS::GetM () const
Consider the implementation here. If the particle is identified (either correctly or incorrectly), it could return the PDG mass of that particle. If the particle is not identified, should it return sqrt(E^2 - p^2)? What about if p or E are not known? Return E or p? Or zero (e.g. that would work for photons, E known, p not).
Member Smear::ParticleMCS::GetPt () const
check this is set properly
Class Smear::Smearer
Data hiding for Acceptance, but need to address more general data hiding issues in smearing code first.