1 #ifndef FASTSIM_INTERACTIONMODEL 2 #define FASTSIM_INTERACTIONMODEL 22 class SimplifiedGeometry;
49 std::vector<std::unique_ptr<Particle> >& secondaries,
virtual void storeProducts(edm::Event &iEvent)
In case interaction produces and stores content in the event (e.g. TrackerSimHits).
virtual void interact(Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< Particle > > &secondaries, const RandomEngineAndDistribution &random)=0
Perform the interaction.
Implementation of a generic detector layer (base class for forward/barrel layers).
virtual ~InteractionModel()
Default destructor.
constexpr std::array< uint8_t, layerIndexSize > layer
Base class for any interaction model between a particle and a tracker layer.
friend std::ostream & operator<<(std::ostream &o, const InteractionModel &model)
Basic information output.
std::ostream & operator<<(std::ostream &os, const fastsim::Geometry &geometry)
const std::string getName()
Return (unique) name of this interaction.
const std::string name_
A unique name for every instance of any interaction.
InteractionModel(std::string name)
Constructor.
virtual void registerProducts(edm::ProducesCollector) const
In case interaction produces and stores content in the event (e.g. TrackerSimHits).