27 const DTLayer* layer = dtGeom->
layer(theWireId.layerId());
51 throw cms::Exception(
"DTHitPairForFit")<<
" localPosition called with undef LR code"<<endl;
62 LocalPoint segPosAtZLeft = posIni+dirIni*(theLeftPos.z() -posIni.
z())/dirIni.
z();
63 LocalPoint segPosAtZRight = posIni+dirIni*(theRightPos.z()-posIni.
z())/dirIni.
z();
64 float dxLeft = fabs(theLeftPos.x() - segPosAtZLeft.
x());
65 float dxRight = fabs(theRightPos.x() - segPosAtZRight.
x());
66 float exx =
sqrt(theError.xx());
70 if (
std::max(dxLeft, dxRight) < 3*exx) {
71 ret = make_pair(
true,
true);
72 }
else if (
std::min(dxLeft, dxRight) >= 10*exx) {
73 ret = make_pair(
false,
false);
75 float sigmasL = floorf(dxLeft/exx), sigmasR = floorf(dxRight/exx);
76 ret.first = ( sigmasL < sigmasR );
77 ret.second = ( sigmasR < sigmasL );
86 return (
id() < hit.
id());
90 return (
id() == hit.
id() && fabs(digiTime() - hit.
digiTime()) < 0.1 );
LocalPoint localPosition() const override
Return the 3-dimensional local position.
Point3DBase< Scalar, LocalTag > LocalPoint
bool operator<(const DTHitPairForFit &hit) const
define the order by increasing z
LocalPoint localPosition(DTEnums::DTCellSide s) const
Returns the local position in the layer.
const DTWireId & id() const
Returns the Id of the wire on which the rechit rely.
float digiTime() const
Return the digi time (ns) used to build the rechits.
LocalError localPositionError() const override
Return the 3-dimensional error on the local position.
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
std::pair< bool, bool > isCompatible(const LocalPoint &posIni, const LocalVector &dirIni) const
DTCellSide
Which side of the DT cell.
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
const DTRecHit1D * componentRecHit(DTEnums::DTCellSide lrSide) const
Return the left/right DTRecHit1D.
~DTHitPairForFit()
Destructor.
float digiTime() const
Returns the time of the corresponding digi.
DTHitPairForFit(const DTRecHit1DPair &pair, const DTSuperLayer &sl, const edm::ESHandle< DTGeometry > &dtGeom)
Constructor.
std::ostream & operator<<(std::ostream &out, const std::tuple< Types... > &value)
LocalPoint leftPos() const
Returns the position in the layer r.f. of the left rechit.
bool operator==(const DTHitPairForFit &hit) const
LocalPoint rightPos() const
Returns the position in the layer r.f. of the right rechit.
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.