StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TempParticleMap.h
1 //--------------------------------------------------------------------------
2 #ifndef HEPMC_TempParticleMap_H
3 #define HEPMC_TempParticleMap_H
4 
6 // garren@fnal.gov, October 2007
7 //
8 // Used by IO classes
10 
11 #include <map>
12 
13 namespace HepMC {
14 
15  class GenParticle;
16 
18 
25  public:
26  typedef std::map<HepMC::GenParticle*,int> TempMap;
27  typedef std::map<int,HepMC::GenParticle*> TempOrderMap;
28  typedef TempMap::iterator TempMapIterator;
29  typedef TempOrderMap::iterator orderIterator;
30 
32  : m_particle_to_end_vertex(), m_particle_order() {}
33 
34  ~TempParticleMap() {}
35 
36  TempMapIterator begin() { return m_particle_to_end_vertex.begin(); }
37  TempMapIterator end() { return m_particle_to_end_vertex.end(); }
38  orderIterator order_begin() { return m_particle_order.begin(); }
39  orderIterator order_end() { return m_particle_order.end(); }
40 
41  int end_vertex( GenParticle* );
42 
43  void addEndParticle( GenParticle*, int& );
44 
45  private:
46  TempMap m_particle_to_end_vertex;
47  TempOrderMap m_particle_order;
48  };
49 
50  inline int TempParticleMap::end_vertex( GenParticle* p )
51  {
52  //return m_particle_to_end_vertex[p]->second;
53  TempMapIterator it = m_particle_to_end_vertex.find(p);
54  if( it == end() ) return 0;
55  return m_particle_to_end_vertex[p];
56  }
57 
58  inline void TempParticleMap::addEndParticle( GenParticle* p, int& end_vtx_code )
59  {
60  m_particle_order[p->barcode()] = p;
61  m_particle_to_end_vertex[p] = end_vtx_code;
62  }
63 
64 } // HepMC
65 
66 #endif // HEPMC_TempParticleMap_H
67 //--------------------------------------------------------------------------
TempParticleMap is a temporary GenParticle* container used during input.
The GenParticle class contains information about generated particles.
Definition: GenParticle.h:60