Back to home page

EIC code displayed by LXR

 
 

    


Warning, /estarlight/BackwardsProduction.md is written in an unsupported language. File is not indexed.

0001 # Backwards Production
0002 
0003 ## $\omega \rightarrow \pi^0+\gamma$ Decay
0004 Default decay for $\omega$ is $\omega \rightarrow 2\pi$ with branch ratio 0.0153
0005 $\omega \rightarrow \pi^0+\gamma$ decay (branching ratio 0.0828) can be enabled with `PROD_PID = 223022`
0006 This neutral decay of the $\omega$ currently assumes an unpolarized $\omega$, as it is not clear whether $s$-channel helicity conservation holds in backwards production. This assumption can be changed in `src/gammaavm.cpp`
0007 
0008 
0009 ## Added Code 
0010 Added check in `src/e_narrowResonanceCrossSection.cpp` for backwards production.
0011 
0012 Switched to two vertices, gamma and electron, in `src/hepmc3writer.cpp` 
0013 
0014 Added targetBeam, electronBeam and backwards_production tag for slight.in `src/inputParameters.cpp` and `include/inputParameters.h`  
0015   (Removed TAU+TAU decay)
0016 
0017 Changed `src/starlightpythia.cpp` to produce eXEvent instead of UPCEvent
0018 
0019 Backwards Production Code in `src/gammaavm.cpp`
0020 ```
0021 if (_backwardsProduction) {
0022   //Fill the intial state in the lab frame
0023         double pz_tar_i_lab = -1.0*target_pz;  //Flip the pz of the target
0024         double E_tar_i_lab = sqrt(pow(target_pz,2) + pow(starlightConstants::protonMass,2.)); //Calculate proton energy
0025         double pz_gam_i_lab = Egam; //Photon energy
0026         double E_gam_i_lab = Egam;  //Photon energy
0027 
0028         //Calculate the final state target energy and pz
0029         double pz_tar_f_lab = (pz_tar_i_lab + pz_gam_i_lab) - pz;
0030         double E_tar_f_lab = sqrt( pow(pz_tar_f_lab,2) + pow(starlightConstants::protonMass,2.) );
0031 
0032         //Calculate the boost (beta,gamma) to the center of mass frame
0033         double beta = (pz_tar_i_lab + pz_gam_i_lab)/(E_gam_i_lab + E_tar_i_lab);
0034         double lorentzGamma = 1.0/sqrt( 1 - pow(beta,2.));
0035           
0036         //Boost to the final state target to the CM frame
0037         double cm_frame_target_pz = lorentzGamma*( pz_tar_f_lab + beta*E_tar_f_lab );
0038         double cm_frame_gamma_pz  = lorentzGamma*( pz + beta*pz );
0039          
0040         //Recalculate target energy in the CM frame (assign to VM) 
0041         double vm_mass = sqrt( E*E - ( px*px + py*py + pz*pz ) );
0042         double vm_E_cm = sqrt( vm_mass*vm_mass + px*px + py*py + cm_frame_target_pz*cm_frame_target_pz);
0043 
0044   //Calcuate photon energy in CM frame (assign to target)
0045   double cm_E = sqrt( pow(starlightConstants::protonMass,2.)  + pow(t_px,2.) + pow(t_py,2.) + pow(cm_frame_gamma_pz,2.));         
0046   //Boost photon and target back to lab frame
0047   //target:
0048   t_pz = lorentzGamma*(cm_frame_gamma_pz - beta*cm_E);
0049   t_E = lorentzGamma*(cm_E - beta*cm_fame_gamma_pz);
0050   //Photon:
0051   pz = lorentzGamma*(cm_frame_target_pz - beta*vm_E_cm);
0052   E = lorentzGamma*(vm_E_cm - beta*cm_frame_target_pz);
0053 
0054   //Calculate the rapidity
0055   Y = 0.5*std::log( (E+fabs(pz))/(E-fabs(pz)) );
0056 }  
0057 ```
0058 
0059 ## Removed STARlight Code (Conflicted with backwards production)
0060 ### DPMJET
0061 Removed the option to include DPMJET in `CMakeLists.txt`
0062 ### BeamSystem
0063 Changed the beam1/beam2 -> electronBeam/targetBeam. Defined in `include/beambeamsystem.h`
0064 ### UPCEvent
0065 Removed all references to UPCEvents in:
0066 ```
0067 include/e_starlightStandalone.h 
0068 include/e_starlight.h 
0069 include/eventchannel.h
0070 include/eventfilewriter.h
0071 include/filewriter.h
0072 include/gammaavm.h
0073 include/starlightpythia.h
0074 include/pythiadecayer.h
0075 ```
0076 ### Updated kinematics:
0077 ```
0078 src/gammaavm.cpp
0079 ```