29 #include "SteppingAction.hh" 30 #include "Analysis.hh" 36 :fRun(run),fDetector(det)
53 if ( (step->GetTrack()->GetDynamicParticle()->GetDefinition() ==
65 && (step->GetPostStepPoint()->GetPosition().z()/
mm>249.99999)
66 && (step->GetPostStepPoint()->GetPosition().z()/
mm<250.00001)
67 && (step->GetPreStepPoint()->GetTouchableHandle()->GetVolume()->
69 && (step->GetPostStepPoint()->GetTouchableHandle()->GetVolume()->
74 fXIn = step->GetPostStepPoint()->GetPosition().x();
75 fYIn = step->GetPostStepPoint()->GetPosition().y();
76 fZIn = step->GetPostStepPoint()->GetPosition().z();
77 fE = step->GetTrack()->GetKineticEnergy();
80 angleIn = step->GetTrack()->GetMomentumDirection();
82 fThetaIn = std::asin(angleIn[0]/std::sqrt(angleIn[0]
83 *angleIn[0]+angleIn[1]*angleIn[1]+angleIn[2]*angleIn[2]));
84 fPhiIn = std::asin(angleIn[1]/std::sqrt(angleIn[0]
85 *angleIn[0]+angleIn[1]*angleIn[1]+angleIn[2]*angleIn[2]));
102 man->FillNtupleDColumn(3,0,
fXIn/
um);
103 man->FillNtupleDColumn(3,1,
fYIn/
um);
106 man->AddNtupleRow(3);
114 (step->GetTrack()->GetDynamicParticle()->GetDefinition()
116 && (step->GetPreStepPoint()->GetTouchableHandle()
118 && (step->GetPostStepPoint()->GetTouchableHandle()
121 fXIn = step->GetPostStepPoint()->GetPosition().x();
122 fYIn = step->GetPostStepPoint()->GetPosition().y();
123 fZIn = step->GetPostStepPoint()->GetPosition().z();
126 man->FillNtupleDColumn(1,0,
fXIn/
um);
127 man->FillNtupleDColumn(1,1,
fYIn/
um);
128 man->FillNtupleDColumn(1,2,
fZIn/
um);
129 man->AddNtupleRow(1);
137 (step->GetTrack()->GetDynamicParticle()->GetDefinition()
139 && (step->GetPreStepPoint()->GetTouchableHandle()
141 && (step->GetPostStepPoint()->GetTouchableHandle()
144 fXIn = step->GetPostStepPoint()->GetPosition().x();
145 fYIn = step->GetPostStepPoint()->GetPosition().y();
146 fE = step->GetTrack()->GetKineticEnergy();
149 man->FillNtupleDColumn(2,0,
fXIn/
um);
150 man->FillNtupleDColumn(2,1,
fYIn/
um);
151 man->FillNtupleDColumn(2,2,
fE/
MeV);
152 man->AddNtupleRow(2);
G4LogicalVolume * GetLogicalWorld()
void AddToXVector(float v)
static G4Proton * ProtonDefinition()
void UserSteppingAction(const G4Step *)
G4LogicalVolume * GetLogicalGrid()
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
ExG4HbookAnalysisManager G4AnalysisManager
G4LogicalVolume * GetLogicalVol()
DetectorConstruction * fDetector
void AddToPhiVector(float v)
static const double micrometer
void AddToThetaVector(float v)
void AddToYVector(float v)
Detector construction class to define materials and geometry.