58 G4MolecularConfigurationManager::MolecularConfigurationTable::iterator it1;
59 std::map<G4ElectronOccupancy, G4MolecularConfiguration*, comparator>::iterator it2;
61 for(it1 = fTable.begin() ; it1 != fTable.end() ; it1++)
63 for(it2=it1->second.begin(); it2!=it1->second.end(); it2++)
78 if(GetManager()->fTable[molDef][elecOcc])
80 return GetManager()->fTable[molDef][elecOcc];
92 if(GetManager()->fTable[molDef][elecOcc])
94 return GetManager()->fTable[molDef][elecOcc];
105 if(fgManager)
delete fgManager;
114 fMoleculeDefinition = moleculeDef ;
115 fgManager->fTable[fMoleculeDefinition][elecOcc] =
this;
116 std::map<G4ElectronOccupancy, G4MolecularConfiguration*, comparator>::iterator it ;
117 it = fgManager->fTable[moleculeDef].find(elecOcc);
118 fElectronOccupancy = &(it->first);
120 fDynCharge = fMoleculeDefinition->
GetNbElectrons()-fElectronOccupancy->GetTotalOccupancy();
121 fDynMass = fMoleculeDefinition->GetMass() ;
123 fDynDiffusionCoefficient = fMoleculeDefinition->GetDiffusionCoefficient() ;
124 fDynVanDerVaalsRadius = fMoleculeDefinition->GetVanDerVaalsRadius() ;
125 fDynDecayTime = fMoleculeDefinition->GetDecayTime() ;
130 if(fElectronOccupancy)
132 delete fElectronOccupancy;
133 fElectronOccupancy = 0;
149 if (&right==
this)
return *
this;
163 return ChangeConfiguration(newElectronOccupancy);
172 if(newElectronOccupancy.
GetOccupancy(IonizedLevel) != 0)
179 " you want to free. The molecule's name you want to ionized is "+ GetName();
186 return ChangeConfiguration(newElectronOccupancy);
193 return ChangeConfiguration(newElectronOccupancy);
207 " you want to free. The molecule's name is "+ GetName();
212 return ChangeConfiguration(newElectronOccupancy);
219 if(newElectronOccupancy . GetOccupancy(orbitToFree)>=1)
221 newElectronOccupancy . RemoveElectron(orbitToFree,1);
222 newElectronOccupancy . AddElectron(orbitToFill,1);
227 " you want to free. The molecule's name is "+ GetName();
232 return ChangeConfiguration(newElectronOccupancy);
239 fName = fMoleculeDefinition->GetName();
250 return fMoleculeDefinition->GetAtomsNumber();
255 return fElectronOccupancy->GetTotalOccupancy();
260 G4cout<<
"--------------Print electronic state of "<<GetName()<<
"---------------"<<
G4endl;
261 fElectronOccupancy->DumpInfo();
262 if(fElectronOccupancy==fMoleculeDefinition->GetGroundStateElectronOccupancy())
268 if(fMoleculeDefinition->GetDecayTable())
269 G4cout<<
"Transition :"<<(fMoleculeDefinition->GetDecayTable())->GetExcitedState(fElectronOccupancy)<<
G4endl;
276 return fMoleculeDefinition-> GetDecayChannels(fElectronOccupancy);
281 if(fMoleculeDefinition)
282 return fMoleculeDefinition->GetPDGEncoding();