CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
EgammaHLTFilteredObjProducer< OutCollType > Class Template Reference

#include <EgammaHLTFilteredObjProducer.h>

Inheritance diagram for EgammaHLTFilteredObjProducer< OutCollType >:
edm::stream::EDProducer<>

Classes

class  SelectionCut
 

Public Member Functions

 EgammaHLTFilteredObjProducer (const edm::ParameterSet &pset)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~EgammaHLTFilteredObjProducer () override=default
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

template<>
void addObj (const reco::RecoEcalCandidateRef &cand, reco::RecoEcalCandidateCollection &output)
 
template<>
void addObj (const reco::RecoEcalCandidateRef &cand, std::vector< reco::SuperClusterRef > &output)
 
template<>
void addObj (const reco::RecoEcalCandidateRef &cand, std::vector< edm::Ptr< reco::Candidate > > &output)
 

Static Private Member Functions

static void addObj (const reco::RecoEcalCandidateRef &cand, OutCollType &output)
 

Private Attributes

edm::EDGetTokenT< reco::RecoEcalCandidateCollectioncandsToken_
 
std::vector< SelectionCutcuts_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

template<typename OutCollType>
class EgammaHLTFilteredObjProducer< OutCollType >

Definition at line 30 of file EgammaHLTFilteredObjProducer.h.

Constructor & Destructor Documentation

template<typename OutCollType >
EgammaHLTFilteredObjProducer< OutCollType >::EgammaHLTFilteredObjProducer ( const edm::ParameterSet pset)
explicit

Definition at line 110 of file EgammaHLTFilteredObjProducer.h.

References EgammaHLTFilteredObjProducer< OutCollType >::cuts_, EgammaHLTFilteredObjProducer< OutCollType >::fillDescriptions(), and edm::ParameterSet::getParameter().

