CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/RecoTracker/TkTrackingRegions/interface/OuterDetCompatibility.h

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