38 #include "SteppingAction.hh" 39 #include "RunAction.hh" 40 #include "DetectorConstruction.hh" 41 #include "Analysis.hh" 49 :fRun(run),fDetector(det)
74 G4int matVoxelPRE = -1;
75 G4int matVoxelPOST = -1;
78 tmp = aStep->GetPreStepPoint()->GetTouchableHandle()->GetReplicaNumber();
85 tmp = aStep->GetPostStepPoint()->GetTouchableHandle()->GetReplicaNumber();
117 && (aStep->GetPostStepPoint()->GetTouchableHandle()->GetVolume()->GetLogicalVolume() ==
fDetector->
GetLogicalKgm())
122 && (matVoxelPOST == 1)
127 if( (aStep->GetPreStepPoint()->GetKineticEnergy() - aStep->GetPostStepPoint()->GetKineticEnergy() ) >0)
130 man->FillNtupleDColumn(1,0,aStep->GetPreStepPoint()->GetKineticEnergy()/
keV);
131 man->FillNtupleDColumn(1,1,
132 (aStep->GetPreStepPoint()->GetKineticEnergy() -
133 aStep->GetPostStepPoint()->GetKineticEnergy())/
135 man->AddNtupleRow(1);
140 G4StepPoint* p1 = aStep->GetPreStepPoint();
142 const G4AffineTransform transformation1 = p1->GetTouchable()->GetHistory()->GetTopTransform();
145 G4StepPoint* p2 = aStep->GetPostStepPoint();
147 const G4AffineTransform transformation2 = p2->GetTouchable()->GetHistory()->GetTopTransform();
155 man->FillNtupleDColumn(2,0,localPosition.
x()/
micrometer);
156 man->FillNtupleDColumn(2,1,localPosition.
y()/
micrometer);
157 man->AddNtupleRow(2);
168 (aStep->GetTrack()->GetKineticEnergy()<1
e-6)
173 || (aStep->GetPostStepPoint()->GetTouchableHandle()->GetVolume()->GetLogicalVolume() ==
fDetector->
GetLogicalKgm())
174 || (matVoxelPOST==2) )
180 man->FillNtupleDColumn(3,0,
181 aStep->GetPostStepPoint()->GetPosition().x()/
micrometer);
182 man->FillNtupleDColumn(3,1,
183 aStep->GetPostStepPoint()->GetPosition().y()/
micrometer);
184 man->FillNtupleDColumn(3,2,
185 aStep->GetPostStepPoint()->GetPosition().z()/
micrometer);
186 man->AddNtupleRow(3);
192 if (matVoxelPRE == 2)
199 fRun->
AddDoseBox(aStep->GetPreStepPoint()->GetTouchableHandle()->GetReplicaNumber(),
200 aStep->GetTotalEnergyDeposit()/
eV);
204 if (matVoxelPRE == 1)
211 fRun->
AddDoseBox(aStep->GetPreStepPoint()->GetTouchableHandle()->GetReplicaNumber(),
212 aStep->GetTotalEnergyDeposit()/
eV);
217 if ( aStep->GetTotalEnergyDeposit()/
MeV<1
e-25
220 aStep->GetTrack()->SetTrackStatus(fStopAndKill);
static G4Electron * ElectronDefinition()
void AddDoseN(G4double dose)
G4LogicalVolume * GetLogicalCollDetYoke()
G4int GetTissueType(G4int i)
static const double joule
void UserSteppingAction(const G4Step *)
G4LogicalVolume * GetLogicalIsobutane()
ExG4HbookAnalysisManager G4AnalysisManager
DetectorConstruction * fDetector
static const double micrometer
CellParameterisation * fMyCellParameterisation
G4double GetMassNucleus()
void AddDoseC(G4double dose)
G4LogicalVolume * GetLogicalKgm()
Detector construction class to define materials and geometry.
G4LogicalVolume * GetLogicalCollDetGap4()
void AddDoseBox(G4int i, G4double x)
G4LogicalVolume * GetLogicalPolyprop()
G4double GetMassCytoplasm()
static CellParameterisation * Instance()
static G4Alpha * AlphaDefinition()