helper template function to build a vector applying a transformation to the elements of an input vector
Infer return type with decltype()
use std::remove_cv and std::remove_reference to allow a Function returning a ReturnType const &
add unit test for FWCore/Utilities/interface/transform.h
stream::EDAnalyzer never updated to pass ModuleCallingContext.
consumes/getByToken/fillDescriptions/py cleanup
Remove CVS keywords from L1*
indentation
Remove CVS keywords from Analysis*
Remove CVS Keywords from CaloOnlineTools
Allow EventPrincipal to create its own StreamID
Can now create its own StreamID so just pass the index to the constructor
PrincipalCache now supports multiple concurrent EventPrincipals
Do not update EventSetup on event transitions
Processes a contiguous group of events in an inner loop

To support concurrent event processing, we need to isolate the
event handling from the rest of the transition handling. This is the
first step.
Moved continuous loop over events into method called from state machine

Since the state machine makes certain useful guarantees when doing an Event transition,
I moved the contiguous event loop into the method called by the state machine when an
event in encountered. This will later change to be where the different Stream tasks are launched.
Percolated PreallocationConfiguration down to WorkerParams

Stream modules and modules which have Run, Lumi or Stream caches
needs to know how many 'slots' to reserve. This gets the information down
to where modules are constructed.
Properly preallocate all per module per stream items

Percolated the PreallocationConfiguration into the module base classes and passed the number of streams to the appropriate virtual functions which are overwritten in the appropriate inheriting classes. The per Run and LuminosityBlock items are still just single items since having multiple such transitions is a later phase of the project.
Allow more than one stream in the job

If more than one stream is requested in the configuration, create them and then distribute the events using a round-robin algorithm.
Updated SecondaryEventProvider to use the new constructor for WorkerManager