37 #include "Analysis.hh" 39 #include "SteppingAction.hh" 40 #include "RunAction.hh" 41 #include "DetectorConstruction.hh" 42 #include "PrimaryGeneratorAction.hh" 111 const G4String& particleName = step->GetTrack()->GetDynamicParticle()->
112 GetDefinition()->GetParticleName();
113 const G4String& processName = step->GetPostStepPoint()->
114 GetProcessDefinedStep()->GetProcessName();
117 if (particleName ==
"e-") flagParticle = 1;
118 else if (particleName ==
"proton") flagParticle = 2;
119 else if (particleName ==
"hydrogen") flagParticle = 3;
120 else if (particleName ==
"alpha") flagParticle = 4;
121 else if (particleName ==
"alpha+") flagParticle = 5;
122 else if (particleName ==
"helium") flagParticle = 6;
125 if (processName==
"e-_G4DNAElastic") flagProcess =11;
126 else if (processName==
"e-_G4DNAExcitation") flagProcess =12;
127 else if (processName==
"e-_G4DNAIonisation") flagProcess =13;
128 else if (processName==
"e-_G4DNAAttachment") flagProcess =14;
129 else if (processName==
"e-_G4DNAVibExcitation") flagProcess =15;
131 else if (processName==
"proton_G4DNAExcitation") flagProcess =17;
132 else if (processName==
"proton_G4DNAIonisation") flagProcess =18;
133 else if (processName==
"proton_G4DNAChargeDecrease") flagProcess =19;
135 else if (processName==
"hydrogen_G4DNAExcitation") flagProcess =20;
136 else if (processName==
"hydrogen_G4DNAIonisation") flagProcess =21;
137 else if (processName==
"hydrogen_G4DNAChargeIncrease") flagProcess =22;
139 else if (processName==
"alpha_G4DNAExcitation") flagProcess =23;
140 else if (processName==
"alpha_G4DNAIonisation") flagProcess =24;
141 else if (processName==
"alpha_G4DNAChargeDecrease") flagProcess =25;
143 else if (processName==
"alpha+_G4DNAExcitation") flagProcess =26;
144 else if (processName==
"alpha+_G4DNAIonisation") flagProcess =27;
145 else if (processName==
"alpha+_G4DNAChargeDecrease") flagProcess =28;
146 else if (processName==
"alpha+_G4DNAChargeIncrease") flagProcess =29;
148 else if (processName==
"helium_G4DNAExcitation") flagProcess =30;
149 else if (processName==
"helium_G4DNAIonisation") flagProcess =31;
150 else if (processName==
"helium_G4DNAChargeIncrease") flagProcess =32;
152 if (processName!=
"Transportation")
154 x=step->GetPreStepPoint()->GetPosition().x()/
nanometer;
155 y=step->GetPreStepPoint()->GetPosition().y()/
nanometer;
156 z=step->GetPreStepPoint()->GetPosition().z()/
nanometer;
157 xp=step->GetPostStepPoint()->GetPosition().x()/
nanometer;
158 yp=step->GetPostStepPoint()->GetPosition().y()/
nanometer;
159 zp=step->GetPostStepPoint()->GetPosition().z()/
nanometer;
165 analysisManager->FillNtupleDColumn(0, flagParticle);
166 analysisManager->FillNtupleDColumn(1, flagProcess);
167 analysisManager->FillNtupleDColumn(2, x);
168 analysisManager->FillNtupleDColumn(3, y);
169 analysisManager->FillNtupleDColumn(4, z);
170 analysisManager->FillNtupleDColumn(5, step->GetTotalEnergyDeposit()/
eV);
171 analysisManager->FillNtupleDColumn(6,
172 std::sqrt((x-xp)*(x-xp)+
173 (y-yp)*(y-yp)+(z-zp)*(z-zp))/
nm);
174 analysisManager->FillNtupleDColumn(7,
175 (step->GetPreStepPoint()->
177 step->GetPostStepPoint()->
178 GetKineticEnergy())/
eV );
180 GetConstCurrentEvent()->GetEventID());
181 analysisManager->AddNtupleRow();
static const double nanometer
void UserSteppingAction(const G4Step *)
ExG4HbookAnalysisManager G4AnalysisManager
static G4EventManager * GetEventManager()