CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CombinedSeedComparitor Class Reference
Inheritance diagram for CombinedSeedComparitor:
SeedComparitor

Public Member Functions

 CombinedSeedComparitor (const edm::ParameterSet &cfg, edm::ConsumesCollector &iC)
 
bool compatible (const SeedingHitSet &hits) const override
 
bool compatible (const TrajectoryStateOnSurface &, SeedingHitSet::ConstRecHitPointer hit) const override
 
bool compatible (const SeedingHitSet &hits, const GlobalTrajectoryParameters &helixStateAtVertex, const FastHelix &helix) const override
 
void init (const edm::Event &ev, const edm::EventSetup &es) override
 
 ~CombinedSeedComparitor () override
 
- Public Member Functions inherited from SeedComparitor
virtual ~SeedComparitor ()
 

Private Attributes

boost::ptr_vector< SeedComparitorcomparitors_
 
bool isAnd_
 

Detailed Description

Definition at line 8 of file CombinedSeedComparitor.cc.

Constructor & Destructor Documentation

CombinedSeedComparitor::CombinedSeedComparitor ( const edm::ParameterSet cfg,
edm::ConsumesCollector iC 
)

Definition at line 24 of file CombinedSeedComparitor.cc.

References comparitors_, beamerCreator::create(), Exception, timingPdfMaker::get, edm::ParameterSet::getParameter(), isAnd_, ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, Skims_PA_cff::name, AlCaHLTBitMon_QueryRunRegistry::string, and HistogramManager_cfi::VPSet().

24  {
26  if (mode == "and")
27  isAnd_ = true;
28  else if (mode == "or")
29  isAnd_ = false;
30  else
31  throw cms::Exception("Configuration", "Parameter 'mode' of CombinedSeedComparitor must be either 'and' or 'or'\n");
32 
33  typedef std::vector<edm::ParameterSet> VPSet;
34  VPSet psets = cfg.getParameter<VPSet>("comparitors");
35  for (VPSet::const_iterator it = psets.begin(), ed = psets.end(); it != ed; ++it) {
36  std::string name = it->getParameter<std::string>("ComponentName");
37  comparitors_.push_back(SeedComparitorFactory::get()->create(name, *it, iC));
38  }
39 }
T getParameter(std::string const &) const
def create(alignables, pedeDump, additionalData, outputFile, config)
boost::ptr_vector< SeedComparitor > comparitors_
CombinedSeedComparitor::~CombinedSeedComparitor ( )
override

Definition at line 41 of file CombinedSeedComparitor.cc.

41 {}

Member Function Documentation

bool CombinedSeedComparitor::compatible ( const SeedingHitSet hits) const
overridevirtual

Implements SeedComparitor.

Definition at line 50 of file CombinedSeedComparitor.cc.

References comparitors_, and isAnd_.

50  {
51  typedef boost::ptr_vector<SeedComparitor>::const_iterator ITC;
52  for (ITC it = comparitors_.begin(), ed = comparitors_.end(); it != ed; ++it) {
53  bool pass = it->compatible(hits);
54  if (isAnd_ != pass)
55  return pass; // break on failures if doing an AND, and on successes if doing an OR
56  }
57  return isAnd_; // if we arrive here, we have no successes for OR, and no failures for AND
58 }
boost::ptr_vector< SeedComparitor > comparitors_
bool CombinedSeedComparitor::compatible ( const TrajectoryStateOnSurface tsos,
SeedingHitSet::ConstRecHitPointer  hit 
) const
overridevirtual

Implements SeedComparitor.

Definition at line 60 of file CombinedSeedComparitor.cc.

References comparitors_, and isAnd_.

61  {
62  typedef boost::ptr_vector<SeedComparitor>::const_iterator ITC;
63  for (ITC it = comparitors_.begin(), ed = comparitors_.end(); it != ed; ++it) {
64  bool pass = it->compatible(tsos, hit);
65  if (isAnd_ != pass)
66  return pass; // break on failures if doing an AND, and on successes if doing an OR
67  }
68  return isAnd_; // if we arrive here, we have no successes for OR, and no failures for AND
69 }
boost::ptr_vector< SeedComparitor > comparitors_
bool CombinedSeedComparitor::compatible ( const SeedingHitSet hits,
const GlobalTrajectoryParameters helixStateAtVertex,
const FastHelix helix 
) const
overridevirtual

Implements SeedComparitor.

Definition at line 71 of file CombinedSeedComparitor.cc.

References comparitors_, DEFINE_EDM_PLUGIN, and isAnd_.

73  {
74  typedef boost::ptr_vector<SeedComparitor>::const_iterator ITC;
75  for (ITC it = comparitors_.begin(), ed = comparitors_.end(); it != ed; ++it) {
76  bool pass = it->compatible(hits, helixStateAtVertex, helix);
77  if (isAnd_ != pass)
78  return pass; // break on failures if doing an AND, and on successes if doing an OR
79  }
80  return isAnd_; // if we arrive here, we have no successes for OR, and no failures for AND
81 }
boost::ptr_vector< SeedComparitor > comparitors_
void CombinedSeedComparitor::init ( const edm::Event ev,
const edm::EventSetup es 
)
overridevirtual

Implements SeedComparitor.

Definition at line 43 of file CombinedSeedComparitor.cc.

References comparitors_.

43  {
44  typedef boost::ptr_vector<SeedComparitor>::iterator ITC;
45  for (ITC it = comparitors_.begin(), ed = comparitors_.end(); it != ed; ++it) {
46  it->init(ev, es);
47  }
48 }
boost::ptr_vector< SeedComparitor > comparitors_

Member Data Documentation

boost::ptr_vector<SeedComparitor> CombinedSeedComparitor::comparitors_
private

Definition at line 20 of file CombinedSeedComparitor.cc.

Referenced by CombinedSeedComparitor(), compatible(), and init().

bool CombinedSeedComparitor::isAnd_
private

Definition at line 21 of file CombinedSeedComparitor.cc.

Referenced by CombinedSeedComparitor(), and compatible().