Geant4-11
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types
G4VTHitsVector< T, Vector_t > Class Template Reference

#include <G4THitsVector.hh>

Inheritance diagram for G4VTHitsVector< T, Vector_t >:
G4HitsCollection G4VHitsCollection

Public Types

typedef vector_type::const_iterator const_iterator
 
typedef vector_type::iterator iterator
 
typedef std::map< G4int, store_typemap_t
 
typedef std::multimap< G4int, store_typemmap_t
 
typedef std::pair< G4int, store_typepair_t
 
typedef Vector_t::value_type store_type
 
typedef G4VTHitsVector< T, Vector_t > this_type
 
typedef std::unordered_map< G4int, store_typeuomap_t
 
typedef std::unordered_multimap< G4int, store_typeuommap_t
 
typedef T value_type
 
typedef Vector_t vector_type
 

Public Member Functions

template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t add (const G4int &key, U &aHit) const
 
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t add (const G4int &key, U &aHit) const
 
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t add (const G4int &key, U *&aHit) const
 
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t add (const G4int &key, U *&aHit) const
 
template<typename U = T, typename V = store_type, enable_if_t<(is_fundamental_t(U) &&is_pointer_t(V)), G4int > = 0>
store_type allocate () const
 
template<typename U = T, typename V = store_type, enable_if_t<(!is_fundamental_t(U) &&is_pointer_t(V)), G4int > = 0>
store_type allocate () const
 
template<typename U = T, typename V = store_type, enable_if_t<(is_fundamental_t(U) &&!is_pointer_t(V)), G4int > = 0>
store_type allocate () const
 
template<typename U = T, typename V = store_type, enable_if_t<(!is_fundamental_t(U) &&!is_pointer_t(V)), G4int > = 0>
store_type allocate () const
 
T * at (G4int key) const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
void clear ()
 
virtual void DrawAllHits ()
 
iterator end ()
 
const_iterator end () const
 
std::size_t entries () const
 
 G4VTHitsVector (G4int init_size=0)
 
 G4VTHitsVector (G4String detName, G4String colNam, G4int init_size=0)
 
G4int GetColID () const
 
Vector_t * GetContainer () const
 
virtual G4VHitGetHit (size_t) const
 
virtual G4VHitGetHit (std::size_t) const
 
Vector_t::size_type GetIndex (const_iterator itr) const
 
Vector_t::size_type GetIndex (iterator itr)
 
map_tGetMap () const
 
const G4StringGetName () const
 
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
const T * GetObject (const_iterator itr) const
 
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
const T * GetObject (const_iterator itr) const
 
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
T * GetObject (G4int idx) const
 
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
T * GetObject (G4int idx) const
 
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
T * GetObject (iterator itr) const
 
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
T * GetObject (iterator itr) const
 
const G4StringGetSDname () const
 
virtual std::size_t GetSize () const
 
Vector_t * GetVector () const
 
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
store_type null () const
 
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
store_type null () const
 
template<typename U , typename MapU_t , enable_if_t<(is_pointer_t(typename MapU_t::mapped_type)), G4int > = 0>
this_typeoperator+= (const G4VTHitsMap< U, MapU_t > &right) const
 
template<typename U , typename MapU_t , enable_if_t<!(is_pointer_t(typename MapU_t::mapped_type)), G4int > = 0>
this_typeoperator+= (const G4VTHitsMap< U, MapU_t > &right) const
 
template<typename U , typename VectorU_t , enable_if_t<(is_pointer_t(typename VectorU_t::value_type)), G4int > = 0>
this_typeoperator+= (const G4VTHitsVector< U, VectorU_t > &right) const
 
template<typename U , typename VectorU_t , enable_if_t<(!is_pointer_t(typename VectorU_t::value_type)), G4int > = 0>
this_typeoperator+= (const G4VTHitsVector< U, VectorU_t > &right) const
 
G4bool operator== (const G4HitsCollection &right) const
 
G4bool operator== (const G4VHitsCollection &right) const
 
G4bool operator== (const this_type &rhs) const
 
T * operator[] (G4int key) const
 
virtual void PrintAllHits ()
 
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t set (const G4int &key, U &aHit) const
 
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t set (const G4int &key, U &aHit) const
 
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t set (const G4int &key, U *&aHit) const
 
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t set (const G4int &key, U *&aHit) const
 
void SetColID (G4int i)
 
Vector_t::size_type size ()
 
virtual ~G4VTHitsVector ()
 

Protected Member Functions

template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, T &val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, T &val) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, T *&val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, T *&val) const
 
template<typename V , typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, V &val) const
 
template<typename V , typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, V &val) const
 
template<typename V , typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, V *&val) const
 
