Message: Re: Secondary electrons Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Secondary electrons 

Forum: Physics List
Re: None Secondary electrons (Davinder Siwal)
Re: None Re: Secondary electrons (John Allison)
Re: None Re: Secondary electrons (Davinder Siwal)
Date: 11 May, 2010
From: John Allison <John Allison>

You do not see any e-h pairs because there are none. As I said in my previous message, you have to do this yourself.

So, for each step, dE is the energy deposited - for a neutral particle it is the energy deposited at the end of the step (for example, when a gamma is absorbed it leaves an atom in an excited state), for a charged particle it is the energy deposited along the step. So, for each step, you can calculate the expected number and position of e-h pairs.

To get at the step, you can use a stepping action or, better, a sensitive detector. You will need to study the Geant4 documentation and have a good understanding of C++. Here is a snippet from one of my applications. I call the energy deposited eDep. (eDepEvent is a global variable.) At the point at which you pick up eDep you also have access to lots of other information from which you can calculate the expected number and position of e-h pairs. (In this snippet I indicate how to get more information but I show only energy deposit; then the total number of e-h pairs is eDepEvent/(3.66*eV)). It outputs eDepEvent to a file. Then I read the file into another program, written by myself, that calculates the pulse shape, etc. Only at that stage is it necessary to know the electrode configuration, the internal electric field and weighting fields in the silicon.

  name = "Silicon";
  G4double halfWidth = 7.5*mm;
  G4double halfThickness = 110.*um;
  solid = new G4Box(name, halfWidth, halfWidth, halfThickness);
  G4LogicalVolume* silicon_log = new G4LogicalVolume(solid, SILICON, name);
  new G4PVPlacement(G4Transform3D(), silicon_log, name, world_log, false, 0, surfOverlapChk);
  G4VSensitiveDetector* sensitiveDetector = new S00SensitiveDetector(name);


G4bool S00SensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*)
  //G4cout << "S00SensitiveDetector::ProcessHits" << G4endl;

  G4double eDep = step->GetTotalEnergyDeposit();
  G4StepPoint* preStepPoint = step->GetPreStepPoint();
  G4TouchableHandle th = preStepPoint->GetTouchableHandle();
  G4VPhysicalVolume* pv = th->GetVolume();
  G4String name = pv->GetName();

  eDepEvent += eDep;

  return true;


void S00EventAction::EndOfEventAction(const G4Event*)
  //G4cout << "S00EventAction::EndOfEventAction" << G4endl;
  if (eDepEvent > 0.) {
    outfile << eDepEvent/keV << endl;

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Ok: Re: Secondary electrons   (Davinder Siwal - 13 May, 2010)
(_ None: Re: Secondary electrons   (John Allison - 14 May, 2010)
(_ Ok: Re: Secondary electrons   (Davinder Siwal - 15 May, 2010)
 Add Message Add Message
to: "Re: Secondary electrons"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews

[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]