Make setTriggerNames non-const: force people who want to use the by-name interface to make a local copy of the PackedTriggerPrescales, so it's threadsafe
AtomicPtrCache for the relinked electron supercluster
fix p4
thread-safe relinking of pat photon cluster, as it was done for electrons
remove unwanted test file
cleanup getbylabel
Adding a few missing setters to GenJet and GsfElectron (used for slimming in miniAOD)
make patobjects friends of the slimmers, remove the defines, use newly added setters for reco base class data
Merge pull request #16 from gpetruc/miniAOD-from700

propagate fixes from the miniAOD-from710pre5  branch to the 70X one from gpetruc
Make the unpacking of names a non-const call
Merge pull request #20 from gpetruc/miniAOD-from700

Make the unpacking of names a non-const call
Clean up of cfg files: Configuration of TrackerTopologyEP added
Configure the MessageLogger to print Warnings in the cronjob log file
First version of the unified track selection and refitting sequence.
The variable remainingEvents_ may be read by multiple threads simultanously so must be atomic
First version to actually process multiple events concurrently

This version uses a TBB task per Stream to process Events with a mutex used to protect the Source in a critical section. This is sufficient to test the thread safety of the framework internals.
Propagate exceptions thrown during processing to the main thread

The EventProcessor now uses the new C++11 std::exception_ptr, std::current_exception() and std:rethrow_exception() to capture a thrown exception in a thread processing an event and then transfer that exception to the main thread to be rethrown. We use an std::atomic to provide thread safe update of the std::exception_ptr member data in the case of multiple processing threads having an exception. In such a case, only one of the exceptions will be kept.
Added classes to managed resources shared by multiple modules

The SharedResourcesRegistry is the centralized place where resources are registered and where the framework can get SharedResourcesAcquirer instances. These two classes work together to allow safe sharing of non-thread safe resources between modules. A unit test is included to test the two classes.
Switched to using recursive_mutex and moved SharedResourcesAcquirer.h to interface

In order to more easily accommodate unscheduled execution, I switched from using a mutex to a recursive_mutex. This will be less performant since the locks will be held longer than might be needed but it is easier to implement initially. A more performant way would be to release the locks temporarily while we are doing a ‘edm::Event::getBy*’ call.
Made legacy modules thread safe

Now uses a std::mutex to guarantee a module instance is only processing one event at a time. Also uses a edm::SharedResourcesAcquirer to get the legacy resource and therefore guarantee only one legacy module is running at a time.