cbernet / heppy

A python event processing framework for high energy physics based on ROOT
Other
8 stars 59 forks source link

Particles not completely initialized #42

Closed jndrf closed 6 years ago

jndrf commented 7 years ago

I updated to the most recent heppy version on Thursday and the analysis fails, because some particle objects do not have the _start_vertex variable, see Traceback in the attached text file. A quick investigation with pdb (also appended) let me assume that the bug is in heppy/particles/fcc/particle.py. The variable _start_vertex (and _end_vertex) is not always initialized, but papas always asks for it. My suggestion would be to give them a default value (before "if hasattr(fccobj, 'startVertex'):"), but in order to do so the constructor of the Vertex class would have to be overloaded to create Vertex instances without the fccobj. The events were generated with Pythia 8, I can provide a file if needed. Besides, there are also some capitalization errors in the init() of the particle class (e. g. self._charge = fccobj.core().charge instead of self._charge = fccobj.Core().Charge). heppy_fehler.txt

cbernet commented 7 years ago

Hi!

Can you send me your Pythia root file? I assume you generated it with fcc-pythia8-generate. Which version did you use for fcc-physics? It looks like there is a mismatch with your version of heppy.

Le 20 mai 2017 20:19:23 GMT+02:00, jndrf notifications@github.com a écrit :

I updated to the most recent heppy version on Thursday and the analysis fails, because some particle objects do not have the _start_vertex variable, see Traceback in the attached text file. A quick investigation with pdb (also appended) let me assume that the bug is in heppy/particles/fcc/particle.py. The variable _start_vertex (and _end_vertex) is not always initialized, but papas always asks for it. My suggestion would be to give them a default value (before "if hasattr(fccobj, 'startVertex'):"), but in order to do so the constructor of the Vertex class would have to be overloaded to create Vertex instances without the fccobj. The events were generated with Pythia 8, I can provide a file if needed. Besides, there are also some capitalization errors in the init() of the particle class (e. g. self._charge = fccobj.core().charge instead of self._charge = fccobj.Core().Charge). heppy_fehler.txt

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/cbernet/heppy/issues/42

Colin -- sent from my phone

jndrf commented 7 years ago

Hi!

Indeed I used fcc-pythia8-generate and version 0.7 of fcc-physics. The file is on the afs, I'll email you the path.

Cheers,

Jonas

Am 20.05.2017 um 20:57 schrieb Colin Bernet:

Hi!

Can you send me your Pythia root file? I assume you generated it with fcc-pythia8-generate. Which version did you use for fcc-physics? It looks like there is a mismatch with your version of heppy.

Le 20 mai 2017 20:19:23 GMT+02:00, jndrf notifications@github.com a écrit :

I updated to the most recent heppy version on Thursday and the analysis fails, because some particle objects do not have the _start_vertex variable, see Traceback in the attached text file. A quick investigation with pdb (also appended) let me assume that the bug is in heppy/particles/fcc/particle.py. The variable _start_vertex (and _end_vertex) is not always initialized, but papas always asks for it. My suggestion would be to give them a default value (before "if hasattr(fccobj, 'startVertex'):"), but in order to do so the constructor of the Vertex class would have to be overloaded to create Vertex instances without the fccobj. The events were generated with Pythia 8, I can provide a file if needed. Besides, there are also some capitalization errors in the init() of the particle class (e. g. self._charge = fccobj.core().charge instead of self._charge = fccobj.Core().Charge). heppy_fehler.txt

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/cbernet/heppy/issues/42

Colin -- sent from my phone

cbernet commented 7 years ago

Hi Jonas,

The most recent version of heppy is adapted to version 0.8 of fcc-physics. Can you try to generate a pythia root file with this version, and to read it with your version of heppy? Let me know.

Colin

Le 22 mai 2017 à 11:04, jndrf notifications@github.com a écrit :

Hi!

Indeed I used fcc-pythia8-generate and version 0.7 of fcc-physics. The file is on the afs, I'll email you the path.

Cheers,

Jonas

Am 20.05.2017 um 20:57 schrieb Colin Bernet:

Hi!

Can you send me your Pythia root file? I assume you generated it with fcc-pythia8-generate. Which version did you use for fcc-physics? It looks like there is a mismatch with your version of heppy.

Le 20 mai 2017 20:19:23 GMT+02:00, jndrf <notifications@github.com mailto:notifications@github.com> a écrit :

