Go to the documentation of this file.00001 #ifndef OuterDetCompatibility_H
00002 #define OuterDetCompatibility_H
00003
00007 #include "RecoTracker/TkTrackingRegions/interface/OuterHitPhiPrediction.h"
00008 #include "RecoTracker/TkTrackingRegions/interface/HitRZConstraint.h"
00009 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h"
00010 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h"
00011 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00012
00013 class OuterDetCompatibility {
00014 public:
00015
00016 OuterDetCompatibility(const BarrelDetLayer* layer,
00017 const OuterHitPhiPrediction::Range & phiRange,
00018 const HitRZConstraint::Range & rRange,
00019 const HitRZConstraint::Range & zRange)
00020 : theLayer(layer), barrel(true),
00021 hitDetPhiRange(phiRange), hitDetRRange(rRange), hitDetZRange(zRange) { }
00022
00023 OuterDetCompatibility(const ForwardDetLayer* layer,
00024 const OuterHitPhiPrediction::Range & phiRange,
00025 const HitRZConstraint::Range & rRange,
00026 const HitRZConstraint::Range & zRange)
00027 : theLayer(layer), barrel(false),
00028 hitDetPhiRange(phiRange), hitDetRRange(rRange), hitDetZRange(zRange) { }
00029
00030 bool operator() (const BoundPlane& plane) const;
00031
00032 MeasurementEstimator::Local2DVector maximalLocalDisplacement(
00033 const TrajectoryStateOnSurface& ts, const BoundPlane& plane) const;
00034 MeasurementEstimator::Local2DVector maximalLocalDisplacement(
00035 const GlobalPoint & ts, const BoundPlane& plane) const;
00036
00037 GlobalPoint center() const;
00038
00039 const OuterHitPhiPrediction::Range & phiRange()const {return hitDetPhiRange;}
00040 const HitRZConstraint::Range &rRange() const { return hitDetRRange; }
00041 const HitRZConstraint::Range &zRange() const { return hitDetZRange; }
00042
00043 private:
00044 bool checkPhi(const OuterHitPhiPrediction::Range & detPhiRange) const;
00045 bool checkR(const HitRZConstraint::Range & detRRange) const;
00046 bool checkZ(const HitRZConstraint::Range & detZRange) const;
00047
00048 double loc_dist(
00049 double radius, double ts_phi, double range_phi, double cosGamma) const;
00050
00051 private:
00052 const DetLayer* theLayer;
00053 bool barrel;
00054 OuterHitPhiPrediction::Range hitDetPhiRange;
00055 HitRZConstraint::Range hitDetRRange, hitDetZRange;
00056 };
00057
00058 #endif