ComPWA
Common Partial-Wave-Analysis Framework
EvtGenGenerator.hpp
Go to the documentation of this file.
1 // Copyright (c) 2013, 2017 The ComPWA Team.
2 // This file is part of the ComPWA framework, check
3 // https://github.com/ComPWA/ComPWA/license.txt for details.
4 
5 #ifndef TOOLS_EVTGENGENERATOR_HPP_
6 #define TOOLS_EVTGENGENERATOR_HPP_
7 
8 #include <random>
9 
10 #include "Core/Event.hpp"
11 #include "Core/Generator.hpp"
12 #include "ThirdParty/EvtGen/EvtRandomEngine.hh"
13 
14 namespace ComPWA {
15 class UniformRealNumberGenerator;
16 namespace Physics {
18 }
19 
20 namespace Data {
21 namespace EvtGen {
22 
23 class EvtGenStdRandomEngine : public EvtRandomEngine {
24  // ownership is not taken of this random number generator
26 
27 public:
29  void setRandomNumberGenerator(UniformRealNumberGenerator &NumberGenerator_);
30 
31  double random();
32 };
33 
36  std::vector<double> FinalStateMasses;
37  std::vector<ComPWA::pid> FinalStatePIDs;
38  std::unique_ptr<ComPWA::Data::EvtGen::EvtGenStdRandomEngine> RandomEngine;
39 
40 public:
42  const std::vector<double> &FinalStateMasses_,
43  const std::vector<ComPWA::pid> &FinalStatePIDs_);
44 
48 
50  generate(unsigned int NumberOfEvents,
51  UniformRealNumberGenerator &RandomGenerator) const final;
52 };
53 
54 } // namespace EvtGen
55 } // namespace Data
56 } // namespace ComPWA
57 
58 #endif
Interface class for PHSP event generators.
Definition: Generator.hpp:17
ComPWA four momentum class.
std::vector< ComPWA::pid > FinalStatePIDs
UniformRealNumberGenerator * NumberGenerator
EventCollection generate(unsigned int NumberOfEvents, const ComPWA::Kinematics &Kinematics, const ComPWA::PhaseSpaceEventGenerator &Generator, ComPWA::Intensity &Intensity, ComPWA::UniformRealNumberGenerator &RandomGenerator)
Definition: Generate.cpp:95
std::unique_ptr< ComPWA::Data::EvtGen::EvtGenStdRandomEngine > RandomEngine