CMS 3D CMS Logo

SeedGeneratorFromRegionHits.cc

Go to the documentation of this file.
00001 #include "RecoTracker/TkSeedGenerator/interface/SeedGeneratorFromRegionHits.h"
00002 
00003 #include "FWCore/Framework/interface/Event.h"
00004 #include "FWCore/Framework/interface/EventSetup.h"
00005 #include "FWCore/Framework/interface/ESHandle.h"
00006 
00007 #include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h"
00008 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
00009 #include "RecoTracker/TkSeedingLayers/interface/SeedComparitor.h"
00010 
00011 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00012 
00013 #include "RecoTracker/TkSeedGenerator/interface/SeedFromConsecutiveHits.h"
00014 
00015 #include <vector>
00016 
00017 #include "MagneticField/Engine/interface/MagneticField.h"
00018 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
00019 
00020 template <class T> T sqr( T t) {return t*t;}
00021 
00022 SeedGeneratorFromRegionHits::SeedGeneratorFromRegionHits(
00023   OrderedHitsGenerator *ohg, const edm::ParameterSet & cfg,
00024   SeedComparitor * asc)
00025   : theHitsGenerator(ohg), theConfig(cfg), theComparitor(asc), 
00026     theBOFFMomentum(cfg.existsAs<double>("SeedMomentumForBOFF") ? cfg.getParameter<double>("SeedMomentumForBOFF") : -1.0)
00027 { }
00028 
00029 SeedGeneratorFromRegionHits::~SeedGeneratorFromRegionHits()
00030 {
00031   delete theHitsGenerator;
00032   delete theComparitor;
00033 }
00034 
00035 void SeedGeneratorFromRegionHits::run(TrajectorySeedCollection & seedCollection, 
00036     const TrackingRegion & region, const edm::Event& ev, const edm::EventSetup& es)
00037 {
00038 
00039   const OrderedSeedingHits & hitss = theHitsGenerator->run(region, ev, es);
00040 
00041 
00042   GlobalError vtxerr( sqr(region.originRBound()), 0, sqr(region.originRBound()),
00043                                                0, 0, sqr(region.originZBound()));
00044 
00045   unsigned int nHitss =  hitss.size();
00046   for (unsigned int iHits = 0; iHits < nHitss; ++iHits) { 
00047     const SeedingHitSet & hits =  hitss[iHits];
00048     if (!theComparitor || theComparitor->compatible( hits, es) ) {
00049       SeedFromConsecutiveHits seedfromhits( hits, region.origin(), vtxerr, es, theBOFFMomentum);
00050       if(seedfromhits.isValid()) {
00051         seedCollection.push_back( seedfromhits.TrajSeed() );
00052       }
00053     }
00054   }
00055 }

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