template<typename V , typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _add (vector_type *&theHitsVector, const G4int &key, V *&val) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _assign (vector_type *&theHitsVector, const G4int &key, T &val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _assign (vector_type *&theHitsVector, const G4int &key, T &val) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void _assign (vector_type *&theHitsVector, const G4int &key, T *&val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void _assign (vector_type *&theHitsVector, const G4int &key, T *&val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void delete_contents (vector_type *&) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void delete_contents (vector_type *&theHitsVector) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
T & get (U &val) const
 
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
T & get_reference (U &val) const
 
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
T & get_reference (U &val) const
 
vector_typeGetVector (const G4int &key) const
 
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
void resize (vector_type *&theHitsVector, const G4int &key) const
 
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
void resize (vector_type *&theHitsVector, const G4int &key) const
 

Protected Attributes

G4int colID
 
G4String collectionName
 
G4String SDname
 
void * theCollection
 

Private Types

template<bool _Bp, typename _Tp = void>
using enable_if_t = typename std::enable_if< _Bp, _Tp >::type
 

Detailed Description

template<typename T, typename Vector_t = std::deque<T*>>
class G4VTHitsVector< T, Vector_t >

Definition at line 52 of file G4THitsVector.hh.

Member Typedef Documentation

◆ const_iterator

template<typename T , typename Vector_t = std::deque<T*>>
typedef vector_type::const_iterator G4VTHitsVector< T, Vector_t >::const_iterator

Definition at line 59 of file G4THitsVector.hh.

◆ enable_if_t

template<typename T , typename Vector_t = std::deque<T*>>
template<bool _Bp, typename _Tp = void>
using G4VTHitsVector< T, Vector_t >::enable_if_t = typename std::enable_if<_Bp, _Tp>::type
private

Definition at line 83 of file G4THitsVector.hh.

◆ iterator

template<typename T , typename Vector_t = std::deque<T*>>
typedef vector_type::iterator G4VTHitsVector< T, Vector_t >::iterator

Definition at line 58 of file G4THitsVector.hh.

◆ map_t

template<typename T , typename Vector_t = std::deque<T*>>
typedef std::map<G4int, store_type> G4VTHitsVector< T, Vector_t >::map_t

Definition at line 63 of file G4THitsVector.hh.

◆ mmap_t

template<typename T , typename Vector_t = std::deque<T*>>
typedef std::multimap<G4int, store_type> G4VTHitsVector< T, Vector_t >::mmap_t

Definition at line 65 of file G4THitsVector.hh.

◆ pair_t

template<typename T , typename Vector_t = std::deque<T*>>
typedef std::pair<G4int, store_type> G4VTHitsVector< T, Vector_t >::pair_t

Definition at line 62 of file G4THitsVector.hh.

◆ store_type

template<typename T , typename Vector_t = std::deque<T*>>
typedef Vector_t::value_type G4VTHitsVector< T, Vector_t >::store_type

Definition at line 61 of file G4THitsVector.hh.

◆ this_type

template<typename T , typename Vector_t = std::deque<T*>>
typedef G4VTHitsVector<T, Vector_t> G4VTHitsVector< T, Vector_t >::this_type

Definition at line 55 of file G4THitsVector.hh.

◆ uomap_t

template<typename T , typename Vector_t = std::deque<T*>>
typedef std::unordered_map<G4int, store_type> G4VTHitsVector< T, Vector_t >::uomap_t

Definition at line 64 of file G4THitsVector.hh.

◆ uommap_t

template<typename T , typename Vector_t = std::deque<T*>>
typedef std::unordered_multimap<G4int, store_type> G4VTHitsVector< T, Vector_t >::uommap_t

Definition at line 66 of file G4THitsVector.hh.

◆ value_type

template<typename T , typename Vector_t = std::deque<T*>>
typedef T G4VTHitsVector< T, Vector_t >::value_type

Definition at line 56 of file G4THitsVector.hh.

◆ vector_type

template<typename T , typename Vector_t = std::deque<T*>>
typedef Vector_t G4VTHitsVector< T, Vector_t >::vector_type

Definition at line 57 of file G4THitsVector.hh.

Constructor & Destructor Documentation

◆ G4VTHitsVector() [1/2]

template<typename T , typename Vector_t >
G4VTHitsVector< T, Vector_t >::G4VTHitsVector ( G4int  init_size = 0)

Definition at line 579 of file G4THitsVector.hh.

580{
581 theCollection = static_cast<void*>(new Vector_t);
582 if(init_size > 0)
583 {
584 vector_type* theHitsVector = GetVector();
585 resize(theHitsVector, init_size - 1);
586 }
587}
Vector_t * GetVector() const
void resize(vector_type *&theHitsVector, const G4int &key) const
Vector_t vector_type

◆ G4VTHitsVector() [2/2]

template<typename T , typename Vector_t >
G4VTHitsVector< T, Vector_t >::G4VTHitsVector ( G4String  detName,
G4String  colNam,
G4int  init_size = 0 
)

Definition at line 592 of file G4THitsVector.hh.

594 : G4HitsCollection(detName, colNam)
595{
596 theCollection = static_cast<void*>(new Vector_t);
597 if(init_size > 0)
598 {
599 vector_type* theHitsVector = GetVector();
600 resize(theHitsVector, init_size - 1);
601 }
602}

References G4VTHitsVector< T, Vector_t >::GetVector(), G4VTHitsVector< T, Vector_t >::resize(), and G4HitsCollection::theCollection.

◆ ~G4VTHitsVector()

template<typename T , typename Vector_t >
G4VTHitsVector< T, Vector_t >::~G4VTHitsVector
virtual

Definition at line 607 of file G4THitsVector.hh.

608{
609 vector_type* theHitsVector = GetVector();
610 delete_contents(theHitsVector);
611 delete theHitsVector;
612}
void delete_contents(vector_type *&theHitsVector) const

Member Function Documentation

◆ _add() [1/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
T &  val 
) const
inlineprotected

Definition at line 467 of file G4THitsVector.hh.

468 {
469 *(*theHitsVector)[key] += val;
470 }

Referenced by G4VTHitsVector< T, Vector_t >::add().

◆ _add() [2/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
T &  val 
) const
inlineprotected

Definition at line 530 of file G4THitsVector.hh.

531 {
532 (*theHitsVector)[key] += val;
533 }

◆ _add() [3/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
T *&  val 
) const
inlineprotected

Definition at line 473 of file G4THitsVector.hh.

474 {
475 *(*theHitsVector)[key] += *val;
476 }

◆ _add() [4/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
T *&  val 
) const
inlineprotected

Definition at line 536 of file G4THitsVector.hh.

537 {
538 (*theHitsVector)[key] += *val;
539 }

◆ _add() [5/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename V , typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
V &  val 
) const
inlineprotected

Definition at line 480 of file G4THitsVector.hh.

481 {
482 *(*theHitsVector)[key] += val;
483 }

◆ _add() [6/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename V , typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
V &  val 
) const
inlineprotected

Definition at line 543 of file G4THitsVector.hh.

544 {
545 (*theHitsVector)[key] += val;
546 }

◆ _add() [7/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename V , typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
V *&  val 
) const
inlineprotected

Definition at line 487 of file G4THitsVector.hh.

488 {
489 *(*theHitsVector)[key] += *val;
490 }

◆ _add() [8/8]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename V , typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_add ( vector_type *&  theHitsVector,
const G4int key,
V *&  val 
) const
inlineprotected

Definition at line 550 of file G4THitsVector.hh.

551 {
552 (*theHitsVector)[key] += *val;
553 }

◆ _assign() [1/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_assign ( vector_type *&  theHitsVector,
const G4int key,
T &  val 
) const
inlineprotected

Definition at line 453 of file G4THitsVector.hh.

454 {
455 delete(*theHitsVector)[key];
456 *(*theHitsVector)[key] = val;
457 }

Referenced by G4VTHitsVector< T, Vector_t >::resize(), and G4VTHitsVector< T, Vector_t >::set().

◆ _assign() [2/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_assign ( vector_type *&  theHitsVector,
const G4int key,
T &  val 
) const
inlineprotected

Definition at line 517 of file G4THitsVector.hh.

518 {
519 (*theHitsVector)[key] = val;
520 }

◆ _assign() [3/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_assign ( vector_type *&  theHitsVector,
const G4int key,
T *&  val 
) const
inlineprotected

Definition at line 460 of file G4THitsVector.hh.

461 {
462 delete(*theHitsVector)[key];
463 (*theHitsVector)[key] = val;
464 }

◆ _assign() [4/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::_assign ( vector_type *&  theHitsVector,
const G4int key,
T *&  val 
) const
inlineprotected

Definition at line 523 of file G4THitsVector.hh.

524 {
525 delete(*theHitsVector)[key];
526 (*theHitsVector)[key] = *val;
527 }

◆ add() [1/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::add ( const G4int key,
U &  aHit 
) const
inline

Definition at line 326 of file G4THitsVector.hh.

327 {
328 vector_type* theHitsVector = GetVector(key);
329 _add(theHitsVector, key, aHit);
330 return theHitsVector->size();
331 }
void _add(vector_type *&theHitsVector, const G4int &key, T &val) const

References G4VTHitsVector< T, Vector_t >::_add(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ add() [2/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::add ( const G4int key,
U &  aHit 
) const
inline

Definition at line 336 of file G4THitsVector.hh.

337 {
338 vector_type* theHitsVector = GetVector(key);
339 _add(theHitsVector, key, aHit);
340 return theHitsVector->size();
341 }

References G4VTHitsVector< T, Vector_t >::_add(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ add() [3/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::add ( const G4int key,
U *&  aHit 
) const
inline

Definition at line 304 of file G4THitsVector.hh.

305 {
306 vector_type* theHitsVector = GetVector(key);
307 _add(theHitsVector, key, *aHit);
308 return theHitsVector->size();
309 }

References G4VTHitsVector< T, Vector_t >::_add(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ add() [4/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::add ( const G4int key,
U *&  aHit 
) const
inline

Definition at line 314 of file G4THitsVector.hh.

315 {
316 vector_type* theHitsVector = GetVector(key);
317 store_type hit = allocate();
318 get_reference(hit) += *aHit;
319 _add(theHitsVector, key, *hit);
320 return theHitsVector->size();
321 }
Vector_t::value_type store_type
store_type allocate() const
T & get_reference(U &val) const

References G4VTHitsVector< T, Vector_t >::_add(), G4VTHitsVector< T, Vector_t >::allocate(), G4VTHitsVector< T, Vector_t >::get_reference(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ allocate() [1/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, typename V = store_type, enable_if_t<(is_fundamental_t(U) &&is_pointer_t(V)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::allocate ( ) const
inline

◆ allocate() [2/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, typename V = store_type, enable_if_t<(!is_fundamental_t(U) &&is_pointer_t(V)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::allocate ( ) const
inline

Definition at line 200 of file G4THitsVector.hh.

201 {
202 return new T();
203 }

◆ allocate() [3/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, typename V = store_type, enable_if_t<(is_fundamental_t(U) &&!is_pointer_t(V)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::allocate ( ) const
inline

Definition at line 218 of file G4THitsVector.hh.

219 {
220 return T(0.);
221 }

◆ allocate() [4/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, typename V = store_type, enable_if_t<(!is_fundamental_t(U) &&!is_pointer_t(V)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::allocate ( ) const
inline

Definition at line 226 of file G4THitsVector.hh.

227 {
228 return T();
229 }

◆ at()

template<typename T , typename Vector_t = std::deque<T*>>
T * G4VTHitsVector< T, Vector_t >::at ( G4int  key) const
inline

Definition at line 402 of file G4THitsVector.hh.

403 {
404 vector_type* theHitsVector = GetVector();
405 resize(theHitsVector, key);
406 return &get_reference((*theHitsVector)[key]);
407 }

References G4VTHitsVector< T, Vector_t >::get_reference(), G4VTHitsVector< T, Vector_t >::GetVector(), and G4VTHitsVector< T, Vector_t >::resize().

◆ begin() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
iterator G4VTHitsVector< T, Vector_t >::begin ( )
inline

Definition at line 156 of file G4THitsVector.hh.

156{ return GetContainer()->begin(); }
Vector_t * GetContainer() const

References G4VTHitsVector< T, Vector_t >::GetContainer().

Referenced by G4VTHitsVector< T, Vector_t >::GetIndex().

◆ begin() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
const_iterator G4VTHitsVector< T, Vector_t >::begin ( ) const
inline

Definition at line 158 of file G4THitsVector.hh.

158{ return GetContainer()->begin(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

◆ cbegin()

template<typename T , typename Vector_t = std::deque<T*>>
const_iterator G4VTHitsVector< T, Vector_t >::cbegin ( ) const
inline

Definition at line 160 of file G4THitsVector.hh.

160{ return GetContainer()->cbegin(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

◆ cend()

template<typename T , typename Vector_t = std::deque<T*>>
const_iterator G4VTHitsVector< T, Vector_t >::cend ( ) const
inline

Definition at line 161 of file G4THitsVector.hh.

161{ return GetContainer()->cend(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

◆ clear()

template<typename T , typename Vector_t >
void G4VTHitsVector< T, Vector_t >::clear
inline

Definition at line 672 of file G4THitsVector.hh.

673{
674 vector_type* theHitsVector = GetVector();
675 delete_contents(theHitsVector);
676 theHitsVector->clear();
677}

◆ delete_contents() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::delete_contents ( vector_type *&  ) const
inlineprotected

Definition at line 556 of file G4THitsVector.hh.

557 {}

◆ delete_contents() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::delete_contents ( vector_type *&  theHitsVector) const
inlineprotected

Definition at line 499 of file G4THitsVector.hh.

500 {
501 for(iterator itr = theHitsVector->begin(); itr != theHitsVector->end();
502 ++itr)
503 delete *itr;
504 }
vector_type::iterator iterator

◆ DrawAllHits()

template<typename T , typename Vector_t >
void G4VTHitsVector< T, Vector_t >::DrawAllHits
virtual

Reimplemented from G4VHitsCollection.

Definition at line 643 of file G4THitsVector.hh.

644{
645 ;
646}

◆ end() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
iterator G4VTHitsVector< T, Vector_t >::end ( )
inline

Definition at line 157 of file G4THitsVector.hh.

157{ return GetContainer()->end(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

◆ end() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
const_iterator G4VTHitsVector< T, Vector_t >::end ( ) const
inline

Definition at line 159 of file G4THitsVector.hh.

159{ return GetContainer()->end(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

◆ entries()

template<typename T , typename Vector_t = std::deque<T*>>
std::size_t G4VTHitsVector< T, Vector_t >::entries ( ) const
inline

Definition at line 168 of file G4THitsVector.hh.

169 {
170 return (scast(Vector_t*)(theCollection))->size();
171 }
#define scast(_Tp)

References scast, and G4HitsCollection::theCollection.

◆ get()

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
T & G4VTHitsVector< T, Vector_t >::get ( U &  val) const
inlineprotected

Definition at line 493 of file G4THitsVector.hh.

494 {
495 return *val;
496 }

◆ get_reference() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t< is_pointer_t(U), G4int > = 0>
T & G4VTHitsVector< T, Vector_t >::get_reference ( U &  val) const
inlineprotected

◆ get_reference() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<!is_pointer_t(U), G4int > = 0>
T & G4VTHitsVector< T, Vector_t >::get_reference ( U &  val) const
inlineprotected

Definition at line 560 of file G4THitsVector.hh.

561 {
562 return val;
563 }

◆ GetColID()

G4int G4VHitsCollection::GetColID ( ) const
inlineinherited

Definition at line 66 of file G4VHitsCollection.hh.

66{ return colID; }

References G4VHitsCollection::colID.

◆ GetContainer()

template<typename T , typename Vector_t = std::deque<T*>>
Vector_t * G4VTHitsVector< T, Vector_t >::GetContainer ( ) const
inline

◆ GetHit() [1/2]

virtual G4VHit * G4VHitsCollection::GetHit ( size_t  ) const
inlinevirtualinherited

◆ GetHit() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
virtual G4VHit * G4VTHitsVector< T, Vector_t >::GetHit ( std::size_t  ) const
inlinevirtual

Definition at line 176 of file G4THitsVector.hh.

176{ return nullptr; }

◆ GetIndex() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
Vector_t::size_type G4VTHitsVector< T, Vector_t >::GetIndex ( const_iterator  itr) const
inline

Definition at line 113 of file G4THitsVector.hh.

114 {
115 return std::distance(begin(), itr);
116 }
iterator begin()

References G4VTHitsVector< T, Vector_t >::begin().

◆ GetIndex() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
Vector_t::size_type G4VTHitsVector< T, Vector_t >::GetIndex ( iterator  itr)
inline

Definition at line 108 of file G4THitsVector.hh.

109 {
110 return std::distance(begin(), itr);
111 }

References G4VTHitsVector< T, Vector_t >::begin().

◆ GetMap()

template<typename T , typename Vector_t >
G4VTHitsVector< T, Vector_t >::map_t * G4VTHitsVector< T, Vector_t >::GetMap
inline

Definition at line 627 of file G4THitsVector.hh.

628{
629 G4ThreadLocalStatic map_t* theHitsMap = new map_t();
630 theHitsMap->clear();
631 vector_type* theHitsVector = GetVector();
632 for(std::size_t i = 0; i < theHitsVector->size(); ++i)
633 {
634 store_type& _obj = (*theHitsVector)[i];
635 if(_obj)
636 (*theHitsMap)[i] = _obj;
637 }
638 return theHitsMap;
639}
std::map< G4int, store_type > map_t
#define G4ThreadLocalStatic
Definition: tls.hh:76

References G4ThreadLocalStatic.

◆ GetName()

const G4String & G4VHitsCollection::GetName ( ) const
inlineinherited

Definition at line 63 of file G4VHitsCollection.hh.

63{ return collectionName; }

References G4VHitsCollection::collectionName.

Referenced by G4SDManager::GetCollectionID().

◆ GetObject() [1/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
const T * G4VTHitsVector< T, Vector_t >::GetObject ( const_iterator  itr) const
inline

Definition at line 132 of file G4THitsVector.hh.

133 {
134 return (*itr);
135 }

◆ GetObject() [2/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
const T * G4VTHitsVector< T, Vector_t >::GetObject ( const_iterator  itr) const
inline

Definition at line 151 of file G4THitsVector.hh.

152 {
153 return &(*itr);
154 }

◆ GetObject() [3/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
T * G4VTHitsVector< T, Vector_t >::GetObject ( G4int  idx) const
inline

Definition at line 119 of file G4THitsVector.hh.

120 {
121 return (idx < (G4int) GetContainer()->size()) ? (*GetContainer())[idx]
122 : nullptr;
123 }
int G4int
Definition: G4Types.hh:85
Vector_t::size_type size()

References G4VTHitsVector< T, Vector_t >::GetContainer(), and G4VTHitsVector< T, Vector_t >::size().

◆ GetObject() [4/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
T * G4VTHitsVector< T, Vector_t >::GetObject ( G4int  idx) const
inline

Definition at line 138 of file G4THitsVector.hh.

139 {
140 return (idx < (G4int) GetContainer()->size()) ? &(*GetContainer())[idx]
141 : nullptr;
142 }

References G4VTHitsVector< T, Vector_t >::GetContainer(), and G4VTHitsVector< T, Vector_t >::size().

◆ GetObject() [5/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
T * G4VTHitsVector< T, Vector_t >::GetObject ( iterator  itr) const
inline

Definition at line 126 of file G4THitsVector.hh.

127 {
128 return (*itr);
129 }

◆ GetObject() [6/6]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
T * G4VTHitsVector< T, Vector_t >::GetObject ( iterator  itr) const
inline

Definition at line 145 of file G4THitsVector.hh.

146 {
147 return &(*itr);
148 }

◆ GetSDname()

const G4String & G4VHitsCollection::GetSDname ( ) const
inlineinherited

Definition at line 64 of file G4VHitsCollection.hh.

64{ return SDname; }

References G4VHitsCollection::SDname.

Referenced by G4SDManager::GetCollectionID().

◆ GetSize()

template<typename T , typename Vector_t = std::deque<T*>>
virtual std::size_t G4VTHitsVector< T, Vector_t >::GetSize ( ) const
inlinevirtual

Reimplemented from G4VHitsCollection.

Definition at line 177 of file G4THitsVector.hh.

178 {
179 return (scast(Vector_t*)(theCollection))->size();
180 }

References scast, and G4HitsCollection::theCollection.

◆ GetVector() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
Vector_t * G4VTHitsVector< T, Vector_t >::GetVector ( ) const
inline

◆ GetVector() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
vector_type * G4VTHitsVector< T, Vector_t >::GetVector ( const G4int key) const
inlineprotected

Definition at line 441 of file G4THitsVector.hh.

442 {
443 vector_type* theHitsVector = GetVector();
444 resize(theHitsVector, key);
445 return theHitsVector;
446 }

References G4VTHitsVector< T, Vector_t >::GetVector(), and G4VTHitsVector< T, Vector_t >::resize().

◆ null() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::null ( ) const
inline

Definition at line 207 of file G4THitsVector.hh.

208 {
209 return nullptr;
210 }

Referenced by G4VTHitsVector< T, Vector_t >::operator+=(), and G4VTHitsVector< T, Vector_t >::resize().

◆ null() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
store_type G4VTHitsVector< T, Vector_t >::null ( ) const
inline

Definition at line 233 of file G4THitsVector.hh.

234 {
235 return store_type();
236 }

◆ operator+=() [1/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U , typename MapU_t , enable_if_t<(is_pointer_t(typename MapU_t::mapped_type)), G4int > = 0>
this_type & G4VTHitsVector< T, Vector_t >::operator+= ( const G4VTHitsMap< U, MapU_t > &  right) const
inline

Definition at line 275 of file G4THitsVector.hh.

276 {
277 MapU_t* aHitsMap = right.GetMap();
278 for(auto itr = aHitsMap->begin(); itr != aHitsMap->end(); ++itr)
279 add<U>(itr->first, *(itr->second));
280 return static_cast<this_type&>(*(const_cast<this_type*>(this)));
281 }
Map_t * GetMap() const
Definition: G4THitsMap.hh:155
G4VTHitsVector< T, Vector_t > this_type

References G4VTHitsMap< T, Map_t >::GetMap().

◆ operator+=() [2/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U , typename MapU_t , enable_if_t<!(is_pointer_t(typename MapU_t::mapped_type)), G4int > = 0>
this_type & G4VTHitsVector< T, Vector_t >::operator+= ( const G4VTHitsMap< U, MapU_t > &  right) const
inline

Definition at line 286 of file G4THitsVector.hh.

287 {
288 MapU_t* aHitsMap = right.GetMap();
289 for(auto itr = aHitsMap->begin(); itr != aHitsMap->end(); ++itr)
290 add<U>(itr->first, itr->second);
291 return static_cast<this_type&>(*(const_cast<this_type*>(this)));
292 }

References G4VTHitsMap< T, Map_t >::GetMap().

◆ operator+=() [3/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U , typename VectorU_t , enable_if_t<(is_pointer_t(typename VectorU_t::value_type)), G4int > = 0>
this_type & G4VTHitsVector< T, Vector_t >::operator+= ( const G4VTHitsVector< U, VectorU_t > &  right) const
inline

Definition at line 246 of file G4THitsVector.hh.

247 {
248 VectorU_t* aHitsVector = right.GetVector();
249 for(auto itr = aHitsVector->begin(); itr != aHitsVector->end(); ++itr)
250 {
251 auto _ptr = (*itr) ? (*itr) : null();
252 if(_ptr)
253 add<U>(std::distance(aHitsVector->begin(), itr), *_ptr);
254 }
255 return static_cast<this_type&>(*(const_cast<this_type*>(this)));
256 }
store_type null() const

References G4VTHitsVector< T, Vector_t >::GetVector(), and G4VTHitsVector< T, Vector_t >::null().

◆ operator+=() [4/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U , typename VectorU_t , enable_if_t<(!is_pointer_t(typename VectorU_t::value_type)), G4int > = 0>
this_type & G4VTHitsVector< T, Vector_t >::operator+= ( const G4VTHitsVector< U, VectorU_t > &  right) const
inline

Definition at line 261 of file G4THitsVector.hh.

262 {
263 VectorU_t* aHitsVector = right.GetVector();
264 for(auto itr = aHitsVector->begin(); itr != aHitsVector->end(); ++itr)
265 {
266 auto _ptr = (*itr) ? (*itr) : allocate();
267 add<U>(std::distance(aHitsVector->begin(), itr), _ptr);
268 }
269 return static_cast<this_type&>(*(const_cast<this_type*>(this)));
270 }

References G4VTHitsVector< T, Vector_t >::allocate(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ operator==() [1/3]

G4bool G4HitsCollection::operator== ( const G4HitsCollection right) const
inherited

Definition at line 61 of file G4THitsCollection.cc.

62{
65 return (collectionName == right.collectionName);
66}
G4Allocator< G4HitsCollection > *& anHCAllocator_G4MT_TLS_()

References anHCAllocator_G4MT_TLS_(), and G4VHitsCollection::collectionName.

◆ operator==() [2/3]

G4bool G4VHitsCollection::operator== ( const G4VHitsCollection right) const
inherited

Definition at line 49 of file G4VHitsCollection.cc.

50{
51 return ((collectionName == right.collectionName) && (SDname == right.SDname));
52}

References G4VHitsCollection::collectionName, and G4VHitsCollection::SDname.

◆ operator==() [3/3]

template<typename T , typename Vector_t >
G4bool G4VTHitsVector< T, Vector_t >::operator== ( const this_type rhs) const

Definition at line 617 of file G4THitsVector.hh.

619{
620 return (collectionName == right.collectionName);
621}

References G4VHitsCollection::collectionName.

◆ operator[]()

template<typename T , typename Vector_t = std::deque<T*>>
T * G4VTHitsVector< T, Vector_t >::operator[] ( G4int  key) const
inline

Definition at line 409 of file G4THitsVector.hh.

410 {
411 vector_type* theHitsVector = GetVector();
412 resize(theHitsVector, key);
413 return &get_reference((*theHitsVector)[key]);
414 }

References G4VTHitsVector< T, Vector_t >::get_reference(), G4VTHitsVector< T, Vector_t >::GetVector(), and G4VTHitsVector< T, Vector_t >::resize().

◆ PrintAllHits()

template<typename T , typename Vector_t >
void G4VTHitsVector< T, Vector_t >::PrintAllHits
virtual

Reimplemented from G4VHitsCollection.

Definition at line 651 of file G4THitsVector.hh.

652{
653 G4cout << "G4THitsVector " << SDname << " / " << collectionName << " --- "
654 << entries() << " entries" << G4endl;
655 /*----- commented out for the use-case where <T> cannot be initialized
656 to be zero or does not support += operator.
657 Vector_t * theHitsVector = GetVector();
658 typename Vector_t::iterator itr = theHitsVector->begin();
659 T sum = 0.;
660 for(; itr != theHitsVector->end(); ++itr) {
661 G4cout << " " << itr->first << " : "
662 << *(itr->second) << G4endl;
663 sum += *(itr->second);
664 }
665 G4cout << " Total : " << sum << G4endl;
666 ----------------------------------------------------------------------*/
667}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
std::size_t entries() const

References G4cout, and G4endl.

◆ resize() [1/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(is_pointer_t(U)), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::resize ( vector_type *&  theHitsVector,
const G4int key 
) const
inlineprotected

Definition at line 419 of file G4THitsVector.hh.

420 {
421 // ensure the proper size
422 if(key >= (G4int) theHitsVector->size())
423 theHitsVector->resize(key + 1, null());
424
425 // if null pointer for vector entry: allocate
426 if(!theHitsVector->at(key))
427 {
428 store_type init = allocate();
429 _assign(theHitsVector, key, init);
430 }
431 }
void _assign(vector_type *&theHitsVector, const G4int &key, T &val) const

References G4VTHitsVector< T, Vector_t >::_assign(), G4VTHitsVector< T, Vector_t >::allocate(), and G4VTHitsVector< T, Vector_t >::null().

Referenced by G4VTHitsVector< T, Vector_t >::at(), G4VTHitsVector< T, Vector_t >::G4VTHitsVector(), G4VTHitsVector< T, Vector_t >::GetVector(), and G4VTHitsVector< T, Vector_t >::operator[]().

◆ resize() [2/2]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = store_type, enable_if_t<(!is_pointer_t(U)), G4int > = 0>
void G4VTHitsVector< T, Vector_t >::resize ( vector_type *&  theHitsVector,
const G4int key 
) const
inlineprotected

Definition at line 434 of file G4THitsVector.hh.

435 {
436 // ensure the proper size
437 if(key >= (G4int) theHitsVector->size())
438 theHitsVector->resize(key + 1, null());
439 }

References G4VTHitsVector< T, Vector_t >::null().

◆ set() [1/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::set ( const G4int key,
U &  aHit 
) const
inline

Definition at line 380 of file G4THitsVector.hh.

381 {
382 vector_type* theHitsVector = GetVector(key);
383 _assign(theHitsVector, key, &aHit);
384 return theHitsVector->size();
385 }

References G4VTHitsVector< T, Vector_t >::_assign(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ set() [2/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::set ( const G4int key,
U &  aHit 
) const
inline

Definition at line 390 of file G4THitsVector.hh.

391 {
392 vector_type* theHitsVector = GetVector(key);
393 store_type hit = allocate();
394 get_reference(hit) += aHit;
395 _assign(theHitsVector, key, &aHit);
396 return theHitsVector->size();
397 }

References G4VTHitsVector< T, Vector_t >::_assign(), G4VTHitsVector< T, Vector_t >::allocate(), G4VTHitsVector< T, Vector_t >::get_reference(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ set() [3/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t< is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::set ( const G4int key,
U *&  aHit 
) const
inline

Definition at line 352 of file G4THitsVector.hh.

353 {
354 vector_type* theHitsVector = GetVector(key);
355 _assign(theHitsVector, key, aHit);
356 return theHitsVector->size();
357 }

References G4VTHitsVector< T, Vector_t >::_assign(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ set() [4/4]

template<typename T , typename Vector_t = std::deque<T*>>
template<typename U = T, enable_if_t<!is_same_t(U, T), G4int > = 0>
std::size_t G4VTHitsVector< T, Vector_t >::set ( const G4int key,
U *&  aHit 
) const
inline

Definition at line 362 of file G4THitsVector.hh.

363 {
364 vector_type* theHitsVector = GetVector(key);
365 store_type hit = allocate();
366 get_reference(hit) += *aHit;
367 _assign(theHitsVector, key, hit);
368 return theHitsVector->size();
369 }

References G4VTHitsVector< T, Vector_t >::_assign(), G4VTHitsVector< T, Vector_t >::allocate(), G4VTHitsVector< T, Vector_t >::get_reference(), and G4VTHitsVector< T, Vector_t >::GetVector().

◆ SetColID()

void G4VHitsCollection::SetColID ( G4int  i)
inlineinherited

Definition at line 65 of file G4VHitsCollection.hh.

65{ colID = i; }

References G4VHitsCollection::colID.

Referenced by G4HCofThisEvent::AddHitsCollection().

◆ size()

template<typename T , typename Vector_t = std::deque<T*>>
Vector_t::size_type G4VTHitsVector< T, Vector_t >::size ( )
inline

Definition at line 106 of file G4THitsVector.hh.

106{ return GetContainer()->size(); }

References G4VTHitsVector< T, Vector_t >::GetContainer().

Referenced by G4VTHitsVector< T, Vector_t >::GetObject().

Field Documentation

◆ colID

G4int G4VHitsCollection::colID
protectedinherited

◆ collectionName

G4String G4VHitsCollection::collectionName
protectedinherited

◆ SDname

G4String G4VHitsCollection::SDname
protectedinherited

◆ theCollection

void* G4HitsCollection::theCollection
protectedinherited

The documentation for this class was generated from the following file: