Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef CombinedMultiHitGenerator_H
0002 #define CombinedMultiHitGenerator_H
0003 
0004 /** A MultiHitGenerator consisting of a set of 
0005  *  triplet generators of type MultiHitGeneratorFromPairAndLayers
0006  *  initialised from provided layers in the form of PixelLayerTriplets  
0007  */
0008 #include "FWCore/Utilities/interface/Visibility.h"
0009 
0010 #include "RecoTracker/TkSeedGenerator/interface/MultiHitGenerator.h"
0011 #include "RecoTracker/TkSeedGenerator/interface/MultiHitGeneratorFromPairAndLayers.h"
0012 #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/Utilities/interface/EDGetToken.h"
0015 
0016 #include <memory>
0017 
0018 class TrackingRegion;
0019 class dso_hidden SeedingLayerSetsHits;
0020 // class MultiHitGeneratorFromPairAndLayers;
0021 
0022 namespace edm {
0023   class Event;
0024 }
0025 namespace edm {
0026   class EventSetup;
0027 }
0028 
0029 class dso_hidden CombinedMultiHitGenerator final : public MultiHitGenerator {
0030 public:
0031   typedef LayerHitMapCache LayerCacheType;
0032 
0033 public:
0034   CombinedMultiHitGenerator(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC);
0035 
0036   ~CombinedMultiHitGenerator() override;
0037 
0038   /// from base class
0039   void hitSets(const TrackingRegion& reg,
0040                OrderedMultiHits& result,
0041                const edm::Event& ev,
0042                const edm::EventSetup& es) override;
0043 
0044   void clear() override {
0045     MultiHitGenerator::clear();
0046     theGenerator->clear();
0047   }
0048 
0049 private:
0050   edm::EDGetTokenT<SeedingLayerSetsHits> theSeedingLayerToken;
0051 
0052   LayerCacheType theLayerCache;
0053 
0054   std::unique_ptr<MultiHitGeneratorFromPairAndLayers> theGenerator;
0055 };
0056 #endif