DataMedSci / pymchelper

Python toolkit for SHIELD-HIT12A and FLUKA
http://datamedsci.github.io/pymchelper/
15 stars 7 forks source link

Problem with reading BDO file from SHIELD-HIT12A simulation #401

Closed grzanka closed 3 years ago

grzanka commented 3 years ago

Simulation was performed using development version of SH12A, branch 379-material-and-zone-gets-normalised, last commit today

(venv) ➜  SecondaryFragments git:(main) ✗ convertmc --version      
1.6.0
(venv) ➜  SecondaryFragments git:(main) ✗ convertmc inspect sh12a/depth_profile_avgenergy_zoom.bdo 
ValueError: 43522 is not a valid SHBDOTagID

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/bin/convertmc", line 8, in <module>
    sys.exit(main())
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/run.py", line 153, in main
    status = convertfromlist(parsed_args.input,
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/input_output.py", line 178, in convertfromlist
    estimator = fromfilelist(filelist, error, nan)
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/input_output.py", line 78, in fromfilelist
    result = fromfile(input_file_list[0])
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/input_output.py", line 55, in fromfile
    if not reader.read(estimator):  # unsuccefful read
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/readers/common.py", line 23, in read
    result = self.read_data(estimator)
  File "/home/grzanka/PycharmProjects/SecondaryFragments/venv/lib/python3.8/site-packages/pymchelper/readers/shieldhit/reader_bdo2019.py", line 51, in read_data
    SHBDOTagID(token_id).name,
  File "/usr/lib/python3.8/enum.py", line 309, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.8/enum.py", line 600, in __new__
    raise exc
  File "/usr/lib/python3.8/enum.py", line 584, in __new__
    result = cls._missing_(value)
  File "/usr/lib/python3.8/enum.py", line 613, in _missing_
    raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 43522 is not a valid SHBDOTagID
nbassler commented 3 years ago

43522 is 0xAA02 SHBDO_RT_TIMESIM,

I thought pymchelper ignores unknown tags silently. For future extentions, how about just printing a INFO or WARN if an unknown tag is encountered? This may make development easier and less risk to stall should any of us be unavailable over longer time.

grzanka commented 3 years ago

It is not ignoring uknown tags, but I will add it

nbassler commented 3 years ago

or maybe at lest output on INFO level if run with -v, would be nice to see