Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions
G4ProcessTable Class Reference

#include <G4ProcessTable.hh>

Public Types

typedef std::vector
< G4ProcTblElement * > 
G4ProcTableVector
 
typedef std::vector< G4StringG4ProcNameVector
 

Public Member Functions

 G4ProcessTable ()
 
 ~G4ProcessTable ()
 
G4int Length () const
 
G4int Insert (G4VProcess *aProcess, G4ProcessManager *aProcMgr)
 
G4int Remove (G4VProcess *aProcess, G4ProcessManager *aProcMgr)
 
G4VProcessFindProcess (const G4String &processName, const G4String &particleName) const
 
G4VProcessFindProcess (const G4String &processName, const G4ParticleDefinition *particle) const
 
G4VProcessFindProcess (const G4String &processName, const G4ProcessManager *processManager) const
 
G4ProcessVectorFindProcesses ()
 
G4ProcessVectorFindProcesses (const G4ProcessManager *processManager)
 
G4ProcessVectorFindProcesses (const G4String &processName)
 
G4ProcessVectorFindProcesses (G4ProcessType processType)
 
void SetProcessActivation (const G4String &processName, G4bool fActive)
 
void SetProcessActivation (const G4String &processName, const G4String &particleName, G4bool fActive)
 
void SetProcessActivation (const G4String &processName, G4ParticleDefinition *particle, G4bool fActive)
 
void SetProcessActivation (const G4String &processName, G4ProcessManager *processManager, G4bool fActive)
 
void SetProcessActivation (G4ProcessType processType, G4bool fActive)
 
void SetProcessActivation (G4ProcessType processType, const G4String &particleName, G4bool fActive)
 
void SetProcessActivation (G4ProcessType processType, G4ParticleDefinition *particle, G4bool fActive)
 
void SetProcessActivation (G4ProcessType processType, G4ProcessManager *processManager, G4bool fActive)
 
G4ProcNameVectorGetNameList ()
 
G4ProcTableVectorGetProcTableVector ()
 
void DumpInfo (G4VProcess *process, G4ParticleDefinition *particle=0)
 
G4UImessengerCreateMessenger ()
 
void DeleteMessenger ()
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Static Public Member Functions

static G4ProcessTableGetProcessTable ()
 

Detailed Description

Definition at line 59 of file G4ProcessTable.hh.

Member Typedef Documentation

Definition at line 133 of file G4ProcessTable.hh.

Definition at line 132 of file G4ProcessTable.hh.

Constructor & Destructor Documentation

G4ProcessTable::G4ProcessTable ( )

Definition at line 44 of file G4ProcessTable.cc.

References G4cout, and G4endl.

Referenced by GetProcessTable().

44  :verboseLevel(1)
45 {
46 #ifdef G4VERBOSE
47  if (verboseLevel>1){
48  G4cout << "-- G4ProcessTable constructor --" << G4endl;
49  }
50 #endif
51  fProcTblVector = new G4ProcTableVector();
52  fProcNameVector = new G4ProcNameVector();
53  tmpTblVector = new G4ProcTableVector();
54  fProcTblMessenger = 0;
55 }
G4GLOB_DLL std::ostream G4cout
std::vector< G4String > G4ProcNameVector
std::vector< G4ProcTblElement * > G4ProcTableVector
#define G4endl
Definition: G4ios.hh:61
G4ProcessTable::~G4ProcessTable ( )

Definition at line 73 of file G4ProcessTable.cc.

References G4cout, and G4endl.

