CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
reco::MCMatchSelector< T1, T2 > Class Template Reference

#include <MCMatchSelector.h>

Public Member Functions

 MCMatchSelector (const edm::ParameterSet &cfg)
 
bool operator() (const T1 &c, const T2 &mc) const
 true if match is possible More...
 

Private Attributes

bool checkCharge_
 
std::set< int > ids_
 
std::set< int > status_
 

Detailed Description

template<typename T1, typename T2>
class reco::MCMatchSelector< T1, T2 >

Definition at line 14 of file MCMatchSelector.h.

Constructor & Destructor Documentation

◆ MCMatchSelector()

template<typename T1 , typename T2 >
reco::MCMatchSelector< T1, T2 >::MCMatchSelector ( const edm::ParameterSet cfg)
inline

Definition at line 16 of file MCMatchSelector.h.

References looper::cfg, mps_fire::i, reco::MCMatchSelector< T1, T2 >::ids_, mps_update::status, and reco::MCMatchSelector< T1, T2 >::status_.

16  : checkCharge_(cfg.getParameter<bool>("checkCharge")) {
17  std::vector<int> ids = cfg.getParameter<std::vector<int> >("mcPdgId");
18  for (std::vector<int>::const_iterator i = ids.begin(); i != ids.end(); ++i)
19  ids_.insert(*i);
20  std::vector<int> status = cfg.getParameter<std::vector<int> >("mcStatus");
21  for (std::vector<int>::const_iterator i = status.begin(); i != status.end(); ++i)
22  status_.insert(*i);
23  }
std::set< int > ids_
std::set< int > status_

Member Function Documentation

◆ operator()()

template<typename T1 , typename T2 >
bool reco::MCMatchSelector< T1, T2 >::operator() ( const T1 &  c,
const T2 &  mc 
) const
inline

true if match is possible

Definition at line 25 of file MCMatchSelector.h.

References funct::abs(), c, reco::MCMatchSelector< T1, T2 >::checkCharge_, reco::MCMatchSelector< T1, T2 >::ids_, CaloTowersParam_cfi::mc, and reco::MCMatchSelector< T1, T2 >::status_.

25  {
26  if (checkCharge_ && c.charge() != mc.charge())
27  return false;
28  if (!ids_.empty()) {
29  if (ids_.find(abs(mc.pdgId())) == ids_.end())
30  return false;
31  }
32  if (status_.empty())
33  return true;
34  return status_.find(mc.status()) != status_.end();
35  }
std::set< int > ids_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::set< int > status_

Member Data Documentation

◆ checkCharge_

template<typename T1 , typename T2 >
bool reco::MCMatchSelector< T1, T2 >::checkCharge_
private

Definition at line 38 of file MCMatchSelector.h.

Referenced by reco::MCMatchSelector< T1, T2 >::operator()().

◆ ids_

template<typename T1 , typename T2 >
std::set<int> reco::MCMatchSelector< T1, T2 >::ids_
private

◆ status_

template<typename T1 , typename T2 >
std::set<int> reco::MCMatchSelector< T1, T2 >::status_
private