== Road Map ==
These are features we think it would be great to implement. It is partially a brainstorming area. If you think you have a great idea, write it down and perhaps we will implement it sometime. However, we do not gaurantee any of these improvements or any timeline.
===== 1.0.1 =====
* Common Interface structure. Done!
* Remove ghosts from check hermiticity (until we understand it better.) Done!
===== 1.2 =====
* Check hermiticity -> Under investigation Done!
* Check kinetic/mass terms -> Partially implmented (checks if the kinetic and mass terms are flavor diagonal) Done!
* FeynArts default classes Done!
* MC independent external parameter file.(Only external parameters can be currently updated. The interfaces are not done yet.) Done!
* Update warnings in WriteCHOutput for options MaxExpressionLength and so on. Done!
* FeynArts
* Simplify complex vertices by extracting the details to a new internal variable (such as g0005). This should make FeynArts/FormCalc more efficient. It will also make the output more readable. Absorbe everything into g0005 except IndexDelta[''''] and color structures. (Anything else?) Done!
* Add replacement lists containing the definitions of the internal variables and external variables and the g0005's. Done!
* TemplateInterface
* Add a template interface that an interface writer can modify to create his/her own interface. Done!
===== 1.4 =====
* Core
* Add ability to write model file as Mathematica notebook (rather than a text file). This should be easy since I imagine that if the user defined all the model file information in the mathematica notebook before loading the model, they could load an empty model file and it would work. So, it should be trivial to set LoadModel[] to skip the reading of the model file (if no files are specified) and do the rest of the initiation. Done!
* Is it possible to speed up the code? Done!
* Automatic covariant derivative Done! Thanks to ...
* Simplification:
* Momentum conservation Done!
* !MadGraph Interface
* Add ability to do general 4-point gauge boson vertices (such as in the 3-Site Model.) Done!
* Fix running of QCD. (When comparing results between MC's, I have to set the QCD coupling much lower in the FR MG case.) Done!
* !CalcHEP interface
* Set the widths to be calculated on the fly by default. Done!
* Sherpa interface
* Finish. Done! except for MSSM
* Add automated tests. Done! except for MSSM
* Models
* Add automated test for MSSM. Done!
* Add automated test for UED. Done!
===== 1.6 =====
* Bugs
* SM CKM yukawa parameters have the wrong index in the lagrangian. See email from nebot@roma3.infn.it.
* HC[Ga[5]] seems to have some problems. See emails with subject "Hermitian Conjugation and Ga[5]".
* Core
* Add the ability for LoadModel to be run again without restarting the kernel. Have it clear all the model definitions before initializing the new model. This would be very useful when the user if building the model. Then, the user could load the model, check something and if something was wrong, go back and change that one thing and reload the model without having to restart the kernel.
* Possibly allow the user to use either the singular or plural form of the keywords (for example ParticleName or ParticleNames)?
* Add more checks on the model file information (especially syntax etc.). If there is something wrong, give informative messages that help the user determine what needs to be fixed.
* FeynArts: Celine is working on this.
* Write the .gen file automatically.
* Include higher dimensional operators. I talked to Thomas Hahn about the multi fermion operators. He said that it is true that it cannot determine the fermion flow when the fermion spin index is left implicit (the way we are doing it), but it ''can'' when the spin indices are included explicitly.
* Add FA/FC function that changes external parameter.
* Add more Feynman gauge ability.
* Add new Lorentz structures? (Atleast SSUU vertices to complete renormalizable vertices?)
* Add more FeynArts tests.
* Add note to manual stating that the expressions and numerical values are almost certainly tree level and the user is responsible to understand how these change at loop level.
* Simplification:
* Jacobi identities
* Orthogonal/Unitary matrices
* Sherpa interface
* Finish MSSM.
* Implement explicit gauge representations for a subset of the gauge groups (SU(N), SO(N)?, E6?)
* Automatic generation of gauge fixing and ghost terms
* Check gauge invariance and/or BRST invariance.
* Generate Feynman rules for propagators. Most interfaces will ignore this information, but that is ok. There is interest in Lee-Wick and other nonstandard propagators. Even if the interfaces don't use it, it is still useful.
* Allow LoadModel to run over again without killing the kernel and starting over. This would be a great help in the model building stage when you try something and fix over and over again.
* CH interface:
* Add FeynRules and model information to extlibN.mdl. Done!
* Set CHSimplify->False as the default.
* Automatically resize MaxExpressionLength.
* Check whether this is really required.
* Write the whole func file directly, continuously increasing MaxExpressionLength until the end. Then, write the beginning lines and cat the two together.
* Do this for vertices file as well as func file.
* Omega/Whizard interface. Christian is already working on this!
===== 1.8 =====
* Automatic mass diagonalization
===== 1.10 =====
* Superfield implementation
* Automatic generation of SUSY potential
* Automatic generation of F&D terms.
===== 1.12 =====
* Counterterms (w/ Thomas Hahn)
===== Other =====
* Integrate out heavy fields and derive the effective Lagrangian that results.
* FeynArtsInterface: When the interface discovers vertices that are in terms of the members rather than the classes, right now it redefines the classes so that each member is in its own class. It would be very nice if it defined new tensor parameter couplings containing the couplings for the members and keep the class structure!
* Automatically split higher dimensional operators into 3-point vertices. Where does this belong?
* Mathematica Add-On documentation
* 1->2 and 2->2 matrix elements?
* Write a new interface and corresponding MC that accepts absolutely any model that FeynRules understands. Do the diagrams in CD BG formilism.
* Calculate the propagators from the Lagrangian. Write these propagators to the Feynman diagram calculator where possible. Make a switch for the user to choose whether to do this.