34 lines
552 B
C++
34 lines
552 B
C++
#ifndef ReactionGenerator_h
|
|
#define ReactionGenerator_h 1
|
|
|
|
#include "G4ThreeVector.hh"
|
|
|
|
enum class ReactionChannel {
|
|
Proton,
|
|
Alpha
|
|
};
|
|
|
|
struct ReactionOutput {
|
|
ReactionChannel channel;
|
|
double kineticEnergy;
|
|
double px;
|
|
double py;
|
|
double pz;
|
|
};
|
|
|
|
class ReactionGenerator {
|
|
public:
|
|
ReactionGenerator();
|
|
~ReactionGenerator();
|
|
|
|
ReactionOutput SampleEvent(double beamKineticEnergy, const G4ThreeVector& beamDirection);
|
|
double GetEffectiveCrossSection() const;
|
|
|
|
private:
|
|
class Impl;
|
|
Impl* fImpl;
|
|
double fEffectiveSigma;
|
|
};
|
|
|
|
#endif
|