Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thread safe access to HCAL conditions containers #6060

Merged

Commits on Oct 30, 2014

  1. Make setTopo non-const to fix thread safety problems

    setTopo is now non-const. This avoids the thread safety issues
    and therefore the member data is no longer mutable nor std::atomic.
    The framework is now used to guarantee that setTopo is called before
    any modules atempt to use the data.
    Dr15Jones committed Oct 30, 2014
    Configuration menu
    Copy the full SHA
    5cbf1e5 View commit details
    Browse the repository at this point in the history
  2. Make access to HCAL conditions thread safe

    The setTopo method of the HCAL conditions container is now non-const.
    Therefore HcalDbProducer now makes its own copy of each container
    and calls setTopo on that copy.
    The HcalChannelQuality is treated special since it is used by many
    different modules. The producer now has a special 'produce' method
    which reads the original HcalChannelQuality conditions from the
    Record, copies it and calls setTopo on that copy. This copy is then
    put back into the Record and is accessible with the "withTopo" tag.
    Dr15Jones committed Oct 30, 2014
    Configuration menu
    Copy the full SHA
    2771cfb View commit details
    Browse the repository at this point in the history
  3. Use thread-safe access to HCAL containers

    The HCAL containers are no longer updated once published in the
    EventSetup. Therefore when reading the conditions one must either
    1) if using HcalChannelQuality, use 'withTopo' when getting the object
      from the HcalChannelQualityRcd
    2) after getting the conditions, copy it and call setTopo on the copy.
    Dr15Jones committed Oct 30, 2014
    Configuration menu
    Copy the full SHA
    4257768 View commit details
    Browse the repository at this point in the history
  4. CaloTPGTranscoderULUTs needs own copy of HcalLutMetadata

    The change to the HCAL conditions containers requires a user of
    HcalLutMetadata to make its own copy and then call setTopo.
    Dr15Jones committed Oct 30, 2014
    Configuration menu
    Copy the full SHA
    46fa410 View commit details
    Browse the repository at this point in the history
  5. Use the copy of HcalLutMetadata not the original from the EventSetup

    The previous commit properly copied the HcalLutMetadata but then failed
    to use it.
    Dr15Jones committed Oct 30, 2014
    Configuration menu
    Copy the full SHA
    d6f71a1 View commit details
    Browse the repository at this point in the history