| Message: simulating X-ray spectra from low energy electrons | Not Logged In (login) |
|
I am comparing the results of different Monte Carlo codes to simulate X-ray spectra from low energetic electrons (30 keV) impinging onto an infinitely thick slab of material.
The problem I have with GEANT4.9.2p02 is that the ratio of characteristic K X-ray line intensities to the bremsstrahlung continuum is too low when compared to experimental results. My target material is Copper (Cu) and the ratio is too low by a factor > 10+. So my question is if this is "normal", because of the low energy/models, or have I done something wrong in my code? I have tried both the standard and low energy models, but the results don't differ much from each other. Another, somewhat related, question is that for scoring the X-ray spectrum I store the X-ray energy and track weight: G4Track* thisTrack = aStep->GetTrack(); G4double TrackWght = thisTrack->GetWeight(); G4double particleE = aStep->GetPreStepPoint()->GetKineticEnergy(); The track weight for the produced gamma's always seems to be 1.0 .. is that normal? I am simulating a total of 100,000,000 histories to ensure decent statistics on the resulting X-ray spectra. Any comments or suggestions are greatly appreciated, Regards, David ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (1) The physicslist I am using is following (using the LowEnergy models): --------------------------------------------------------------------------------------------
if (particleName == "gamma") {
// gamma
G4LowEnergyPhotoElectric* LowPhotoElectric = new G4LowEnergyPhotoElectric();
LowPhotoElectric->ActivateAuger(true);
LowPhotoElectric->SetCutForLowEnSecPhotons(1.0*keV);
LowPhotoElectric->SetCutForLowEnSecElectrons(1.0*keV);
pmanager->AddDiscreteProcess(LowPhotoElectric);
pmanager->AddDiscreteProcess(new G4LowEnergyCompton());
pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh());
} else if (particleName == "e-") {
//electron
G4LowEnergyIonisation* LowIonProcess = new G4LowEnergyIonisation("IONI");
LowIonProcess->ActivateAuger(true);
LowIonProcess->SetCutForLowEnSecPhotons(1.0*keV);
LowIonProcess->SetCutForLowEnSecElectrons(1.0*keV);
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(LowIonProcess, -1, 2, 2);
pmanager->AddProcess(new G4LowEnergyBremsstrahlung, -1, -1, 3);
} else if (particleName == "e+") {
//positron
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3);
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
}
-------------------------------------------------------------------------------------------- (2) I have set the cuts for electrons and gammas to 10nm
SetCutValue(10*nm, "gamma"); SetCutValue(10*nm, "e-"); -------------------------------------------------------------------------------------------- (3) The target material is defined as:
G4Material* Cu = new G4Material("Copper",Z=29, A=63.54*g/mole, 8.92*g/cm3);
-------------------------------------------------------------------------------------------- (4) The gun has following definition:
G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle);
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* particle = particleTable->FindParticle("e-");
particleGun->SetParticleDefinition(particle); particleGun->SetParticleEnergy(30.0*keV); particleGun->SetParticlePosition(G4ThreeVector(0*cm, 0*cm, 15*cm)); particleGun->SetParticleMomentumDirection(G4ThreeVector(0,0,-1)); --------------------------------------------------------------------------------------------
|
| Inline Depth: | Outline Depth: | Add message: |
|
to: |