CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Types | Private Attributes
LayerHitMapCache Class Reference

#include <LayerHitMapCache.h>

Classes

class  SimpleCache
 

Public Member Functions

RecHitsSortedInPhiadd (const SeedingLayerSetsHits::SeedingLayer &layer, std::unique_ptr< RecHitsSortedInPhi > hits)
 
void clear ()
 
void extend (const LayerHitMapCache &other)
 
 LayerHitMapCache (unsigned int initSize=50)
 
 LayerHitMapCache (LayerHitMapCache &&rh)
 
const RecHitsSortedInPhioperator() (const SeedingLayerSetsHits::SeedingLayer &layer, const TrackingRegion &region, const edm::EventSetup &iSetup)
 

Private Types

typedef SimpleCache Cache
 

Private Attributes

Cache theCache
 

Detailed Description

A cache adressable by DetLayer* and TrackingRegion* . Used to cache all the hits of a DetLayer.

Definition at line 14 of file LayerHitMapCache.h.

Member Typedef Documentation

Definition at line 53 of file LayerHitMapCache.h.

Constructor & Destructor Documentation

LayerHitMapCache::LayerHitMapCache ( unsigned int  initSize = 50)
inline

Definition at line 55 of file LayerHitMapCache.h.

55 : theCache(initSize) { }
LayerHitMapCache::LayerHitMapCache ( LayerHitMapCache &&  rh)
inline

Definition at line 56 of file LayerHitMapCache.h.

56 : theCache(std::move(rh.theCache)) {}
def move(src, dest)
Definition: eostools.py:510

Member Function Documentation

RecHitsSortedInPhi* LayerHitMapCache::add ( const SeedingLayerSetsHits::SeedingLayer layer,
std::unique_ptr< RecHitsSortedInPhi hits 
)
inline

Definition at line 65 of file LayerHitMapCache.h.

References LayerHitMapCache::SimpleCache::add(), SeedingLayerSetsHits::SeedingLayer::index(), and theCache.

Referenced by counter.Counter::register().

65  {
66  RecHitsSortedInPhi *ptr = hits.get();
67  theCache.add(layer.index(), hits.release());
68  return ptr;
69  }
void add(KeyType key, ValueType *value)
add object to cache. It is caller responsibility to check that object is not yet there.
void LayerHitMapCache::clear ( void  )
inline
void LayerHitMapCache::extend ( const LayerHitMapCache other)
inline
const RecHitsSortedInPhi& LayerHitMapCache::operator() ( const SeedingLayerSetsHits::SeedingLayer layer,
const TrackingRegion region,
const edm::EventSetup iSetup 
)
inline

Definition at line 72 of file LayerHitMapCache.h.

References LayerHitMapCache::SimpleCache::add(), RecHitsSortedInPhi::all(), SeedingLayerSetsHits::SeedingLayer::detLayer(), LayerHitMapCache::SimpleCache::get(), TrackingRegion::hits(), SeedingLayerSetsHits::SeedingLayer::index(), crabWrapper::key, LogDebug, TrackingRegion::origin(), theCache, and tmp.

73  {
74  int key = layer.index();
75  assert (key>=0);
76  const RecHitsSortedInPhi * lhm = theCache.get(key);
77  if (lhm==nullptr) {
78  auto tmp = add(layer, std::make_unique<RecHitsSortedInPhi>(region.hits(iSetup,layer), region.origin(), layer.detLayer()));
79  tmp->theOrigin = region.origin();
80  lhm = tmp;
81  LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits in the cache for: "<<layer.detLayer();
82  }
83  else{
84  // std::cout << region.origin() << " " << lhm->theOrigin << std::endl;
85  LogDebug("LayerHitMapCache")<<" I got"<< lhm->all().second-lhm->all().first<<" hits FROM THE cache for: "<<layer.detLayer();
86  }
87  return *lhm;
88  }
#define LogDebug(id)
GlobalPoint const & origin() const
RecHitsSortedInPhi * add(const SeedingLayerSetsHits::SeedingLayer &layer, std::unique_ptr< RecHitsSortedInPhi > hits)
virtual Hits hits(const edm::EventSetup &es, const SeedingLayerSetsHits::SeedingLayer &layer) const =0
get hits from layer compatible with region constraints
const DetLayer * detLayer() const
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
const ValueType * get(KeyType key) const

Member Data Documentation

Cache LayerHitMapCache::theCache
private

Definition at line 91 of file LayerHitMapCache.h.

Referenced by add(), clear(), extend(), and operator()().