I updated to the most recent heppy version on Thursday and the analysis fails, because some particle objects do not have the _start_vertex variable, see Traceback in the attached text file. A quick investigation with pdb (also appended) let me assume that the bug is in heppy/particles/fcc/particle.py. The variable _start_vertex (and _end_vertex) is not always initialized, but papas always asks for it. My suggestion would be to give them a default value (before "if hasattr(fccobj, 'startVertex'):"), but in order to do so the constructor of the Vertex class would have to be overloaded to create Vertex instances without the fccobj. The events were generated with Pythia 8, I can provide a file if needed. Besides, there are also some capitalization errors in the init() of the particle class (e. g. self._charge = fccobj.core().charge instead of self._charge = fccobj.Core().Charge). [heppy_fehler.txt](https://github.com/cbernet/heppy/files/1016394/heppy_fehler.txt https://github.com/cbernet/heppy/files/1016394/heppy_fehler.txt)

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/cbernet/heppy/issues/42 https://github.com/cbernet/heppy/issues/42

Colin -- sent from my phone

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cbernet/heppy/issues/42#issuecomment-303042393, or mute the thread https://github.com/notifications/unsubscribe-auth/AD8ku7dOepKE7Gd5ultM1wMFlaO7PrA4ks5r8U-OgaJpZM4NhX8W.

jndrf commented 7 years ago

Hi Colin,

when I try to use fcc-physics v0.8 from the afs, Pythia segfaults. I use the right software, don't I? test.txt is one of the example cardfiles that comes with fcc-physics, it works with v0.7.

[ ~]$ source /afs/cern.ch/exp/fcc/sw/0.8/init_fcc_stack.sh
INFO - Defaulting to afs as file system.
Platform detected: Linux
Software taken from /afs/cern.ch/exp/fcc/sw/0.8 and LCG_87
[ ~]$ fcc-pythia8-generate test.txt
start processing
output file: test.root

 *** Break *** segmentation violation
 0x0000000000426338 in main + 0x570 from fcc-pythia8-generate
 0x00007f3fe5c31d1d in __libc_start_main + 0xfd from /lib64/libc.so.6
 0x0000000000425c89 in <unknown> from fcc-pythia8-generate

Afterwards, I tried to clone fcc-physics from github and build it myself. However, it fails two tests.


[ build]$ make test
....
96% tests passed, 2 tests failed out of 55

Total Test time (real) = 406.82 sec

The following tests FAILED:
     52 - read (Failed)
     55 - generate-ZH_Zmumu_Hbb (OTHER_FAULT)
Errors while running CTest
make: *** [test] Fehler 8

I can create events with it, but since I'm interested in ee to ZH events, this error worries me. The analysis still fails, but from the traceback below I suppose that the interface of the IsolationAnalyzer class has changed and I have to call it in a different way.

  File "~/FCC/heppy/analyzers/IsolationAnalyzer.py", line 74, in process
    candidates = getattr(event, self.cfg_ana.candidates)
AttributeError: 'Analyzer' object has no attribute 'candidates'

For reference, this is how it is currently called:

from heppy.analyzers.IsolationAnalyzer import IsolationAnalyzer
from heppy.particles.isolation import EtaPhiCircle
iso_leptons = cfg.Analyzer(
    IsolationAnalyzer,
    leptons = 'leptons',
    particles = 'rec_particles',
    #particles = 'gen_particles_stable',                                                              
    iso_area = EtaPhiCircle(0.4)
)
cbernet commented 7 years ago

Hi Jonas,

You should source the init script from cvmfs, not afs, as shown here: http://fccsw.web.cern.ch/fccsw/tutorials/fcc-tutorials/FccSoftwareGettingStarted.html http://fccsw.web.cern.ch/fccsw/tutorials/fcc-tutorials/FccSoftwareGettingStarted.html Please let me know if it works or not (it does for us)

If it does not, it could be because of a mismatch in your environment (you redefining variables by hand).

If you want, you can contact me on skype: colin.bernet so that we can iterate a bit faster.

Cheers,

Colin

Le 23 mai 2017 à 12:46, jndrf notifications@github.com a écrit :

Hi Colin,

when I try to use fcc-physics v0.8 from the afs, Pythia segfaults. I use the right software, don't I? test.txt is one of the example cardfiles that comes with fcc-physics, it works with v0.7.

[ ~]$ source /afs/cern.ch/exp/fcc/sw/0.8/init_fcc_stack.sh INFO - Defaulting to afs as file system. Platform detected: Linux Software taken from /afs/cern.ch/exp/fcc/sw/0.8 and LCG_87 [ ~]$ fcc-pythia8-generate test.txt start processing output file: test.root

Break segmentation violation 0x0000000000426338 in main + 0x570 from fcc-pythia8-generate 0x00007f3fe5c31d1d in __libc_start_main + 0xfd from /lib64/libc.so.6 0x0000000000425c89 in from fcc-pythia8-generate Afterwards, I tried to clone fcc-physics from github and build it myself. However, it fails two tests.

[ build]$ make test .... 96% tests passed, 2 tests failed out of 55

Total Test time (real) = 406.82 sec

The following tests FAILED: 52 - read (Failed) 55 - generate-ZH_Zmumu_Hbb (OTHER_FAULT) Errors while running CTest make: *** [test] Fehler 8 I can create events with it, but since I'm interested in ee to ZH events, this error worries me. The analysis still fails, but from the traceback below I suppose that the interface of the IsolationAnalyzer class has changed and I have to call it in a different way.

File "~/FCC/heppy/analyzers/IsolationAnalyzer.py", line 74, in process candidates = getattr(event, self.cfg_ana.candidates) AttributeError: 'Analyzer' object has no attribute 'candidates' For reference, this is how it is currently called:

from heppy.analyzers.IsolationAnalyzer import IsolationAnalyzer from heppy.particles.isolation import EtaPhiCircle iso_leptons = cfg.Analyzer( IsolationAnalyzer, leptons = 'leptons', particles = 'rec_particles',

particles = 'gen_particles_stable',

iso_area = EtaPhiCircle(0.4)

)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cbernet/heppy/issues/42#issuecomment-303361277, or mute the thread https://github.com/notifications/unsubscribe-auth/AD8ku8UidvnqSwulUjgAXvs5Vk1ZRxYIks5r8rjqgaJpZM4NhX8W.

jndrf commented 7 years ago

It works. Thank you, Colin. Cheers,

Jonas

cbernet commented 7 years ago

Great! Thanks for letting me know.

Le 23 mai 2017 à 16:13, jndrf notifications@github.com a écrit :

It works. Thank you, Colin. Cheers,

Jonas

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cbernet/heppy/issues/42#issuecomment-303411405, or mute the thread https://github.com/notifications/unsubscribe-auth/AD8kuwi9Wvp3oHnPU-MkUgxYHCUEq1Q2ks5r8umigaJpZM4NhX8W.