/////////////////////////////////////////////////////////////////////////////// /// RAT::GeoUtils /// /// \brief Implement auxiliary functions to patch geometry classes /// /// \author Nuno Barros /// /// REVISION HISTORY:\n /// 14-11-2019 : N Barros - Initial release /// /// \details This file implements a few utilitary functions that can be used by the /// main geometry classes to correct for effects that can be runtime dependent, such as the /// scintillator level during partial fill. /// /// /////////////////////////////////////////////////////////////////////////////// /* * GeoUtils.hh * * Created on: Nov 14, 2019 * Author: nbarros */ #ifndef GEO_GEOUTILS_HH_ #define GEO_GEOUTILS_HH_ namespace RAT { namespace GeoUtil { // NFB: Check if there is a corresponding split_z runtime table // -- There are two things that one needs to check: // 1. The split_z value is set in the user plane (i.e., macro) // * In this case we no longer need to check the runtime table, as // a user plane value has priority // (means the user *wants* the split to be something specific) // // 2. The split_z value exists in the runtime table (run plane) // * The runtime table is not a geometry table, so we want to 'transfer' // the split into the geometry object. // We do this by setting a user plane value (equivalent to set it in the macro) // NOTE: In a hopefully non-distant future, one would like to have the AV offset // in a database entry as well. In this case, we must make sure that the runtime // offset is updated before this function is called, or an inconsistent state could result void UpdatePartialSplitFromDB(double &split_pos); // Wrapper function that does not care about a return void CheckPartialSplitAndUpdate(); } } #endif /* GEO_GEOUTILS_HH_ */