You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice to add new indefinite spins and polarizations that sync polarizations or spins of different particles together. This would be helpful for example when considering multiple photons coming from a laser, where the polarizations are necessarily equal between the photons.
I suggest a type such as SyncedPolarization{N} <: AbstractIndefinitePolarization, where N would be an integer to differentiate between multiple possible synced polarizations in the same process. For a process like kkke -> ke and the incoming Photons all having SyncedPolarization{1} set (and the other particles AllSpin/AllPol), there would then be only 16 total polarizations possible instead of 64 if AllPol had to be used for all particles. When generating code this makes a large difference, and because of intermediate result reuse, it is also better than generating the process with PolX and PolY once and summing.
It's conceivable to have an even more powerful implementation of such a type, allowing specific combinations of Pols/Spins, but I'm not sure if there would be any actual application of this.
The text was updated successfully, but these errors were encountered:
There is a problem with this new type, which is that it doesn't have a constant multiplicity. It may be better generally to remove or hide the current multiplicity and instead have it only defined on a whole process, but I'm not sure.
Otherwise, we could add a multiplicity member to the SyncedPolarization, which would then be the k-th root of 2, where k is the number of occurrences of the SyncedPolarization in the process.
It would be nice to add new indefinite spins and polarizations that sync polarizations or spins of different particles together. This would be helpful for example when considering multiple photons coming from a laser, where the polarizations are necessarily equal between the photons.
I suggest a type such as
SyncedPolarization{N} <: AbstractIndefinitePolarization
, whereN
would be an integer to differentiate between multiple possible synced polarizations in the same process. For a process likekkke -> ke
and the incoming Photons all havingSyncedPolarization{1}
set (and the other particlesAllSpin
/AllPol
), there would then be only 16 total polarizations possible instead of 64 ifAllPol
had to be used for all particles. When generating code this makes a large difference, and because of intermediate result reuse, it is also better than generating the process withPolX
andPolY
once and summing.It's conceivable to have an even more powerful implementation of such a type, allowing specific combinations of Pols/Spins, but I'm not sure if there would be any actual application of this.
The text was updated successfully, but these errors were encountered: