Modernize Calo -- part 2
- prefer struct over class with only public member functions
- prefer DeclareInterfaceID over explicit code
- prefer inheriting from extends over public virtual
- prefer direct member initialization
- prefer implicitly generated destructors
- use auto
- limit scope as much as possible
- prefer override over virtual
- prefer compare(...) over substr(..) == ... as it avoids a temporary string
- prefer range based for loop
- enable CaloVector move constructor, and use it avoid a copy
- prefer standalone function in anonymous namespace over class in class scope which does not use class member(function)s
- prefer remove-erase in situ over double copy requiring temporary memory
- prefer pass-by-reference if passing a nullptr implies a SEGV
- prefer STL algorithms over raw loops
- prefer emplace_back over push_back of a temorary
- add const when possible
- add final when possible
- make CaloVector final
- remove unused CaloFunctionsCollection
- prefer nullptr over 0
- remove unused CaloCollection
- remove obsolete CVS/SVN keywords
- remove deprecated std::{unary,binary}_function
- prefer struct with overloaded operator() over templated struct with explicit specialized operator()
- prefer std::{min,max}
- add final if possible