74 {
75 #ifdef G4VERBOSE
76  if (verboseLevel>1){
77  G4cout << "-- G4ProcessTable destructor --" << G4endl;
78  }
79 #endif
80 
81  if ( tmpTblVector != 0) {
82  tmpTblVector ->clear();
83  delete tmpTblVector;
84  }
85 
86  if ( fProcTblVector != 0) {
87  G4ProcTableVector::iterator idx;
88 
89  // destruction of processes has moved to G4VUserPhysicsList
90  for (idx=fProcTblVector->begin(); idx!=fProcTblVector->end(); ++idx) {
91  // delete all processes
92  // delete (*idx)->GetProcess();
93  delete (*idx);
94  }
95  fProcTblVector ->clear();
96  delete fProcTblVector;
97  }
98 
99  if ( fProcNameVector != 0) {
100  fProcNameVector ->clear();
101  delete fProcNameVector;
102  }
103  fProcessTable =0;
104 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Member Function Documentation

G4UImessenger * G4ProcessTable::CreateMessenger ( )

Definition at line 107 of file G4ProcessTable.cc.

Referenced by G4RunManager::G4RunManager().

108 {
109  if (fProcTblMessenger == 0) {
110  fProcTblMessenger = new G4ProcessTableMessenger(this);
111  }
112  return fProcTblMessenger;
113 }
void G4ProcessTable::DeleteMessenger ( )

Definition at line 116 of file G4ProcessTable.cc.

Referenced by G4RunManager::~G4RunManager().

117 {
118  if (fProcTblMessenger != 0) {
119  delete fProcTblMessenger;
120  }
121 }
void G4ProcessTable::DumpInfo ( G4VProcess process,
G4ParticleDefinition particle = 0 
)

Definition at line 572 of file G4ProcessTable.cc.

References G4ProcessManager::DumpInfo(), G4VProcess::DumpInfo(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), G4ProcTblElement::GetProcessManager(), G4ProcessManager::GetVerboseLevel(), G4VProcess::GetVerboseLevel(), G4ProcTblElement::Length(), G4ProcessManager::SetVerboseLevel(), and G4VProcess::SetVerboseLevel().

Referenced by export_G4ProcessTable(), and G4ProcessTableMessenger::SetNewValue().

574 {
575  G4ProcTableVector::iterator itr;
576  G4int idxTbl=0;
577  G4ProcTblElement* anElement=0;
578  G4bool isFoundInTbl = false;
579  G4ProcessManager* manager=0;
580  G4int idx;
581  // loop over all elements
582  for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
583  anElement = (*itr);
584  if (process == anElement->GetProcess() ){
585  if (particle!=0) {
586  for (idx=0; idx<anElement->Length(); idx++){
587  manager = anElement->GetProcessManager(idx);
588  if (particle == manager->GetParticleType()) {
589  isFoundInTbl = true;
590  break;
591  }
592  }
593  } else {
594  isFoundInTbl = true;
595  }
596  break;
597  }
598  }
599  if (!isFoundInTbl ) return;
600 
601  G4int tmpVerbose = process->GetVerboseLevel();
602  process->SetVerboseLevel(verboseLevel);
603  process->DumpInfo();
604  process->SetVerboseLevel(tmpVerbose);
605  if (particle==0) {
606  for (idx=0; idx<anElement->Length(); idx++){
607  manager = anElement->GetProcessManager(idx);
608  G4cout << " for " << manager->GetParticleType()->GetParticleName();
609  G4cout << G4endl;
610 #ifdef G4VERBOSE
611  if (verboseLevel >2){
612  tmpVerbose = manager->GetVerboseLevel();
613  manager->SetVerboseLevel(verboseLevel);
614  manager->DumpInfo();
615  manager->SetVerboseLevel(tmpVerbose);
616  }
617 #endif
618  }
619  } else {
620  G4cout << " for " << manager->GetParticleType()->GetParticleName();
621  G4cout << G4endl;
622 #ifdef G4VERBOSE
623  if (verboseLevel >2){
624  tmpVerbose = manager->GetVerboseLevel();
625  manager->SetVerboseLevel(verboseLevel);
626  manager->DumpInfo();
627  manager->SetVerboseLevel(tmpVerbose);
628  }
629 #endif
630  }
631 }
void SetVerboseLevel(G4int value)
G4ProcessManager * GetProcessManager(G4int index) const
G4int GetVerboseLevel() const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4int Length() const
G4int GetVerboseLevel() const
Definition: G4VProcess.hh:442
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
G4ParticleDefinition * GetParticleType() const
G4VProcess * GetProcess() const
#define G4endl
Definition: G4ios.hh:61
virtual void DumpInfo() const
Definition: G4VProcess.cc:178
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:437
G4VProcess* G4ProcessTable::FindProcess ( const G4String processName,
const G4String particleName 
) const
G4VProcess* G4ProcessTable::FindProcess ( const G4String processName,
const G4ParticleDefinition particle 
) const
G4VProcess * G4ProcessTable::FindProcess ( const G4String processName,
const G4ProcessManager processManager 
) const

