BSM physics with UFO model files

Asked by SAUMYEN KUNDU on 2020-02-11

Hi,
I am very new to the WHIZARD world (just got it today). I was trying to implement my model UFO and generate some process intended for linear lepton collider.

Now the first confusion I had was on how should I declare my new particles. I tried with the convention that was there in the file 'particles.py' inside the UFO directory, also tried with the PDG code that is there in the same file. But that didn't work. The particles syntax is taking, not the anti-particle syntax.

In this context, I would also like to know if four-fermion vertex is supported or not; because my model has four-fermion effective vertices.

It'll very helpful if you can advise something on it.

Regards,
Saumyen

Question information

Language:
English Edit question
Status:
Solved
For:
WHIZARD Edit question
Assignee:
Juergen Reuter Edit question
Last query:
2020-02-16
Last reply:
2020-02-16
Juergen Reuter (j.r.reuter) said : #1

What are those particular particle names? What is the error message? Or
are the particles simply not recognized?
Yes, 4-fermion vertices are supported.

SAUMYEN KUNDU (saumyen.k) said : #2

Thanks a lot for the prompt reply.

So, the particle name is chi and the anti-particle is chi~ as in 'parameter.py'. Here's a snippet of the file:
_________________________
Chi = Particle(pdg_code = 6000005,
               name = 'Chi',
               antiname = 'Chi~',
               spin = 2,
               color = 1,
               mass = Param.MChi,
               width = Param.WChi,
               texname = 'Chi',
               antitexname = 'Chi~',
               charge = 0,
               GhostNumber = 0,
               LeptonNumber = 0,
               Y = 0)

Chi__tilde__ = Chi.anti()
---------------------

My SINDARIN input file content is ,
_____________
model = SP_Type_DM_UFO (ufo)
process DM_SP = e1, E1 => Chi, Chi~
sqrts = 1000 GeV
n_events = 100
sample_format = lhef
simulate (DM_SP)
--------------------

And the error message is,
_____________
| Reading model file '/usr/local/share/whizard/models/SM.mdl'
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/share/whizard/models/SM_hadrons.mdl'
| Reading commands from file '/home/pdas/HEP_Packages/Whizard_build/TESTprocess.sin'
|
| File '/home/pdas/HEP_Packages/Whizard_build/TESTprocess.sin' (unit = 12), line 3:
model = SP_Type_DM_UFO (ufo)
process DM_SP = e1, E1 => Chi, Chi~
sqrts = 1000 GeV
^----^
| Expected syntax: SEQUENCE <cmd_num> = <var_name> '=' <expr>
| Found token: IDENTIFIER: 'sqrts'
******************************************************************************
******************************************************************************
*** FATAL ERROR: Syntax error (at or before the location indicated above)
******************************************************************************
******************************************************************************
WHIZARD run aborted.
------------------

Regards,
Saumyen

Juergen Reuter (j.r.reuter) said : #3

Ok, that makes it clear, I think. Particle names containing special characters like +, -, ~ etc. have to be quoted, so
please try
process DM_SP = e1, E1 => Chi, "Chi~"
or
process DM_SP = "e1", "E1" => "Chi", "Chi~"

SAUMYEN KUNDU (saumyen.k) said : #4

Thanks, Juergen.

Okay. So now my input looks like this:
_____________
model = SP_Type_DM_UFO (ufo)
process DM_SP = e1, E1 => Chi, "Chi~"
sqrts = 1000 GeV
n_events = 100
sample_format = lhef
simulate (DM_SP)
--------------------

