36 #include "Analysis.hh" 38 #include "SteppingAction.hh" 39 #include "RunAction.hh" 40 #include "DetectorConstruction.hh" 41 #include "PrimaryGeneratorAction.hh" 47 #include "CommandLineParser.hh" 107 const G4String& particleName = step->GetTrack()->GetDynamicParticle()->
108 GetDefinition()->GetParticleName();
109 const G4String& processName = step->GetPostStepPoint()->
110 GetProcessDefinedStep()->GetProcessName();
112 if (particleName ==
"e-") flagParticle = 1;
113 else if (particleName ==
"proton") flagParticle = 2;
114 else if (particleName ==
"hydrogen") flagParticle = 3;
115 else if (particleName ==
"alpha") flagParticle = 4;
116 else if (particleName ==
"alpha+") flagParticle = 5;
117 else if (particleName ==
"helium") flagParticle = 6;
119 if (processName==
"msc") flagProcess =10;
120 else if (processName==
"e-_G4DNAElastic") flagProcess =11;
121 else if (processName==
"e-_G4DNAExcitation") flagProcess =12;
122 else if (processName==
"e-_G4DNAIonisation") flagProcess =13;
123 else if (processName==
"e-_G4DNAAttachment") flagProcess =14;
124 else if (processName==
"e-_G4DNAVibExcitation") flagProcess =15;
125 else if (processName==
"eCapture") flagProcess =16;
127 else if (processName==
"proton_G4DNAExcitation") flagProcess =17;
128 else if (processName==
"proton_G4DNAIonisation") flagProcess =18;
129 else if (processName==
"proton_G4DNAChargeDecrease") flagProcess =19;
131 else if (processName==
"hydrogen_G4DNAExcitation") flagProcess =20;
132 else if (processName==
"hydrogen_G4DNAIonisation") flagProcess =21;
133 else if (processName==
"hydrogen_G4DNAChargeIncrease")flagProcess =22;
135 else if (processName==
"alpha_G4DNAExcitation") flagProcess =23;
136 else if (processName==
"alpha_G4DNAIonisation") flagProcess =24;
137 else if (processName==
"alpha_G4DNAChargeDecrease") flagProcess =25;
139 else if (processName==
"alpha+_G4DNAExcitation") flagProcess =26;
140 else if (processName==
"alpha+_G4DNAIonisation") flagProcess =27;
141 else if (processName==
"alpha+_G4DNAChargeDecrease") flagProcess =28;
142 else if (processName==
"alpha+_G4DNAChargeIncrease") flagProcess =29;
144 else if (processName==
"helium_G4DNAExcitation") flagProcess =30;
145 else if (processName==
"helium_G4DNAIonisation") flagProcess =31;
146 else if (processName==
"helium_G4DNAChargeIncrease") flagProcess =32;
148 else if (processName==
"hIoni") flagProcess =33;
149 else if (processName==
"eIoni") flagProcess =34;
151 if (processName!=
"Transportation")
153 x=step->GetPreStepPoint()->GetPosition().x()/
nanometer;
154 y=step->GetPreStepPoint()->GetPosition().y()/
nanometer;
155 z=step->GetPreStepPoint()->GetPosition().z()/
nanometer;
156 xp=step->GetPostStepPoint()->GetPosition().x()/
nanometer;
157 yp=step->GetPostStepPoint()->GetPosition().y()/
nanometer;
158 zp=step->GetPostStepPoint()->GetPosition().z()/
nanometer;
169 analysisManager->FillNtupleDColumn(0, flagParticle);
170 analysisManager->FillNtupleDColumn(1, flagProcess);
171 analysisManager->FillNtupleDColumn(2, x);
172 analysisManager->FillNtupleDColumn(3, y);
173 analysisManager->FillNtupleDColumn(4, z);
174 analysisManager->FillNtupleDColumn(5, step->GetTotalEnergyDeposit()/
eV);
175 analysisManager->FillNtupleDColumn(6,
176 std::sqrt((x-xp)*(x-xp)+
177 (y-yp)*(y-yp)+(z-zp)*(z-zp))/
nm);
178 analysisManager->FillNtupleDColumn(7, (step->GetPreStepPoint()->
179 GetKineticEnergy() - step->GetPostStepPoint()->GetKineticEnergy())/
eV );
180 analysisManager->AddNtupleRow();
static const double nanometer
Command * GetCommandIfActive(const G4String &marker)
void UserSteppingAction(const G4Step *)
ExG4HbookAnalysisManager G4AnalysisManager
CommandLineParser * parser(0)