2020-11-16 13:38:39 -05:00
|
|
|
#ifndef KINEMATICS_H
|
|
|
|
#define KINEMATICS_H
|
|
|
|
|
|
|
|
#include "ReactionSystem.h"
|
2021-08-24 11:55:32 -04:00
|
|
|
#include "DecaySystem.h"
|
|
|
|
#include "OneStepSystem.h"
|
2020-11-16 13:38:39 -05:00
|
|
|
#include "TwoStepSystem.h"
|
|
|
|
#include "ThreeStepSystem.h"
|
|
|
|
|
2020-12-11 16:56:27 -05:00
|
|
|
namespace Mask {
|
2020-11-16 13:38:39 -05:00
|
|
|
|
2021-09-03 17:03:41 -04:00
|
|
|
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;
|
|
|
|
|
2020-11-16 13:38:39 -05:00
|
|
|
};
|
|
|
|
|
2021-09-03 17:03:41 -04:00
|
|
|
}
|
2020-12-11 16:56:27 -05:00
|
|
|
|
2021-03-10 15:00:35 -05:00
|
|
|
#endif
|