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++) {
125 track->appendHitPattern(*
hit, ttopo);
142 const unsigned nHits = 3;
146 trackExtras->push_back(theTrackExtra);
155 (
tracks->at(
k)).setExtra(theTrackExtraRef);
void produce(edm::Event &ev, const edm::EventSetup &es) override
T getParameter(std::string const &) const
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttopoToken
#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
std::unique_ptr< reco::Track > run(const std::vector< const TrackingRecHit *> &hits, const TrackingRegion ®ion) const
edm::EDGetTokenT< TrajectorySeedCollection > seedProducerToken
edm::EDGetTokenT< PixelTrackFilter > filterToken
bool getData(T &iHolder) const
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
auto const & tracks
cannot be loose
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)
std::unique_ptr< TrackingRegionProducer > theRegionProducer
std::vector< TrackWithRecHits > TracksWithRecHits
edm::EDGetTokenT< PixelFitter > fitterToken
~PixelTracksProducer() override