|
|
Go to the documentation of this file.
76 minNumberOfHits_(iConfig.getParameter<
int>(
"minNumberOfHits")),
86 produces<reco::TrackCollection>();
87 produces<TrackingRecHitCollection>();
88 produces<reco::TrackExtraCollection>();
97 desc.add<
int>(
"minNumberOfHits", 0);
117 auto indToEdmP = std::make_unique<IndToEdm>();
118 auto &indToEdm = *indToEdmP;
130 std::vector<TrackingRecHit const *> hitmap;
131 auto const &rcs =
rechits.data();
132 auto nhits = rcs.size();
133 hitmap.resize(
nhits,
nullptr);
136 auto fc = hitsModuleStart;
138 for (
auto const &
h : rcs) {
139 auto const &thit = static_cast<BaseTrackerRecHit const &>(
h);
140 auto detI = thit.det()->index();
141 auto const &clus = thit.firstClusterRef();
143 auto i = fc[detI] + clus.pixelCluster().originalId();
144 if (
i >= hitmap.size())
145 hitmap.resize(
i + 256,
nullptr);
150 std::vector<const TrackingRecHit *>
hits;
155 auto const *
quality = tsoa.qualityData();
156 auto const &
fit = tsoa.stateAtBS;
157 auto const &hitIndices = tsoa.hitIndices;
164 for (int32_t it = 0; it <
maxTracks; ++it) {
165 auto nHits = tsoa.nHits(it);
168 indToEdm.push_back(-1);
174 indToEdm.back() =
nt;
178 auto b = hitIndices.begin(it);
179 for (
int iHit = 0; iHit <
nHits; ++iHit)
180 hits[iHit] = hitmap[*(
b + iHit)];
184 float chi2 = tsoa.chi2(it);
185 float phi = tsoa.phi(it);
189 fit.copyToDense(ipar, icov, it);
194 for (
int i = 0;
i < 5; ++
i)
195 for (
int j =
i;
j < 5; ++
j)
196 m(
i,
j) = ocov(
i,
j);
219 auto tkq = recoQuality[
int(
q)];
220 track->setQuality(tkq);
228 track->setQuality(tkq);
const pixelTrack::Quality minQuality_
PixelTrackProducerFromSoA(const edm::ParameterSet &iConfig)
Eigen::Matrix< double, 5, 1 > Vector5d
TrackQuality
track quality
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
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
T getParameter(std::string const &) const
Quality qualityByName(std::string const &name)
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