23 G4double edep = aStep->GetTotalEnergyDeposit();
27 if (verboseLevel > 2) {
28 std::cout <<
"TrackerSD skipping step with zero edep" << std::endl
38 hit.
setTrackID(aStep->GetTrack()->GetTrackID());
44 G4StepPoint* pre_point = aStep->GetPreStepPoint();
48 G4StepPoint* post_point = aStep->GetPostStepPoint();
51 G4ThreeVector start = pre_point->GetPosition();
52 G4ThreeVector end = post_point->GetPosition();
55 G4ThreeVector mid = 0.5 * (start + end);
56 hit.setPosition(mid.x(), mid.y(), mid.z());
59 G4double path_length =
60 sqrt(pow(start.x() - end.x(), 2) + pow(start.y() - end.y(), 2) +
61 pow(start.z() - end.z(), 2));
62 hit.setPathLength(path_length);
65 hit.setTime(aStep->GetTrack()->GetGlobalTime());
70 G4ThreeVector p = post_point->GetMomentum();
71 hit.setMomentum(p.x(), p.y(), p.z());
77 pre_point->GetTouchableHandle()->GetHistory()->GetVolume(2)->GetCopyNo();
78 int layer = copy_num / 10;
79 int module = copy_num % 10;
82 hit.setLayerID(layer);
83 hit.setModuleID(module);
86 hit.setEnergy(post_point->GetTotalEnergy());
87 hit.setPdgID(aStep->GetTrack()->GetDynamicParticle()->GetPDGcode());