Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/dna/microdosimetry/src/SteppingAction.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/medical/dna/microdosimetry/src/SteppingAction.cc (Version 11.3.0) and /examples/extended/medical/dna/microdosimetry/src/SteppingAction.cc (Version 11.1.1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // This example is provided by the Geant4-DNA      26 // This example is provided by the Geant4-DNA collaboration
 27 // Any report or published results obtained us <<  27 // Any report or published results obtained using the Geant4-DNA software 
 28 // shall cite the following Geant4-DNA collabo <<  28 // shall cite the following Geant4-DNA collaboration publication:
 29 // Med. Phys. 45, (2018) e722-e739             << 
 30 // Phys. Med. 31 (2015) 861-874                << 
 31 // Med. Phys. 37 (2010) 4692-4708                  29 // Med. Phys. 37 (2010) 4692-4708
 32 // Int. J. Model. Simul. Sci. Comput. 1 (2010) << 
 33 // The Geant4-DNA web site is available at htt     30 // The Geant4-DNA web site is available at http://geant4-dna.org
 34 //                                                 31 //
 35 //                                             << 
 36 /// \file SteppingAction.cc                        32 /// \file SteppingAction.cc
 37 /// \brief Implementation of the SteppingActio     33 /// \brief Implementation of the SteppingAction class
 38                                                    34 
 39 #include "SteppingAction.hh"                       35 #include "SteppingAction.hh"
                                                   >>  36 #include "RunAction.hh"
                                                   >>  37 #include "DetectorConstruction.hh"
                                                   >>  38 #include "PrimaryGeneratorAction.hh"
 40                                                    39 
 41 #include "G4Alpha.hh"                          << 
 42 #include "G4AnalysisManager.hh"                    40 #include "G4AnalysisManager.hh"
 43 #include "G4DNAGenericIonsManager.hh"          <<  41 #include "G4SystemOfUnits.hh"
                                                   >>  42 #include "G4SteppingManager.hh"
                                                   >>  43 #include "G4VTouchable.hh"
                                                   >>  44 #include "G4VPhysicalVolume.hh"
                                                   >>  45 #include "CommandLineParser.hh"
                                                   >>  46 
 44 #include "G4Electron.hh"                           47 #include "G4Electron.hh"
 45 #include "G4EventManager.hh"                   << 
 46 #include "G4Gamma.hh"                          << 
 47 #include "G4Proton.hh"                             48 #include "G4Proton.hh"
 48 #include "G4SystemOfUnits.hh"                  <<  49 #include "G4Gamma.hh"
                                                   >>  50 #include "G4Alpha.hh"
                                                   >>  51 #include "G4DNAGenericIonsManager.hh"
                                                   >>  52 #include "G4EventManager.hh"
                                                   >>  53 #include "G4Event.hh"
                                                   >>  54 
                                                   >>  55 using namespace G4DNAPARSER;
 49                                                    56 
 50 //....oooOO0OOooo........oooOO0OOooo........oo     57 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 51                                                    58 
 52 SteppingAction::SteppingAction() : G4UserStepp <<  59 SteppingAction::SteppingAction() : G4UserSteppingAction()
                                                   >>  60 {}
 53                                                    61 
 54 //....oooOO0OOooo........oooOO0OOooo........oo     62 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 55                                                    63 
 56 SteppingAction::~SteppingAction() {}           <<  64 SteppingAction::~SteppingAction()
                                                   >>  65 {}
 57                                                    66 
 58 //....oooOO0OOooo........oooOO0OOooo........oo     67 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 59                                                    68 
 60 void SteppingAction::UserSteppingAction(const      69 void SteppingAction::UserSteppingAction(const G4Step* step)
 61 {                                              <<  70 { 
 62   // Protection                                <<  71   G4double flagParticle=-1;
 63   if (!step->GetPostStepPoint()) return;       <<  72   G4double flagProcess=-1;
 64   if (!step->GetPostStepPoint()->GetProcessDef <<  73   G4double x,y,z,xp,yp,zp;
 65                                                << 
 66   //                                           << 
 67   G4double flagParticle = -1.;                 << 
 68   G4double flagProcess = -1.;                  << 
 69   G4double x, y, z, xp, yp, zp;                << 
 70                                                    74 
 71   // Particle identification                       75   // Particle identification
 72                                                    76 
 73   // The following method avoids the usage of  <<  77   // The following method avoids the usage of string comparison 
 74                                                    78 
 75   G4ParticleDefinition* partDef = step->GetTra <<  79   G4ParticleDefinition * partDef = 
                                                   >>  80    step->GetTrack()->GetDynamicParticle()->GetDefinition();
 76                                                    81 
 77   if (partDef == G4Gamma::GammaDefinition()) f <<  82   if (partDef == G4Gamma::GammaDefinition())
                                                   >>  83      flagParticle = 0; 
 78                                                    84 
 79   if (partDef == G4Electron::ElectronDefinitio <<  85   if (partDef == G4Electron::ElectronDefinition())
                                                   >>  86      flagParticle = 1; 
 80                                                    87 
 81   if (partDef == G4Proton::ProtonDefinition()) <<  88   if (partDef == G4Proton::ProtonDefinition())
                                                   >>  89      flagParticle = 2; 
 82                                                    90 
 83   if (partDef == G4Alpha::AlphaDefinition()) f <<  91   if (partDef == G4Alpha::AlphaDefinition())
                                                   >>  92      flagParticle = 4; 
 84                                                    93 
 85   G4DNAGenericIonsManager* instance;           <<  94   G4DNAGenericIonsManager *instance;
 86   instance = G4DNAGenericIonsManager::Instance     95   instance = G4DNAGenericIonsManager::Instance();
 87                                                <<  96   
 88   // Usage example                                 97   // Usage example
 89   /*                                               98   /*
 90   G4ParticleDefinition* protonDef = G4Proton::     99   G4ParticleDefinition* protonDef = G4Proton::ProtonDefinition();
 91   G4ParticleDefinition* hydrogenDef = instance    100   G4ParticleDefinition* hydrogenDef = instance->GetIon("hydrogen");
 92   G4ParticleDefinition* alphaPlusPlusDef = ins    101   G4ParticleDefinition* alphaPlusPlusDef = instance->GetIon("alpha++");
 93   G4ParticleDefinition* alphaPlusDef = instanc    102   G4ParticleDefinition* alphaPlusDef = instance->GetIon("alpha+");
 94   G4ParticleDefinition* heliumDef = instance->    103   G4ParticleDefinition* heliumDef = instance->GetIon("helium");
 95   */                                              104   */
 96                                                   105 
 97   if (partDef == instance->GetIon("hydrogen")) << 106   if (partDef == instance->GetIon("hydrogen"))
                                                   >> 107      flagParticle = 3; 
 98                                                   108 
 99   if (partDef == instance->GetIon("alpha+")) f << 109   if (partDef == instance->GetIon("alpha+"))
100                                                << 110      flagParticle = 5; 
101   if (partDef == instance->GetIon("helium")) f << 
102                                                   111 
                                                   >> 112   if (partDef == instance->GetIon("helium"))
                                                   >> 113      flagParticle = 6; 
                                                   >> 114      
103   // Alternative method (based on string compa    115   // Alternative method (based on string comparison)
104                                                << 116   
105   /*                                              117   /*
106   const G4String& particleName = step->GetTrac    118   const G4String& particleName = step->GetTrack()->GetDynamicParticle()->
107       GetDefinition()->GetParticleName();         119       GetDefinition()->GetParticleName();
108                                                << 120       
109   if (particleName == "gamma")         flagPar    121   if (particleName == "gamma")         flagParticle = 0;
110   else if (particleName == "e-")       flagPar    122   else if (particleName == "e-")       flagParticle = 1;
111   else if (particleName == "proton")   flagPar    123   else if (particleName == "proton")   flagParticle = 2;
112   else if (particleName == "hydrogen") flagPar    124   else if (particleName == "hydrogen") flagParticle = 3;
113   else if (particleName == "alpha")    flagPar    125   else if (particleName == "alpha")    flagParticle = 4;
114   else if (particleName == "alpha+")   flagPar    126   else if (particleName == "alpha+")   flagParticle = 5;
115   else if (particleName == "helium")   flagPar    127   else if (particleName == "helium")   flagParticle = 6;
116   */                                              128   */
117                                                   129 
118   // Process identification                       130   // Process identification
119                                                   131 
120   // Process sub-types are listed in G4Physics    132   // Process sub-types are listed in G4PhysicsListHelper.cc
121   // or in Geant4-DNA process class implementa    133   // or in Geant4-DNA process class implementation files (*.cc)
122                                                   134 
123   G4StepPoint* preStep = step->GetPreStepPoint << 135   G4StepPoint * preStep = step->GetPreStepPoint();
124   G4StepPoint* postStep = step->GetPostStepPoi << 136   G4StepPoint * postStep = step->GetPostStepPoint();
125   G4int procID = postStep->GetProcessDefinedSt    137   G4int procID = postStep->GetProcessDefinedStep()->GetProcessSubType();
126                                                   138 
127   const G4String& processName = postStep->GetP << 139   const G4String& processName = postStep->
128                                                << 140       GetProcessDefinedStep()->GetProcessName();
129   if (processName == "Capture") flagProcess =  << 141  
                                                   >> 142   if (processName=="eCapture") flagProcess =1;
130   // (no subType and procID exists at the mome    143   // (no subType and procID exists at the moment for this process)
131                                                   144 
132   else if (flagParticle == 0) {                << 145   else if (flagParticle == 1)
133     if (procID == 12)                          << 
134       flagProcess = 81;                        << 
135     else if (procID == 13)                     << 
136       flagProcess = 82;                        << 
137     else if (procID == 14)                     << 
138       flagProcess = 83;                        << 
139     else if (procID == 11)                     << 
140       flagProcess = 84;                        << 
141   }                                            << 
142                                                   146 
143   else if (flagParticle == 1) {                << 147   {
144     if (procID == 58)                          << 148     if      (procID==58) flagProcess =10;
145       flagProcess = 10;                        << 149     else if (procID==51) flagProcess =11;
146     else if (procID == 51)                     << 150     else if (procID==52) flagProcess =12;
147       flagProcess = 11;                        << 151     else if (procID==53) flagProcess =13;
148     else if (procID == 52)                     << 152     else if (procID==55) flagProcess =14;
149       flagProcess = 12;                        << 153     else if (procID==54) flagProcess =15;
150     else if (procID == 53)                     << 154     else if (procID==10) flagProcess =110;
151       flagProcess = 13;                        << 155     else if (procID==1)  flagProcess =120;
152     else if (procID == 55)                     << 156     else if (procID==2)  flagProcess =130;
153       flagProcess = 14;                        << 
154     else if (procID == 54)                     << 
155       flagProcess = 15;                        << 
156     else if (procID == 10)                     << 
157       flagProcess = 110;                       << 
158     else if (procID == 1)                      << 
159       flagProcess = 120;                       << 
160     else if (procID == 2)                      << 
161       flagProcess = 130;                       << 
162   }                                               157   }
                                                   >> 158         
                                                   >> 159   else if (flagParticle == 2)
163                                                   160 
164   else if (flagParticle == 2) {                << 161   {
165     if (procID == 51)                          << 162     if      (procID==51) flagProcess =21;
166       flagProcess = 21;                        << 163     else if (procID==52) flagProcess =22;
167     else if (procID == 52)                     << 164     else if (procID==53) flagProcess =23;
168       flagProcess = 22;                        << 165     else if (procID==56) flagProcess =24;
169     else if (procID == 53)                     << 166     else if (procID==10) flagProcess =210;
170       flagProcess = 23;                        << 167     else if (procID==1)  flagProcess =220;
171     else if (procID == 56)                     << 168     else if (procID==2)  flagProcess =230;
172       flagProcess = 24;                        << 169     else if (procID==8)  flagProcess =240;
173     else if (procID == 10)                     << 
174       flagProcess = 210;                       << 
175     else if (procID == 1)                      << 
176       flagProcess = 220;                       << 
177     else if (procID == 2)                      << 
178       flagProcess = 230;                       << 
179     else if (procID == 8)                      << 
180       flagProcess = 240;                       << 
181   }                                               170   }
                                                   >> 171         
                                                   >> 172   else if (flagParticle == 3)
182                                                   173 
183   else if (flagParticle == 3) {                << 174   {
184     if (procID == 51)                          << 175     if      (procID==51) flagProcess =31;
185       flagProcess = 31;                        << 176     else if (procID==52) flagProcess =32;
186     else if (procID == 52)                     << 177     else if (procID==53) flagProcess =33;
187       flagProcess = 32;                        << 178     else if (procID==57) flagProcess =35;
188     else if (procID == 53)                     << 
189       flagProcess = 33;                        << 
190     else if (procID == 57)                     << 
191       flagProcess = 35;                        << 
192   }                                               179   }
                                                   >> 180         
                                                   >> 181   else if (flagParticle == 4)
193                                                   182 
194   else if (flagParticle == 4) {                << 183   {
195     if (procID == 51)                          << 184     if      (procID==51) flagProcess =41;
196       flagProcess = 41;                        << 185     else if (procID==52) flagProcess =42;
197     else if (procID == 52)                     << 186     else if (procID==53) flagProcess =43;
198       flagProcess = 42;                        << 187     else if (procID==56) flagProcess =44;
199     else if (procID == 53)                     << 188     else if (procID==10) flagProcess =410;
200       flagProcess = 43;                        << 189     else if (procID==1)  flagProcess =420;
201     else if (procID == 56)                     << 190     else if (procID==2)  flagProcess =430;
202       flagProcess = 44;                        << 191     else if (procID==8)  flagProcess =440;
203     else if (procID == 10)                     << 
204       flagProcess = 410;                       << 
205     else if (procID == 1)                      << 
206       flagProcess = 420;                       << 
207     else if (procID == 2)                      << 
208       flagProcess = 430;                       << 
209     else if (procID == 8)                      << 
210       flagProcess = 440;                       << 
211   }                                               192   }
                                                   >> 193         
                                                   >> 194   else if (flagParticle == 5)
212                                                   195 
213   else if (flagParticle == 5) {                << 196   {
214     if (procID == 51)                          << 197     if      (procID==51) flagProcess =51;
215       flagProcess = 51;                        << 198     else if (procID==52) flagProcess =52;
216     else if (procID == 52)                     << 199     else if (procID==53) flagProcess =53;
217       flagProcess = 52;                        << 200     else if (procID==56) flagProcess =54;
218     else if (procID == 53)                     << 201     else if (procID==57) flagProcess =55;
219       flagProcess = 53;                        << 202     else if (procID==10) flagProcess =510;
220     else if (procID == 56)                     << 203     else if (procID==1)  flagProcess =520;
221       flagProcess = 54;                        << 204     else if (procID==2)  flagProcess =530;
222     else if (procID == 57)                     << 205     else if (procID==8)  flagProcess =540;
223       flagProcess = 55;                        << 
224     else if (procID == 10)                     << 
225       flagProcess = 510;                       << 
226     else if (procID == 1)                      << 
227       flagProcess = 520;                       << 
228     else if (procID == 2)                      << 
229       flagProcess = 530;                       << 
230     else if (procID == 8)                      << 
231       flagProcess = 540;                       << 
232   }                                               206   }
                                                   >> 207         
                                                   >> 208   else if (flagParticle == 6)
233                                                   209 
234   else if (flagParticle == 6) {                << 210   {
235     if (procID == 51)                          << 211     if      (procID==51) flagProcess =61;
236       flagProcess = 61;                        << 212     else if (procID==52) flagProcess =62;
237     else if (procID == 52)                     << 213     else if (procID==53) flagProcess =63;
238       flagProcess = 62;                        << 214     else if (procID==57) flagProcess =65;
239     else if (procID == 53)                     << 
240       flagProcess = 63;                        << 
241     else if (procID == 57)                     << 
242       flagProcess = 65;                        << 
243   }                                               215   }
244                                                   216 
245   else if (processName == "GenericIon_G4DNAIon << 217   else if (processName=="GenericIon_G4DNAIonisation") flagProcess =73;
246     flagProcess = 73;                          << 218   else if (processName=="msc")                        flagProcess =710;
247   else if (processName == "msc")               << 219   else if (processName=="CoulombScat")                flagProcess =720;
248     flagProcess = 710;                         << 220   else if (processName=="ionIoni")                    flagProcess =730;
249   else if (processName == "CoulombScat")       << 221   else if (processName=="nuclearStopping")            flagProcess =740;
250     flagProcess = 720;                         << 
251   else if (processName == "ionIoni")           << 
252     flagProcess = 730;                         << 
253   else if (processName == "nuclearStopping")   << 
254     flagProcess = 740;                         << 
255   // (for all GenericIons)                        222   // (for all GenericIons)
256                                                << 223   
257   // Alternatively, using process names           224   // Alternatively, using process names
258                                                   225 
259   /*                                           << 226   /*   
260   else if (processName=="e-_G4DNAElectronSolva << 227   if (processName=="e-_G4DNAElectronSolvation")         flagProcess =10;
261   else if (processName=="e-_G4DNAElastic")        228   else if (processName=="e-_G4DNAElastic")              flagProcess =11;
262   else if (processName=="e-_G4DNAExcitation")     229   else if (processName=="e-_G4DNAExcitation")           flagProcess =12;
263   else if (processName=="e-_G4DNAIonisation")     230   else if (processName=="e-_G4DNAIonisation")           flagProcess =13;
264   else if (processName=="e-_G4DNAAttachment")     231   else if (processName=="e-_G4DNAAttachment")           flagProcess =14;
265   else if (processName=="e-_G4DNAVibExcitation    232   else if (processName=="e-_G4DNAVibExcitation")        flagProcess =15;
                                                   >> 233   else if (processName=="eCapture")                     flagProcess =16;
                                                   >> 234   else if (processName=="msc")                          flagProcess =17;
                                                   >> 235   else if (processName=="eIoni")                        flagProcess =130;
266                                                   236 
267   else if (processName=="proton_G4DNAElastic")    237   else if (processName=="proton_G4DNAElastic")          flagProcess =21;
268   else if (processName=="proton_G4DNAExcitatio    238   else if (processName=="proton_G4DNAExcitation")       flagProcess =22;
269   else if (processName=="proton_G4DNAIonisatio    239   else if (processName=="proton_G4DNAIonisation")       flagProcess =23;
270   else if (processName=="proton_G4DNAChargeDec    240   else if (processName=="proton_G4DNAChargeDecrease")   flagProcess =24;
                                                   >> 241   else if (processName=="hIoni")                        flagProcess =230;
271                                                   242 
272   else if (processName=="hydrogen_G4DNAElastic    243   else if (processName=="hydrogen_G4DNAElastic")        flagProcess =31;
273   else if (processName=="hydrogen_G4DNAExcitat    244   else if (processName=="hydrogen_G4DNAExcitation")     flagProcess =32;
274   else if (processName=="hydrogen_G4DNAIonisat    245   else if (processName=="hydrogen_G4DNAIonisation")     flagProcess =33;
275   else if (processName=="hydrogen_G4DNAChargeI    246   else if (processName=="hydrogen_G4DNAChargeIncrease") flagProcess =35;
276                                                   247 
277   else if (processName=="alpha_G4DNAElastic")     248   else if (processName=="alpha_G4DNAElastic")           flagProcess =41;
278   else if (processName=="alpha_G4DNAExcitation    249   else if (processName=="alpha_G4DNAExcitation")        flagProcess =42;
279   else if (processName=="alpha_G4DNAIonisation    250   else if (processName=="alpha_G4DNAIonisation")        flagProcess =43;
280   else if (processName=="alpha_G4DNAChargeDecr    251   else if (processName=="alpha_G4DNAChargeDecrease")    flagProcess =44;
281                                                   252 
282   else if (processName=="alpha+_G4DNAElastic")    253   else if (processName=="alpha+_G4DNAElastic")          flagProcess =51;
283   else if (processName=="alpha+_G4DNAExcitatio    254   else if (processName=="alpha+_G4DNAExcitation")       flagProcess =52;
284   else if (processName=="alpha+_G4DNAIonisatio    255   else if (processName=="alpha+_G4DNAIonisation")       flagProcess =53;
285   else if (processName=="alpha+_G4DNAChargeDec    256   else if (processName=="alpha+_G4DNAChargeDecrease")   flagProcess =54;
286   else if (processName=="alpha+_G4DNAChargeInc    257   else if (processName=="alpha+_G4DNAChargeIncrease")   flagProcess =55;
287                                                   258 
288   else if (processName=="helium_G4DNAElastic")    259   else if (processName=="helium_G4DNAElastic")          flagProcess =61;
289   else if (processName=="helium_G4DNAExcitatio    260   else if (processName=="helium_G4DNAExcitation")       flagProcess =62;
290   else if (processName=="helium_G4DNAIonisatio    261   else if (processName=="helium_G4DNAIonisation")       flagProcess =63;
291   else if (processName=="helium_G4DNAChargeInc    262   else if (processName=="helium_G4DNAChargeIncrease")   flagProcess =65;
292                                                   263 
293   else if (processName=="GenericIon_G4DNAIonis    264   else if (processName=="GenericIon_G4DNAIonisation")   flagProcess =73;
                                                   >> 265 */
294                                                   266 
295   */                                           << 
296                                                   267 
297   if (processName != "Transportation") {       << 268   if (processName!="Transportation")
298     x = preStep->GetPosition().x() / nanometer << 269   {
299     y = preStep->GetPosition().y() / nanometer << 270     x=preStep->GetPosition().x()/nanometer;
300     z = preStep->GetPosition().z() / nanometer << 271     y=preStep->GetPosition().y()/nanometer;
301                                                << 272     z=preStep->GetPosition().z()/nanometer;
302     xp = postStep->GetPosition().x() / nanomet << 273 
303     yp = postStep->GetPosition().y() / nanomet << 274     xp=postStep->GetPosition().x()/nanometer;
304     zp = postStep->GetPosition().z() / nanomet << 275     yp=postStep->GetPosition().y()/nanometer;
                                                   >> 276     zp=postStep->GetPosition().z()/nanometer;
305                                                   277 
306     // get analysis manager                       278     // get analysis manager
                                                   >> 279     CommandLineParser* parser = CommandLineParser::GetParser();
                                                   >> 280     Command* command(0);
                                                   >> 281     if((command = parser->GetCommandIfActive("-out"))==0) return;
307                                                   282 
308     G4AnalysisManager* analysisManager = G4Ana    283     G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
309                                                   284 
310     // fill ntuple                                285     // fill ntuple
311     analysisManager->FillNtupleDColumn(0, flag    286     analysisManager->FillNtupleDColumn(0, flagParticle);
312     analysisManager->FillNtupleDColumn(1, flag    287     analysisManager->FillNtupleDColumn(1, flagProcess);
313     analysisManager->FillNtupleDColumn(2, xp); << 288     analysisManager->FillNtupleDColumn(2, x);
314     analysisManager->FillNtupleDColumn(3, yp); << 289     analysisManager->FillNtupleDColumn(3, y);
315     analysisManager->FillNtupleDColumn(4, zp); << 290     analysisManager->FillNtupleDColumn(4, z);
316     analysisManager->FillNtupleDColumn(5, step << 291     analysisManager->FillNtupleDColumn(5, 
317                                                << 292                                      step->GetTotalEnergyDeposit()/eV);
318     analysisManager->FillNtupleDColumn(        << 293 
319       6, std::sqrt((x - xp) * (x - xp) + (y -  << 294     analysisManager->FillNtupleDColumn(6,
320                                                << 295                                           std::sqrt((x-xp)*(x-xp)+
321     analysisManager->FillNtupleDColumn(        << 296                                            (y-yp)*(y-yp)+(z-zp)*(z-zp)));
322       7, (preStep->GetKineticEnergy() - postSt << 297 
323                                                << 298     analysisManager->FillNtupleDColumn(7,
324     analysisManager->FillNtupleDColumn(8, preS << 299                                           (preStep->
325                                                << 300                                            GetKineticEnergy() -
326     analysisManager->FillNtupleDColumn(9, preS << 301                                            postStep->
327                                             *  << 302                                            GetKineticEnergy())/eV );
328                                                << 303 
329     analysisManager->FillNtupleIColumn(        << 304     analysisManager->FillNtupleDColumn(8, preStep->
330       10, G4EventManager::GetEventManager()->G << 305                                            GetKineticEnergy()/eV);
                                                   >> 306 
                                                   >> 307     analysisManager->FillNtupleDColumn(9, 
                                                   >> 308          preStep->GetMomentumDirection()
                                                   >> 309         *postStep->GetMomentumDirection() );
                                                   >> 310 
                                                   >> 311     analysisManager->FillNtupleIColumn(10, 
                                                   >> 312                                    G4EventManager::GetEventManager()->
                                                   >> 313                                    GetConstCurrentEvent()->GetEventID());
331                                                   314 
332     analysisManager->FillNtupleIColumn(11, ste    315     analysisManager->FillNtupleIColumn(11, step->GetTrack()->GetTrackID());
333                                                   316 
334     analysisManager->FillNtupleIColumn(12, ste    317     analysisManager->FillNtupleIColumn(12, step->GetTrack()->GetParentID());
335                                                   318 
336     analysisManager->FillNtupleIColumn(13, ste << 319     analysisManager->FillNtupleIColumn(13, 
                                                   >> 320                                    step->GetTrack()->GetCurrentStepNumber());
337                                                   321 
338     analysisManager->AddNtupleRow();              322     analysisManager->AddNtupleRow();
339   }                                               323   }
340 }                                              << 324 }    
341                                                   325