File indexing completed on 2024-04-06 12:28:28
0001 #ifndef RecoTracker_PixelLowPtUtilities_ClusterShapeTrajectoryFilter_h
0002 #define RecoTracker_PixelLowPtUtilities_ClusterShapeTrajectoryFilter_h
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0005 #include "FWCore/Utilities/interface/EDGetToken.h"
0006 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"
0007
0008 namespace edm {
0009 class ParameterSet;
0010 class EventSetup;
0011 }
0012
0013 class SiPixelRecHit;
0014 class SiStripRecHit2D;
0015 class GlobalTrackingGeometry;
0016 class MagneticField;
0017 class SiPixelLorentzAngle;
0018 class SiStripLorentzAngle;
0019 class ClusterShapeHitFilter;
0020 class SiPixelClusterShapeCache;
0021
0022 class ClusterShapeTrajectoryFilter : public TrajectoryFilter {
0023 public:
0024 ClusterShapeTrajectoryFilter(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC);
0025 ~ClusterShapeTrajectoryFilter() override;
0026
0027 static void fillPSetDescription(edm::ParameterSetDescription& iDesc);
0028
0029 void setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0030
0031 bool qualityFilter(const TempTrajectory&) const override;
0032 bool qualityFilter(const Trajectory&) const override;
0033
0034 bool toBeContinued(TempTrajectory&) const override;
0035 bool toBeContinued(Trajectory&) const override;
0036
0037 std::string name() const override { return "ClusterShapeTrajectoryFilter"; }
0038
0039 private:
0040 edm::EDGetTokenT<SiPixelClusterShapeCache> theCacheToken;
0041 edm::ESGetToken<ClusterShapeHitFilter, TrajectoryFilter::Record> theFilterToken;
0042 const SiPixelClusterShapeCache* theCache;
0043 const ClusterShapeHitFilter* theFilter;
0044 };
0045
0046 #endif