Author Topic: phi rho z curves  (Read 1137 times)

Ben Buse

  • Professor
  • ****
  • Posts: 363
phi rho z curves
« on: September 13, 2017, 04:41:18 am »
Hi

Using scripts I can export phi-rho-z curves to csv in the xtraP.

Code: [Select]
xtraP = {}
xtraP = {"Characteristic Accumulator":True, "Char Fluor Accumulator":True, "Brem Fluor Accumulator":True}
xtraP.update(mc3.configureOutput(DefaultOutput))
xtraP.update(mc3.configurePhiRhoZ(1.5*range))
xtraP.update(mc3.configureEmissionImages(mc3.suggestTransitions("SiFeSNaKO",e0), 1.5*range, size = 512))
xtraP.update(mc3.configureTrajectoryImage(1.5*range, size = 512))
xtraP.update(mc3.configureOutput('O:\Documents\dtsa2_script_data1')) # Change to output folder

I'm trying to understand the output

These phi-rho-z curves seem to match the emission pictures DTSAII generates in report - the first 9 rows correspond to the header, but does not include picture footer. And the scale is the same as the picture scale - listed in header e.g. 1.29 um x 1.29 um - does this scale include header and footer?

Also what are the Min and Max columns.

Also can you limit the x-ray lines i.e. just Ka

What would be really nice is a checkbox in the gui simulation routine to output phi-rho-z curves.

Thanks

Ben


« Last Edit: September 13, 2017, 04:44:55 am by Ben Buse »

jrminter

  • Professor
  • ****
  • Posts: 47
Re: phi rho z curves
« Reply #1 on: September 13, 2017, 12:49:06 pm »
  • What are the Min and Max columns?
    They appear to be the lower and upper boundaries in the Z direction in micrometers with an offset of 5000 micrometers. You will notice that all the values are zero until between 4999.996 and 5000.018. I just average the two values and subtract 5000. Seems to match published curves... Also to be expected from the return value of the function binName() at line 165 in the NistMonte PhiRhoZ3.java file. See http://dtsa2.svnrepository.com/DTSA2/trac.cgi/browser/NWMR/trunk/EPQ/src/gov/nist/microanalysis/NISTMonte/Gen3/PhiRhoZ3.java
  • How to specify specific transitions?
    I do this:
    xrts = [transition("Al K-L3"), transition("O K-L3"), transition("C K-L3")]
    xtraParams={}
    xtraParams.update(mc3.configureXRayAccumulators(xrts, charAccum=True, charFluorAccum=True, bremFluorAccum=True))
    ...The rest of your configuration of xtraParams




Hope this helps,
John
« Last Edit: September 13, 2017, 12:55:58 pm by jrminter »

Ben Buse

  • Professor
  • ****
  • Posts: 363
Re: phi rho z curves
« Reply #2 on: September 14, 2017, 07:25:40 am »
Thanks, that's very helpful

Ben

Ben Buse

  • Professor
  • ****
  • Posts: 363
Re: phi rho z curves
« Reply #3 on: January 04, 2018, 09:21:09 am »
Hi,

As part of the phi rho z output, there is "Norm" data and "(1/meter e-)". What are these?

Is Norm normalised to a foil of the same material?

1/meter e- : is this related to the number of x-rays per electron?

Thanks

Ben

jrminter

  • Professor
  • ****
  • Posts: 47
Re: phi rho z curves
« Reply #4 on: January 05, 2018, 05:42:23 pm »
Hi Ben,
I hope Nicholas Ritchie will find this and fill in the gaps to my understanding. In the interim I will give it my best shot. The best source of information is the file:http://dtsa2.svnrepository.com/DTSA2/trac.cgi/browser/NWMR/trunk/EPQ/src/gov/nist/microanalysis/NISTMonte/Gen3/PhiRhoZ3.java.

