00001
00013 #include "interaction.h"
00014 #include <iostream>
00015
00016 ClassImp(interaction)
00017
00018 using std::endl;
00019 using std::cout;
00020
00021
00022 ostream & operator << (ostream & stream, const interaction & conf)
00023 {
00024 conf.print(stream);
00025 return stream;
00026 }
00027
00028 interaction::interaction() :
00029 _name("default")
00030 {
00031
00032 }
00033
00034 interaction::interaction(const char * name) :
00035 _name(name)
00036 {
00037
00038 }
00039
00040 interaction::interaction(const interaction * inter)
00041 {
00042 _name = inter->_name;
00043 _flavor = inter->_flavor;
00044 _nucleus = inter->_nucleus;
00045 _ccnc = inter->_ccnc;
00046 _init_state = inter->_init_state;
00047 }
00048
00049 interaction::interaction(flavor_t f, nucleus_t n, ccnc_t c, init_state_t in) :
00050 _flavor(f),_nucleus(n),_ccnc(c),_init_state(in)
00051 {
00052
00053 }
00054
00055 interaction::~interaction()
00056 {
00057
00058 }
00059
00060 int interaction::getProcess(void) const
00061 {
00062 int icode = 0;
00063 int pa = 0;
00064 int im = _init_state;
00065 int it = _flavor;
00066 int cn = _ccnc;
00067
00068 makestate_(&pa, &pa, &pa, &pa, &pa, &it, &im, &cn, &icode);
00069
00070
00071
00072 return icode;
00073 }
00074
00075 int interaction::getProcess(final_state * final) const
00076 {
00077 int proton = final->getProton();
00078 int neutron = final->getNeutron();
00079 int piplus = final->getPiplus();
00080 int piminus = final->getPiminus();
00081 int pizero = final->getPizero();
00082
00083 int icode = 0;
00084 int im = _init_state;
00085 int it = _flavor;
00086 int cn = _ccnc;
00087
00088 makestate_(&piplus, &piminus, &pizero, &proton, &neutron,
00089 &it, &im, &cn, &icode);
00090
00091 cout << "In interaction, process (w/final)= " << icode << endl;
00092
00093 return icode;
00094 }
00095
00096 void interaction::print(ostream & stream) const
00097 {
00098 stream << "Interaction Name:........." << _name << endl;
00099 stream << "Flavor:..................." << flavor::as_string(_flavor) << endl;
00100 stream << "Nucleus:.................." << nucleus::as_string(_nucleus) << endl;
00101 stream << "CCNC:....................." << ccnc::as_string(_ccnc) << endl;
00102 stream << "Init_State:..............." << init_state::as_string(_init_state) << endl;
00103 }
00104
00105
00106