Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VPhysChemIO.hh
Go to the documentation of this file.
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 * G4VPhysChemIO.hh
28 *
29 * Created on: 3 févr. 2017
30 * Author: matkara
31 */
32
33#ifndef G4VPHYSCHEMIO_HH_
34#define G4VPHYSCHEMIO_HH_
35
36#include <fstream>
37#include "globals.hh"
38#include "G4ThreeVector.hh"
39
40class G4Track;
42
44{
45public:
47 virtual ~G4VPhysChemIO();
48
49 virtual void InitializeMaster(){}
50 virtual void InitializeThread(){}
51 virtual void InitializeFile() = 0;
52
53 virtual void NewRun() = 0;
54 virtual void NewEvent() = 0;
55
56 /**
57 * When DNA physics model create a water molecule, you'll get a notification
58 * through this method.
59 * The ElectronicModification is a flag telling whether the molecule
60 * is ionized or excited, the electronic level is calculated by the
61 * model and the IncomingTrack is the track responsible for the creation
62 * of this molecule (electron, proton...)
63 */
64 virtual void CreateWaterMolecule(G4int electronicModif,
65 G4int /*electronicLevel*/,
66 G4double energy,
67 const G4Track* /*theIncomingTrack*/) = 0;
68
69 /**
70 * Same idea as the previous method but for solvated electron.
71 * This method should be used by the physics model of the ElectronSolvatation
72 * process.
73 */
74 virtual void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
75 G4ThreeVector* finalPosition = 0) = 0;
76
77 //============================================================================
78 // FILE OPERATIONS
79 //============================================================================
80
81 /**
82 * Tells the chemistry manager to write into a file
83 * the position and electronic state of the water molecule
84 * and the position thermalized or not of the solvated electron
85 */
86 virtual void WriteInto(const G4String&, std::ios_base::openmode mode =
87 std::ios_base::out) = 0;
88 virtual void AddEmptyLineInOutputFile(){};
89
90 /**
91 * Close the file specified with WriteInto
92 */
93 virtual void CloseFile() = 0;
94};
95
96#endif // G4PHYSCHEMIO_HH_
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
virtual void NewRun()=0
virtual void AddEmptyLineInOutputFile()
virtual void InitializeThread()
virtual void InitializeMaster()
virtual void NewEvent()=0
virtual void InitializeFile()=0
virtual void WriteInto(const G4String &, std::ios_base::openmode mode=std::ios_base::out)=0
virtual ~G4VPhysChemIO()
virtual void CreateWaterMolecule(G4int electronicModif, G4int, G4double energy, const G4Track *)=0
virtual void CloseFile()=0
virtual void CreateSolvatedElectron(const G4Track *, G4ThreeVector *finalPosition=0)=0