CMS 3D CMS Logo

MultiHitGeneratorFromPairAndLayers.h
Go to the documentation of this file.
1 #ifndef MultiHitGeneratorFromPairAndLayers_H
2 #define MultiHitGeneratorFromPairAndLayers_H
3 
10 #include <vector>
14 
15 namespace edm { class ParameterSet; class Event; class EventSetup; class ParameterSetDescription;}
16 class TrackingRegion;
18 
20 
21 public:
23 
26 
27  static void fillDescriptions(edm::ParameterSetDescription& desc);
28 
29  virtual void initES(const edm::EventSetup& es) = 0;
30 
31  void init(std::unique_ptr<HitPairGeneratorFromLayerPair>&& pairGenerator, LayerCacheType *layerCache);
32 
33  virtual void hitSets( const TrackingRegion& region, OrderedMultiHits & trs,
34  const edm::Event & ev, const edm::EventSetup& es,
36  std::vector<SeedingLayerSetsHits::SeedingLayer> thirdLayers) = 0;
37 
38  virtual void hitTriplets(
39  const TrackingRegion& region,
41  const edm::EventSetup & es,
42  const HitDoublets & doublets,
43  const RecHitsSortedInPhi ** thirdHitMap,
44  const std::vector<const DetLayer *> & thirdLayerDetLayer,
45  const int nThirdLayers)=0;
46 
47  const HitPairGeneratorFromLayerPair& pairGenerator() const { return *thePairGenerator; }
48 
49  void clear();
50 
51 protected:
52  using cacheHitPointer = std::unique_ptr<BaseTrackerRecHit>;
53  using cacheHits=std::vector<cacheHitPointer>;
54  cacheHits cache; // ownes what is by reference above...
55 
56  std::unique_ptr<HitPairGeneratorFromLayerPair> thePairGenerator;
57  LayerCacheType *theLayerCache;
58  const unsigned int theMaxElement;
59 };
60 #endif
61 
62 
std::unique_ptr< BaseTrackerRecHit > cacheHitPointer
const HitPairGeneratorFromLayerPair & pairGenerator() const
bool ev
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
Definition: matutil.cc:167
HLT enums.
std::unique_ptr< HitPairGeneratorFromLayerPair > thePairGenerator