75 minNumberOfHits_(iConfig.getParameter<
int>(
"minNumberOfHits")),
85 produces<TrackingRecHitCollection>();
86 produces<reco::TrackExtraCollection>();
90 produces<reco::TrackCollection>();
99 desc.add<
int>(
"minNumberOfHits", 0);
119 auto indToEdmP = std::make_unique<IndToEdm>();
120 auto &indToEdm = *indToEdmP;
132 std::vector<TrackingRecHit const *> hitmap;
133 auto const &rcs =
rechits.data();
134 auto nhits = rcs.size();
135 hitmap.resize(
nhits,
nullptr);
138 auto fc = hitsModuleStart;
140 for (
auto const &
h : rcs) {
143 auto const &clus = thit.firstClusterRef();
145 auto i = fc[detI] + clus.pixelCluster().originalId();
146 if (
i >= hitmap.size())
147 hitmap.resize(
i + 256,
nullptr);
152 std::vector<const TrackingRecHit *>
hits;
157 auto const *
quality = tsoa.qualityData();
158 auto const &
fit = tsoa.stateAtBS;
159 auto const &hitIndices = tsoa.hitIndices;
167 std::vector<int32_t> sortIdxs(
nTracks);
168 std::iota(sortIdxs.begin(), sortIdxs.end(), 0);
170 sortIdxs.begin(), sortIdxs.end(), [&](int32_t
const i1, int32_t
const i2) {
return tsoa.pt(
i1) > tsoa.pt(
i2); });
173 indToEdm.resize(sortIdxs.size(), -1);
174 for (
const auto &it : sortIdxs) {
175 auto nHits = tsoa.nHits(it);
186 auto b = hitIndices.begin(it);
187 for (
int iHit = 0; iHit <
nHits; ++iHit)
188 hits[iHit] = hitmap[*(
b + iHit)];
192 float chi2 = tsoa.chi2(it);
193 float phi = tsoa.phi(it);
197 fit.copyToDense(ipar, icov, it);
202 for (
int i = 0;
i < 5; ++
i)
203 for (
int j =
i;
j < 5; ++
j)
204 m(
i,
j) = ocov(
i,
j);
227 auto tkq = recoQuality[
int(
q)];
228 track->setQuality(tkq);
236 track->setQuality(tkq);
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Quality qualityByName(std::string const &name)
void storeTracks(Ev &ev, const TWH &tracksWithHits, const TrackerTopology &ttopo)
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
Sin< T >::type sin(const T &t)
const edm::EDGetTokenT< SiPixelRecHitCollectionNew > cpuHits_
const GeomDet * det() const
const edm::EDGetTokenT< HMSstorage > hmsToken_
int32_t const minNumberOfHits_
Eigen::Matrix< double, 5, 1 > Vector5d
__host__ __device__ void transformToPerigeePlane(VI5 const &ip, MI5 const &icov, VO5 &op, MO5 &ocov)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttTopoToken_
LocalVector momentum() const
Momentum vector in the local frame.
Cos< T >::type cos(const T &t)
bool getData(T &iHolder) const
std::vector< uint16_t > IndToEdm
TrackCharge charge() const
Charge (-1, 0 or 1)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
auto const & tracks
cannot be loose
void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
const edm::EDGetTokenT< reco::BeamSpot > tBeamSpot_
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
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
PixelTrackProducerFromSoA(const edm::ParameterSet &iConfig)
~PixelTrackProducerFromSoA() override=default
Eigen::Matrix< double, 5, 5 > Matrix5d
const edm::EDGetTokenT< PixelTrackHeterogeneous > tokenTrack_
std::vector< TrackWithRecHits > TracksWithRecHits
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > idealMagneticFieldToken_
pixelTrack::Quality const minQuality_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
LocalPoint position() const
Local x and y position coordinates.