A singleton class which reads in database SASA radii files and provides accessors for those values to the RotamerDots class.
The RotamerDots class keeps track of the SASA of some rotamer using DotSphere objects and lots of get overlap calls on atoms. The SASA of a given atom (or residue) depends on what radii are used for the atoms. Different program use different sets of radii, and for the hpatch score, the polar atom radii are expanded. Previously RotamerDots objects would have a static vector member variable that represented the particular set of radii being used. It would also have a second static vector member variable that represented the expanded polar version of the radii. So, no matter how many instances of RotamerDots objects we created, we only maintained two vectors for the radii. Now, we want to make the RotamerDots class only use one set of radii for the hpatch score: the expanded polar radii. The super easy solution would be to remove all the logic that keeps track of SASA when using the standard radii and make the RotamerDots class only calculate that kind of SASA. But, there will probably be more uses in the future for a RotamerDots class that can calculate SASA with a standard set of radii than with the expanded polar ones. So, that's where this class comes in. It will read in database files, depending on which set of radii are requested and provide access to that data in some way.
Let's say we have to create RotamerDots objects for two different sets of SASA radii. When those objects are constructed a pointer to the right set of radii will have to be set. Definitely don't want to copy/store the radii to each instance. If I make it a pointer to this class, then it would only work for one set of radii. So at RotamerDots construct time we have to ask this class to give us a pointer to the set of radii that are requested. Then only one instance of this class exists, and all RotamerDots objects have pointers set to the radii they care about. What would this change in the RotamerDots API? The get_radius() function would dereference the pointer and index into the vector to get the right radius. This structure is similar to how the ChemicalManager works. But, in that class, the functions return AtomTypeSet objects.