|
|
Go to the documentation of this file.
75 minNumberOfHits_(iConfig.getParameter<
int>(
"minNumberOfHits")) {
76 produces<reco::TrackCollection>();
77 produces<TrackingRecHitCollection>();
78 produces<reco::TrackExtraCollection>();
87 desc.add<
int>(
"minNumberOfHits", 0);
97 auto indToEdmP = std::make_unique<IndToEdm>();
98 auto &indToEdm = *indToEdmP;
110 std::vector<TrackingRecHit const *> hitmap;
111 auto const &rcs =
rechits.data();
112 auto nhits = rcs.size();
113 hitmap.resize(
nhits,
nullptr);
116 auto fc = hitsModuleStart;
118 for (
auto const &
h : rcs) {
119 auto const &thit = static_cast<BaseTrackerRecHit const &>(
h);
120 auto detI = thit.det()->index();
121 auto const &clus = thit.firstClusterRef();
123 auto i =
fc[detI] + clus.pixelCluster().originalId();
124 if (
i >= hitmap.size())
125 hitmap.resize(
i + 256,
nullptr);
130 std::vector<const TrackingRecHit *>
hits;
135 auto const *
quality = tsoa.qualityData();
136 auto const &
fit = tsoa.stateAtBS;
137 auto const &hitIndices = tsoa.hitIndices;
142 for (int32_t it = 0; it <
maxTracks; ++it) {
143 auto nHits = tsoa.nHits(it);
146 indToEdm.push_back(-1);
152 indToEdm.back() =
nt;
156 auto b = hitIndices.begin(it);
157 for (
int iHit = 0; iHit <
nHits; ++iHit)
158 hits[iHit] = hitmap[*(
b + iHit)];
162 float chi2 = tsoa.chi2(it);
163 float phi = tsoa.phi(it);
167 fit.copyToDense(ipar, icov, it);
172 for (
int i = 0;
i < 5; ++
i)
173 for (
int j =
i;
j < 5; ++
j)
174 m(
i,
j) = ocov(
i,
j);
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
PixelTrackProducerFromSoA(const edm::ParameterSet &iConfig)
Eigen::Matrix< double, 5, 1 > Vector5d
void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
const edm::EDGetTokenT< reco::BeamSpot > tBeamSpot_
const uint32_t *__restrict__ Quality * quality
Sin< T >::type sin(const T &t)
Cos< T >::type cos(const T &t)
__host__ __device__ void transformToPerigeePlane(VI5 const &ip, MI5 const &icov, VO5 &op, MO5 &ocov)
#define DEFINE_FWK_MODULE(type)
LocalPoint position() const
Local x and y position coordinates.
const edm::EDGetTokenT< PixelTrackHeterogeneous > tokenTrack_
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttTopoToken_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
const int32_t minNumberOfHits_
TrackCharge charge() const
Charge (-1, 0 or 1)
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > idealMagneticFieldToken_
std::vector< uint16_t > IndToEdm
std::vector< TrackWithRecHits > TracksWithRecHits
XYZPointD XYZPoint
point in space with cartesian internal representation
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void storeTracks(Ev &ev, const TWH &tracksWithHits, const TrackerTopology &ttopo)
bool getData(T &iHolder) const
const edm::EDGetTokenT< SiPixelRecHitCollectionNew > cpuHits_
const edm::EDGetTokenT< HMSstorage > hmsToken_
LocalVector momentum() const
Momentum vector in the local frame.
Eigen::Matrix< double, 5, 5 > Matrix5d
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
~PixelTrackProducerFromSoA() override=default