Opened 8 years ago
Closed 8 years ago
#368 closed defect (fixed)
HEFT in Amegic broken
Reported by: | silvan | Owned by: | Stefan Hoeche |
---|---|---|---|
Priority: | major | Milestone: | rel-2.2.1 |
Component: | ME Generator | Version: | 2.2.1 |
Keywords: | Cc: |
Description
The attached very simple gg->H run card produces a crash during process initialization with Amegic
Attachments (2)
Change History (6)
Changed 8 years ago by
comment:1 Changed 8 years ago by
Component: | Hadron Decays → ME Generator |
---|---|
Owner: | changed from Frank Siegert to Stefan Hoeche |
comment:2 Changed 8 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Hi Silvan,
please use the setup in the examples. The crash is most likely due to the LOOSE_METS scale setter, which is used in integration when specifying METS.
Please reopen if necessary. Cheers, Marek
comment:3 Changed 8 years ago by
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
This seems to be platform/compiler specific. I can reproduce it with the example run cards using gcc 6.3.1. The problem occurs in AMEGIC::Point::FindOrder, where a check 'if (!this)' is implemented. That seems to work with older compilers but in general causes undefined behaviour, I believe. I attached a patch that (I think) solves this issue. Could someone with better knowledge of Amegic check if it doesn't break anything?
Changed 8 years ago by
Attachment: | amegic_point.diff added |
---|
comment:4 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Ah, right. Yes, this is compiler specific. Newer gcc (>6) versions assume that "if (this)" is always true and optimise it away. For some reason (sloppy programming?) this not always true here. Holger fixed this issue in r29425 which went into rel-2-2-2. CMS also recently stumbled over this.
Cheers, Marek
run card