Message: Characteristic X-Ray emssion Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Characteristic X-Ray emssion 

Forum: Physics List
Date: 02 Mar, 2015
From: A. Hod <A. Hod>

Dear G4 Users;

I irradiated a metal target with an electron beam of 120 keV. The spectrum of X-ray emitted from the target does not contain the characteristic X-rays.

I do not why! I am using Livermore physics list. Using this physics list fluorescence is activated by default...I am using Geant4.9.6.p03.

This is my physics list:

......

......

......

......

MyPhysicsList::MyPhysicsList(): G4VUserPhysicsList() {

  defaultCutValue = 0.2*um;  
  SetVerboseLevel(1);  
}

MyPhysicsList::~MyPhysicsList() {}

void MyPhysicsList::ConstructParticle() {

  ConstructBosons();
  ConstructLeptons();
  ConstructBarions();
  ConstructIons(); 
}

void MyPhysicsList::ConstructBosons()
{ 
 // photons
  G4Gamma::GammaDefinition();

}

void MyPhysicsList::ConstructLeptons()
{
  // leptons
  G4Electron::ElectronDefinition();
  G4Positron::PositronDefinition();
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....

void MyPhysicsList::ConstructBarions()
{
  G4BaryonConstructor baryon;
  baryon.ConstructParticle();
  G4Proton::ProtonDefinition();
}
void MyPhysicsList::ConstructIons()
{
//  Ions
  G4IonConstructor ions;
  ions.ConstructParticle();
}

void MyPhysicsList::ConstructProcess()
{
  AddTransportation();
  ConstructEM();
  AddStepMax();
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // I added this function to limit the step

void MyPhysicsList::AddStepMax() {

StepMax* stepMaxProcess = new StepMax();

theParticleIterator->reset(); while ((*theParticleIterator)()){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager();

      if (stepMaxProcess->IsApplicable(*particle) && !particle->IsShortLived())
        {
	  pmanager ->AddDiscreteProcess(stepMaxProcess);
        }
  }
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

void MyPhysicsList::ConstructEM()
{
  theParticleIterator->reset();
  while( (*theParticleIterator)() ){
    G4ParticleDefinition* particle = theParticleIterator->value();
    G4ProcessManager* pmanager = particle->GetProcessManager();
    G4String particleName = particle->GetParticleName();

    // Processes

//////////// Gamma///////////////////////////////////////////

    if (particleName == "gamma") {

//Photo Electric effect and Auger electron

      G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
      G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePhotoElectricModel();
      thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
      pmanager->AddDiscreteProcess(thePhotoElectricEffect);

//Compton Scattering

      G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
      G4LivermoreComptonModel* theLivermoreComptonModel = new G4LivermoreComptonModel();
      theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
      pmanager->AddDiscreteProcess(theComptonScattering);

//Gamma Conversion

      G4GammaConversion* theGammaConversion = new G4GammaConversion();
      G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermoreGammaConversionModel();
      theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
      pmanager->AddDiscreteProcess(theGammaConversion);

//Rayleigh Scattering

      G4RayleighScattering* theRayleigh = new G4RayleighScattering();
      G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel();
      theRayleigh->AddEmModel(0,theRayleighModel);
      pmanager->AddDiscreteProcess(theRayleigh);

      pmanager->AddProcess(new G4StepLimiter(), -1, -1, 5);

 //////////// Electron ////////////////////////////

    } else if (particleName == "e-") {

//Multiple Scattering

      G4eMultipleScattering* msc = new G4eMultipleScattering();
      msc->SetStepLimitType(fUseDistanceToBoundary);
      pmanager->AddProcess(msc,                   -1, 1, 1);

// Ionisation

      G4eIonisation* eIoni = new G4eIonisation();
      G4LivermoreIonisationModel* theLivermoreIonisationModel = new G4LivermoreIonisationModel();
      eIoni->AddEmModel(0,theLivermoreIonisationModel);
     pmanager->AddProcess(eIoni,-1, 2, 2);

// Bremsstrahlung

      G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
      eBrem->AddEmModel(0, new G4LivermoreBremsstrahlungModel());
      pmanager->AddProcess(eBrem, 		  -1,-3, 3);
      pmanager->AddProcess(new G4StepLimiter(), -1, -1, 4);

 //////////// Positron //////////////////////////////////////////////////////////////////////////////////

    } else if (particleName == "e+") {

      //positron

      pmanager->AddProcess(new G4eMultipleScattering(),-1, 1,1);
      pmanager->AddProcess(new G4eIonisation(),      -1, 2,2);
      pmanager->AddProcess(new G4eBremsstrahlung(),   -1,-3,3);
      pmanager->AddProcess(new G4eplusAnnihilation(),  0,-1,4);

      pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3);  
    }

  }  
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

void MyPhysicsList::SetCuts()
  {

  if (verboseLevel >1)
    G4cout << "MyPhysicsList::SetCuts:";

  if (verboseLevel>0){
    G4cout << "MyPhysicsList::SetCuts:";
    G4cout << "CutLength : " 
	   << G4BestUnit(defaultCutValue,"Length") << G4endl;
  }

G4double lowlimit=250.0*eV; G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowlimit,10.*GeV);

  // set cut values for gamma at first and for e- second and next for e+,
  // because some processes for e+/e- need cut values for gamma 

  SetCutValue(defaultCutValue, "gamma");
  SetCutValue(defaultCutValue, "e-");
  SetCutValue(defaultCutValue, "e+");
  SetCutValue(cutForProton, "proton");

  if (verboseLevel>0) DumpCutValuesTable();
}

your help is appreciated. Thanks in advance.

Cheers

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

1 None: Re: Characteristic X-Ray emssion   (michel maire - 02 Mar, 2015)
(_ None: Re: Characteristic X-Ray emssion   (A. Hod - 02 Mar, 2015)
(_ None: Re: Characteristic X-Ray emssion   (michel maire - 02 Mar, 2015)
(_ None: Re: Characteristic X-Ray emssion   (A. Hod - 12 Mar, 2015)
(_ None: Re: Characteristic X-Ray emssion   (michel maire - 12 Mar, 2015)
 Add Message Add Message
to: "Characteristic X-Ray emssion"

 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 ]