00001 #ifndef RecoTracker_TkTrackingRegions_OuterHitCompatibility_H 00002 #define RecoTracker_TkTrackingRegions_OuterHitCompatibility_H 00003 00004 00010 #include "FWCore/Framework/interface/EventSetup.h" 00011 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00012 #include "RecoTracker/TkTrackingRegions/interface/OuterHitPhiPrediction.h" 00013 #include "RecoTracker/TkTrackingRegions/interface/HitRZCompatibility.h" 00014 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00015 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00016 class OuterHitCompatibility { 00017 public: 00018 00019 OuterHitCompatibility( 00020 const OuterHitPhiPrediction & phiPrediction, 00021 const HitRZCompatibility & rzCompatibility) 00022 : thePhiPrediction(phiPrediction) 00023 { theRZCompatibility = rzCompatibility.clone(); } 00024 00025 OuterHitCompatibility(const OuterHitCompatibility & ohc) 00026 : thePhiPrediction(ohc.thePhiPrediction) 00027 { theRZCompatibility = ohc.theRZCompatibility->clone(); } 00028 00029 ~OuterHitCompatibility() 00030 { delete theRZCompatibility; } 00031 00032 00033 bool operator() (const TransientTrackingRecHit * hit) const; 00034 bool operator() (const TrackingRecHit* hit, const edm::EventSetup& iSetup) const; 00035 00036 bool checkPhi(const float & phi, const float & r) const; 00037 00038 OuterHitCompatibility* clone() const { 00039 return new OuterHitCompatibility(*this); 00040 } 00041 00042 protected: 00043 const HitRZCompatibility * theRZCompatibility; 00044 OuterHitPhiPrediction thePhiPrediction; 00045 }; 00046 #endif