Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ProcessVector.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4ProcessVector
27//
28// Class description:
29//
30// A container for pointers to physics process objects.
31
32// Authors: G.Cosmo, H.Kurashige - 1998
33// --------------------------------------------------------------------
34#ifndef G4ProcessVector_hh
35#define G4ProcessVector_hh 1
36
37#include <vector>
38
39#include "globals.hh"
40#include "G4ios.hh"
41
42class G4VProcess;
43
45{
46 public:
47
49 explicit G4ProcessVector(std::size_t);
51 // Constructors
52
53 virtual ~G4ProcessVector();
54 // Destructor
55
57 // Assignment operator
58
59 inline G4bool operator==(const G4ProcessVector& right) const;
60 // Equality operator
61
62 inline std::size_t entries() const;
63 inline std::size_t length() const;
64 inline std::size_t size() const;
65 // Returns the number of items
66
67 std::size_t index(G4VProcess* aProcess) const;
68 // Returns the position of the element
69
70 G4bool contains(G4VProcess* aProcess) const;
71 // Returns "true" if the element exists
72
73 inline G4bool insert(G4VProcess* aProcess);
74 // Insert an element
75
76 G4bool insertAt(G4int i, G4VProcess* aProcess);
77 // Insert an element at i-th position
78
80 // Remove and returns the i-th element
81
83 // Remove and returns the last element
84
85 inline void clear();
86 // Clear the collection by removing all items
87
88 inline G4VProcess* const& operator[](G4int i) const;
89 inline G4VProcess* const& operator()(G4int i) const;
90 // Returns const reference to the i-th item
91
94 // Returns reference to the i-th item
95
96 protected:
97
98 using G4ProcVector = std::vector<G4VProcess*>;
99
101};
102
103#include "G4ProcessVector.icc"
104
105#endif
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
std::size_t index(G4VProcess *aProcess) const
std::size_t size() const
G4bool operator==(const G4ProcessVector &right) const
G4ProcVector * pProcVector
G4bool contains(G4VProcess *aProcess) const
std::size_t entries() const
G4bool insertAt(G4int i, G4VProcess *aProcess)
G4VProcess *const & operator()(G4int i) const
G4VProcess *const & operator[](G4int i) const
G4bool insert(G4VProcess *aProcess)
G4VProcess *& operator()(G4int i)
virtual ~G4ProcessVector()
G4VProcess *& operator[](G4int i)
G4ProcessVector & operator=(const G4ProcessVector &right)
G4VProcess * removeLast()
std::size_t length() const
std::vector< G4VProcess * > G4ProcVector
G4VProcess * removeAt(G4int i)