There are two types of normalization. The first seems to be what we are used to. In my experience it seems to match well with Casino and the older work from Castaing. First look at line 67: the mNorm coeficient is calculated using the bin width, the generated intensity, and difference in position (I'm gussing a depth.) This is used in the 4 functions between lines 77 to 91. The intensity functions seem to add the bin width back. There are a corresponding set of functions from lines 227 to 249 that operate on xray-transition objects.

I tried to check this on a standard system. The algorithm goes all the way back to 1955 (the year I was born): R. Castaing and J Descamps, J. Physique Radium, 16, 304 (1955) where he examined Cu in Al.  Pouchou and Pichoir used this in Figure 7 of Chapter 2 in Heinrich and Newbury, Electron Probe Quantification. I digitized the data and did a DTSA-II MonteCarlo simulation and then processed the data in R.

The file 'Castaing-Cu-in-Al' is the original. I digitized the points that the authors published. I then compared this to the output from DTSA using both the Emit_Cu_K_L3 and the Emit_I_Cu_K_L3. The plot Castaing-Cu-in-Al-Phi-Rho-Z.png show excellent agreement. The version with the intensity version had much higher values (Castaing-Cu-in-Al-Phi-Rho-Z-I.png).

The Monte Carlo version is quite important for multilayer simulations where it is really hard to work in rho-z space. That's why DTSA-II reports in Z-space. I'd really like some well characterized data sets to work through this. I don't have any I really trust. I previously noted that I get great agreement with DTSA using K-L3 transitions. I get big deviations in intensity with, for example, the Zn L3-M5 transition when I simulate ZnO. I reported this to Nicholas Ritchie last June at Lehigh. He has been really busy and I have not heard back regarding this. Debugging this issue is beyond my skills.

I think DTSA is incredibly important to the community (along with CalcZAF) because both are Open Source. I can examine the algorithms. I can (and have) suggested updates for DTSA and Nicholas has graciously incorporated them. I especially like the Jython scripting language because I can make my analyses truely reproducible.
« Last Edit: January 07, 2018, 06:03:02 pm by John Donovan »

Ben Buse

  • Professor
  • ****
  • Posts: 363
Re: phi rho z curves
« Reply #5 on: May 25, 2018, 06:32:40 am »
Hi John,

I've just come across your script for plotting phi-rho-z curves from PAP or XPP in DTSAII. It's very nice. I just wanted to ask you why does it have a detector - is this solely to define take-off angle?- for DTSAII is not running monte carlo.?

Script
Code: [Select]
import dtsa2.jmGen as jmg
    e0  =  7
    nSteps = 500
    rho = 0.5*(7.874 + 8.908)
    feni = material("FeNi", density=rho)
    det = findDetector("FEI FIB620 EDAX-RTEM")
    trs=[epq.XRayTransition(epq.Element.Fe,    epq.XRayTransition.LA1), epq.XRayTransition(epq.Element.Ni,    epq.XRayTransition.LA1)]
    a = jmg.compPhiRhoZ(feni, det, e0, nSteps, xrts=trs,    alg=epq.PAP1991(), base="pap-prz", outdir="c:/temp/")

found here
https://github.com/jrminter/dtsa2Scripts/blob/master/jmGen/jmGen.py
The output is great for gnuplot. Its good for those non-windows computers that don't run calczaf.

Thanks

Ben

jrminter

  • Professor
  • ****
  • Posts: 47
Re: phi rho z curves
« Reply #6 on: May 25, 2018, 10:03:01 am »
Ben,

Just took a quick look at the source. The detector is not used in the Phi-Rho-Z computation but is used in the Spectrum properties function to pass the energy to the algorithm initialization. See lines 677 and 734 in the two functions (one reports in Z nor rho*Z). I suspect that most algorithms use a similar method to pass parameters and need more than the energy from the SpectrumProperties parameter. This one did not...

Best regards,
John
« Last Edit: May 25, 2018, 10:16:33 am by jrminter »

jrminter

  • Professor
  • ****
  • Posts: 47
Re: phi rho z curves
« Reply #7 on: June 01, 2018, 01:01:23 pm »
With the release of CalcZAF with the ability to simulate phi-rho-z curves, I added the computation for Castaing's Cu in Al at 29 kV. I generated the plots from the exported data using R and ggplot2.