Definition at line 317 of file G4ProcessTable.cc.

References G4ProcTblElement::Contains(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), and G4ProcTblElement::GetProcessName().

320 {
321  G4ProcTableVector::iterator itr;
322  G4int idxTbl = 0;
323  G4bool isFound = false;
324  G4ProcTblElement* anElement=0;
325  for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
326  anElement = (*itr);
327  // check name
328  if ( anElement->GetProcessName() == processName ) {
329  // check if the processManage is included
330  if ( anElement->Contains(processManager) ) {
331  isFound = true;
332  break;
333  }
334  }
335  }
336 #ifdef G4VERBOSE
337  if (!isFound && verboseLevel>1){
338  G4cout << " G4ProcessTable::FindProcess :" ;
339  G4cout << " The Process[" << processName << "] is not found ";
340  G4cout << " for " << processManager->GetParticleType()->GetParticleName() << G4endl;
341  }
342 #endif
343 
344  if (isFound) return anElement->GetProcess();
345  else return 0;
346 }
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4bool Contains(const G4ProcessManager *pManager) const
bool G4bool
Definition: G4Types.hh:79
const G4String & GetProcessName() const
G4ParticleDefinition * GetParticleType() const
G4VProcess * GetProcess() const
#define G4endl
Definition: G4ios.hh:61
G4ProcessVector * G4ProcessTable::FindProcesses ( )

Definition at line 421 of file G4ProcessTable.cc.

Referenced by G4ProcessTableMessenger::SetNewValue().

422 {
423  return ExtractProcesses(fProcTblVector);
424 }
G4ProcessVector * G4ProcessTable::FindProcesses ( const G4ProcessManager processManager)

Definition at line 427 of file G4ProcessTable.cc.

References G4ProcessManager::GetProcessList().

428 {
429  G4ProcessVector* procList = pManager->GetProcessList();
430  return new G4ProcessVector(*procList);
431 }
G4ProcessVector * G4ProcessTable::FindProcesses ( const G4String processName)

Definition at line 434 of file G4ProcessTable.cc.

435 {
436  G4ProcTableVector* pTblVector = Find(fProcTblVector, processName);
437  return ExtractProcesses(pTblVector);
438 }
std::vector< G4ProcTblElement * > G4ProcTableVector
G4ProcessVector * G4ProcessTable::FindProcesses ( G4ProcessType  processType)

Definition at line 441 of file G4ProcessTable.cc.

442 {
443  G4ProcTableVector* pTblVector = Find(fProcTblVector, processType);
444  return ExtractProcesses(pTblVector);
445 }
std::vector< G4ProcTblElement * > G4ProcTableVector
G4ProcNameVector* G4ProcessTable::GetNameList ( )
G4ProcessTable * G4ProcessTable::GetProcessTable ( )
static

Definition at line 154 of file G4ProcessTable.cc.

References G4ProcessTable(), and G4ThreadLocal.

