Geant4 Cross Reference |
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