CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CombinedHitTripletGenerator.cc
Go to the documentation of this file.
2 
8 #include "LayerTriplets.h"
12 
13 
14 using namespace std;
15 using namespace ctfseeding;
16 
18  : initialised(false), theConfig(cfg)
19 { }
20 
22 {
23 // edm::ParameterSet leyerPSet = cfg.getParameter<edm::ParameterSet>("LayerPSet");
24 // SeedingLayerSets layerSets = SeedingLayerSetsBuilder(leyerPSet).layers(es);
25 
26  std::string layerBuilderName = cfg.getParameter<std::string>("SeedingLayers");
28  es.get<TrackerDigiGeometryRecord>().get(layerBuilderName, layerBuilder);
29 
30  SeedingLayerSets layerSets = layerBuilder->layers(es);
31 
32 
33  vector<LayerTriplets::LayerPairAndLayers>::const_iterator it;
34  vector<LayerTriplets::LayerPairAndLayers> trilayers=LayerTriplets(layerSets).layers();
35 
36  for (it = trilayers.begin(); it != trilayers.end(); it++) {
37  SeedingLayer first = (*it).first.first;
38  SeedingLayer second = (*it).first.second;
39  vector<SeedingLayer> thirds = (*it).second;
40 
41  edm::ParameterSet generatorPSet = theConfig.getParameter<edm::ParameterSet>("GeneratorPSet");
42  std::string generatorName = generatorPSet.getParameter<std::string>("ComponentName");
43 
45  HitTripletGeneratorFromPairAndLayersFactory::get()->create(generatorName,generatorPSet);
46 
47  aGen->init( HitPairGeneratorFromLayerPair( first, second, &theLayerCache),
48  thirds, &theLayerCache);
49 
50  theGenerators.push_back( aGen);
51  }
52 
53  initialised = true;
54 
55 }
56 
58 {
59  GeneratorContainer::const_iterator it;
60  for (it = theGenerators.begin(); it!= theGenerators.end(); it++) {
61  delete (*it);
62  }
63 }
64 
65 
67  const TrackingRegion& region, OrderedHitTriplets & result,
68  const edm::Event& ev, const edm::EventSetup& es)
69 {
70  if (!initialised) init(theConfig,es);
71 
72  GeneratorContainer::const_iterator i;
73  for (i=theGenerators.begin(); i!=theGenerators.end(); i++) {
74  (**i).hitTriplets( region, result, ev, es);
75  }
77 }
78 
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
U second(std::pair< T, U > const &p)
tuple result
Definition: query.py:137
std::vector< LayerPairAndLayers > layers() const
Definition: LayerTriplets.cc:4
CombinedHitTripletGenerator(const edm::ParameterSet &cfg)
bool first
Definition: L1TdeRCT.cc:94
const T & get() const
Definition: EventSetup.h:55
virtual void hitTriplets(const TrackingRegion &reg, OrderedHitTriplets &triplets, const edm::Event &ev, const edm::EventSetup &es)
from base class
void init(const edm::ParameterSet &cfg, const edm::EventSetup &es)
T get(const Candidate &c)
Definition: component.h:56
std::vector< std::vector< SeedingLayer > > SeedingLayerSets