But still it's getting errors and warnings as in below:
_____________
| Reading model file '/usr/local/share/whizard/models/SM.mdl'
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/share/whizard/models/SM_hadrons.mdl'
| Reading commands from file '/home/pdas/HEP_Packages/Whizard_build/TESTprocess.sin'
| Model: Generating model 'SP_Type_DM_UFO' from UFO sources
| Model: Searching for UFO sources in working directory
| Model: Found UFO sources for model 'SP_Type_DM_UFO'
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
| Model: Model file 'SP_Type_DM_UFO.ufo.mdl' generated
| Reading model file 'SP_Type_DM_UFO.ufo.mdl'
| Switching to model 'SP_Type_DM_UFO' (generated from UFO source)
+ IDENTIFIER <variable> = e1
******************************************************************************
*** ERROR: This PDG-array variable is undefined at this point
******************************************************************************
| (WHIZARD run continues)
+ IDENTIFIER <variable> = E1
******************************************************************************
*** ERROR: This PDG-array variable is undefined at this point
******************************************************************************
| (WHIZARD run continues)
| Process library 'default_lib': recorded process 'DM_SP'
sqrts = 1.000000000000E+03
n_events = 100
| Starting simulation for process 'DM_SP'
| Simulate: process 'DM_SP' needs integration
| Integrate: current process library needs compilation
| Process library 'default_lib': compiling ...
| Process library 'default_lib': writing makefile
| Process library 'default_lib': removing old files
  RM default_lib.la
  RM default_lib.lo default_lib_driver.mod DM_SP_i1_par_SP_Type_DM_UFO.mod DM_SP_i1_par_SP_Type_DM_UFO.lo opr_DM_SP_i1.mod DM_SP_i1.lo
  RM DM_SP_i1.f90 SP_Type_DM_UFO.mdl DM_SP_i1_par_SP_Type_DM_UFO.f90
| Process library 'default_lib': writing driver
| Process library 'default_lib': creating source code
  RM DM_SP_i1.f90,.mod,.lo
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
  FC DM_SP_i1_par_SP_Type_DM_UFO.lo
  OMEGA[UFO]DM_SP_i1.f90
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
O'Mega: invalid process specification: not found: ?!
| Process library 'default_lib': compiling sources
  FC default_lib.lo
| Process library 'default_lib': linking
  FCLD default_lib.la
ar: `u' modifier ignored since `D' is the default (see `U')
| Process library 'default_lib': loading
| Process library 'default_lib': ... success.
| Integrate: compilation done
| RNG: Initializing TAO random-number generator
| RNG: Setting seed for random-number generator to 13383
| Initializing integration for process DM_SP:
| Process component 'DM_SP_i1': matrix element vanishes
Warning: Process 'DM_SP': matrix element vanishes
| ------------------------------------------------------------------------
| Process [scattering]: 'DM_SP'
| Library name = 'default_lib'
| Process index = 1
| Process components: [none]
| ------------------------------------------------------------------------
Warning: No cuts have been defined.
|=============================================================================|
| It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] |
|=============================================================================|
   1 0 0.0000000E+00 0.00E+00 0.00 0.00* 0.00
|=============================================================================|
| Simulate: integration done
******************************************************************************
*** ERROR: Simulate: no process has a valid matrix element.
******************************************************************************
| (WHIZARD run continues)
| There were 3 error(s) and 2 warning(s).
| WHIZARD run finished.
|=============================================================================|
----------------------

So, what seems wrong here? Is it still regarding the particle name?

Regards,
Saumyen

Simon Braß (sbrass) said : #5

Beginning from the first error message in your log:

+ IDENTIFIER <variable> = e1
******************************************************************************
*** ERROR: This PDG-array variable is undefined at this point
******************************************************************************
| (WHIZARD run continues)
+ IDENTIFIER <variable> = E1
******************************************************************************
*** ERROR: This PDG-array variable is undefined at this point
******************************************************************************

It seems to me that you have otherwise named leptons in your UFO model.
For your understanding, the e1, E1 naming convention is used a-priori only for the WHIZARD/O'Mega model, however, can also be used in customary models.

What is your associated name for the (anti-)electron in the UFO model?
Cheers,
Simon.

SAUMYEN KUNDU (saumyen.k) said : #6

Okay, thanks for this suggestions, Simon. Indeed, in the 'parameter.py' file inside my UFO directory electron is 'e-' and anti-electron is 'e+'.
So, I made the adjustments in the input file as follows:
____________
model = SP_Type_DM_UFO (ufo)
process DM_SP = "e-", "e+" => "Chi", "Chi~"
sqrts = 1000 GeV
n_events = 100
sample_format = lhef
simulate (DM_SP)
------------------

