Opened 15 years ago
Closed 15 years ago
#325 closed defect (fixed)
Whizard restriction-handling completely broken
Reported by: | dwiesler | Owned by: | kilian |
---|---|---|---|
Priority: | P1 | Milestone: | v2.0.3 |
Component: | core | Version: | 2.0.2 |
Severity: | critical | Keywords: | |
Cc: |
Description
Using the casc_dec.sin example once again and editing the full process w/ restrictions in the following way:
process full = u, U => SU1, u, e1, E1, neu1 {$restrictions = "4+5+6+7~su1 && 5+6+7~neu2 && 6+7~se12"}
works perfectly, while just changing the position of electron and positron as in
process full = u, U => SU1, u, e1, E1, neu1 {$restrictions = "4+5+6+7~su1 && 5+6+7~neu2 && 5+7~SE12"}
correctly starts O'MEGA, which in turn succesfully generates the amplitude but WHIZARD shortly after quits w/ the following fatal while loading the process library after linking:
libtool: link: ranlib .libs/processes.a libtool: link: ( cd ".libs" && rm -f "processes.la" && ln -s "../processes.la" "processes.la" ) | Loading process library 'processes' | Process 'dec_su_q': updating configuration | Process 'dec_neu_sl2': updating configuration | Process 'susybg': updating configuration | Restriction string = "4+5+6+7~su1&&5+6+7~neu2&&5+7~se2-" ****************************************************************************** ****************************************************************************** *** FATAL ERROR: Syntax error in restrictions specification ****************************************************************************** ****************************************************************************** WHIZARD run aborted.
As I see it, this was introduced in r2247 w/ the introduction of particle name transitions in the restriction string, since earlier versions don't have this problem.
Change History (6)
comment:1 Changed 15 years ago by
comment:3 Changed 15 years ago by
Component: | models → core |
---|---|
Owner: | changed from Juergen Reuter to kilian |
Priority: | P3 → P1 |
Severity: | normal → critical |
Summary: | Whizard restriction-handling partially broken → Whizard restriction-handling completely broken |
The whole set-up is not working because of the handling of the + sign in the parsing/lexing procedure. Take the example:
model = Littlest process proc = psip, A => psip, A { $restrictions = "1+3~psip"} sqrts = 5000 GeV integrate (proc)
This produces the error message:
| Loading process library 'processes' | Process 'brot1': updating configuration | Particle name = psi ****************************************************************************** ****************************************************************************** *** FATAL ERROR: Model 'Littlest' has no particle with this name ****************************************************************************** ****************************************************************************** WHIZARD run aborted.
because WHIZARD takes psi and not psi+ as one lexeme.
comment:4 Changed 15 years ago by
AND NOTE, there are also particles in the Littlest Higgs like phi++.
comment:6 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The problem was that the restriction string was translated one when configuring, and a second time when reading the library. The translation now prefixes the string by "!", a string with that prefix is not translated, and the prefix is stripped when calling O'Mega.
The problem are particles that are translated into something containing a + or - symbol, in DWs examples these are the selectrons. Leaving out the last restriction works.