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 // G4ProcTblElement inline methods implementat << 8 // $Id: G4ProcTblElement.icc,v 1.5 2000/03/02 01:45:10 kurasige Exp $ >> 9 // GEANT4 tag $Name: geant4-03-01 $ 27 // 10 // 28 // Author: H.Kurashige, 04.08.1998 << 11 // 29 // ------------------------------------------- << 12 // ------------------------------------------------------------ >> 13 // GEANT 4 class header file >> 14 // >> 15 // For information related to this code contact: >> 16 // CERN, IT Division, ASD group >> 17 // History: first implementation, based on object model of >> 18 // 4th Aug 1998, H.Kurashige >> 19 // ------------------------------------------------------------ >> 20 // Use STL vector instead of RW vector 1. Mar 00 H.Kurashige 30 21 >> 22 ///////////// 31 inline 23 inline 32 G4bool G4ProcTblElement::Contains(const G4Proc << 24 G4bool G4ProcTblElement::Contains(const G4ProcessManager* pManager) const 33 { 25 { 34 for (auto i = pProcMgrVector->cbegin(); i!= << 26 G4ProcMgrVector::iterator i; 35 { << 27 for (i = pProcMgrVector->begin(); i!= pProcMgrVector->end(); ++i) { 36 if (*i==pManager) return true; 28 if (*i==pManager) return true; 37 } 29 } 38 return false; 30 return false; 39 } 31 } 40 32 41 // ------------------------------------------- << 33 ////////////////////////// 42 inline 34 inline 43 G4int G4ProcTblElement::GetIndex(const G4Proce << 35 G4int G4ProcTblElement::GetIndex(const G4ProcessManager* pManager) const 44 { 36 { 45 G4int index = 0; 37 G4int index = 0; 46 for (auto i = pProcMgrVector->cbegin(); i!= << 38 G4ProcMgrVector::iterator i; 47 { << 39 for (i = pProcMgrVector->begin(); i!= pProcMgrVector->end(); ++i) { 48 if (*i==pManager) return index; 40 if (*i==pManager) return index; 49 index +=1; 41 index +=1; 50 } 42 } 51 return -1; 43 return -1; 52 } 44 } 53 45 54 // ------------------------------------------- << 46 >> 47 ////////////////////////// 55 inline 48 inline 56 G4int G4ProcTblElement::Length() const << 49 G4int G4ProcTblElement::Length() const 57 { 50 { 58 return G4int(pProcMgrVector->size()); << 51 return pProcMgrVector->size(); 59 } 52 } 60 53 61 // ------------------------------------------- << 54 ////////////////////////// 62 inline 55 inline 63 G4ProcessManager* G4ProcTblElement::GetProcess << 56 G4ProcessManager* G4ProcTblElement::GetProcessManager(G4int index) const 64 { 57 { 65 if ((index < G4int(pProcMgrVector->size())) << 58 if ((index < pProcMgrVector->size()) && (index>=0)){ 66 { << 67 return (*pProcMgrVector)[index]; 59 return (*pProcMgrVector)[index]; 68 } << 60 } else { 69 else << 61 return 0; 70 { << 71 return nullptr; << 72 } 62 } 73 } 63 } 74 64 75 // ------------------------------------------- << 65 >> 66 ////////////////////////// 76 inline 67 inline 77 G4VProcess* G4ProcTblElement::GetProcess() con << 68 G4VProcess* G4ProcTblElement::GetProcess() const 78 { 69 { 79 return pProcess; 70 return pProcess; 80 } 71 } 81 72 82 // ------------------------------------------- << 73 >> 74 ////////////////////////// 83 inline 75 inline 84 void G4ProcTblElement::Insert(G4ProcessManage << 76 void G4ProcTblElement::Insert(G4ProcessManager* aProcMgr) 85 { 77 { 86 pProcMgrVector->push_back(aProcMgr); 78 pProcMgrVector->push_back(aProcMgr); 87 } 79 } 88 80 89 // ------------------------------------------- << 81 ////////////////////////// 90 inline 82 inline 91 void G4ProcTblElement::Remove(G4ProcessManager << 83 void G4ProcTblElement::Remove(G4ProcessManager* aProcMgr) 92 { 84 { 93 for (auto i = pProcMgrVector->cbegin(); i!= << 85 G4ProcMgrVector::iterator i; 94 { << 86 for (i = pProcMgrVector->begin(); i!= pProcMgrVector->end(); ++i) { 95 if (*i==aProcMgr) << 87 if (*i==aProcMgr){ 96 { << 97 pProcMgrVector->erase(i); 88 pProcMgrVector->erase(i); 98 break; 89 break; 99 } 90 } 100 } 91 } 101 } 92 } 102 93 103 // ------------------------------------------- << 94 ////////////////////////// 104 inline 95 inline 105 const G4String& G4ProcTblElement::GetProcessNa << 96 const G4String& G4ProcTblElement::GetProcessName() const 106 { 97 { 107 return pProcess->GetProcessName(); 98 return pProcess->GetProcessName(); 108 } << 109 << 110 // ------------------------------------------- << 111 inline const std::vector<G4ProcessManager*>* << 112 G4ProcTblElement::GetProcMgrVector() const << 113 { << 114 return pProcMgrVector; << 115 } 99 } 116 100