CMS 3D CMS Logo

CombinedHitPairGenerator.cc

Go to the documentation of this file.
00001 #include "RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h"
00002 #include "RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h"
00003 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h"
00004 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSetsBuilder.h"
00005 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00006 #include "FWCore/Framework/interface/ESHandle.h"
00007 #include "FWCore/Framework/interface/EventSetup.h"
00008 
00009 
00010 using namespace std;
00011 using namespace ctfseeding;
00012 
00013 CombinedHitPairGenerator::CombinedHitPairGenerator(const edm::ParameterSet& cfg)
00014   : initialised(false), theConfig(cfg)
00015 { }
00016 
00017 CombinedHitPairGenerator::CombinedHitPairGenerator(const SeedingLayerSets & layerSets)
00018   : initialised(false)
00019 {
00020   init (layerSets);
00021 }
00022 
00023 void CombinedHitPairGenerator::init(const edm::ParameterSet & cfg, const edm::EventSetup& es)
00024 {
00025 
00026 //  edm::ParameterSet leyerPSet = cfg.getParameter<edm::ParameterSet>("LayerPSet");
00027 //  SeedingLayerSets layerSets  = SeedingLayerSetsBuilder(leyerPSet).layers(es);
00028 
00029   std::string layerBuilderName = cfg.getParameter<std::string>("SeedingLayers");
00030   edm::ESHandle<SeedingLayerSetsBuilder> layerBuilder;
00031   es.get<TrackerDigiGeometryRecord>().get(layerBuilderName, layerBuilder);
00032 
00033   SeedingLayerSets layerSets  =  layerBuilder->layers(es); 
00034   init(layerSets);
00035 }
00036 
00037 void CombinedHitPairGenerator::init(const SeedingLayerSets & layerSets)
00038 {
00039   initialised = true;
00040   typedef SeedingLayerSets::const_iterator IL;
00041   for (IL il=layerSets.begin(), ilEnd=layerSets.end(); il != ilEnd; ++il) {
00042     const SeedingLayers & set = *il;
00043     if (set.size() != 2) continue;
00044     add( set[0], set[1] );
00045   }
00046 }
00047 
00048 CombinedHitPairGenerator::~CombinedHitPairGenerator()
00049 {
00050   Container::const_iterator it;
00051   for (it = theGenerators.begin(); it!= theGenerators.end(); it++) {
00052     delete (*it);
00053   }
00054 }
00055 
00056 void CombinedHitPairGenerator::add( const SeedingLayer& inner, const SeedingLayer& outer)
00057 { 
00058   theGenerators.push_back( new HitPairGeneratorFromLayerPair( inner, outer, &theLayerCache, 0));
00059 }
00060 
00061 void CombinedHitPairGenerator::hitPairs(
00062    const TrackingRegion& region, OrderedHitPairs  & result,
00063    const edm::Event& ev, const edm::EventSetup& es)
00064 {
00065   if (!initialised) init(theConfig,es);
00066 
00067   Container::const_iterator i;
00068   for (i=theGenerators.begin(); i!=theGenerators.end(); i++) {
00069     (**i).hitPairs( region, result, ev, es); 
00070   }
00071   theLayerCache.clear();
00072 }

Generated on Tue Jun 9 17:45:50 2009 for CMSSW by  doxygen 1.5.4