Back to home page

EIC code displayed by LXR

 
 

    


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; //As fraction of M_p
0020   const double Start=0.01; //As fraction of photon P
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