Referenced by G4ProcessManager::AddProcess(), exrdmAnalysisManager::BeginOfRun(), F05PhysicsList::ConstructProcess(), F04PhysicsList::ConstructProcess(), WLSPhysicsList::ConstructProcess(), exrdmAnalysisManager::EndOfRun(), export_G4ProcessTable(), G4ProcessManager::G4ProcessManager(), G4RunManager::G4RunManager(), G4ProcessManager::RemoveProcess(), PhysicsList::SetAnnihiToHadronFac(), PhysicsList::SetAnnihiToMuPairFac(), PhysicsList::SetGammaToMuPairFac(), and G4RunManager::~G4RunManager().

155 {
156  static G4ThreadLocal G4ProcessTable *theProcessTable_G4MT_TLS_ = 0 ; if (!theProcessTable_G4MT_TLS_) theProcessTable_G4MT_TLS_ = new G4ProcessTable ; G4ProcessTable &theProcessTable = *theProcessTable_G4MT_TLS_;
157  if (!fProcessTable){
158  fProcessTable = &theProcessTable;
159  }
160  return fProcessTable;
161 }
#define G4ThreadLocal
Definition: tls.hh:52
G4ProcTableVector* G4ProcessTable::GetProcTableVector ( )
G4int G4ProcessTable::GetVerboseLevel ( ) const
G4int G4ProcessTable::Insert ( G4VProcess aProcess,
G4ProcessManager aProcMgr 
)

Definition at line 164 of file G4ProcessTable.cc.

References G4ProcTblElement::Contains(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), G4VProcess::GetProcessName(), and G4ProcTblElement::Insert().

Referenced by G4ProcessManager::AddProcess(), and G4ProcessManager::G4ProcessManager().

166 {
167  if ( (aProcess == 0) || ( aProcMgr == 0 ) ){
168 #ifdef G4VERBOSE
169  if (verboseLevel>0){
170  G4cout << "G4ProcessTable::Insert : arguments are 0 pointer "
171  <<aProcess <<","<< aProcMgr << G4endl;
172  }
173 #endif
174  return -1;
175  }
176 
177 #ifdef G4VERBOSE
178  if (verboseLevel>1){
179  G4cout << "G4ProcessTable::Insert ";
180  G4cout << " Process[" << aProcess->GetProcessName() << "]";
181  G4cout << " Particle[" << aProcMgr->GetParticleType()->GetParticleName() << "]";
182  G4cout << G4endl;
183  }
184 #endif
185 
186  G4ProcTableVector::iterator itr;
187  G4int idxTbl=0;
188  G4ProcTblElement* anElement;
189  G4bool isFoundInTbl = false;
190  // loop over all elements
191  for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
192  anElement = (*itr);
193  // check if this process is included
194  if (aProcess == anElement->GetProcess()) {
195  isFoundInTbl = true;
196 
197  // add the process manager into the element
198  // unless this process manager is included
199  if (!anElement->Contains(aProcMgr)) {
200  anElement->Insert(aProcMgr);
201 #ifdef G4VERBOSE
202  if (verboseLevel>2){
203  G4cout << " This Process Manager is registered !! " << G4endl;
204  }
205 #endif
206  }
207  break;
208  }
209  }
210  // add this process into the table by creating a new element
211  if (!isFoundInTbl) {
212  G4ProcTblElement* newElement = new G4ProcTblElement(aProcess);
213  newElement->Insert(aProcMgr);
214  fProcTblVector->push_back(newElement);
215  // add into name vector
216  G4ProcNameVector::iterator ip;
217  G4bool isFound = false;
218  for (ip=fProcNameVector->begin(); ip!=fProcNameVector->end(); ++ip) {
219  isFound |= (aProcess->GetProcessName() == (*ip));
220  }
221  if (!isFound) {
222  fProcNameVector->push_back(aProcess->GetProcessName() );
223 #ifdef G4VERBOSE
224  if (verboseLevel>2){
225  G4cout << " This Process is registered !! " << G4endl;
226  }
227 #endif
228  }
229  }
230  return idxTbl;
231 }
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4bool Contains(const G4ProcessManager *pManager) const
bool G4bool
Definition: G4Types.hh:79
void Insert(G4ProcessManager *aProcMgr)
G4ParticleDefinition * GetParticleType() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
G4VProcess * GetProcess() const
#define G4endl
Definition: G4ios.hh:61
G4int G4ProcessTable::Length ( ) const

