49 G4int electronicLevels,
55 G4ParticleDefinition(name, mass, 0., charge, 0, 0, 0, 0, 0, 0,
"Molecule",
56 0, 0, ID, false, lifetime, nullptr, false, aType, 0, 0.0),
57 fDiffusionCoefficient(diffCoeff),
58 fAtomsNb(atomsNumber),
59 fVanDerVaalsRadius(radius)
63 if(electronicLevels != 0)
69 fElectronOccupancy =
nullptr;
71 fDecayTable =
nullptr;
81 G4int electronicLevels;
91 READ(in,electronicLevels);
114 WRITE(out,fDiffusionCoefficient);
116 if(fElectronOccupancy !=
nullptr)
124 WRITE(out,fVanDerVaalsRadius);
132 if (fElectronOccupancy !=
nullptr)
134 delete fElectronOccupancy;
135 fElectronOccupancy =
nullptr;
137 if (fDecayTable !=
nullptr)
140 fDecayTable =
nullptr;
149 bool alreadyExist(
false);
174 bool alreadyExist(
false);
192 if(fElectronOccupancy !=
nullptr)
196 if(levelOccupancy != 0)
211 if(fDecayTable ==
nullptr)
226 if (fDecayTable ==
nullptr)
235const vector<const G4MolecularDissociationChannel*>*
238 if (fDecayTable !=
nullptr)
240 const vector<const G4MolecularDissociationChannel*>* output =
246 errMsg <<
": no Excited States and Decays for"
249 G4Exception(
"G4MoleculeDefinition::GetDecayChannels",
"",
256const vector<const G4MolecularDissociationChannel*>*
260 if(fDecayTable !=
nullptr)
262 const vector<const G4MolecularDissociationChannel*>* output =
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
void WRITE(std::ostream &out, const T &toBeSaved)
void READ(std::istream &in, T &toBeSaved)
G4int AddElectron(G4int orbit, G4int number=1)
G4int RemoveElectron(G4int orbit, G4int number=1)
G4int GetOccupancy(G4int orbit) const
G4int GetSizeOfOrbit() const
void SetDecayTime(G4double)
static G4MolecularConfiguration * GetMolecularConfiguration(const G4MoleculeDefinition *, const G4String &label)
static G4MolecularConfiguration * CreateMolecularConfiguration(const G4String &userIdentifier, const G4MoleculeDefinition *, bool &wasAlreadyCreated)
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannels(const G4MolecularConfiguration *) const
void AddChannel(const G4MolecularConfiguration *molConf, const G4MolecularDissociationChannel *channel)
~G4MoleculeDefinition() override
const G4String & GetName() const
void Serialize(std::ostream &)
G4MolecularConfiguration * GetConfigurationWithLabel(const G4String &molecularConfLabel)
static G4MoleculeDefinition * Load(std::istream &)
void SetLevelOccupation(G4int, G4int eNb=2)
void AddDecayChannel(const G4MolecularConfiguration *molConf, const G4MolecularDissociationChannel *channel)
G4MolecularConfiguration * NewConfiguration(const G4String &excitedStateLabel)
G4MolecularConfiguration * NewConfigurationWithElectronOccupancy(const G4String &excitedStateLabel, const G4ElectronOccupancy &, double decayTime=0.)
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannels(const G4MolecularConfiguration *) const
void Finalize(G4MoleculeDefinition *)
void Insert(G4MoleculeDefinition *)
static G4MoleculeTable * Instance()
const G4String & GetParticleType() const
G4double GetPDGMass() const
G4double GetPDGLifeTime() const
const G4String & GetParticleName() const