Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:22:04

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 // This example is provided by the Geant4-DNA collaboration
0027 // Any report or published results obtained using the Geant4-DNA software
0028 // shall cite the following Geant4-DNA collaboration publication:
0029 // Med. Phys. 37 (2010) 4692-4708
0030 // and papers
0031 // M. Batmunkh et al. J Radiat Res Appl Sci 8 (2015) 498-507
0032 // O. Belov et al. Physica Medica 32 (2016) 1510-1520
0033 // The Geant4-DNA web site is available at http://geant4-dna.org
0034 //
0035 // -------------------------------------------------------------------
0036 // November 2016
0037 // -------------------------------------------------------------------
0038 //
0039 /// \file TimeStepAction.hh
0040 /// \brief Implementation of the TimeStepAction class
0041 
0042 #include "TimeStepAction.hh"
0043 
0044 #include "G4SystemOfUnits.hh"
0045 #include "G4UnitsTable.hh"
0046 
0047 #include <G4Scheduler.hh>
0048 // #include "G4Molecule.hh"
0049 
0050 TimeStepAction::TimeStepAction() : G4UserTimeStepAction()
0051 {
0052   /**
0053    * Give to G4ITTimeStepper the user defined time steps
0054    * eg : from 1 picosecond to 10 picosecond, the minimum time
0055    * step that the TimeStepper can returned is 0.1 picosecond.
0056    * Those time steps are used for the chemistry of G4DNA
0057    */
0058 
0059   AddTimeStep(1 * picosecond, 0.1 * picosecond);
0060   AddTimeStep(10 * picosecond, 1 * picosecond);
0061   AddTimeStep(100 * picosecond, 3 * picosecond);
0062   AddTimeStep(1000 * picosecond, 10 * picosecond);
0063   AddTimeStep(10000 * picosecond, 100 * picosecond);
0064 }
0065 
0066 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0067 
0068 TimeStepAction::~TimeStepAction()
0069 {
0070   // dtor
0071 }
0072 
0073 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0074 
0075 TimeStepAction::TimeStepAction(const TimeStepAction& other) : G4UserTimeStepAction(other)
0076 {
0077   // copy ctor
0078 }
0079 
0080 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0081 
0082 TimeStepAction& TimeStepAction::operator=(const TimeStepAction& rhs)
0083 {
0084   if (this == &rhs) return *this;  // handle self assignment
0085   // assignment operator
0086   return *this;
0087 }
0088 
0089 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0090 
0091 void TimeStepAction::UserPostTimeStepAction()
0092 {
0093   //    G4cout << "_________________" << G4endl;
0094   /*
0095   G4cout << "Time Step : "
0096       << G4BestUnit(G4ITScheduler::Instance()->GetTimeStep(),
0097           "Time")
0098           << G4endl;
0099 
0100   G4cout <<  "End of step: "
0101       << G4BestUnit(G4ITScheduler::Instance()->GetGlobalTime(),
0102                             "Time")
0103       << G4endl;
0104    */
0105 }
0106 
0107 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0108 
0109 void TimeStepAction::UserReactionAction(const G4Track&, const G4Track&,
0110                                         const std::vector<G4Track*>* /*products*/)
0111 {
0112   /*
0113   for (int i = 0 ; i < nbProducts ; i ++)
0114   {
0115     G4cout << "Product[" << i << "] : "
0116         << GetMolecule(products[i])->GetName()
0117         << G4endl ;
0118   }
0119    */
0120 }