Referenced by export_G4ProcessTable().

G4int G4ProcessTable::Remove ( G4VProcess aProcess,
G4ProcessManager aProcMgr 
)

Definition at line 234 of file G4ProcessTable.cc.

References G4ProcTblElement::Contains(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), G4ProcTblElement::GetProcessName(), G4VProcess::GetProcessName(), G4ProcTblElement::Length(), and G4ProcTblElement::Remove().

Referenced by G4ProcessManager::RemoveProcess().

236 {
237  if ( (aProcess == 0) || ( aProcMgr == 0 ) ){
238 #ifdef G4VERBOSE
239  if (verboseLevel>0){
240  G4cout << "G4ProcessTable::Remove : arguments are 0 pointer "<< G4endl;
241  }
242 #endif
243  return -1;
244  }
245 
246 #ifdef G4VERBOSE
247  if (verboseLevel>1){
248  G4cout << "G4ProcessTable::Remove ";
249  G4cout << " Process[" << aProcess->GetProcessName() << "]";
250  G4cout << " Particle[" << aProcMgr->GetParticleType()->GetParticleName() << "]" << G4endl;
251  }
252 #endif
253 
254  G4ProcTableVector::iterator itr;
255  G4int idxTbl=0;
256  G4ProcTblElement* anElement=0;
257  G4bool isFound = false;
258  // loop over all elements
259  for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
260  anElement = (*itr);
261 
262  // check if this process is included
263  if (aProcess == anElement->GetProcess()) {
264  isFound = anElement->Contains(aProcMgr);
265  // remove the process manager from the element
266  anElement->Remove(aProcMgr);
267 #ifdef G4VERBOSE
268  if (verboseLevel>2){
269  G4cout << " This Process Manager is removed !! " << G4endl;
270  }
271 #endif
272  break;
273  }
274  }
275  //
276  if (!isFound) {
277 #ifdef G4VERBOSE
278  if (verboseLevel>0){
279  G4cout << " This Process Manager is not registered !! " << G4endl;
280  }
281 #endif
282  return -1;
283  }
284  // remove the element if it has no entry
285  if (anElement->Length() == 0){
286  fProcTblVector->erase(itr);
287  delete anElement;
288  // check other prcesses with same name exist or not
289  G4bool isSameName = false;
290  for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr) {
291  anElement = (*itr);
292  if (anElement->GetProcessName() == aProcess->GetProcessName()) {
293  isSameName = true;
294  break;
295  }
296  }
297  // remove from name vector
298  if (!isSameName ) {
299  G4ProcNameVector::iterator i;
300  for (i=fProcNameVector->begin(); i!=fProcNameVector->end(); ++i) {
301  if ( *i == aProcess->GetProcessName() ) {
302  fProcNameVector->erase(i);
303  break;
304  }
305  }
306  }
307 #ifdef G4VERBOSE
308  if (verboseLevel>1){
309  G4cout << " This Process is removed !! " << G4endl;
310  }
311 #endif
312  }
313  return idxTbl;
314 }
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4int Length() const
G4GLOB_DLL std::ostream G4cout
G4bool Contains(const G4ProcessManager *pManager) const
bool G4bool
Definition: G4Types.hh:79
const G4String & GetProcessName() const
G4ParticleDefinition * GetParticleType() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
void Remove(G4ProcessManager *aProcMgr)
G4VProcess * GetProcess() const
#define G4endl
Definition: G4ios.hh:61
void G4ProcessTable::SetProcessActivation ( const G4String processName,
G4bool  fActive 
)

