Removed unneeded const_cast

Although the const_cast was not needed, it was showing up as a warning
by the thread-safety checker.
Changed statics to const statics

Previously, the function local statics were not declared const because
there was no way to easily set their values via the constructor. This
code was changed to use 'const function statics' where we use a helper
function to do the setup. This avoids thread-safety issues.
Made Conversion thread-safe and smaller in memory and storage

Conversion previously stored two copies of tracks, one as Refs and
the other as RefToBase. Only the RefToBase were used internally and
externally. However, the RefToBase were filled from the Ref as needed.
Therefore I dropped the Refs and instead fill the RefToBase from the
Refs in the appropriate constructors. This means the vector of RefToBases
does not have to be mutable and therefore the object is thread-safe.

Added a ROOT I/O rule which allows reading back the old format which
has the Refs in the case where only the Refs were ever filled.
Thread safe changes
Use thread safe collection for static in L1MuGMTReadoutCollection

L1MuGMTReadoutCollection::getRecord returns a const reference to a
dummy item if the requested item is not in its main collection. Prevously
this was done by using a static std::map to hold any requested missing
items. To make this thread safe we changed to a tbb::concurrent_unordered_map.
Thread safe changes
Replace auto ptr with unique_ptr
Remove default ctor as suggested by Ianna
Fix ptr release
Replace auto ptr with unique_ptr
fixed bug which lead to seg-faults in IB tests

In the constructor of Conversion, resize() was called instead of reserve(). This caused the vector to contain an invalid first entry which caused the seg-fault.
Changes non-const statics in PFCluster to avoid static analyzer warnings

The static analyzer flagged several non-const statics in this class as potential threaded problems. We removed instanceCounter_ since it was never used and moved the dummyVtx function static used as a return value to be a const
class static. The statics associated with setDepthCorParameters and getDepthCorParameters were left as is but they were reported to the appropriate L2s.
Add missing initialization
Make statics thread local
static data member is not thread safe and doesn't need to be static
Fixed typo in operator* which was never called before

The non-const version of operator* was missing a ‘*’ and was not caught since it had not been called.
Updated the unit test so it tests all the functions, both const and non-const.
Removed the need for a non-const static in UserData.

Moved the calculation of the name demangling to a static function of the base class. This allowed the removal of a non-const static and avoided having to create that code for each template type. The const static name only needs call that function once per job. This will avoid a potential thread-safety issue.
Changed a non-const function static to a const class static in AcceptAllFilter

The class AcceptAllFilter has a method singleton method 'get' which was creating a non-const function static and returning it a const. This was replaced with a const class static so that the compiler didn't have to create code in each calling file for the function static. This avoids having the static analyzer produce a thread-safety complaint.
Made caching thread-safe in pat::MET

Used std::atomic<*> to manage a thread safe cache of information. This dropped a transient data member so classes_def_objects.xml file had to be changed.
Made pat::Tau and pat::Jet thread-safe

Changed caches to be of type edm::AtomicPtrCache<> to avoid thread safety issues.