CMS 3D CMS Logo

InteractionModel.h
Go to the documentation of this file.
1 #ifndef FASTSIM_INTERACTIONMODEL
2 #define FASTSIM_INTERACTIONMODEL
3 
5 
6 #include <string>
7 #include <vector>
8 #include <memory>
9 
11 // Author: L. Vanelderen, S. Kurz
12 // Date: 29 May 2017
14 
15 namespace edm {
16  class Event;
17 } // namespace edm
18 
20 
21 namespace fastsim {
22  class SimplifiedGeometry;
23  class Particle;
24 
26 
30  public:
32 
36 
38  virtual ~InteractionModel() { ; }
39 
41 
47  virtual void interact(Particle& particle,
49  std::vector<std::unique_ptr<Particle> >& secondaries,
50  const RandomEngineAndDistribution& random) = 0;
51 
54 
56  virtual void storeProducts(edm::Event& iEvent) { ; }
57 
59  const std::string getName() { return name_; }
60 
62  friend std::ostream& operator<<(std::ostream& o, const InteractionModel& model);
63 
64  private:
66  };
67  std::ostream& operator<<(std::ostream& os, const InteractionModel& interactionModel);
68 
69 } // namespace fastsim
70 
71 #endif
edm
HLT enums.
Definition: AlignableModifier.h:19
fastsim::SimplifiedGeometry
Implementation of a generic detector layer (base class for forward/barrel layers).
Definition: SimplifiedGeometry.h:35
fastsim::InteractionModel::~InteractionModel
virtual ~InteractionModel()
Default destructor.
Definition: InteractionModel.h:38
ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.model
model
Definition: ReggeGribovPartonMC_EposLHC_2760GeV_PbPb_cfi.py:11
ProducesCollector.h
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:42
fastsim::InteractionModel::getName
const std::string getName()
Return (unique) name of this interaction.
Definition: InteractionModel.h:59
fastsim::InteractionModel::storeProducts
virtual void storeProducts(edm::Event &iEvent)
In case interaction produces and stores content in the event (e.g. TrackerSimHits).
Definition: InteractionModel.h:56
fastsim::InteractionModel
Base class for any interaction model between a particle and a tracker layer.
Definition: InteractionModel.h:29
fastsim::InteractionModel::name_
const std::string name_
A unique name for every instance of any interaction.
Definition: InteractionModel.h:65
Event
fastsim::operator<<
std::ostream & operator<<(std::ostream &os, const fastsim::Geometry &geometry)
Definition: Geometry.cc:159
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
iEvent
int iEvent
Definition: GenABIO.cc:224
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
fastsim::InteractionModel::InteractionModel
InteractionModel(std::string name)
Constructor.
Definition: InteractionModel.h:35
fastsim::InteractionModel::operator<<
friend std::ostream & operator<<(std::ostream &o, const InteractionModel &model)
Basic information output.
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ProducesCollector
Definition: ProducesCollector.h:43
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
Particle
Definition: Particle.py:1
fastsim
Definition: BarrelSimplifiedGeometry.h:15
fastsim::InteractionModel::registerProducts
virtual void registerProducts(edm::ProducesCollector) const
In case interaction produces and stores content in the event (e.g. TrackerSimHits).
Definition: InteractionModel.h:53
edm::Event
Definition: Event.h:73
fastsim::InteractionModel::interact
virtual void interact(Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< Particle > > &secondaries, const RandomEngineAndDistribution &random)=0
Perform the interaction.
RandomEngineAndDistribution
Definition: RandomEngineAndDistribution.h:18