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 // G4ProcessAttribute << 8 // $Id: G4ProcessAttribute.hh,v 1.3 1999/11/07 17:11:43 kurasige Exp $ >> 9 // GEANT4 tag $Name: geant4-01-01 $ 27 // 10 // 28 // Class description: << 11 // >> 12 // ------------------------------------------------------------ >> 13 // GEANT 4 class header file 29 // 14 // 30 // This class is used exclusively by G4Process << 15 // For information related to this code contact: >> 16 // CERN, IT Division, ASD group >> 17 // History: first implementation, based on object model of >> 18 // 2nd December 1997, H.Kurashige >> 19 // ---------------- G4ProcessAttribute ----------------- >> 20 // Class Description >> 21 // This class is used by G4ProcessManager ONLY for booking !!! >> 22 // >> 23 // History: >> 24 // adds copy constructor 27 June 1998 H.Kurashige >> 25 // ------------------------------------------------------------ 31 26 32 // Author: H.Kurashige, 2 December 1997 << 27 #ifndef G4ProcessAttribute_h 33 // ------------------------------------------- << 28 #define G4ProcessAttribute_h 1 34 #ifndef G4ProcessAttribute_hh << 35 #define G4ProcessAttribute_hh 1 << 36 29 37 #include "globals.hh" 30 #include "globals.hh" 38 #include "G4ios.hh" 31 #include "G4ios.hh" 39 32 >> 33 #include "G4VProcess.hh" 40 #include "G4ProcessManager.hh" 34 #include "G4ProcessManager.hh" 41 35 42 class G4VProcess; << 43 << 44 class G4ProcessAttribute 36 class G4ProcessAttribute 45 { 37 { >> 38 // this class is used by G4ProcessManager ONLY for booking !!! 46 friend class G4ProcessManager; 39 friend class G4ProcessManager; 47 << 48 public: 40 public: 49 << 50 G4ProcessAttribute(); 41 G4ProcessAttribute(); 51 G4ProcessAttribute(const G4VProcess* aProc 42 G4ProcessAttribute(const G4VProcess* aProcess); 52 G4ProcessAttribute(const G4ProcessAttribut << 43 G4ProcessAttribute(const G4ProcessAttribute &right); 53 // Constructors << 44 // Constructors 54 45 55 ~G4ProcessAttribute(); 46 ~G4ProcessAttribute(); 56 // Destructor << 47 // Destructor 57 48 58 G4ProcessAttribute& operator=(const G4Proc << 49 G4ProcessAttribute & operator=(G4ProcessAttribute &right); 59 // Assignment operator << 50 // Assignment operator 60 51 61 inline G4bool operator==(const G4ProcessAt << 52 G4int operator==(const G4ProcessAttribute &right) const; 62 inline G4bool operator!=(const G4ProcessAt << 53 G4int operator!=(const G4ProcessAttribute &right) const; 63 // Equality operators << 54 // equal / unequal operator 64 55 >> 56 65 protected: 57 protected: >> 58 G4VProcess* pProcess; >> 59 // pointer to G4VProcess 66 60 67 G4VProcess* pProcess = nullptr; << 61 G4bool isActive; 68 // Pointer to G4VProcess << 62 // flag for activation/inactivation 69 63 70 G4bool isActive = true; << 64 G4int idxProcessList; 71 // Flag for activation/inactivation << 65 // index to a ProcessVector for theProcessList and 72 66 73 G4int idxProcessList = -1; << 67 G4int idxProcVector[G4ProcessManager::SizeOfProcVectorArray]; 74 // Index to a ProcessVector for theProce << 68 // index to ProcessVectors for "Doit"s and "GetPhysicalInteractionLength"s >> 69 // -1 : not applicable 75 70 76 G4int idxProcVector[G4ProcessManager::Size << 71 G4int ordProcVector[G4ProcessManager::SizeOfProcVectorArray]; 77 // Index to ProcessVectors for Doit() an << 72 // ordering parameter 78 // methods. A value of -1 means "not app << 79 << 80 G4int ordProcVector[G4ProcessManager::Size << 81 // Ordering parameter << 82 }; 73 }; 83 74 84 // ------------------------ << 75 inline 85 // Inline methods << 76 G4ProcessAttribute::G4ProcessAttribute(const G4VProcess* aProcess): 86 // ------------------------ << 77 pProcess((G4VProcess*)aProcess), >> 78 isActive(true) >> 79 { >> 80 idxProcessList = -1; >> 81 } 87 82 88 inline 83 inline 89 G4bool G4ProcessAttribute::operator==(const G4 << 84 G4int G4ProcessAttribute::operator==(const G4ProcessAttribute &right) const 90 { 85 { 91 return this->pProcess == right.pProcess; << 86 return this->pProcess == right.pProcess; 92 } 87 } 93 88 94 inline 89 inline 95 G4bool G4ProcessAttribute::operator!=(const G4 << 90 G4int G4ProcessAttribute::operator!=(const G4ProcessAttribute &right) const 96 { 91 { 97 return this->pProcess != right.pProcess; << 92 return this->pProcess != right.pProcess; 98 } 93 } 99 94 100 #endif 95 #endif >> 96 >> 97 >> 98 >> 99 >> 100 101 101