LCOV - code coverage report
Current view: top level - TEvtGen/HepMC - TempParticleMap.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 12 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 9 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : #ifndef HEPMC_TempParticleMap_H
       3             : #define HEPMC_TempParticleMap_H
       4             : 
       5             : //////////////////////////////////////////////////////////////////////////
       6             : // garren@fnal.gov, October 2007
       7             : //
       8             : // Used by IO classes
       9             : //////////////////////////////////////////////////////////////////////////
      10             : 
      11             : #include <map>
      12             : 
      13             : namespace HepMC {
      14             : 
      15             :     class GenParticle;
      16             : 
      17             :     //! TempParticleMap is a temporary GenParticle* container used during input.
      18             : 
      19             :     ///
      20             :     /// \class  TempParticleMap
      21             :     /// Used by IO classes for recoverable particle ordering.
      22             :     /// Map GenParticle* against both outgoing vertex and particle order.
      23             :     ///
      24             :     class TempParticleMap {
      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             :         
      31             :         TempParticleMap() 
      32           0 :         : m_particle_to_end_vertex(), m_particle_order() {}
      33             :         
      34           0 :         ~TempParticleMap() {}
      35             :         
      36             :         TempMapIterator begin() { return m_particle_to_end_vertex.begin(); }
      37           0 :         TempMapIterator end() { return m_particle_to_end_vertex.end(); }
      38           0 :         orderIterator order_begin() { return m_particle_order.begin(); }
      39           0 :         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           0 :         TempMapIterator it = m_particle_to_end_vertex.find(p);
      54           0 :         if( it == end() ) return 0;
      55           0 :         return m_particle_to_end_vertex[p];
      56           0 :     }
      57             : 
      58             :     inline void TempParticleMap::addEndParticle( GenParticle* p, int& end_vtx_code )
      59             :     {
      60           0 :         m_particle_order[p->barcode()] = p;
      61           0 :         m_particle_to_end_vertex[p] = end_vtx_code;
      62           0 :     }        
      63             : 
      64             : } // HepMC
      65             : 
      66             : #endif  // HEPMC_TempParticleMap_H
      67             : //--------------------------------------------------------------------------

Generated by: LCOV version 1.11