But still I am getting a error (FATAL ERROR) saying phase-space generation failed.
________________
| Reading model file '/usr/local/share/whizard/models/SM.mdl'
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/share/whizard/models/SM_hadrons.mdl'
| Reading commands from file '/home/pdas/HEP_Packages/Whizard_build/TESTprocess.sin'
| Model: Generating model 'SP_Type_DM_UFO' from UFO sources
| Model: Searching for UFO sources in working directory
| Model: Found UFO sources for model 'SP_Type_DM_UFO'
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
| Model: Model file 'SP_Type_DM_UFO.ufo.mdl' generated
| Reading model file 'SP_Type_DM_UFO.ufo.mdl'
| Switching to model 'SP_Type_DM_UFO' (generated from UFO source)
| Process library 'default_lib': recorded process 'DM_SP'
sqrts = 1.000000000000E+03
n_events = 100
| Starting simulation for process 'DM_SP'
| Simulate: process 'DM_SP' needs integration
| Integrate: current process library needs compilation
| Process library 'default_lib': compiling ...
| Process library 'default_lib': writing makefile
| Process library 'default_lib': removing old files
  RM default_lib.la
  RM default_lib.lo default_lib_driver.mod DM_SP_i1_par_SP_Type_DM_UFO.mod DM_SP_i1_par_SP_Type_DM_UFO.lo opr_DM_SP_i1.mod DM_SP_i1.lo
  RM DM_SP_i1.f90 SP_Type_DM_UFO.mdl DM_SP_i1_par_SP_Type_DM_UFO.f90
| Process library 'default_lib': writing driver
| Process library 'default_lib': creating source code
  RM DM_SP_i1.f90,.mod,.lo
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
  FC DM_SP_i1_par_SP_Type_DM_UFO.lo
  OMEGA[UFO]DM_SP_i1.f90
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
[1/1] e- e+ -> Chi Chi~ ... allowed. [time: 0.01 secs, total: 0.01 secs, remaining: 0.00 secs]
all processes done. [total time: 0.01 secs]
SUMMARY: 5 fusions, 0 propagators, 4 diagrams
SUMMARY: 4 vertices
SUMMARY: 4 UFO vertices: FFFF1, FFFF2, FFFF3, FFFF4
| Process library 'default_lib': compiling sources
  FC default_lib.lo
| Process library 'default_lib': linking
  FCLD default_lib.la
ar: `u' modifier ignored since `D' is the default (see `U')
| Process library 'default_lib': loading
| Process library 'default_lib': ... success.
| Integrate: compilation done
| RNG: Initializing TAO random-number generator
| RNG: Setting seed for random-number generator to 28352
| Initializing integration for process DM_SP:
| Beam structure: [any particles]
| Beam data (collision):
| e- (mass = 5.1100000E-04 GeV)
| e+ (mass = 5.1100000E-04 GeV)
| sqrts = 1.000000000000E+03 GeV
| Phase space: generating configuration ...
| Phase space: ... failed. Increasing phs_off_shell ...
| Phase space: ... failed. Increasing phs_off_shell ...
******************************************************************************
******************************************************************************
*** FATAL ERROR: Phase-space: generation failed
******************************************************************************
******************************************************************************
WHIZARD run aborted.
--------------------------

Regards,
Saumyen

Simon Braß (sbrass) said : #7

Could you please try one of the other phase methods, e.g. flat-weighted phase space using RAMBO (on diet)?
Just place follwoing line before the simulate (or integrate) statement in your Sindarin file:

$phs_method = "rambo"

