File indexing completed on 2025-01-18 09:15:02
0001 #ifndef ProductGen_H
0002 #define ProductGen_H
0003
0004 #include "Particle.hxx"
0005 #include "CustomRand.hxx"
0006
0007 #include "TF1.h"
0008 #include "TVector3.h"
0009
0010 #include <vector>
0011
0012
0013 using namespace std;
0014
0015 class ProductGen
0016 {
0017
0018 const double StepSize=0.001;
0019 const double MTol=0.01;
0020 const double Start=0.01;
0021 const double End=0.99;
0022
0023 double W_in_val;
0024
0025 Particle * Target;
0026 Particle * Interaction;
0027 Particle * Initial;
0028
0029 Particle * Proton;
0030 Particle * Pion;
0031 Particle * Final;
0032
0033 CustomRand * AngleGen;
0034 TRandom3 * CoinToss;
0035
0036 TF1 * F;
0037 TVector3 * UnitVect;
0038
0039 double Qsq_in();
0040 double W_in();
0041
0042 double W_out();
0043
0044 bool SolnCheck();
0045
0046 public:
0047 ProductGen(Particle* inInteraction, Particle* inTarget);
0048
0049 void SetInteraction(Particle * inInteraction);
0050 void SetTarget(Particle * inTarget);
0051
0052 int Solve();
0053 int Solve(double theta, double phi);
0054
0055 int TestSolve();
0056
0057 int SolveAnalytic();
0058
0059 Particle * ProdPion();
0060 Particle * ProdProton();
0061
0062 void PrintPars();
0063 };
0064
0065 #endif