110  :
111  candsToken_(consumes<reco::RecoEcalCandidateCollection>(pset.getParameter<edm::InputTag>("cands")))
112 {
113  const auto& cutPsets = pset.getParameter<std::vector<edm::ParameterSet> >("cuts");
114  for(auto& cutPset : cutPsets){
115  cuts_.push_back(SelectionCut(cutPset,consumesCollector()));
116  }
117 
118  produces<OutCollType>();
119 
120 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::RecoEcalCandidateCollection > candsToken_
template<typename OutCollType >
EgammaHLTFilteredObjProducer< OutCollType >::~EgammaHLTFilteredObjProducer ( )
overridedefault

Member Function Documentation

Definition at line 8 of file EgammaHLTFilteredEcalCandProducer.cc.

9 {
10  output.push_back(*cand);
11 }
template<>
void EgammaHLTFilteredObjProducer< std::vector< reco::SuperClusterRef > >::addObj ( const reco::RecoEcalCandidateRef cand,
std::vector< reco::SuperClusterRef > &  output 
)
private

Definition at line 8 of file EgammaHLTFilteredSuperClusterProducer.cc.

9 {
10  output.push_back(cand->superCluster());
11 }
template<>
void EgammaHLTFilteredObjProducer< std::vector< edm::Ptr< reco::Candidate > > >::addObj ( const reco::RecoEcalCandidateRef cand,
std::vector< edm::Ptr< reco::Candidate > > &  output 
)
private

Definition at line 19 of file EgammaHLTFilteredEcalCandProducer.cc.

References convertSQLitetoXML_cfg::output, and edm::refToPtr().

20 {
21  output.push_back(edm::refToPtr(cand));
22 }
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
template<typename OutCollType >
static void EgammaHLTFilteredObjProducer< OutCollType >::addObj ( const reco::RecoEcalCandidateRef cand,
OutCollType &  output 
)
inlinestaticprivate

Definition at line 99 of file EgammaHLTFilteredObjProducer.h.

Referenced by EgammaHLTFilteredObjProducer< OutCollType >::produce().

99  {
100  output.push_back(cand);
101  }
template<typename OutCollType >
void EgammaHLTFilteredObjProducer< OutCollType >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 124 of file EgammaHLTFilteredObjProducer.h.

References edm::ParameterSetDescription::add(), edm::ParameterSet::addParameter(), edm::ParameterSetDescription::addVPSet(), edm::ConfigurationDescriptions::addWithDefaultLabel(), makeLayoutFileForGui::defaults(), and EgammaHLTFilteredObjProducer< OutCollType >::produce().

Referenced by EgammaHLTFilteredObjProducer< OutCollType >::EgammaHLTFilteredObjProducer().

125 {
127  desc.add<edm::InputTag>("cands",edm::InputTag("hltEgammaCandidates"));
128 
130  edm::ParameterSetDescription regionCutsDesc;
131  regionCutsDesc.add<double>("cut",-1);
132  regionCutsDesc.add<double>("cutOverE",-1);
133  regionCutsDesc.add<double>("cutOverE2",-1);
134  regionCutsDesc.add<bool>("useEt",false);
135  edm::ParameterSet cutDefaults;
136  cutDefaults.addParameter<double>("cutOverE",0.2);
137  cutDefaults.addParameter<double>("useEt",false);
138 
139  cutsDesc.add<edm::ParameterSetDescription>("barrelCut",regionCutsDesc);
140  cutsDesc.add<edm::ParameterSetDescription>("endcapCut",regionCutsDesc);
141  cutsDesc.add<edm::InputTag>("var",edm::InputTag("hltEgammaHoverE"));
142 
144  defaults.addParameter<edm::InputTag>("var",edm::InputTag("hltEgammaHoverE"));
145  defaults.addParameter<edm::ParameterSet>("barrelCut",cutDefaults);
146  defaults.addParameter<edm::ParameterSet>("endcapCut",cutDefaults);
147  desc.addVPSet("cuts",cutsDesc,std::vector<edm::ParameterSet>{defaults});
148  descriptions.addWithDefaultLabel(desc);
149 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
def defaults(locpath, dataType, var)
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:125
ParameterDescriptionBase * add(U const &iLabel, T const &value)
template<typename OutCollType >
void EgammaHLTFilteredObjProducer< OutCollType >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 153 of file EgammaHLTFilteredObjProducer.h.

References EgammaHLTFilteredObjProducer< OutCollType >::addObj(), EgammaHLTFilteredObjProducer< OutCollType >::candsToken_, TkAlMuonSelectors_cfi::cut, EgammaHLTFilteredObjProducer< OutCollType >::cuts_, eostools::move(), convertSQLitetoXML_cfg::output, and edm::Event::put().

Referenced by EgammaHLTFilteredObjProducer< OutCollType >::fillDescriptions().

154 {
155  for(auto& cut : cuts_) cut.getHandles(iEvent);
156  auto candsHandle = getHandle(iEvent,candsToken_);
157 
158  auto output = std::make_unique<OutCollType>();
159 
160  for(size_t candNr=0;candNr<candsHandle->size();candNr++){
161  reco::RecoEcalCandidateRef candRef(candsHandle,candNr);
162  bool passAllCuts=true;
163  for(const auto& cut: cuts_){
164  if(!cut(candRef)){
165  passAllCuts=false;
166  break;
167  }
168  }
169  if(passAllCuts) addObj(candRef,*output);
170  }
171 
172  iEvent.put(std::move(output));
173 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
static void addObj(const reco::RecoEcalCandidateRef &cand, OutCollType &output)
edm::EDGetTokenT< reco::RecoEcalCandidateCollection > candsToken_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

template<typename OutCollType >
edm::EDGetTokenT<reco::RecoEcalCandidateCollection> EgammaHLTFilteredObjProducer< OutCollType >::candsToken_
private
template<typename OutCollType >
std::vector<SelectionCut> EgammaHLTFilteredObjProducer< OutCollType >::cuts_
private