|
|
#include <VectorHitBuilderAlgorithm.h>
|
VectorHit | buildVectorHit (const StackGeomDet *stack, Phase2TrackerCluster1DRef lower, Phase2TrackerCluster1DRef upper) const override |
|
void | buildVectorHits (VectorHitCollection &vhAcc, VectorHitCollection &vhRej, DetId detIdStack, const StackGeomDet *stack, edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D >> clusters, const Detset &DSVinner, const Detset &DSVouter, const std::vector< bool > &phase2OTClustersToSkip=std::vector< bool >()) const override |
|
bool | checkClustersCompatibility (Local3DPoint &posinner, Local3DPoint &posouter, LocalError &errinner, LocalError &errouter) const |
|
bool | checkClustersCompatibilityBeforeBuilding (edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D >> clusters, const Detset &theLowerDetSet, const Detset &theUpperDetSet) const |
|
CurvatureAndPhi | curvatureANDphi (Global3DPoint gPositionLower, Global3DPoint gPositionUpper, GlobalError gErrorLower, GlobalError gErrorUpper) const |
|
void | fit (float x[2], float y[2], float sigy[2], Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const |
|
void | fit2Dzx (const Local3DPoint lpCI, const Local3DPoint lpCO, const LocalError leCI, const LocalError leCO, Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const |
|
void | fit2Dzy (const Local3DPoint lpCI, const Local3DPoint lpCO, const LocalError leCI, const LocalError leCO, Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const |
|
void | run (edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D >> clusters, VectorHitCollection &vhAcc, VectorHitCollection &vhRej, edmNew::DetSetVector< Phase2TrackerCluster1D > &clustersAcc, edmNew::DetSetVector< Phase2TrackerCluster1D > &clustersRej) const override |
|
| VectorHitBuilderAlgorithm (const edm::ParameterSet &conf, const TrackerGeometry *tkGeomProd, const TrackerTopology *tkTopoProd, const ClusterParameterEstimator< Phase2TrackerCluster1D > *cpeProd) |
|
| ~VectorHitBuilderAlgorithm () override=default |
|
double | computeParallaxCorrection (const PixelGeomDetUnit *, const Point3DBase< float, LocalTag > &, const PixelGeomDetUnit *, const Point3DBase< float, LocalTag > &) const |
|
void | printCluster (const GeomDet *geomDetUnit, const Phase2TrackerCluster1D *cluster) const |
|
void | printClusters (const edmNew::DetSetVector< Phase2TrackerCluster1D > &clusters) const |
|
| VectorHitBuilderAlgorithmBase (const edm::ParameterSet &, const TrackerGeometry *, const TrackerTopology *, const ClusterParameterEstimator< Phase2TrackerCluster1D > *) |
|
virtual | ~VectorHitBuilderAlgorithmBase () |
|
Definition at line 17 of file VectorHitBuilderAlgorithm.h.
◆ VectorHitBuilderAlgorithm()
◆ ~VectorHitBuilderAlgorithm()
VectorHitBuilderAlgorithm::~VectorHitBuilderAlgorithm |
( |
| ) |
|
|
overridedefault |
◆ buildVectorHit()
Implements VectorHitBuilderAlgorithmBase.
Definition at line 201 of file VectorHitBuilderAlgorithm.cc.
204 LogTrace(
"VectorHitBuilderAlgorithm") <<
"Build VH with: ";
212 Global3DPoint gparamsLower = geomDetLower->surface().toGlobal(lparamsLower.first);
213 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t lower global pos: " << gparamsLower;
216 Global3DPoint gparamsUpper = geomDetUpper->surface().toGlobal(lparamsUpper.first);
217 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t upper global pos: " << gparamsUpper;
220 Local3DPoint lparamsUpperInLower = geomDetLower->surface().toLocal(gparamsUpper);
222 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t lower global pos: " << gparamsLower;
223 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t upper global pos: " << gparamsUpper;
225 LogTrace(
"VectorHitBuilderAlgorithm") <<
"A:\t lower local pos: " << lparamsLower.first
226 <<
" with error: " << lparamsLower.second << std::endl;
227 LogTrace(
"VectorHitBuilderAlgorithm") <<
"A:\t upper local pos in the lower sof " << lparamsUpperInLower
228 <<
" with error: " << lparamsUpper.second << std::endl;
235 double chi22Dzx = 0.0;
246 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t pos2Dzx: " << pos2Dzx;
247 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t dir2Dzx: " << dir2Dzx;
248 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t cov2Dzx: " << covMat2Dzx;
252 double chi22Dzy = 0.0;
263 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t pos2Dzy: " << pos2Dzy;
264 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t dir2Dzy: " << dir2Dzy;
265 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t cov2Dzy: " << covMat2Dzy;
276 if (gPositionLower.
perp() > gPositionUpper.
perp()) {
277 std::swap(gPositionLower, gPositionUpper);
281 const CurvatureAndPhi curvatureAndPhi =
curvatureANDphi(gPositionLower, gPositionUpper, gErrorLower, gErrorUpper);
287 curvatureAndPhi.curvature,
288 curvatureAndPhi.curvatureError,
289 curvatureAndPhi.phi);
References checkClustersCompatibility(), VectorHitBuilderAlgorithmBase::cpe_, VectorHitBuilderAlgorithm::CurvatureAndPhi::curvature, curvatureANDphi(), VectorHitBuilderAlgorithm::CurvatureAndPhi::curvatureError, fit2Dzx(), fit2Dzy(), ClusterParameterEstimator< T >::localParameters(), LogTrace, convertSQLiteXML::ok, PV3DBase< T, PVType, FrameType >::perp(), VectorHit::phase2clusterGlobalPos(), VectorHit::phase2clusterGlobalPosErr(), VectorHitBuilderAlgorithm::CurvatureAndPhi::phi, VectorHitBuilderAlgorithmBase::printCluster(), svgfig::stack, std::swap(), and pileupCalc::upper.
Referenced by buildVectorHits().
◆ buildVectorHits()
Implements VectorHitBuilderAlgorithmBase.
Definition at line 78 of file VectorHitBuilderAlgorithm.cc.
87 LogDebug(
"VectorHitBuilderAlgorithm") <<
" compatible -> continue ... " << std::endl;
89 LogTrace(
"VectorHitBuilderAlgorithm") <<
" not compatible, going to the next cluster";
97 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t is barrel. " << std::endl;
99 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t is endcap. " << std::endl;
100 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t layer is : " << layerStack << std::endl;
107 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t the cut is:" <<
cut << std::endl;
110 std::vector<std::pair<LocalPoint, LocalError>> localParamsUpper;
111 std::vector<const PixelGeomDetUnit*> localGDUUpper;
114 for (
auto const& clusterUpper : theUpperDetSet) {
115 localGDUUpper.push_back(gduUpp);
118 int upperIterator = 0;
120 for (
const_iterator cil = theLowerDetSet.begin(); cil != theLowerDetSet.end(); ++cil) {
121 LogDebug(
"VectorHitBuilderAlgorithm") <<
" lower clusters " << std::endl;
128 for (
const_iterator ciu = theUpperDetSet.begin(); ciu != theUpperDetSet.end(); ++ciu) {
129 LogDebug(
"VectorHitBuilderAlgorithm") <<
"\t upper clusters " << std::endl;
136 gduLow, lparamsLow.first, localGDUUpper[upperIterator], localParamsUpper[upperIterator].first);
137 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t parallax correction:" << pC << std::endl;
138 double lpos_upp_corr = 0.0;
139 double lpos_low_corr = 0.0;
140 auto const localUpperX = localParamsUpper[upperIterator].first.x();
141 if (localUpperX > lparamsLow.first.x()) {
142 if (localUpperX > 0) {
143 lpos_low_corr = lparamsLow.first.x();
144 lpos_upp_corr = localParamsUpper[upperIterator].first.x() -
std::abs(pC);
145 }
else if (localUpperX < 0) {
146 lpos_low_corr = lparamsLow.first.x() +
std::abs(pC);
147 lpos_upp_corr = localUpperX;
149 }
else if (localUpperX < lparamsLow.first.x()) {
150 if (localUpperX > 0) {
151 lpos_low_corr = lparamsLow.first.x() -
std::abs(pC);
152 lpos_upp_corr = localUpperX;
153 }
else if (localUpperX < 0) {
154 lpos_low_corr = lparamsLow.first.x();
155 lpos_upp_corr = localUpperX +
std::abs(pC);
158 if (localUpperX > 0) {
159 lpos_low_corr = lparamsLow.first.x();
160 lpos_upp_corr = localUpperX -
std::abs(pC);
161 }
else if (localUpperX < 0) {
162 lpos_low_corr = lparamsLow.first.x();
163 lpos_upp_corr = localUpperX +
std::abs(pC);
167 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t local pos upper corrected (x):" << lpos_upp_corr << std::endl;
168 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t local pos lower corrected (x):" << lpos_low_corr << std::endl;
170 double width = lpos_low_corr - lpos_upp_corr;
171 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t width: " <<
width << std::endl;
181 LogDebug(
"VectorHitBuilderAlgorithm") <<
" accepting VH! " << std::endl;
185 vh_colAcc.push_back(vh);
189 LogDebug(
"VectorHitBuilderAlgorithm") <<
" rejecting VH: " << std::endl;
193 vh_colRej.push_back(vh);
References funct::abs(), VectorHitBuilderAlgorithmBase::barrelCut_, edmNew::DetSet< T >::begin(), buildVectorHit(), checkClustersCompatibilityBeforeBuilding(), bsc_activity_cfg::clusters, VectorHitBuilderAlgorithmBase::computeParallaxCorrection(), VectorHitBuilderAlgorithmBase::cpe_, TkAlMuonSelectors_cfi::cut, edmNew::DetSet< T >::end(), VectorHitBuilderAlgorithmBase::endcapCut_, TrackingRecHit::isValid(), TrackerTopology::layer(), ClusterParameterEstimator< T >::localParameters(), LogDebug, LogTrace, edmNew::makeRefTo(), GeomDetEnumerators::P2OTB, GeomDetEnumerators::P2OTEC, VectorHitBuilderAlgorithmBase::printCluster(), edmNew::DetSetVector< T >::FastFiller::push_back(), svgfig::stack, VectorHitBuilderAlgorithmBase::tkTopo_, and ApeEstimator_cff::width.
Referenced by run().
◆ checkClustersCompatibility()
◆ checkClustersCompatibilityBeforeBuilding()
◆ curvatureANDphi()
Definition at line 365 of file VectorHitBuilderAlgorithm.cc.
372 float errorCurvature = -999.;
375 float h1 = gPositionLower.
x() * gPositionUpper.
y() - gPositionUpper.
x() * gPositionLower.
y();
379 n1[0] = -gPositionLower.
y();
380 n1[1] = gPositionLower.
x();
382 n2[0] = gPositionUpper.
x() - gPositionLower.
x();
383 n2[1] = gPositionUpper.
y() - gPositionLower.
y();
385 double n3 = n1[0] * n2[0] + n1[1] * n2[1];
386 double signCurv = -copysign(1.0, n3);
387 double phi1 = atan2(gPositionUpper.
y() - gPositionLower.
y(), gPositionUpper.
x() - gPositionLower.
x());
389 double x2Low =
pow(gPositionLower.
x(), 2);
390 double y2Low =
pow(gPositionLower.
y(), 2);
391 double x2Up =
pow(gPositionUpper.
x(), 2);
392 double y2Up =
pow(gPositionUpper.
y(), 2);
396 double h2Inf = 1. / (2 * h1);
397 double r12 = gPositionLower.
perp2();
398 double r22 = gPositionUpper.
perp2();
399 double h3 =
pow(n2[0], 2) +
pow(n2[1], 2);
400 double h4 = -x2Low * gPositionUpper.
x() + gPositionLower.
x() * x2Up + gPositionLower.
x() * y2Up -
401 gPositionUpper.
x() * y2Low;
403 x2Low * gPositionUpper.
y() - x2Up * gPositionLower.
y() + y2Low * gPositionUpper.
y() - gPositionLower.
y() * y2Up;
406 double invRho2 = (4. * h1 * h1) / (r12 * r22 * h3);
410 double xcentre = h5 / h2;
411 double ycentre = h4 / h2;
414 double xtg = gPositionLower.
y() - ycentre;
415 double ytg = -(gPositionLower.
x() - xcentre);
418 phi = atan2(ytg, xtg);
422 double denom1 = 1. /
sqrt(r12 * r22 * h3);
423 double denom2 = 1. / (
pow(r12 * r22 * h3, 1.5));
424 jacobian[0][0] = 1.0;
425 jacobian[1][1] = 1.0;
427 -2. * ((h1 * (gPositionLower.
x() * r22 * h3 + (gPositionLower.
x() - gPositionUpper.
x()) * r12 * r22)) * denom2 -
428 (gPositionUpper.
y()) * denom1);
430 -2. * ((gPositionUpper.
x()) * denom1 +
431 (h1 * (gPositionLower.
y() * r22 * h3 + r12 * r22 * (gPositionLower.
y() - gPositionUpper.
y()))) *
434 -2. * ((gPositionLower.
y()) * denom1 +
435 (h1 * (gPositionUpper.
x() * r12 * h3 - (gPositionLower.
x() - gPositionUpper.
x()) * r12 * r22)) *
438 -2. * ((h1 * (gPositionUpper.
y() * r12 * h3 - r12 * r22 * (gPositionLower.
y() - gPositionUpper.
y()))) * denom2 -
439 (gPositionLower.
x()) * denom1);
442 mVector[0] = (gPositionLower.
y() - ycentre) * invRho2;
443 mVector[1] = -(gPositionLower.
x() - xcentre) * invRho2;
446 double h22Inv = 1. /
pow(h2, 2);
450 2. * ((gPositionLower.
x() * gPositionUpper.
y()) * h2Inf - (gPositionUpper.
y() * h5) * h22Inv);
451 kMatrix[0][1] = (2. * gPositionUpper.
x() * h5) * h22Inv -
452 (x2Up + y2Up - 2. * gPositionLower.
y() * gPositionUpper.
y()) * h2Inf;
454 2. * ((gPositionLower.
y() * h5) * h22Inv - (gPositionUpper.
x() * gPositionLower.
y()) * h2Inf);
455 kMatrix[0][3] = (x2Low + y2Low - 2. * gPositionUpper.
y() * gPositionLower.
y()) * h2Inf -
456 (2. * gPositionLower.
x() * h5) * h22Inv;
457 kMatrix[1][0] = (x2Up - 2. * gPositionLower.
x() * gPositionUpper.
x() + y2Up) * h2Inf -
458 (2. * gPositionUpper.
y() * h4) * h22Inv;
460 2. * ((gPositionUpper.
x() * h4) * h22Inv - (gPositionUpper.
x() * gPositionLower.
y()) * h2Inf);
461 kMatrix[1][2] = (2. * gPositionLower.
y() * h4) * h22Inv -
462 (x2Low - 2. * gPositionUpper.
x() * gPositionLower.
x() + y2Low) * h2Inf;
464 2. * (gPositionLower.
x() * gPositionUpper.
y()) * h2Inf - (gPositionLower.
x() * h4) * h22Inv;
467 jacobian[3][0] = nMatrix[0];
468 jacobian[3][1] = nMatrix[1];
469 jacobian[3][2] = nMatrix[2];
470 jacobian[3][3] = nMatrix[3];
473 if ((signCurv < 0 && curvature > 0) || (signCurv > 0 &&
curvature < 0)) {
475 for (
int i = 0;
i < 4;
i++) {
476 jacobian[2][
i] = -jacobian[2][
i];
489 for (
int i = 0;
i < 4;
i++) {
490 curvatureJacobian[
i] = jacobian[2][
i];
495 gErrors[0][0] = gErrorLower.
cxx();
496 gErrors[0][1] = gErrorLower.
cyx();
497 gErrors[1][0] = gErrorLower.
cyx();
498 gErrors[1][1] = gErrorLower.
cyy();
499 gErrors[2][2] = gErrorUpper.
cxx();
500 gErrors[2][3] = gErrorUpper.
cyx();
501 gErrors[3][2] = gErrorUpper.
cyx();
502 gErrors[3][3] = gErrorUpper.
cyy();
506 errorCurvature =
temp[0] * curvatureJacobian[0] +
temp[1] * curvatureJacobian[1] +
temp[2] * curvatureJacobian[2] +
507 temp[3] * curvatureJacobian[3];
511 result.curvatureError = errorCurvature;
References PixelRecoUtilities::curvature(), GlobalErrorBase< T, ErrorWeightType >::cxx(), GlobalErrorBase< T, ErrorWeightType >::cyx(), GlobalErrorBase< T, ErrorWeightType >::cyy(), SiPixelRawToDigiRegional_cfi::deltaPhi, mps_fire::i, M_PI, PV3DBase< T, PVType, FrameType >::perp2(), phi, funct::pow(), mps_fire::result, mathSSE::sqrt(), groupFilesInBlocks::temp, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by buildVectorHit().
◆ fit()
Definition at line 334 of file VectorHitBuilderAlgorithm.cc.
342 float intercept = 0.;
349 covMatrix[0][0] = covss;
350 covMatrix[1][1] = covii;
351 covMatrix[1][0] = covsi;
353 for (
unsigned int j = 0;
j < 2;
j++) {
354 const double ypred = intercept +
slope *
x[
j];
355 const double dy = (
y[
j] - ypred) /
sqrt(sigy2[
j]);
361 float slopeZ =
x[1] -
x[0];
References hltPixelTracks_cff::chi2, DeadROC_duringRun::dir, PVValHelper::dy, dqmiolumiharvest::j, linearFit(), slope, mathSSE::sqrt(), x, and y.
Referenced by fit2Dzx(), fit2Dzy(), and trackingPlots.Iteration::modules().
◆ fit2Dzx()
Definition at line 296 of file VectorHitBuilderAlgorithm.cc.
304 float x[2] = {lpCI.
z(), lpCO.
z()};
305 float y[2] = {lpCI.
x(), lpCO.
x()};
306 float sqCI =
sqrt(leCI.
xx());
307 float sqCO =
sqrt(leCO.
xx());
308 float sigy2[2] = {sqCI * sqCI, sqCO * sqCO};
References hltPixelTracks_cff::chi2, DeadROC_duringRun::dir, fit(), mathSSE::sqrt(), x, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by buildVectorHit().
◆ fit2Dzy()
Definition at line 315 of file VectorHitBuilderAlgorithm.cc.
323 float x[2] = {lpCI.
z(), lpCO.
z()};
324 float y[2] = {lpCI.
y(), lpCO.
y()};
325 float sqCI =
sqrt(leCI.
yy());
326 float sqCO =
sqrt(leCO.
yy());
327 float sigy2[2] = {sqCI * sqCI, sqCO * sqCO};
References hltPixelTracks_cff::chi2, DeadROC_duringRun::dir, fit(), mathSSE::sqrt(), x, y, PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by buildVectorHit().
◆ run()
Implements VectorHitBuilderAlgorithmBase.
Definition at line 7 of file VectorHitBuilderAlgorithm.cc.
12 LogDebug(
"VectorHitBuilderAlgorithm") <<
"Run VectorHitBuilderAlgorithm ... \n";
13 const auto* clustersPhase2Collection =
clusters.product();
16 LogDebug(
"VectorHitBuilderAlgorithm") <<
"with #clusters : " << clustersPhase2Collection->size() << std::endl;
17 for (
auto dSViter : *clustersPhase2Collection) {
18 unsigned int rawDetId1(dSViter.detId());
19 DetId detId1(rawDetId1);
20 DetId lowerDetId, upperDetId;
30 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId stack : " << detIdStack.
rawId() << std::endl;
31 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId lower set of clusters : " << lowerDetId.
rawId();
32 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId upper set of clusters : " << upperDetId.
rawId() << std::endl;
36 const auto& it_detLower = dSViter;
37 const auto& it_detUpper = clustersPhase2Collection->find(upperDetId);
39 if (it_detUpper != clustersPhase2Collection->end()) {
41 stackDet = dynamic_cast<const StackGeomDet*>(gd);
45 LogDebug(
"VectorHitBuilderAlgorithm") <<
"End run VectorHitBuilderAlgorithm ... \n";
References buildVectorHits(), bsc_activity_cfg::clusters, TrackerGeometry::idToDet(), TrackerTopology::isLower(), LogDebug, TrackerTopology::partnerDetId(), DetId::rawId(), TrackerTopology::stack(), VectorHitBuilderAlgorithmBase::tkGeom_, and VectorHitBuilderAlgorithmBase::tkTopo_.
Referenced by VectorHitBuilderEDProducer::run().
const TrackerGeomDet * idToDet(DetId) const override
VectorHit buildVectorHit(const StackGeomDet *stack, Phase2TrackerCluster1DRef lower, Phase2TrackerCluster1DRef upper) const override
bool checkClustersCompatibility(Local3DPoint &posinner, Local3DPoint &posouter, LocalError &errinner, LocalError &errouter) const
const TrackerTopology * tkTopo_
bool isLower(const DetId &id) const
void fit2Dzy(const Local3DPoint lpCI, const Local3DPoint lpCO, const LocalError leCI, const LocalError leCO, Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, typename HandleT::element_type::value_type::const_iterator itIter)
void fit(float x[2], float y[2], float sigy[2], Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const
bool checkClustersCompatibilityBeforeBuilding(edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D >> clusters, const Detset &theLowerDetSet, const Detset &theUpperDetSet) const
unsigned int layer(const DetId &id) const
uint32_t stack(const DetId &id) const
const ClusterParameterEstimator< Phase2TrackerCluster1D > * cpe_
T curvature(T InversePt, const edm::EventSetup &iSetup)
VectorHitBuilderAlgorithmBase(const edm::ParameterSet &, const TrackerGeometry *, const TrackerTopology *, const ClusterParameterEstimator< Phase2TrackerCluster1D > *)
CurvatureAndPhi curvatureANDphi(Global3DPoint gPositionLower, Global3DPoint gPositionUpper, GlobalError gErrorLower, GlobalError gErrorUpper) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void linearFit(T const *__restrict__ x, T const *__restrict__ y, int ndat, T const *__restrict__ sigy2, T &slope, T &intercept, T &covss, T &covii, T &covsi)
DetId partnerDetId(const DetId &id) const
void printCluster(const GeomDet *geomDetUnit, const Phase2TrackerCluster1D *cluster) const
edm::Ref< edmNew::DetSetVector< Phase2TrackerCluster1D >, Phase2TrackerCluster1D > Phase2TrackerCluster1DRef
ROOT::Math::SMatrix< double, D1, D2, ROOT::Math::MatRepStd< double, D1, D2 > > Matrix
Detset::const_iterator const_iterator
ROOT::Math::SVector< double, 2 > AlgebraicVector2
double computeParallaxCorrection(const PixelGeomDetUnit *, const Point3DBase< float, LocalTag > &, const PixelGeomDetUnit *, const Point3DBase< float, LocalTag > &) const
Local3DVector LocalVector
virtual LocalValues localParameters(const T &, const GeomDetUnit &) const =0
static GlobalError phase2clusterGlobalPosErr(const PixelGeomDetUnit *geomDet)
const TrackerGeometry * tkGeom_
static Global3DPoint phase2clusterGlobalPos(const PixelGeomDetUnit *geomDet, ClusterRef cluster)
ROOT::Math::SVector< double, 4 > AlgebraicVector4
std::vector< double > barrelCut_
constexpr uint32_t rawId() const
get the raw id
void buildVectorHits(VectorHitCollection &vhAcc, VectorHitCollection &vhRej, DetId detIdStack, const StackGeomDet *stack, edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D >> clusters, const Detset &DSVinner, const Detset &DSVouter, const std::vector< bool > &phase2OTClustersToSkip=std::vector< bool >()) const override
Power< A, B >::type pow(const A &a, const B &b)
void fit2Dzx(const Local3DPoint lpCI, const Local3DPoint lpCO, const LocalError leCI, const LocalError leCO, Local3DPoint &pos, Local3DVector &dir, AlgebraicSymMatrix22 &covMatrix, double &chi2) const
Abs< T >::type abs(const T &t)
std::vector< double > endcapCut_
static const double slope[3]
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
Point3DBase< float, LocalTag > Local3DPoint