I have a simple Geant4 simulation of protons with energy of 30 GEV, falling on a graphite target.
My goal is to see how many neutral pseudoscalar (pi, eta, eta’) and vector (rho, omega, phi) mesons are born. I also write their kinematic variables.
I use QGSP_BERT PhysicsList.
The simulation gives reasonable output values for pseudoscalar mesons.
The outputs of vector mesons are much less than my expectations, besides, I do not see at all the phi mesons.
I looked into the Geant4 documentation, from which I found out that short-lived particles should not be tracked at all. Nevertheless, I see the tracks of omega and rho.
Why is this happening? After all, phi mesons live even longer than omega or rho, but there are no tracks from them. Although, very interesting, I see a peak in the invariant mass of K+K-, which can decay on the phi meson.
Is it possible to make vector mesons tracking in my simulation?
I will be very grateful for any advice.
Is Geant4 an appropriate tool for simulating and analyzing the outputs and kinematics of neutral vector mesons produced in proton-carbon collisions? Would it be more advantageous to explore other simulation frameworks for this purpose?
I suspect that Geant4 is not the right tool for generating these events. Its focus is on the interaction of particles with your detector components (or shielding, or human phantoms, or whatever).
There are much better event generators out there for Standard Model (and even BSM) processes that don’t involve material interactions. I’m not sure whether Pythia supports heavy-ion physics or not.
There are two approaches to using an external event generator: you might run it standalone, producing a data file which you would then read in using your custom PrimaryGeneratorAction, to put tracks into Geant4. Or the generator might have an API, in which case you would build your application with the required #includes and link against the generator’s library. Your PrimaryGeneratorAction would then call the function to get the tracks, and put them into G4.