source: trunk/source/processes/management/include/G4ProcTblElement.hh@ 831

Last change on this file since 831 was 819, checked in by garnier, 17 years ago

import all except CVS

File size: 3.6 KB
RevLine 
[819]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//
27// $Id: G4ProcTblElement.hh,v 1.11 2006/06/29 21:07:20 gunter Exp $
28// GEANT4 tag $Name: $
29//
30//
31// ------------------------------------------------------------
32// GEANT 4 class header file
33//
34// History: first implementation, based on object model of
35// 4th Aug 1998, H.Kurashige
36// ------------------------------------------------------------
37// Use STL vector instead of RW vector 1. Mar 00 H.Kurashige
38//
39// Class Description
40// This class is used by G4ProcessTable ONLY for booking !!!
41//
42
43#ifndef G4ProcTblElement_h
44#define G4ProcTblElement_h 1
45
46#include "globals.hh"
47#include "G4ios.hh"
48#include <vector>
49
50#include "G4ParticleDefinition.hh"
51#include "G4VProcess.hh"
52#include "G4ProcessManager.hh"
53
54class G4ProcTblElement
55{
56 // this class is used by G4ProcessTable ONLY for booking !!!
57 friend class G4ProcessTable;
58 protected:
59 G4ProcTblElement();
60
61 public:
62 G4ProcTblElement(const G4ProcTblElement& right);
63 G4ProcTblElement(G4VProcess* aProcess);
64 // Constructors
65
66 ~G4ProcTblElement();
67 // Destructor
68
69 G4ProcTblElement & operator=(const G4ProcTblElement &right);
70 // Assignment operator
71
72 G4int operator==(const G4ProcTblElement &right) const;
73 G4int operator!=(const G4ProcTblElement &right) const;
74 // equal / unequal operator
75
76 protected:
77 // Use STL Vector
78 typedef std::vector<G4ProcessManager*> G4ProcMgrVector;
79
80 G4int Length() const ;
81 void Insert(G4ProcessManager* aProcMgr);
82 void Remove(G4ProcessManager* aProcMgr);
83
84 G4VProcess* GetProcess() const;
85 const G4String& GetProcessName() const;
86
87 G4ProcessManager* GetProcessManager(G4int index) const;
88
89 inline
90 const G4ProcMgrVector* GetProcMgrVector() const
91 { return pProcMgrVector;}
92
93 G4int GetIndex(const G4ProcessManager* pManager) const ;
94 G4bool Contains(const G4ProcessManager* pManager) const ;
95
96 private:
97 G4VProcess* pProcess;
98 // pointer to G4VProcess
99
100 G4ProcMgrVector* pProcMgrVector;
101};
102
103#include "G4ProcTblElement.icc"
104#endif
105
106
107
108
Note: See TracBrowser for help on using the repository browser.