BSM physics with UFO model files
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:
- Last reply:
Revision history for this message
![]() |
#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.
Revision history for this message
![]() |
#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',
spin = 2,
mass = Param.MChi,
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/
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/
| Reading commands from file '/home/
|
| File '/home/
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
Revision history for this message
![]() |
#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~"
Revision history for this message
![]() |
#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/
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/
| Reading commands from file '/home/
| 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_
| Reading model file 'SP_Type_
| 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_
RM DM_SP_i1.f90 SP_Type_DM_UFO.mdl DM_SP_i1_
| Process library 'default_lib': writing driver
| Process library 'default_lib': creating source code
RM DM_SP_i1.
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
FC DM_SP_i1_
OMEGA[
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
Revision history for this message
![]() |
#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.
Revision history for this message
![]() |
#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/
| Preloaded model: SM
| Process library 'default_lib': initialized
| Preloaded library: default_lib
| Reading model file '/usr/local/
| Reading commands from file '/home/
| 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_
| Reading model file 'SP_Type_
| 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_
RM DM_SP_i1.f90 SP_Type_DM_UFO.mdl DM_SP_i1_
| Process library 'default_lib': writing driver
| Process library 'default_lib': creating source code
RM DM_SP_i1.
warning: case sensitive parameter names: renaming 'LAM' -> 'LAM_1'
warning: case sensitive parameter names: renaming 'lam' -> 'lam_2'
FC DM_SP_i1_
OMEGA[
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
Revision history for this message
![]() |
#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_
[...]
$phs_method = "fast_wood"
Cheers,
Simon.
Revision history for this message
![]() |
#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.
Revision history for this message
![]() |
#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/
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_
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_
=======
Makefile:906: recipe for target 'test-suite.log' failed
make[5]: *** [test-suite.log] Error 1
make[5]: Leaving directory '/home/
Makefile:1012: recipe for target 'check-TESTS' failed
make[4]: *** [check-TESTS] Error 2
make[4]: Leaving directory '/home/
Makefile:1991: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/home/
Makefile:1993: recipe for target 'check' failed
make[2]: *** [check] Error 2
make[2]: Leaving directory '/home/
Makefile:629: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/
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
Revision history for this message
![]() |
#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.
Revision history for this message
![]() |
#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
Revision history for this message
![]() |
#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.