1
0
Fork 0
mirror of https://github.com/gwm17/Mask.git synced 2024-11-13 14:08:49 -05:00
Mask/include/Kinematics.h

48 lines
958 B
C++

#ifndef KINEMATICS_H
#define KINEMATICS_H
#include "ReactionSystem.h"
#include "DecaySystem.h"
#include "OneStepSystem.h"
#include "TwoStepSystem.h"
#include "ThreeStepSystem.h"
namespace Mask {
class Kinematics {
public:
Kinematics();
~Kinematics();
bool LoadConfig(const std::string& filename);
bool SaveConfig(const std::string& filename);
inline int GetNumberOfSamples() { return m_nsamples; };
inline const std::string GetSystemName() { return sys == nullptr ? "" : sys->GetSystemEquation(); };
inline const std::string GetOutputName() { return m_outfile_name; };
inline const int GetReactionType() { return m_rxn_type; };
void Run();
enum RxnType {
ONESTEP_DECAY,
ONESTEP_RXN,
TWOSTEP,
THREESTEP
};
private:
void RunOneStepRxn();
void RunOneStepDecay();
void RunTwoStep();
void RunThreeStep();
ReactionSystem* sys;
std::string m_outfile_name;
int m_rxn_type, m_nsamples;
};
}
#endif