Definition at line 448 of file G4ProcessTable.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), G4ProcessManager::GetProcessIndex(), G4ProcTblElement::GetProcessManager(), G4ProcTblElement::Length(), and G4ProcessManager::SetProcessActivation().

Referenced by G4ProcessTableMessenger::SetNewValue().

450 {
451 #ifdef G4VERBOSE
452  if (verboseLevel>1){
453  G4cout << " G4ProcessTable::SetProcessActivation:" ;
454  G4cout << " The Process[" << processName << "] "<< G4endl;
455  }
456 #endif
457 
458  G4ProcTableVector* pTblVector = Find(fProcTblVector, processName);
459  G4ProcTableVector::iterator itr;
460  G4ProcTblElement* anElement;
461  // loop over all elements
462  for (itr=pTblVector->begin(); itr!=pTblVector->end(); ++itr) {
463  anElement = (*itr);
464  G4VProcess* process = anElement->GetProcess();
465  for (G4int idx = 0 ; idx < anElement->Length(); idx++) {
466  G4ProcessManager* manager = anElement->GetProcessManager(idx);
467  manager->SetProcessActivation(process, fActive);
468 #ifdef G4VERBOSE
469  if (verboseLevel>1){
470  G4cout << " for " << manager->GetParticleType()->GetParticleName();
471  G4cout << " Index = " << manager->GetProcessIndex(process);
472  G4cout << G4endl;
473  }
474 #endif
475  }
476  }
477 }
G4ProcessManager * GetProcessManager(G4int index) const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4int Length() const
G4VProcess * SetProcessActivation(G4VProcess *aProcess, G4bool fActive)
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetParticleType() const
G4VProcess * GetProcess() const
std::vector< G4ProcTblElement * > G4ProcTableVector
G4int GetProcessIndex(G4VProcess *) const
#define G4endl
Definition: G4ios.hh:61
void G4ProcessTable::SetProcessActivation ( const G4String processName,
const G4String particleName,
G4bool  fActive 
)
void G4ProcessTable::SetProcessActivation ( const G4String processName,
G4ParticleDefinition particle,
G4bool  fActive 
)
void G4ProcessTable::SetProcessActivation ( const G4String processName,
G4ProcessManager processManager,
G4bool  fActive 
)

Definition at line 480 of file G4ProcessTable.cc.

