CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PSimHitMap.cc
Go to the documentation of this file.
4 
5 PSimHitMap::PSimHitMap(const edm::InputTag & collectionTag)
6 : theMap(),
7  theEmptyContainer(),
8  simHitsTag(collectionTag)
9 {
10 }
11 
12 
14 {
15  theMap.clear();
17  LogTrace("PSimHitMap") <<"getting CrossingFrame<PSimHit> collection - "<<simHitsTag;
18  e.getByLabel(simHitsTag, cf);
19 
21  LogTrace("PSimHitMap") <<"... size = "<<simHits.size();
22 
23  // arrange the hits by detUnit
24  for(MixCollection<PSimHit>::MixItr hitItr = simHits.begin();
25  hitItr != simHits.end(); ++hitItr)
26  {
27  theMap[hitItr->detUnitId()].push_back(*hitItr);
28  }
29 }
30 
31 
32 const edm::PSimHitContainer & PSimHitMap::hits(int detId) const
33 {
34  std::map<int, edm::PSimHitContainer>::const_iterator mapItr
35  = theMap.find(detId);
36  if(mapItr != theMap.end())
37  {
38  return mapItr->second;
39  }
40  else
41  {
42  return theEmptyContainer;
43  }
44 }
45 
46 
47 std::vector<int> PSimHitMap::detsWithHits() const
48 {
49  std::vector<int> result;
50  result.reserve(theMap.size());
51  for(std::map<int, edm::PSimHitContainer>::const_iterator mapItr = theMap.begin(),
52  mapEnd = theMap.end();
53  mapItr != mapEnd;
54  ++mapItr)
55  {
56  result.push_back(mapItr->first);
57  }
58  return result;
59 }
60 
61 
edm::InputTag simHitsTag
Definition: PSimHitMap.h:23
edm::PSimHitContainer theEmptyContainer
Definition: PSimHitMap.h:22
void fill(const edm::Event &e)
Definition: PSimHitMap.cc:13
tuple result
Definition: query.py:137
const edm::PSimHitContainer & hits(int detId) const
Definition: PSimHitMap.cc:32
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
#define LogTrace(id)
PSimHitMap(const edm::InputTag &)
Definition: PSimHitMap.cc:5
std::vector< int > detsWithHits() const
Definition: PSimHitMap.cc:47
std::map< int, edm::PSimHitContainer > theMap
Definition: PSimHitMap.h:21
tuple simHits
Definition: trackerHits.py:16
T const * product() const
Definition: Handle.h:81
std::vector< PSimHit > PSimHitContainer