1010#include " FWCore/Utilities/interface/RunningAverage.h"
1111
1212#include " RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
13- #include " DataFormats/Common/interface/OwnVector.h"
1413#include " TrackingTools/TransientTrackingRecHit/interface/SeedingLayerSetsHits.h"
1514#include " RecoTracker/TkTrackingRegions/interface/TrackingRegionsSeedingLayerSets.h"
1615#include " RecoTracker/TkHitPairs/interface/LayerHitMapCache.h"
1716#include " RecoTracker/TkHitPairs/interface/HitPairGeneratorFromLayerPair.h"
1817#include " RecoTracker/TkHitPairs/interface/IntermediateHitDoublets.h"
1918#include " RecoTracker/TkHitPairs/interface/RegionsSeedingHitSets.h"
2019
20+ #include < memory>
21+ #include < vector>
22+
2123namespace {
2224 class ImplBase ;
2325}
@@ -260,15 +262,15 @@ namespace {
260262 public:
261263 class const_iterator {
262264 public:
263- using internal_iterator_type = edm::OwnVector< TrackingRegion>::const_iterator;
265+ using internal_iterator_type = std::vector<std::unique_ptr< TrackingRegion> >::const_iterator;
264266 using value_type = RegionLayers;
265267 using difference_type = internal_iterator_type::difference_type;
266268
267269 const_iterator (internal_iterator_type iter,
268270 const std::vector<SeedingLayerSetsHits::SeedingLayerSet>* layerPairs)
269271 : iter_(iter), layerPairs_(layerPairs) {}
270272
271- value_type operator *() const { return value_type (&(*iter_), layerPairs_); }
273+ value_type operator *() const { return value_type (&(** iter_), layerPairs_); }
272274
273275 const_iterator& operator ++() {
274276 ++iter_;
@@ -289,7 +291,7 @@ namespace {
289291 };
290292
291293 EventTmp (const SeedingLayerSetsHits* seedingLayerSetsHits,
292- const edm::OwnVector< TrackingRegion>* regions,
294+ const std::vector<std::unique_ptr< TrackingRegion> >* regions,
293295 const std::vector<unsigned >& layerPairBegins)
294296 : seedingLayerSetsHits_(seedingLayerSetsHits), regions_(regions) {
295297 // construct the pairs from the sets
@@ -349,7 +351,7 @@ namespace {
349351
350352 private:
351353 const SeedingLayerSetsHits* seedingLayerSetsHits_;
352- const edm::OwnVector< TrackingRegion>* regions_;
354+ const std::vector<std::unique_ptr< TrackingRegion> >* regions_;
353355 std::vector<SeedingLayerSetsHits::SeedingLayerSet> layerPairs;
354356 };
355357
@@ -359,7 +361,7 @@ namespace {
359361 edm::ConsumesCollector iC)
360362 : layerPairBegins_(layerPairBegins),
361363 seedingLayerToken_ (iC.consumes<SeedingLayerSetsHits>(seedingLayerTag)),
362- regionToken_(iC.consumes<edm::OwnVector<TrackingRegion>> (regionTag)) {}
364+ regionToken_(iC.consumes(regionTag)) {}
363365
364366 EventTmp beginEvent (const edm::Event& iEvent) const {
365367 edm::Handle<SeedingLayerSetsHits> hlayers;
@@ -370,16 +372,14 @@ namespace {
370372 << " HitPairEDProducer expects SeedingLayerSetsHits::numberOfLayersInSet() to be >= 2, got "
371373 << layers->numberOfLayersInSet ()
372374 << " . This is likely caused by a configuration error of this module, or SeedingLayersEDProducer." ;
373- edm::Handle<edm::OwnVector<TrackingRegion>> hregions;
374- iEvent.getByToken (regionToken_, hregions);
375-
376- return EventTmp (layers, hregions.product (), *layerPairBegins_);
375+ auto const & regions = iEvent.get (regionToken_);
376+ return EventTmp (layers, ®ions, *layerPairBegins_);
377377 }
378378
379379 private:
380380 const std::vector<unsigned >* layerPairBegins_;
381381 edm::EDGetTokenT<SeedingLayerSetsHits> seedingLayerToken_;
382- edm::EDGetTokenT<edm::OwnVector< TrackingRegion>> regionToken_;
382+ edm::EDGetTokenT<std::vector<std::unique_ptr< TrackingRegion> >> regionToken_;
383383 };
384384
385385 // ///
0 commit comments