Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changed TrackWithVertexRefSelector to a stream module.
Static analysis and helgrind showed it is safe to convert this module to a stream module. Thread performance analysis showed this conversion is needed for efficient threading. To do the conversion, I introduced ObjectSelectorStream templated base class.
- Loading branch information
Showing
2 changed files
with
36 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#ifndef CommonTools_UtilAlgos_ObjectSelectorStream_h | ||
#define CommonTools_UtilAlgos_ObjectSelectorStream_h | ||
// -*- C++ -*- | ||
// | ||
// Package: CommonTools/UtilAlgos | ||
// Class : ObjectSelectorStream | ||
// | ||
/**\class ObjectSelectorStream ObjectSelectorStream.h "CommonTools/UtilAlgos/interface/ObjectSelectorStream.h" | ||
Description: Template for constructing stream based object selector modules | ||
Usage: | ||
<usage> | ||
*/ | ||
// | ||
// Original Author: Christopher Jones | ||
// Created: Fri, 30 May 2014 18:56:48 GMT | ||
// | ||
|
||
// system include files | ||
#include "FWCore/Framework/interface/stream/EDFilter.h" | ||
#include "CommonTools/UtilAlgos/interface/ObjectSelector.h" | ||
|
||
template<typename Selector, | ||
typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, | ||
typename SizeSelector = NonNullNumberSelector, | ||
typename PostProcessor = ::helper::NullPostProcessor<OutputCollection, edm::stream::EDFilter<>>, | ||
typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection, edm::stream::EDFilter<>>::type, | ||
typename Init = typename ::reco::modules::EventSetupInit<Selector>::type | ||
> | ||
using ObjectSelectorStream = ObjectSelector<Selector,OutputCollection,SizeSelector, PostProcessor,StoreManager, typename ::helper::StoreManagerTrait<OutputCollection, edm::stream::EDFilter<>>::base, Init>; | ||
|
||
#endif |