Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 5 // * The Geant4 software is copyright of th << 6 // * the Geant4 Collaboration. It is provided << 7 // * conditions of the Geant4 Software License << 8 // * LICENSE and available at http://cern.ch/ << 9 // * include a list of copyright holders. << 10 // * << 11 // * Neither the authors of this software syst << 12 // * institutes,nor the agencies providing fin << 13 // * work make any representation or warran << 14 // * regarding this software system or assum << 15 // * use. Please see the license in the file << 16 // * for the full disclaimer and the limitatio << 17 // * << 18 // * This code implementation is the result << 19 // * technical work of the GEANT4 collaboratio << 20 // * By using, copying, modifying or distri << 21 // * any work based on the software) you ag << 22 // * use in resulting scientific publicati << 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* << 25 // 7 // 26 // G4ProcessVector << 8 // $Id: G4ProcessVector.hh,v 1.6 2000/11/03 03:44:51 kurasige Exp $ >> 9 // GEANT4 tag $Name: geant4-03-00 $ 27 // 10 // 28 // Class description: << 11 // >> 12 // ------------------------------------------------------------ >> 13 // GEANT 4 class header file 29 // 14 // 30 // A container for pointers to physics process << 15 // Class Description >> 16 // This class is a container for pointers to physics process objects. >> 17 // ------------------------------------------------------------ 31 18 32 // Authors: G.Cosmo, H.Kurashige - 1998 << 19 #ifndef G4ProcessVector_h 33 // ------------------------------------------- << 20 #define G4ProcessVector_h 1 34 #ifndef G4ProcessVector_hh << 35 #define G4ProcessVector_hh 1 << 36 << 37 #include <vector> << 38 21 39 #include "globals.hh" 22 #include "globals.hh" 40 #include "G4ios.hh" 23 #include "G4ios.hh" >> 24 #include "g4std/vector" 41 25 42 class G4VProcess; 26 class G4VProcess; 43 27 44 class G4ProcessVector 28 class G4ProcessVector 45 { 29 { 46 public: 30 public: 47 << 31 // Constructors 48 G4ProcessVector(); << 32 G4ProcessVector(size_t dummy=0); 49 explicit G4ProcessVector(std::size_t); << 50 G4ProcessVector(const G4ProcessVector &); 33 G4ProcessVector(const G4ProcessVector &); 51 // Constructors << 52 34 >> 35 // Destructor. 53 virtual ~G4ProcessVector(); 36 virtual ~G4ProcessVector(); 54 // Destructor << 55 37 56 G4ProcessVector& operator=(const G4Process << 38 //assignment operator 57 // Assignment operator << 39 G4ProcessVector & operator=(G4ProcessVector &right); 58 40 59 inline G4bool operator==(const G4ProcessVe << 41 // equal operator 60 // Equality operator << 42 G4bool operator==(const G4ProcessVector &right) const; 61 43 62 inline std::size_t entries() const; << 44 public: // With Description 63 inline std::size_t length() const; << 45 // Returns the number of items 64 inline std::size_t size() const; << 46 G4int entries() const; 65 // Returns the number of items << 47 G4int length() const; 66 48 67 std::size_t index(G4VProcess* aProcess) co << 49 // Returns the position of the element 68 // Returns the position of the element << 50 G4int index(G4VProcess* aProcess) const; 69 51 >> 52 // Returns "true" if the element exists 70 G4bool contains(G4VProcess* aProcess) cons 53 G4bool contains(G4VProcess* aProcess) const; 71 // Returns "true" if the element exists << 72 54 73 inline G4bool insert(G4VProcess* aProcess) << 55 // Insert an element 74 // Insert an element << 56 G4bool insert(G4VProcess* aProcess); 75 57 >> 58 // Insert an element at i-th position 76 G4bool insertAt(G4int i, G4VProcess* aProc 59 G4bool insertAt(G4int i, G4VProcess* aProcess); 77 // Insert an element at i-th position << 78 60 >> 61 // Remove and returns the i-th element 79 G4VProcess* removeAt(G4int i); 62 G4VProcess* removeAt(G4int i); 80 // Remove and returns the i-th element << 81 63 82 inline G4VProcess* removeLast(); << 64 // Remove and returns the last element 83 // Remove and returns the last element << 65 G4VProcess* removeLast(); 84 66 85 inline void clear(); << 67 // Clear the collection by removing all items 86 // Clear the collection by removing all << 68 void clear(); 87 69 88 inline G4VProcess* const& operator[](G4int << 70 // returns const reference to the i-th item 89 inline G4VProcess* const& operator()(G4int << 71 G4VProcess* const& operator[](G4int i) const; 90 // Returns const reference to the i-th i << 72 G4VProcess* const& operator()(G4int i) const; 91 << 73 92 inline G4VProcess* & operator[](G4int i); << 74 // returns reference to the i-th item 93 inline G4VProcess* & operator()(G4int i); << 75 G4VProcess* & operator[](G4int i); 94 // Returns reference to the i-th item << 76 G4VProcess* & operator()(G4int i); 95 77 96 protected: 78 protected: >> 79 // Use STL Vector >> 80 typedef G4std::vector<G4VProcess*> G4ProcVector; 97 81 98 using G4ProcVector = std::vector<G4VProces << 82 G4ProcVector * pProcVector; 99 << 100 G4ProcVector* pProcVector = nullptr; << 101 }; 83 }; 102 84 103 #include "G4ProcessVector.icc" 85 #include "G4ProcessVector.icc" 104 86 105 #endif 87 #endif >> 88 >> 89 >> 90 >> 91 >> 92 >> 93 >> 94 >> 95 >> 96 >> 97 >> 98 >> 99 >> 100 >> 101 >> 102 >> 103 >> 104 106 105