File indexing completed on 2023-03-17 11:22:58
0001 #ifndef MultiHitGenerator_H
0002 #define MultiHitGenerator_H
0003
0004
0005
0006
0007
0008 #include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h"
0009 #include "RecoTracker/TkSeedingLayers/interface/OrderedMultiHits.h"
0010
0011 #include "DataFormats/TrackerRecHit2D/interface/BaseTrackerRecHit.h"
0012 #include "DataFormats/TrackingRecHit/interface/mayown_ptr.h"
0013 #include "FWCore/Utilities/interface/RunningAverage.h"
0014
0015 class TrackingRegion;
0016 namespace edm {
0017 class Event;
0018 class EventSetup;
0019 }
0020 #include <vector>
0021
0022 class MultiHitGenerator : public OrderedHitsGenerator {
0023 public:
0024 MultiHitGenerator(unsigned int size = 400) : localRA(size) {}
0025 MultiHitGenerator(MultiHitGenerator const& other) : localRA(other.localRA.mean()) {}
0026
0027 ~MultiHitGenerator() override {}
0028
0029 const OrderedMultiHits& run(const TrackingRegion& region, const edm::Event& ev, const edm::EventSetup& es) final;
0030
0031
0032 virtual void hitSets(const TrackingRegion& reg, OrderedMultiHits& prs, const edm::EventSetup& es) {}
0033
0034 virtual void hitSets(const TrackingRegion& reg,
0035 OrderedMultiHits& prs,
0036 const edm::Event& ev,
0037 const edm::EventSetup& es) = 0;
0038
0039 void clear() override;
0040
0041 private:
0042 OrderedMultiHits theHitSets;
0043
0044 protected:
0045 edm::RunningAverage localRA;
0046 };
0047
0048 #endif