References FindProcess(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcessManager::GetProcessIndex(), and G4ProcessManager::SetProcessActivation().

484 {
485 #ifdef G4VERBOSE
486  if (verboseLevel>1){
487  G4cout << " G4ProcessTable::SetProcessActivation:" ;
488  G4cout << " The Process[" << processName << "] "<< G4endl;
489  }
490 #endif
491 
492  G4VProcess* process = FindProcess( processName, processManager);
493  if ( process != 0) {
494  processManager->SetProcessActivation(process, fActive);
495 #ifdef G4VERBOSE
496  if (verboseLevel>1){
497  G4cout << " for " << processManager->GetParticleType()->GetParticleName();
498  G4cout << " Index = " << processManager->GetProcessIndex(process) << G4endl;
499  }
500 #endif
501  }
502 }
const G4String & GetParticleName() const
G4VProcess * SetProcessActivation(G4VProcess *aProcess, G4bool fActive)
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetParticleType() const
G4int GetProcessIndex(G4VProcess *) const
#define G4endl
Definition: G4ios.hh:61
G4VProcess * FindProcess(const G4String &processName, const G4String &particleName) const
void G4ProcessTable::SetProcessActivation ( G4ProcessType  processType,
G4bool  fActive 
)

Definition at line 506 of file G4ProcessTable.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcTblElement::GetProcess(), G4ProcessManager::GetProcessIndex(), G4ProcTblElement::GetProcessManager(), G4VProcess::GetProcessName(), G4ProcTblElement::Length(), and G4ProcessManager::SetProcessActivation().

508 {
509 #ifdef G4VERBOSE
510  if (verboseLevel>1){
511  G4cout << " G4ProcessTable::SetProcessActivation:" ;
512  G4cout << " The ProcessType[" << G4int(processType) << "] "<< G4endl;
513  }
514 #endif
515 
516  G4ProcTableVector* pTblVector = Find(fProcTblVector, processType);
517  G4ProcTableVector::iterator itr;
518  G4ProcTblElement* anElement;
519  // loop over all elements
520  for (itr=pTblVector->begin(); itr!=pTblVector->end(); ++itr) {
521  anElement = (*itr);
522  G4VProcess* process = anElement->GetProcess();
523 #ifdef G4VERBOSE
524  if (verboseLevel>1){
525  G4cout << " The Process[" << process->GetProcessName()<< "] "<< G4endl;
526  }
527 #endif
528  for (G4int idx = 0 ; idx < anElement->Length(); idx++) {
529  G4ProcessManager* manager = anElement->GetProcessManager(idx);
530  manager->SetProcessActivation(process, fActive);
531 #ifdef G4VERBOSE
532  if (verboseLevel>1){
533  G4cout << " for " << manager->GetParticleType()->GetParticleName();
534  G4cout << " Index = " << manager->GetProcessIndex(process) << G4endl;
535  }
536 #endif
537  }
538  }
539 }
G4ProcessManager * GetProcessManager(G4int index) const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4int Length() const
G4VProcess * SetProcessActivation(G4VProcess *aProcess, G4bool fActive)
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetParticleType() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
G4VProcess * GetProcess() const
std::vector< G4ProcTblElement * > G4ProcTableVector
G4int GetProcessIndex(G4VProcess *) const
#define G4endl
Definition: G4ios.hh:61
void G4ProcessTable::SetProcessActivation ( G4ProcessType  processType,
const G4String particleName,
G4bool  fActive 
)
void G4ProcessTable::SetProcessActivation ( G4ProcessType  processType,
G4ParticleDefinition particle,
G4bool  fActive 
)
void G4ProcessTable::SetProcessActivation ( G4ProcessType  processType,
G4ProcessManager processManager,
G4bool  fActive 
)

Definition at line 542 of file G4ProcessTable.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetParticleType(), G4ProcessManager::GetProcessList(), G4VProcess::GetProcessName(), G4VProcess::GetProcessType(), G4ProcessVector::length(), and G4ProcessManager::SetProcessActivation().

546 {
547 #ifdef G4VERBOSE
548  if (verboseLevel>1){
549  G4cout << " G4ProcessTable::SetProcessActivation:" ;
550  G4cout << " The ProcessType[" << G4int(processType) << "] "<< G4endl;
551  }
552 #endif
553 
554  G4ProcessVector* procList = processManager->GetProcessList();
555  for (G4int idx = 0; idx < procList->length(); idx++) {
556  G4VProcess* process = (*procList)(idx);
557  if ( process->GetProcessType() == processType) {
558  processManager->SetProcessActivation(process, fActive);
559 #ifdef G4VERBOSE
560  if (verboseLevel>1){
561  G4cout << " The Process[" << process->GetProcessName()<< "] "<< G4endl;
562  G4cout << " for " << processManager->GetParticleType()->GetParticleName();
563  G4cout << " Index = " << idx << G4endl;
564  }
565 #endif
566  }
567  }
568 }
G4ProcessType GetProcessType() const
Definition: G4VProcess.hh:414
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4VProcess * SetProcessActivation(G4VProcess *aProcess, G4bool fActive)
G4GLOB_DLL std::ostream G4cout
G4int length() const
G4ParticleDefinition * GetParticleType() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
G4ProcessVector * GetProcessList() const
void G4ProcessTable::SetVerboseLevel ( G4int  value)

The documentation for this class was generated from the following files: