test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CombinedMultiHitGenerator.cc
Go to the documentation of this file.
2 
10 
12  theSeedingLayerToken(iC.consumes<SeedingLayerSetsHits>(cfg.getParameter<edm::InputTag>("SeedingLayers")))
13 {
14  edm::ParameterSet generatorPSet = cfg.getParameter<edm::ParameterSet>("GeneratorPSet");
15  std::string generatorName = generatorPSet.getParameter<std::string>("ComponentName");
16  theGenerator.reset(MultiHitGeneratorFromPairAndLayersFactory::get()->create(generatorName, generatorPSet));
17  theGenerator->init(std::make_unique<HitPairGeneratorFromLayerPair>(0, 1, &theLayerCache), &theLayerCache);
18 }
19 
21 
24  const edm::Event& ev, const edm::EventSetup& es)
25 {
27  ev.getByToken(theSeedingLayerToken, hlayers);
28  const SeedingLayerSetsHits& layers = *hlayers;
29  if(layers.numberOfLayersInSet() != 3)
30  throw cms::Exception("Configuration") << "CombinedMultiHitGenerator expects SeedingLayerSetsHits::numberOfLayersInSet() to be 3, got " << layers.numberOfLayersInSet();
31 
32  theGenerator->initES(es);
33 
34  std::vector<LayerTriplets::LayerSetAndLayers> trilayers = LayerTriplets::layers(layers);
35  for(const auto& setAndLayers: trilayers) {
36  theGenerator->hitSets( region, result, ev, es, setAndLayers.first, setAndLayers.second);
37  }
39 }
40 
edm::EDGetTokenT< SeedingLayerSetsHits > theSeedingLayerToken
T getParameter(std::string const &) const
unsigned short numberOfLayersInSet() const
Get number of layers in each SeedingLayerSets.
tuple cfg
Definition: looper.py:293
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
virtual void hitSets(const TrackingRegion &reg, OrderedMultiHits &result, const edm::Event &ev, const edm::EventSetup &es)
from base class
bool ev
tuple result
Definition: mps_fire.py:83
CombinedMultiHitGenerator(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC)
std::unique_ptr< MultiHitGeneratorFromPairAndLayers > theGenerator
SurfaceDeformation * create(int type, const std::vector< double > &params)
T get(const Candidate &c)
Definition: component.h:55