32 using namespace pixeltrackfitting;
33 using namespace ctfseeding;
37 : theConfig(cfg), theFitter(0), theFilter(0), theCleaner(0), theGenerator(0), theRegionProducer(0), theMerger_(0)
39 if ( cfg.
exists(
"SeedMergerPSet") ) {
43 bool seedmergerAddTriplets = mergerPSet.
getParameter<
bool>(
"addRemainingTriplets" );
44 bool seedmergerMergeTriplets = mergerPSet.
getParameter<
bool>(
"mergeTriplets" );
46 theMerger_->setMergeTriplets( seedmergerMergeTriplets );
47 theMerger_->setAddRemainingTriplets( seedmergerAddTriplets );
48 theMerger_->setTTRHBuilderLabel( seedmergerTTRHBuilderLabel );
49 theMerger_->setLayerListName( seedmergerLayerListName );
85 if (filterName !=
"none") {
102 typedef std::vector<TrackingRegion* > Regions;
103 typedef Regions::const_iterator IR;
113 for (IR ir=regions.begin(), irEnd=regions.end(); ir < irEnd; ++ir) {
119 unsigned int nTuplets = tuplets.
size();
120 tracks.reserve(tracks.size()+nTuplets);
122 for (
unsigned int iTuplet = 0; iTuplet < nTuplets; ++iTuplet) {
125 std::vector<const TrackingRecHit *> hits;
126 for (
unsigned int iHit = 0, nHits = tuplet.
size(); iHit < nHits; ++iHit) {
127 hits.push_back( tuplet[iHit]->
hit() );
132 if (!track)
continue;
150 for (IR ir=regions.begin(), irEnd=regions.end(); ir < irEnd; ++ir)
delete (*ir);
T getParameter(std::string const &) const
std::pair< reco::Track *, SeedingHitSet > TrackWithTTRHs
void init(const edm::EventSetup &es)
virtual reco::Track * run(const edm::EventSetup &es, const std::vector< const TrackingRecHit * > &hits, const TrackingRegion ®ion) const
bool exists(std::string const ¶meterName) const
checks if a parameter exists
edm::ParameterSet theConfig
virtual unsigned int size() const =0
OrderedHitsGenerator * theGenerator
TrackingRegionProducer * theRegionProducer
std::vector< TrackWithTTRHs > TracksWithTTRHs
virtual const OrderedSeedingHits & run(const TrackingRegion ®, const edm::Event &ev, const edm::EventSetup &es)=0
virtual void update(edm::Event &ev)
PixelTrackFilter * theFilter
~PixelTrackReconstruction()
void run(pixeltrackfitting::TracksWithTTRHs &tah, edm::Event &ev, const edm::EventSetup &es)
PixelTrackCleaner * theCleaner
void update(const edm::EventSetup &)
const OrderedSeedingHits & mergeTriplets(const OrderedSeedingHits &, const edm::EventSetup &)
T const * product() const
pixeltrackfitting::TracksWithTTRHs clean(const pixeltrackfitting::TracksWithTTRHs &initialT_TTRHs, const TrackerTopology *tTopo)
unsigned int size() const
const PixelFitter * theFitter
PixelTrackReconstruction(const edm::ParameterSet &conf)
T get(const Candidate &c)
virtual std::vector< TrackingRegion * > regions(const edm::Event &ev, const edm::EventSetup &es) const =0
QuadrupletSeedMerger * theMerger_