CMS 3D CMS Logo

PSimHitMap.cc
Go to the documentation of this file.
3 
5  theMap.clear();
7  LogTrace("PSimHitMap") << "getting CrossingFrame<PSimHit> collection ";
8  e.getByToken(sh_token, cf);
9 
11  LogTrace("PSimHitMap") << "... size = " << simHits.size();
12 
13  // arrange the hits by detUnit
14  for (MixCollection<PSimHit>::MixItr hitItr = simHits.begin(); hitItr != simHits.end(); ++hitItr) {
15  theMap[hitItr->detUnitId()].push_back(*hitItr);
16  }
17 }
18 
19 const edm::PSimHitContainer &PSimHitMap::hits(int detId) const {
20  std::map<int, edm::PSimHitContainer>::const_iterator mapItr = theMap.find(detId);
21  if (mapItr != theMap.end()) {
22  return mapItr->second;
23  } else {
24  return theEmptyContainer;
25  }
26 }
27 
28 std::vector<int> PSimHitMap::detsWithHits() const {
29  std::vector<int> result;
30  result.reserve(theMap.size());
31  for (std::map<int, edm::PSimHitContainer>::const_iterator mapItr = theMap.begin(), mapEnd = theMap.end();
32  mapItr != mapEnd;
33  ++mapItr) {
34  result.push_back(mapItr->first);
35  }
36  return result;
37 }
edm::PSimHitContainer theEmptyContainer
Definition: PSimHitMap.h:25
void fill(const edm::Event &e)
Definition: PSimHitMap.cc:4
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
const edm::PSimHitContainer & hits(int detId) const
Definition: PSimHitMap.cc:19
edm::EDGetTokenT< CrossingFrame< PSimHit > > sh_token
Definition: PSimHitMap.h:27
#define LogTrace(id)
std::vector< int > detsWithHits() const
Definition: PSimHitMap.cc:28
std::map< int, edm::PSimHitContainer > theMap
Definition: PSimHitMap.h:24
T const * product() const
Definition: Handle.h:74
std::vector< PSimHit > PSimHitContainer