#!/bin/bash

# Determine how many cores we have
nc=`grep vendor_id /proc/cpuinfo  | wc -l`
# Leave one core free
nc=$((nc-1))

if [ $nc -lt 4 ] ; then
    elegant run1.ele 
else
    echo "Using $nc cores"
    mpiexec -np $nc Pelegant run1.ele 
fi


# Get final beam properties, collapsed into single table
sddscollapse run1.fin run1.finc

# Get initial beam properties
sddsprocess run1.cen -match=col,ElementName=MALIN -pipe=out | sddscombine -pipe=in -merge run1.cen0 

# Combine final and initial properties, tag initial-property columns with '0' suffix
sddsxref run1.finc run1.cen0 run1.proc -edit=col,*,ei/0/

# Fit final centroid properties vs initial fractional momentum offset
sddsmpfit run1.proc run1.fit -indep=Cdelta0 -depen=Cx,Cxp,Cy,Cyp,Cs,Ct,Cdelta -terms=2 

# plot
sddsplot -groupby=nameindex -sep=nameindex \
         -column=Cdelta0,'(Cx,Cxp,Cy,Cyp,Cs,Ct,Cdelta)' run1.fit -graph=sym,scale=2,fill \
         -column=Cdelta0,'(CxFit,CxpFit,CyFit,CypFit,CsFit,CtFit,CdeltaFit)' run1.fit 

# Display slopes (Ri6 elements)
sddscollapse run1.fit -pipe=out \
    | sddsprintout -pipe -column=*Slope
