85 #ifdef G4ANALYSIS_USE_ROOT
90 if(particleType ==
"nucleus") {
99 analysisMgr->FillFragmentTuple(A, Z, energy, posX, posY, posZ);
100 }
else if(particleName ==
"proton") {
108 G4String secondaryParticleName = def -> GetParticleName();
113 if(secondaryParticleName ==
"proton") {
114 analysis->hydrogenEnergy(secondaryParticleKineticEnergy / CLHEP::MeV);
116 if(secondaryParticleName ==
"deuteron") {
117 analysis->hydrogenEnergy((secondaryParticleKineticEnergy/2) / CLHEP::MeV);
119 if(secondaryParticleName ==
"triton") {
120 analysis->hydrogenEnergy((secondaryParticleKineticEnergy/3) / CLHEP::MeV);
122 if(secondaryParticleName ==
"alpha") {
123 analysis->heliumEnergy((secondaryParticleKineticEnergy/4) / CLHEP::MeV);
125 if(secondaryParticleName ==
"He3"){
126 analysis->heliumEnergy((secondaryParticleKineticEnergy/3) / CLHEP::MeV);
135 if ((aStep -> GetTrack() -> GetTrackID() == 1) &&
136 (aStep -> GetTrack() -> GetVolume() -> GetName() ==
"PhantomPhys") &&
137 (aStep -> GetPostStepPoint() -> GetProcessDefinedStep() != NULL))
139 G4String process = aStep -> GetPostStepPoint() ->
140 GetProcessDefinedStep() -> GetProcessName();
142 if ((process ==
"Transportation") || (process ==
"StepLimiter")) {;}
145 if ((process ==
"msc") || (process ==
"hLowEIoni") || (process ==
"hIoni"))
147 runAction -> AddEMProcess();
151 runAction -> AddHadronicProcess();
153 if ( (process !=
"LElastic") && (process !=
"ProtonInelastic") && (process !=
"hElastic") )
154 G4cout <<
"Warning! Unknown proton process: "<< process <<
G4endl;
167 G4TrackVector* fSecondary = steppingManager -> GetfSecondary();
169 for(
size_t lp1=0;lp1<(*fSecondary).size(); lp1++)
171 G4String volumeName = (*fSecondary)[lp1] -> GetVolume() -> GetName();
173 if (volumeName ==
"phantomPhys")
175 #ifdef G4ANALYSIS_USE_ROOT
176 G4String secondaryParticleName = (*fSecondary)[lp1]->GetDefinition() -> GetParticleName();
177 G4double secondaryParticleKineticEnergy = (*fSecondary)[lp1] -> GetKineticEnergy();
181 if (secondaryParticleName ==
"e-")
182 analysis -> electronEnergyDistribution(secondaryParticleKineticEnergy/CLHEP::MeV);
184 if (secondaryParticleName ==
"gamma")
185 analysis -> gammaEnergyDistribution(secondaryParticleKineticEnergy/CLHEP::MeV);
187 if (secondaryParticleName ==
"deuteron")
188 analysis -> deuteronEnergyDistribution(secondaryParticleKineticEnergy/CLHEP::MeV);
190 if (secondaryParticleName ==
"triton")
191 analysis -> tritonEnergyDistribution(secondaryParticleKineticEnergy/CLHEP::MeV);
193 if (secondaryParticleName ==
"alpha")
194 analysis -> alphaEnergyDistribution(secondaryParticleKineticEnergy/CLHEP::MeV);
196 G4double z = (*fSecondary)[lp1]-> GetDynamicParticle() -> GetDefinition() -> GetPDGCharge();
199 G4int a = (*fSecondary)[lp1]-> GetDynamicParticle() -> GetDefinition() -> GetBaryonNumber();
200 G4int electronOccupancy = (*fSecondary)[lp1] -> GetDynamicParticle() -> GetTotalOccupancy();
204 analysis -> genericIonInformation(a, z, electronOccupancy, secondaryParticleKineticEnergy/CLHEP::MeV);