Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:28

0001 #ifndef RecoTracker_PixelLowPtUtilities_ClusterShapeTrackFilter_h
0002 #define RecoTracker_PixelLowPtUtilities_ClusterShapeTrackFilter_h
0003 
0004 #include "RecoTracker/PixelTrackFitting/interface/PixelTrackFilterBase.h"
0005 
0006 #include "DataFormats/GeometryVector/interface/GlobalTag.h"
0007 #include "DataFormats/GeometryVector/interface/Vector2DBase.h"
0008 typedef Vector2DBase<float, GlobalTag> Global2DVector;
0009 
0010 //#include "DataFormats/GeometryVector/interface/LocalVector.h"
0011 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0012 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0013 
0014 #include <vector>
0015 
0016 class TrackerGeometry;
0017 class TrackingRecHit;
0018 class ClusterShapeHitFilter;
0019 class TrackerTopology;
0020 class SiPixelClusterShapeCache;
0021 
0022 class ClusterShapeTrackFilter : public PixelTrackFilterBase {
0023 public:
0024   ClusterShapeTrackFilter(const SiPixelClusterShapeCache *cache,
0025                           double ptmin,
0026                           double ptmax,
0027                           const TrackerGeometry *tracker,
0028                           const ClusterShapeHitFilter *shape,
0029                           const TrackerTopology *ttopo);
0030   ~ClusterShapeTrackFilter() override;
0031   bool operator()(const reco::Track *, const std::vector<const TrackingRecHit *> &hits) const override;
0032 
0033 private:
0034   float areaParallelogram(const Global2DVector &a, const Global2DVector &b) const;
0035   std::vector<GlobalVector> getGlobalDirs(const std::vector<GlobalPoint> &globalPoss) const;
0036   std::vector<GlobalPoint> getGlobalPoss(const std::vector<const TrackingRecHit *> &recHits) const;
0037 
0038   const TrackerGeometry *theTracker;
0039   const ClusterShapeHitFilter *theFilter;
0040   const SiPixelClusterShapeCache *theClusterShapeCache;
0041   const TrackerTopology *tTopo;
0042 
0043   const double ptMin;
0044   const double ptMax;
0045 };
0046 
0047 #endif