whizard is hosted by Hepforge, IPPP Durham

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 Juergen Reuter

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.

comment:2 Changed 15 years ago by Juergen Reuter

Actually it is only the - sign, the + sign works.

comment:3 Changed 15 years ago by Juergen Reuter

Component: modelscore
Owner: changed from Juergen Reuter to kilian
Priority: P3P1
Severity: normalcritical
Summary: Whizard restriction-handling partially brokenWhizard 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 Juergen Reuter

AND NOTE, there are also particles in the Littlest Higgs like phi++.

comment:5 Changed 15 years ago by kilian

Status: newassigned

Fixed already. Just running make check.

comment:6 Changed 15 years ago by kilian

Resolution: fixed
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.