|
|
#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 202 of file VectorHitBuilderAlgorithm.cc.
205 LogTrace(
"VectorHitBuilderAlgorithm") <<
"Build VH with: ";
213 Global3DPoint gparamsLower = geomDetLower->surface().toGlobal(lparamsLower.first);
214 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t lower global pos: " << gparamsLower;
217 Global3DPoint gparamsUpper = geomDetUpper->surface().toGlobal(lparamsUpper.first);
218 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t upper global pos: " << gparamsUpper;
221 Local3DPoint lparamsUpperInLower = geomDetLower->surface().toLocal(gparamsUpper);
223 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t lower global pos: " << gparamsLower;
224 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t upper global pos: " << gparamsUpper;
226 LogTrace(
"VectorHitBuilderAlgorithm") <<
"A:\t lower local pos: " << lparamsLower.first
227 <<
" with error: " << lparamsLower.second << std::endl;
228 LogTrace(
"VectorHitBuilderAlgorithm") <<
"A:\t upper local pos in the lower sof " << lparamsUpperInLower
229 <<
" with error: " << lparamsUpper.second << std::endl;
236 double chi22Dzx = 0.0;
247 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t pos2Dzx: " << pos2Dzx;
248 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t dir2Dzx: " << dir2Dzx;
249 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t cov2Dzx: " << covMat2Dzx;
253 double chi22Dzy = 0.0;
264 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t pos2Dzy: " << pos2Dzy;
265 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t dir2Dzy: " << dir2Dzy;
266 LogTrace(
"VectorHitBuilderAlgorithm") <<
"\t cov2Dzy: " << covMat2Dzy;
277 if (gPositionLower.
perp() > gPositionUpper.
perp()) {
278 std::swap(gPositionLower, gPositionUpper);
282 const CurvatureAndPhi curvatureAndPhi =
curvatureANDphi(gPositionLower, gPositionUpper, gErrorLower, gErrorUpper);
288 curvatureAndPhi.curvature,
289 curvatureAndPhi.curvatureError,
290 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(), pileupCalc::upper, and vh.
Referenced by buildVectorHits().
◆ buildVectorHits()
Implements VectorHitBuilderAlgorithmBase.
Definition at line 79 of file VectorHitBuilderAlgorithm.cc.
88 LogDebug(
"VectorHitBuilderAlgorithm") <<
" compatible -> continue ... " << std::endl;
90 LogTrace(
"VectorHitBuilderAlgorithm") <<
" not compatible, going to the next cluster";
98 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t is barrel. " << std::endl;
100 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t is endcap. " << std::endl;
101 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t layer is : " << layerStack << std::endl;
108 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t the cut is:" <<
cut << std::endl;
111 std::vector<std::pair<LocalPoint, LocalError>> localParamsUpper;
112 std::vector<const PixelGeomDetUnit*> localGDUUpper;
115 for (
auto const& clusterUpper : theUpperDetSet) {
116 localGDUUpper.push_back(gduUpp);
119 int upperIterator = 0;
121 for (
const_iterator cil = theLowerDetSet.begin(); cil != theLowerDetSet.end(); ++cil) {
122 LogDebug(
"VectorHitBuilderAlgorithm") <<
" lower clusters " << std::endl;
129 for (
const_iterator ciu = theUpperDetSet.begin(); ciu != theUpperDetSet.end(); ++ciu) {
130 LogDebug(
"VectorHitBuilderAlgorithm") <<
"\t upper clusters " << std::endl;
137 gduLow, lparamsLow.first, localGDUUpper[upperIterator], localParamsUpper[upperIterator].first);
138 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t parallax correction:" << pC << std::endl;
139 double lpos_upp_corr = 0.0;
140 double lpos_low_corr = 0.0;
141 auto const localUpperX = localParamsUpper[upperIterator].first.x();
142 if (localUpperX > lparamsLow.first.x()) {
143 if (localUpperX > 0) {
144 lpos_low_corr = lparamsLow.first.x();
145 lpos_upp_corr = localParamsUpper[upperIterator].first.x() -
std::abs(pC);
146 }
else if (localUpperX < 0) {
147 lpos_low_corr = lparamsLow.first.x() +
std::abs(pC);
148 lpos_upp_corr = localUpperX;
150 }
else if (localUpperX < lparamsLow.first.x()) {
151 if (localUpperX > 0) {
152 lpos_low_corr = lparamsLow.first.x() -
std::abs(pC);
153 lpos_upp_corr = localUpperX;
154 }
else if (localUpperX < 0) {
155 lpos_low_corr = lparamsLow.first.x();
156 lpos_upp_corr = localUpperX +
std::abs(pC);
159 if (localUpperX > 0) {
160 lpos_low_corr = lparamsLow.first.x();
161 lpos_upp_corr = localUpperX -
std::abs(pC);
162 }
else if (localUpperX < 0) {
163 lpos_low_corr = lparamsLow.first.x();
164 lpos_upp_corr = localUpperX +
std::abs(pC);
168 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t local pos upper corrected (x):" << lpos_upp_corr << std::endl;
169 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t local pos lower corrected (x):" << lpos_low_corr << std::endl;
171 double width = lpos_low_corr - lpos_upp_corr;
172 LogDebug(
"VectorHitBuilderAlgorithm") <<
" \t width: " <<
width << std::endl;
182 LogDebug(
"VectorHitBuilderAlgorithm") <<
" accepting VH! " << std::endl;
186 vh_colAcc.push_back(
vh);
190 LogDebug(
"VectorHitBuilderAlgorithm") <<
" rejecting VH: " << std::endl;
194 vh_colRej.push_back(
vh);
References funct::abs(), VectorHitBuilderAlgorithmBase::barrelCut_, edmNew::DetSet< T >::begin(), buildVectorHit(), checkClustersCompatibilityBeforeBuilding(), bsc_activity_cfg::clusters, VectorHitBuilderAlgorithmBase::computeParallaxCorrection(), VectorHitBuilderAlgorithmBase::cpe_, PA_MinBiasSkim_cff::cut, edmNew::DetSet< T >::end(), VectorHitBuilderAlgorithmBase::endcapCut_, 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_, vh, and ApeEstimator_cff::width.
Referenced by run().
◆ checkClustersCompatibility()
◆ checkClustersCompatibilityBeforeBuilding()
◆ curvatureANDphi()
Definition at line 366 of file VectorHitBuilderAlgorithm.cc.
373 float errorCurvature = -999.;
376 float h1 = gPositionLower.
x() * gPositionUpper.
y() - gPositionUpper.
x() * gPositionLower.
y();
380 n1[0] = -gPositionLower.
y();
381 n1[1] = gPositionLower.
x();
383 n2[0] = gPositionUpper.
x() - gPositionLower.
x();
384 n2[1] = gPositionUpper.
y() - gPositionLower.
y();
386 double n3 = n1[0] *
n2[0] + n1[1] *
n2[1];
387 double signCurv = -copysign(1.0, n3);
388 double phi1 = atan2(gPositionUpper.
y() - gPositionLower.
y(), gPositionUpper.
x() - gPositionLower.
x());
390 double x2Low =
pow(gPositionLower.
x(), 2);
391 double y2Low =
pow(gPositionLower.
y(), 2);
392 double x2Up =
pow(gPositionUpper.
x(), 2);
393 double y2Up =
pow(gPositionUpper.
y(), 2);
397 double h2Inf = 1. / (2 * h1);
398 double r12 = gPositionLower.
perp2();
399 double r22 = gPositionUpper.
perp2();
401 double h4 = -x2Low * gPositionUpper.
x() + gPositionLower.
x() * x2Up + gPositionLower.
x() * y2Up -
402 gPositionUpper.
x() * y2Low;
404 x2Low * gPositionUpper.
y() - x2Up * gPositionLower.
y() + y2Low * gPositionUpper.
y() - gPositionLower.
y() * y2Up;
407 double invRho2 = (4. * h1 * h1) / (r12 * r22 * h3);
411 double xcentre = h5 / h2;
412 double ycentre = h4 / h2;
415 double xtg = gPositionLower.
y() - ycentre;
416 double ytg = -(gPositionLower.
x() - xcentre);
419 phi = atan2(ytg, xtg);
423 double denom1 = 1. /
sqrt(r12 * r22 * h3);
424 double denom2 = 1. / (
pow(r12 * r22 * h3, 1.5));
425 jacobian[0][0] = 1.0;
426 jacobian[1][1] = 1.0;
428 -2. * ((h1 * (gPositionLower.
x() * r22 * h3 + (gPositionLower.
x() - gPositionUpper.
x()) * r12 * r22)) * denom2 -
429 (gPositionUpper.
y()) * denom1);
431 -2. * ((gPositionUpper.
x()) * denom1 +
432 (h1 * (gPositionLower.
y() * r22 * h3 + r12 * r22 * (gPositionLower.
y() - gPositionUpper.
y()))) *
435 -2. * ((gPositionLower.
y()) * denom1 +
436 (h1 * (gPositionUpper.
x() * r12 * h3 - (gPositionLower.
x() - gPositionUpper.
x()) * r12 * r22)) *
439 -2. * ((h1 * (gPositionUpper.
y() * r12 * h3 - r12 * r22 * (gPositionLower.
y() - gPositionUpper.
y()))) * denom2 -
440 (gPositionLower.
x()) * denom1);
443 mVector[0] = (gPositionLower.
y() - ycentre) * invRho2;
444 mVector[1] = -(gPositionLower.
x() - xcentre) * invRho2;
447 double h22Inv = 1. /
pow(h2, 2);
451 2. * ((gPositionLower.
x() * gPositionUpper.
y()) * h2Inf - (gPositionUpper.
y() * h5) * h22Inv);
452 kMatrix[0][1] = (2. * gPositionUpper.
x() * h5) * h22Inv -
453 (x2Up + y2Up - 2. * gPositionLower.
y() * gPositionUpper.
y()) * h2Inf;
455 2. * ((gPositionLower.
y() * h5) * h22Inv - (gPositionUpper.
x() * gPositionLower.
y()) * h2Inf);
456 kMatrix[0][3] = (x2Low + y2Low - 2. * gPositionUpper.
y() * gPositionLower.
y()) * h2Inf -
457 (2. * gPositionLower.
x() * h5) * h22Inv;
458 kMatrix[1][0] = (x2Up - 2. * gPositionLower.
x() * gPositionUpper.
x() + y2Up) * h2Inf -
459 (2. * gPositionUpper.
y() * h4) * h22Inv;
461 2. * ((gPositionUpper.
x() * h4) * h22Inv - (gPositionUpper.
x() * gPositionLower.
y()) * h2Inf);
462 kMatrix[1][2] = (2. * gPositionLower.
y() * h4) * h22Inv -
463 (x2Low - 2. * gPositionUpper.
x() * gPositionLower.
x() + y2Low) * h2Inf;
465 2. * (gPositionLower.
x() * gPositionUpper.
y()) * h2Inf - (gPositionLower.
x() * h4) * h22Inv;
468 jacobian[3][0] = nMatrix[0];
469 jacobian[3][1] = nMatrix[1];
470 jacobian[3][2] = nMatrix[2];
471 jacobian[3][3] = nMatrix[3];
474 if ((signCurv < 0 && curvature > 0) || (signCurv > 0 &&
curvature < 0)) {
476 for (
int i = 0;
i < 4;
i++) {
477 jacobian[2][
i] = -jacobian[2][
i];
490 for (
int i = 0;
i < 4;
i++) {
491 curvatureJacobian[
i] = jacobian[2][
i];
496 gErrors[0][0] = gErrorLower.
cxx();
497 gErrors[0][1] = gErrorLower.
cyx();
498 gErrors[1][0] = gErrorLower.
cyx();
499 gErrors[1][1] = gErrorLower.
cyy();
500 gErrors[2][2] = gErrorUpper.
cxx();
501 gErrors[2][3] = gErrorUpper.
cyx();
502 gErrors[3][2] = gErrorUpper.
cyx();
503 gErrors[3][3] = gErrorUpper.
cyy();
507 errorCurvature =
temp[0] * curvatureJacobian[0] +
temp[1] * curvatureJacobian[1] +
temp[2] * curvatureJacobian[2] +
508 temp[3] * curvatureJacobian[3];
512 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, callgraph::n2, 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 335 of file VectorHitBuilderAlgorithm.cc.
343 float intercept = 0.;
350 covMatrix[0][0] = covss;
351 covMatrix[1][1] = covii;
352 covMatrix[1][0] = covsi;
354 for (
unsigned int j = 0;
j < 2;
j++) {
355 const double ypred = intercept +
slope *
x[
j];
356 const double dy = (
y[
j] - ypred) /
sqrt(sigy2[
j]);
362 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 297 of file VectorHitBuilderAlgorithm.cc.
305 float x[2] = {lpCI.
z(), lpCO.
z()};
306 float y[2] = {lpCI.
x(), lpCO.
x()};
307 float sqCI =
sqrt(leCI.
xx());
308 float sqCO =
sqrt(leCO.
xx());
309 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 316 of file VectorHitBuilderAlgorithm.cc.
324 float x[2] = {lpCI.
z(), lpCO.
z()};
325 float y[2] = {lpCI.
y(), lpCO.
y()};
326 float sqCI =
sqrt(leCI.
yy());
327 float sqCO =
sqrt(leCO.
yy());
328 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 8 of file VectorHitBuilderAlgorithm.cc.
13 LogDebug(
"VectorHitBuilderAlgorithm") <<
"Run VectorHitBuilderAlgorithm ... \n";
14 const auto* clustersPhase2Collection =
clusters.product();
17 LogDebug(
"VectorHitBuilderAlgorithm") <<
"with #clusters : " << clustersPhase2Collection->size() << std::endl;
18 for (
auto dSViter : *clustersPhase2Collection) {
19 unsigned int rawDetId1(dSViter.detId());
20 DetId detId1(rawDetId1);
21 DetId lowerDetId, upperDetId;
31 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId stack : " << detIdStack.
rawId() << std::endl;
32 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId lower set of clusters : " << lowerDetId.
rawId();
33 LogDebug(
"VectorHitBuilderAlgorithm") <<
" DetId upper set of clusters : " << upperDetId.
rawId() << std::endl;
37 const auto& it_detLower = dSViter;
38 const auto& it_detUpper = clustersPhase2Collection->find(upperDetId);
40 if (it_detUpper != clustersPhase2Collection->end()) {
42 stackDet = dynamic_cast<const StackGeomDet*>(gd);
46 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