Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:15:14

0001 ///*--------------------------------------------------*/
0002 /// Reaction_routine.cc
0003 ///
0004 /// Creator: Wenliang (Bill) Li
0005 /// Date: Mar 12 2020
0006 /// Email: wenliang.billlee@gmail.com
0007 ///
0008 /// Comment: Mar 12, 2020: Subroutine Exclusive_Omega_Prodoction is created 
0009 ///          modeled off the Exclusive_Omega_Prodoction routine written by 
0010 ///          A. Zafar
0011 ///
0012 
0013 #include "reaction_routine.h"
0014 #include "eic.h"
0015 #include "particleType.h"
0016 
0017 using namespace std;
0018 
0019 
0020 /*--------------------------------------------------*/
0021 /// Reaction 
0022 Reaction::Reaction(TString ejectile_str) { 
0023 
0024     rEjectile = ejectile_str;
0025     cout << "Produced ejectile is: " << GetEjectile() << endl; 
0026     cout << "Generated process: e + p -> e' + p' + " << GetEjectile() << endl; 
0027         tTime.Start(); 
0028  
0029     cout << "/*--------------------------------------------------*/" << endl;
0030     cout << "Starting setting up process" << endl;
0031     cout << endl;
0032  
0033         TDatime dsTime;
0034     cout << "Start Time:   " << dsTime.GetHour() << ":" << dsTime.GetMinute() << endl;
0035 
0036 }
0037 
0038 // SJDK 09/02/22 - New reaction where the particle and hadron are specified
0039 Reaction::Reaction(TString ejectile_str, TString recoil_hadron_str) { 
0040 
0041     rEjectile = ejectile_str;
0042     rRecoil = recoil_hadron_str;
0043     cout << "Produced ejectile is: " << GetEjectile() << endl; 
0044     cout << "Produced recoil hadron is: " << GetRecoilHadron() << endl;
0045     cout << "Generated process: e + p -> e'+ " << GetRecoilHadron() << " + " << GetEjectile() << endl; 
0046         tTime.Start(); 
0047  
0048     cout << "/*--------------------------------------------------*/" << endl;
0049     cout << "Starting setting up process" << endl;
0050     cout << endl;
0051  
0052         TDatime dsTime;
0053     cout << "Start Time:   " << dsTime.GetHour() << ":" << dsTime.GetMinute() << endl;
0054 
0055 }
0056 
0057 Reaction::Reaction(){};
0058 
0059 Reaction::~Reaction() {
0060  
0061 //  ppiOut.close();
0062 //  ppiDetails.close();
0063  
0064     cout << endl;
0065     cout << "Ending the process" << endl;
0066     cout << "/*--------------------------------------------------*/" << endl;
0067  
0068         tTime.Stop();
0069         tTime.Print();
0070  
0071         TDatime deTime;
0072         cout << "End Time:   " << deTime.GetHour() << ":" << deTime.GetMinute() << endl;
0073  
0074 }
0075 
0076 /*--------------------------------------------------*/
0077 ///
0078 
0079 void Reaction::process_reaction() {
0080 
0081   // SJDK - 19/12/22 - New generic DEMP reaction class, the intention is that this should be able to handle any case
0082     DEMP_Reaction* rr1 = new DEMP_Reaction(rEjectile, rRecoil);
0083     rr1->process_reaction();
0084     delete rr1;
0085 
0086 }