![]() |
![]() |
#include <OuterDetCompatibility.h>
Public Types | |
typedef PixelRecoRange< float > | Range |
Public Member Functions | |
GlobalPoint | center () const |
MeasurementEstimator::Local2DVector | maximalLocalDisplacement (const GlobalPoint &ts, const BoundPlane &plane) const |
MeasurementEstimator::Local2DVector | maximalLocalDisplacement (const TrajectoryStateOnSurface &ts, const BoundPlane &plane) const |
bool | operator() (const BoundPlane &plane) const |
OuterDetCompatibility (const ForwardDetLayer *layer, const OuterHitPhiPrediction::Range &phiRange, const Range &rRange, const Range &zRange) | |
OuterDetCompatibility (const BarrelDetLayer *layer, const OuterHitPhiPrediction::Range &phiRange, const Range &rRange, const Range &zRange) | |
const OuterHitPhiPrediction::Range & | phiRange () const |
const Range & | rRange () const |
const Range & | zRange () const |
Private Member Functions | |
bool | checkPhi (const OuterHitPhiPrediction::Range &detPhiRange) const |
bool | checkR (const Range &detRRange) const |
bool | checkZ (const Range &detZRange) const |
double | loc_dist (double radius, double ts_phi, double range_phi, double cosGamma) const |
Private Attributes | |
bool | barrel |
OuterHitPhiPrediction::Range | hitDetPhiRange |
Range | hitDetRRange |
Range | hitDetZRange |
const DetLayer * | theLayer |
check det compatibility by comparistion of det BoundPlane ranges with phi,r,z ranges (given at construction).
Definition at line 14 of file OuterDetCompatibility.h.
typedef PixelRecoRange<float> OuterDetCompatibility::Range |
Definition at line 16 of file OuterDetCompatibility.h.
OuterDetCompatibility::OuterDetCompatibility | ( | const BarrelDetLayer * | layer, |
const OuterHitPhiPrediction::Range & | phiRange, | ||
const Range & | rRange, | ||
const Range & | zRange | ||
) | [inline] |
Definition at line 18 of file OuterDetCompatibility.h.
: theLayer(layer), barrel(true), hitDetPhiRange(phiRange), hitDetRRange(rRange), hitDetZRange(zRange) { }
OuterDetCompatibility::OuterDetCompatibility | ( | const ForwardDetLayer * | layer, |
const OuterHitPhiPrediction::Range & | phiRange, | ||
const Range & | rRange, | ||
const Range & | zRange | ||
) | [inline] |
Definition at line 25 of file OuterDetCompatibility.h.
: theLayer(layer), barrel(false), hitDetPhiRange(phiRange), hitDetRRange(rRange), hitDetZRange(zRange) { }
GlobalPoint OuterDetCompatibility::center | ( | ) | const |
Definition at line 37 of file OuterDetCompatibility.cc.
References funct::cos(), phi, alignCSCRings::r, and funct::sin().
Referenced by OuterEstimator::center().
{ float phi = hitDetPhiRange.mean(); float r = hitDetRRange.mean(); return GlobalPoint( r*cos(phi), r*sin(phi), hitDetZRange.mean() ); }
bool OuterDetCompatibility::checkPhi | ( | const OuterHitPhiPrediction::Range & | detPhiRange | ) | const [private] |
Definition at line 24 of file OuterDetCompatibility.cc.
References rangesIntersect().
{ return rangesIntersect(detPhiRange, hitDetPhiRange, PhiLess()); }
bool OuterDetCompatibility::checkR | ( | const Range & | detRRange | ) | const [private] |
Definition at line 28 of file OuterDetCompatibility.cc.
References rangesIntersect().
{ return rangesIntersect(detRRange, hitDetRRange); }
bool OuterDetCompatibility::checkZ | ( | const Range & | detZRange | ) | const [private] |
Definition at line 32 of file OuterDetCompatibility.cc.
References rangesIntersect().
{ return rangesIntersect(detZRange, hitDetZRange); }
double OuterDetCompatibility::loc_dist | ( | double | radius, |
double | ts_phi, | ||
double | range_phi, | ||
double | cosGamma | ||
) | const [private] |
Definition at line 117 of file OuterDetCompatibility.cc.
References funct::sin(), and mathSSE::sqrt().
MeasurementEstimator::Local2DVector OuterDetCompatibility::maximalLocalDisplacement | ( | const TrajectoryStateOnSurface & | ts, |
const BoundPlane & | plane | ||
) | const |
Referenced by OuterEstimator::maximalLocalDisplacement().
MeasurementEstimator::Local2DVector OuterDetCompatibility::maximalLocalDisplacement | ( | const GlobalPoint & | ts, |
const BoundPlane & | plane | ||
) | const |
Definition at line 45 of file OuterDetCompatibility.cc.
References Reference_intrackfit_cff::barrel, funct::cos(), Vector3DBase< T, FrameTag >::dot(), customizeTrackingMonitorSeedNumber::idx, M_PI, max(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), CosmicsPD_Skims::radius, funct::sin(), csvLumiCalc::unit, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ float x_loc = 0.; float y_loc = 0.; if(barrel) { double radius = ts.perp(); GlobalVector planeNorm = plane.normalVector(); GlobalVector tsDir = GlobalVector( ts.x(), ts.y(),0. ).unit(); double ts_phi = tsDir.phi(); if (! hitDetPhiRange.inside(ts_phi) ) { while (ts_phi >= hitDetPhiRange.max() ) ts_phi -= 2*M_PI; while (ts_phi < hitDetPhiRange.min() ) ts_phi += 2*M_PI; if (!hitDetPhiRange.inside(ts_phi)) return MeasurementEstimator::Local2DVector(0.,0.); } double cosGamma = tsDir.dot(planeNorm); double dx1 = loc_dist( radius, ts_phi, hitDetPhiRange.min(), cosGamma); double dx2 = loc_dist( radius, ts_phi, hitDetPhiRange.max(), cosGamma); double ts_z = ts.z(); double dy1 = ts_z - hitDetZRange.min(); double dy2 = hitDetZRange.max() - ts_z; x_loc = max(dx1,dx2); y_loc = max(dy1,dy2); // debug only /* double r1 = dx1 * fabs(cosGamma) / sin(ts_phi-hitDetPhiRange.min()); double r2 = dx2 * fabs(cosGamma) / sin(hitDetPhiRange.max()-ts_phi); GlobalPoint p1( r1* cos(hitDetPhiRange.min()), r1 * sin(hitDetPhiRange.min()), hitDetZRange.min()); GlobalPoint p2( r2* cos(hitDetPhiRange.max()), r2 * sin(hitDetPhiRange.max()), hitDetZRange.min()); GlobalPoint p3( r1* cos(hitDetPhiRange.min()), r1 * sin(hitDetPhiRange.min()), hitDetZRange.max()); GlobalPoint p4( r2* cos(hitDetPhiRange.max()), r2 * sin(hitDetPhiRange.max()), hitDetZRange.max()); cout << " Local1: " << plane.toLocal(ts-p1) << endl; cout << " Local2: " << plane.toLocal(ts-p2) << endl; cout << " Local3: " << plane.toLocal(ts-p3) << endl; cout << " Local4: " << plane.toLocal(ts-p4) << endl; */ } else { LocalPoint ts_loc = plane.toLocal(ts); GlobalVector planeNorm = plane.normalVector(); double x_glob[4], y_glob[4], z_glob[4]; x_glob[0] = hitDetRRange.min()*cos(hitDetPhiRange.min()); y_glob[0] = hitDetRRange.min()*sin(hitDetPhiRange.min()); x_glob[1] = hitDetRRange.max()*cos(hitDetPhiRange.min()); y_glob[1] = hitDetRRange.max()*sin(hitDetPhiRange.min()); x_glob[2] = hitDetRRange.min()*cos(hitDetPhiRange.max()); y_glob[2] = hitDetRRange.min()*sin(hitDetPhiRange.max()); x_glob[3] = hitDetRRange.max()*cos(hitDetPhiRange.max()); y_glob[3] = hitDetRRange.max()*sin(hitDetPhiRange.max()); for (int idx = 0; idx < 4; idx++) { double dx_glob = x_glob[idx] - ts.x(); double dy_glob = y_glob[idx] - ts.y(); double dz_glob = -(dx_glob * planeNorm.x() + dy_glob*planeNorm.y()) / planeNorm.z(); z_glob[idx] = dz_glob + ts.z(); } for (int idx=0; idx <4; idx++) { LocalPoint lp = plane.toLocal( GlobalPoint( x_glob[idx], y_glob[idx], z_glob[idx])); x_loc = max(x_loc, fabs(lp.x()-ts_loc.x())); y_loc = max(y_loc, fabs(lp.y()-ts_loc.y())); } } MeasurementEstimator::Local2DVector distance(x_loc,y_loc); return distance; }
bool OuterDetCompatibility::operator() | ( | const BoundPlane & | plane | ) | const |
Definition at line 9 of file OuterDetCompatibility.cc.
References Reference_intrackfit_cff::barrel, GlobalDetRangeRPhi::phiRange(), GlobalDetRangeZPhi::phiRange(), GlobalDetRangeRPhi::rRange(), and GlobalDetRangeZPhi::zRange().
{ if (barrel) { GlobalDetRangeZPhi detRange(plane); if (!checkPhi(detRange.phiRange())) return 0; if (!checkZ(detRange.zRange())) return 0; } else { GlobalDetRangeRPhi detRange(plane); if (!checkPhi(detRange.phiRange())) return 0; if (!checkR(detRange.rRange())) return 0; } return 1; }
const OuterHitPhiPrediction::Range& OuterDetCompatibility::phiRange | ( | ) | const [inline] |
Definition at line 41 of file OuterDetCompatibility.h.
References hitDetPhiRange.
{return hitDetPhiRange;}
const Range& OuterDetCompatibility::rRange | ( | ) | const [inline] |
Definition at line 42 of file OuterDetCompatibility.h.
References hitDetRRange.
{ return hitDetRRange; }
const Range& OuterDetCompatibility::zRange | ( | ) | const [inline] |
Definition at line 43 of file OuterDetCompatibility.h.
References hitDetZRange.
{ return hitDetZRange; }
bool OuterDetCompatibility::barrel [private] |
Definition at line 55 of file OuterDetCompatibility.h.
Definition at line 56 of file OuterDetCompatibility.h.
Referenced by phiRange().
Range OuterDetCompatibility::hitDetRRange [private] |
Definition at line 57 of file OuterDetCompatibility.h.
Referenced by rRange().
Range OuterDetCompatibility::hitDetZRange [private] |
Definition at line 57 of file OuterDetCompatibility.h.
Referenced by zRange().
const DetLayer* OuterDetCompatibility::theLayer [private] |
Definition at line 54 of file OuterDetCompatibility.h.