Alternatively, you try using the "fast-wood" method (that's an alternative ansatz to the wood phase-space generation...):

?omega_write_phs_output = true !! set before process defintion

[...]

$phs_method = "fast_wood"

Cheers,
Simon.

Juergen Reuter (j.r.reuter) said : #8

The problem that you are seeing is that your phase space is trivial, it is completely structureless, constant, because you only have a four-fermion vertex. This is a corner-case that is not (yet) covered in WHIZARD. A proposed workaround (method 1 mentioned by Simon might work, method 2 will not):
(1) generate a working process with the UFO model, e.g.
process foo = "e+", "e-" => "e+", "e-"
which generates a phase-space file for the process foo.
(2) now change the process back to
    process foo = "e+", "e-" => Chi, "Chi~"
    and insert also the option ?check_phs_file = false
    This disables the WHIZARD-internal check for that process.
 The phase-space parameterization might not be the best one, but it should work. As I said, this is a flat phase space.

SAUMYEN KUNDU (saumyen.k) said : #9

Thank you so much both of you, Simon and Juergen for help and suggestions.

I tried both the methods suggested by SImon. The first one worked fine. The cross-section was also fine as I compared with MadGraph. But the second method ended unexpectedly. The last few line of the output is below:
_________________
 Beam data (collision):
| e- (mass = 5.1100000E-04 GeV)
| e+ (mass = 5.1100000E-04 GeV)
| sqrts = 1.000000000000E+03 GeV
| Phase space: generating configuration ...
| Phase space: ... failed. Increasing phs_off_shell ...
At line 1147 of file /home/pdas/HEP_Packages/whizard-2.8.2/src/phase_space/cascades2.f90 (unit = 13, file = 'DM_SP_i1.fds')
Fortran runtime error: End of file
-----------------------------

But the method Juergen suggested, I don't know why but the the gave the same error as before.

Another thing I would like to mention here as might be important in this context. When I was did "make check", I got one FAIL. Here is the last few lines of the check:
___________________________
PASS: simulations.run
FAIL: phs_wood_vis.run
PASS: prc_omega_diags.run
PASS: integrations_history.run
SKIP: prc_recola.run
============================================================================
Testsuite summary for WHIZARD 2.8.2
============================================================================
# TOTAL: 130
# PASS: 117
# SKIP: 12
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
============================================================================
See tests/unit_tests/test-suite.log
============================================================================
Makefile:906: recipe for target 'test-suite.log' failed
make[5]: *** [test-suite.log] Error 1
make[5]: Leaving directory '/home/pdas/HEP_Packages/Whizard_build/tests/unit_tests'
Makefile:1012: recipe for target 'check-TESTS' failed
make[4]: *** [check-TESTS] Error 2
make[4]: Leaving directory '/home/pdas/HEP_Packages/Whizard_build/tests/unit_tests'
Makefile:1991: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/home/pdas/HEP_Packages/Whizard_build/tests/unit_tests'
Makefile:1993: recipe for target 'check' failed
make[2]: *** [check] Error 2
make[2]: Leaving directory '/home/pdas/HEP_Packages/Whizard_build/tests/unit_tests'
Makefile:629: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/pdas/HEP_Packages/Whizard_build/tests'
Makefile:755: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
----------------------------------

Does it have anything to with the failure of the phase-space generation because I guess the default method is 'wood' only!

Thanks again.

Regards,
Saumyen

Juergen Reuter (j.r.reuter) said : #10

The method fastwood is not (yet) supported for UFO models.
The issue with make check is a different one. You can see what happens
in the test-suite.log
If there is something you don’t understand then open a new question.

SAUMYEN KUNDU (saumyen.k) said : #11

Okay, thanks for the clarification.

I checked a few different processes to compare with other similar packages. I met with some inconsistencies in the cross-section values. I don't know how to decide which one is correct. Some mismatch is expected because as per my knowledge Whizard considers the interference terms too while MadGraph doesn't. But the mismatch is, in some cases, extraordinary. Here's some of them listed below.

With my UFO model:
for e- e+ > chi chi~ photon @ sqrt(s) = 500GeV
Whizard: 1.17pb
MadGraph: 0.19 pb

With default model:
for e- e+ > e- e+ @ sqrt(s) = 500GeV
Whizard: 1.36E+08 pb
MadGraph: 156.1 pb

for e- e+ > e- e+ photon @ sqrt(s) = 500GeV
Whizard: 1.51pb
MadGraph: 2.99 pb

for e- e+ > nue nuebar photon @ sqrt(s) = 500GeV
Whizard: 58.53pb
MadGraph: 2.09 pb

But again as I said in the previous mail for process e- e+ > chi chi, it is consistent. Also, for e- e+ > mu- mu+, and e- e+ > chi chi~ Z, the cross-sections are consistent.

So, can you tell me if what I am getting here is fine or not. I mean I am a bit confused if something wrong is occurring or not. Could you, kindly give me some advice?

Regards,
Saumyen

Juergen Reuter (j.r.reuter) said : #12

This is again a different issue. WHIZARD does not apply any cuts per default. The processes which coincide with Madgraph are finite, the one with photons are not. You need selection/isolation cuts to prevent soft and collinear singularities for the photon(s), e.g.
cuts = all Pt > 5 GeV [A] and
             all Dist > 0.5 [A,e1:E1]
etc.
Reading the manual helps.