71 G4double timeMin = 1 * ps;
72 G4double timeMax = G4Scheduler::Instance()->GetEndTime() - timeMin;
73 G4double timeLogMin = std::log10(timeMin);
74 G4double timeLogMax = std::log10(timeMax);
75 for (G4int i = 0; i < cmdBins; i++) {
77 i * (timeLogMax - timeLogMin) / (cmdBins - 1)));
114 if (G4EventManager::GetEventManager()->GetConstCurrentEvent()->IsAborted()) {
116 G4MoleculeCounter::Instance()->ResetCounter();
120 auto species = G4MoleculeCounter::Instance()->GetRecordedMolecules();
122 if (species ==
nullptr || species->empty()) {
123 G4cout <<
"No molecule recorded, energy deposited= "
127 G4MoleculeCounter::Instance()->ResetCounter();
130 for (
auto molecule: *species) {
133 G4MoleculeCounter::Instance()->GetNMoleculesAtTime(molecule,
136 G4cerr <<
"N molecules not valid < 0 " << G4endl;
137 G4Exception(
"",
"N<0", FatalException,
"");
141 G4double gValue = (n_mol / (
fEdep / eV)) * 100.;
142 molInfo.
fG += gValue;
143 molInfo.
fG2 += gValue * gValue;
148 G4MoleculeCounter::Instance()->ResetCounter();
223 G4int fNtupleID = analysisManager->CreateNtuple(
"species",
"species");
224 analysisManager->CreateNtupleIColumn(fNtupleID,
"speciesID");
225 analysisManager->CreateNtupleIColumn(fNtupleID,
"number");
226 analysisManager->CreateNtupleIColumn(fNtupleID,
"nEvent");
227 analysisManager->CreateNtupleSColumn(fNtupleID,
"speciesName");
228 analysisManager->CreateNtupleDColumn(fNtupleID,
"time");
229 analysisManager->CreateNtupleDColumn(fNtupleID,
"sumG");
230 analysisManager->CreateNtupleDColumn(fNtupleID,
"sumG2");
231 analysisManager->FinishNtuple(fNtupleID);
236 for (
const auto &it_map2 : map2) {
237 G4double time = it_map1.first;
238 auto species = it_map2.first;
239 const G4String &name = species->GetName();
240 auto molID = it_map2.first->GetMoleculeID();
241 auto number = it_map2.second.fNumber;
242 auto G = it_map2.second.fG;
243 auto G2 = it_map2.second.fG2;
244 analysisManager->FillNtupleIColumn(fNtupleID, 0, molID);
245 analysisManager->FillNtupleIColumn(fNtupleID, 1, number);
246 analysisManager->FillNtupleIColumn(fNtupleID, 2,
fNEvent);
247 analysisManager->FillNtupleSColumn(fNtupleID, 3, name);
248 analysisManager->FillNtupleDColumn(fNtupleID, 4, time);
249 analysisManager->FillNtupleDColumn(fNtupleID, 5, G);
250 analysisManager->FillNtupleDColumn(fNtupleID, 6, G2);
251 analysisManager->AddNtupleRow(fNtupleID);
255 analysisManager->Write();
256 analysisManager->CloseFile();