29 using namespace pixeltrackfitting;
32 : theRegionProducer(nullptr), ttopoToken(
esConsumes()) {
33 produces<reco::TrackCollection>();
34 produces<TrackingRecHitCollection>();
35 produces<reco::TrackExtraCollection>();
57 typedef std::vector<const TrackingRecHit*> RecHits;
76 if (theSeeds->empty()) {
86 typedef std::vector<std::unique_ptr<TrackingRegion> >
Regions;
87 typedef Regions::const_iterator
IR;
89 for (IR ir = regions.begin(), irEnd = regions.end(); ir < irEnd; ++ir) {
93 TrajectorySeedCollection::const_iterator aSeed = theSeeds->begin();
94 TrajectorySeedCollection::const_iterator lastSeed = theSeeds->end();
95 for (; aSeed != lastSeed; ++aSeed) {
97 std::vector<const TrackingRecHit*> TripletHits(3, static_cast<const TrackingRecHit*>(
nullptr));
98 unsigned int iRecHit = 0;
99 for (
auto const& recHit : aSeed->recHits()) {
100 TripletHits[iRecHit] = &recHit;
105 std::unique_ptr<reco::Track>
track = fitter.
run(TripletHits, region);
108 if (!theFilter(track.get(), TripletHits)) {
118 int nTracks = pixeltracks.size();
121 const RecHits& hits = pixeltracks.at(
i).second;
123 for (
unsigned int k = 0;
k < hits.size();
k++) {
126 recHits->push_back(hit);
129 tracks->push_back(*track);
142 const unsigned nHits = 3;
143 theTrackExtra.
setHits(ohRHProd, cc, nHits);
146 trackExtras->push_back(theTrackExtra);
155 (tracks->at(
k)).setExtra(theTrackExtraRef);
#define IR(x)
Integer representation of a floating-point value.
void produce(edm::Event &ev, const edm::EventSetup &es) override
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttopoToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
PixelTracksProducer(const edm::ParameterSet &conf)
std::pair< reco::Track *, std::vector< const TrackingRecHit * > > TrackWithRecHits
std::vector< Track > TrackCollection
collection of Tracks
auto const & tracks
cannot be loose
bool getData(T &iHolder) const
edm::EDGetTokenT< TrajectorySeedCollection > seedProducerToken
edm::EDGetTokenT< PixelTrackFilter > filterToken
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
T getParameter(std::string const &) const
std::unique_ptr< reco::Track > run(const std::vector< const TrackingRecHit * > &hits, const TrackingRegion ®ion) const
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
bool appendHitPattern(const TrackingRecHit &hit, const TrackerTopology &ttopo)
append a single hit to the HitPattern
std::unique_ptr< TrackingRegionProducer > theRegionProducer
std::vector< TrackWithRecHits > TracksWithRecHits
edm::EDGetTokenT< PixelFitter > fitterToken
~PixelTracksProducer() override