File indexing completed on 2024-04-06 12:28:31
0001 #ifndef RecoTracker_PixelSeeding_HitTripletGeneratorFromPairAndLayers_h
0002 #define RecoTracker_PixelSeeding_HitTripletGeneratorFromPairAndLayers_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoTracker/PixelSeeding/interface/OrderedHitTriplets.h"
0011 #include <vector>
0012 #include "TrackingTools/TransientTrackingRecHit/interface/SeedingLayerSetsHits.h"
0013 #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h"
0014
0015 namespace edm {
0016 class ParameterSet;
0017 class Event;
0018 class EventSetup;
0019 class ConsumesCollector;
0020 class ParameterSetDescription;
0021 }
0022 class TrackingRegion;
0023 class HitPairGeneratorFromLayerPair;
0024
0025 class HitTripletGeneratorFromPairAndLayers {
0026 public:
0027 typedef LayerHitMapCache LayerCacheType;
0028
0029 explicit HitTripletGeneratorFromPairAndLayers(unsigned int maxElement = 0);
0030 explicit HitTripletGeneratorFromPairAndLayers(const edm::ParameterSet& pset);
0031 virtual ~HitTripletGeneratorFromPairAndLayers();
0032
0033 static void fillDescriptions(edm::ParameterSetDescription& desc);
0034
0035 void init(std::unique_ptr<HitPairGeneratorFromLayerPair>&& pairs, LayerCacheType* layerCache);
0036
0037 const HitPairGeneratorFromLayerPair& pairGenerator() const { return *thePairGenerator; }
0038
0039 virtual void hitTriplets(const TrackingRegion& region,
0040 OrderedHitTriplets& trs,
0041 const edm::Event& ev,
0042 const edm::EventSetup& es,
0043 const SeedingLayerSetsHits::SeedingLayerSet& pairLayers,
0044 const std::vector<SeedingLayerSetsHits::SeedingLayer>& thirdLayers) = 0;
0045
0046 virtual void hitTriplets(const TrackingRegion& region,
0047 OrderedHitTriplets& result,
0048 const edm::EventSetup& es,
0049 const HitDoublets& doublets,
0050 const RecHitsSortedInPhi** thirdHitMap,
0051 const std::vector<const DetLayer*>& thirdLayerDetLayer,
0052 const int nThirdLayers) = 0;
0053
0054 protected:
0055 std::unique_ptr<HitPairGeneratorFromLayerPair> thePairGenerator;
0056 LayerCacheType* theLayerCache;
0057 const unsigned int theMaxElement;
0058 };
0059 #endif