Expanded mlog2db for use with non-consecutive runs.
This commit is contained in:
parent
bf9ca156b6
commit
eaa297ef6e
135
src/external/scripts/mlog2db
vendored
135
src/external/scripts/mlog2db
vendored
@ -12,13 +12,20 @@ if [ $# -lt 3 ] ; then
|
|||||||
"musrfit-mlog to db converter"
|
"musrfit-mlog to db converter"
|
||||||
|
|
||||||
USAGE: mlog2db FIRSTRUN# LASTRUN# BLABLA [noheader | fit-TEMPLATERUN# | -oDB_OUTPUT_FILE]
|
USAGE: mlog2db FIRSTRUN# LASTRUN# BLABLA [noheader | fit-TEMPLATERUN# | -oDB_OUTPUT_FILE]
|
||||||
|
OR
|
||||||
|
mlog2db \[LIST OF RUNS\] BLABLA [noheader | fit-TEMPLATERUN# | -oDB_OUTPUT_FILE]
|
||||||
|
|
||||||
This small script converts subsequent musrfit output files (mlog) into one db file using bash/awk.
|
This small script converts subsequent musrfit output files (mlog) into one db file using bash/awk.
|
||||||
|
|
||||||
Example 1:
|
Example 1:
|
||||||
mlog2db 1423 1424 _ZF-LF-TF-supermeasurement
|
mlog2db 1423 1424 _ZF-LF-TF-supermeasurement
|
||||||
generates the db-file "out.db" (or whatever filename you specified with the -o option) from 1423_ZF-LF-TF-supermeasurement.mlog and 1424_ZF-LF-TF-supermeasurement.mlog .
|
generates the db-file "out.db" (or whatever filename you specified with the -o option) from 1423_ZF-LF-TF-supermeasurement.mlog and 1424_ZF-LF-TF-supermeasurement.mlog .
|
||||||
It also includes the db header.
|
|
||||||
|
Example 2:
|
||||||
|
mlog2db [1423 1425] _ZF-LF-TF-supermeasurement
|
||||||
|
generates the db-file "out.db" (or whatever filename you specified with the -o option) from 1423_ZF-LF-TF-supermeasurement.mlog and 1425_ZF-LF-TF-supermeasurement.mlog .
|
||||||
|
|
||||||
|
The output files in both examples above also include the db header.
|
||||||
In the case you are dealing with LEM-data AND have locally mounted the /mnt/data/nemu directory some available parameters like the
|
In the case you are dealing with LEM-data AND have locally mounted the /mnt/data/nemu directory some available parameters like the
|
||||||
temperature or transport settings will be taken from the summary files and added to the db-file.
|
temperature or transport settings will be taken from the summary files and added to the db-file.
|
||||||
|
|
||||||
@ -28,7 +35,7 @@ If you additionally want to fit some data using musrfit specify the option "fit-
|
|||||||
In this case either a mlog-outputfile or a msr-inputfile have to be present for the specified template run.
|
In this case either a mlog-outputfile or a msr-inputfile have to be present for the specified template run.
|
||||||
The subsequent inputfiles will be created.
|
The subsequent inputfiles will be created.
|
||||||
|
|
||||||
Example 2:
|
Example 3:
|
||||||
mlog2db 200 220 _tf_h13 -oABC.db fit-199
|
mlog2db 200 220 _tf_h13 -oABC.db fit-199
|
||||||
|
|
||||||
This will fit the runs 200 to 220 using musrfit. The file 199_tf_h13.mlog (or if that is not available: 199_tf_h13.msr) is used as
|
This will fit the runs 200 to 220 using musrfit. The file 199_tf_h13.mlog (or if that is not available: 199_tf_h13.msr) is used as
|
||||||
@ -36,7 +43,7 @@ template for the first musrfit input file. The results of the fits will be writt
|
|||||||
|
|
||||||
|
|
||||||
CAUTION:
|
CAUTION:
|
||||||
The "indexing number" of the .mlog has to be at the beginning of the filename.
|
The "indexing number" of the .mlog has to be at the begin of the filename.
|
||||||
Furthermore the data files that were fitted have to have the name "XXX_RUN#[_YYY]", where XXX,YYY are strings without whitespaces ("/" is OK).
|
Furthermore the data files that were fitted have to have the name "XXX_RUN#[_YYY]", where XXX,YYY are strings without whitespaces ("/" is OK).
|
||||||
|
|
||||||
If you want to use the fitting feature, musrfit has to be installed either on the PATH or in the working directory.
|
If you want to use the fitting feature, musrfit has to be installed either on the PATH or in the working directory.
|
||||||
@ -47,15 +54,67 @@ else
|
|||||||
|
|
||||||
export PATH=./:$PATH
|
export PATH=./:$PATH
|
||||||
|
|
||||||
COUNT=$1
|
|
||||||
SUMMDIR="/mnt/data/nemu/summ"
|
SUMMDIR="/mnt/data/nemu/summ"
|
||||||
|
|
||||||
if [ "${4:0:3}" == "fit" ]; then
|
# In case a list of runs is given by [...]
|
||||||
TEMP=${4:4}
|
if [ "${1:0:1}" == "[" ]; then
|
||||||
else if [ "${5:0:3}" == "fit" ]; then
|
RUNARRAY=($@)
|
||||||
TEMP=${5:4}
|
if [ "$1" == "[" ]; then
|
||||||
else if [ "${6:0:3}" == "fit" ]; then
|
RUNARRAY[0]=""
|
||||||
TEMP=${6:4}
|
else
|
||||||
|
RUNARRAY[0]=${RUNARRAY[0]#"["}
|
||||||
|
fi
|
||||||
|
tLen=${#RUNARRAY[@]}
|
||||||
|
for (( i=0; i<${tLen}; i++ ));
|
||||||
|
do
|
||||||
|
if [ "$1" == "[" ]; then
|
||||||
|
RUNARRAY[$i]=${RUNARRAY[ (( i + 1 )) ]}
|
||||||
|
fi
|
||||||
|
if [ "${RUNARRAY[$i]:(-1)}" == "]" ]; then
|
||||||
|
if [ "${RUNARRAY[$i]}" == "]" ]; then
|
||||||
|
RUNARRAY[$i]=""
|
||||||
|
LASTRUN=$(( i - 1 ))
|
||||||
|
EMPTYENTRY=1
|
||||||
|
else
|
||||||
|
RUNARRAY[$i]=${RUNARRAY[$i]%"]"}
|
||||||
|
LASTRUN=$i
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# echo ${RUNARRAY[$i]}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$EMPTYENTRY" == "1" ]; then
|
||||||
|
EXTENSION=${RUNARRAY[ (( LASTRUN + 2 )) ]}
|
||||||
|
OPT_PAR_ONE=${RUNARRAY[ (( LASTRUN + 3 )) ]}
|
||||||
|
OPT_PAR_TWO=${RUNARRAY[ (( LASTRUN + 4 )) ]}
|
||||||
|
OPT_PAR_THREE=${RUNARRAY[ (( LASTRUN + 5 )) ]}
|
||||||
|
else
|
||||||
|
EXTENSION=${RUNARRAY[ (( LASTRUN + 1 )) ]}
|
||||||
|
OPT_PAR_ONE=${RUNARRAY[ (( LASTRUN + 2 )) ]}
|
||||||
|
OPT_PAR_TWO=${RUNARRAY[ (( LASTRUN + 3 )) ]}
|
||||||
|
OPT_PAR_THREE=${RUNARRAY[ (( LASTRUN + 4 )) ]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
else # start and end-runs are given
|
||||||
|
for (( j=0; j<=$2-$1; j++ ));
|
||||||
|
do
|
||||||
|
RUNARRAY[$j]=$(( $1 + $j ))
|
||||||
|
# echo ${RUNARRAY[$j]}
|
||||||
|
done
|
||||||
|
LASTRUN=$(( $2 - $1 ))
|
||||||
|
EXTENSION=$3
|
||||||
|
OPT_PAR_ONE=$4
|
||||||
|
OPT_PAR_TWO=$5
|
||||||
|
OPT_PAR_THREE=$6
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if fitting should be done
|
||||||
|
if [ "${OPT_PAR_ONE:0:3}" == "fit" ]; then
|
||||||
|
TEMP=${OPT_PAR_ONE:4}
|
||||||
|
else if [ "${OPT_PAR_TWO:0:3}" == "fit" ]; then
|
||||||
|
TEMP=${OPT_PAR_TWO:4}
|
||||||
|
else if [ "${OPT_PAR_THREE:0:3}" == "fit" ]; then
|
||||||
|
TEMP=${OPT_PAR_THREE:4}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -73,21 +132,21 @@ if [ "$TEMP" != "" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
|
|
||||||
if [ -e $TEMP$3.mlog ]; then
|
if [ -e $TEMP$EXTENSION.mlog ]; then
|
||||||
TEMPLATE=$TEMP$3.mlog
|
TEMPLATE=$TEMP$EXTENSION.mlog
|
||||||
else if [ -e $TEMP$3.msr ]; then
|
else if [ -e $TEMP$3.msr ]; then
|
||||||
TEMPLATE=$TEMP$3.msr
|
TEMPLATE=$TEMP$EXTENSION.msr
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while [ $COUNT -le $2 ]
|
for (( q=0; q<=${LASTRUN}; q++ ));
|
||||||
do
|
do
|
||||||
|
COUNT=${RUNARRAY[$q]}
|
||||||
let NEXTCOUNT=COUNT+1
|
NEXTCOUNT=${RUNARRAY[ (( q + 1 )) ]}
|
||||||
NEXTINPUT=$NEXTCOUNT$3.msr
|
NEXTINPUT=$NEXTCOUNT$EXTENSION.msr
|
||||||
FIRSTINPUT=$1$3.msr
|
FIRSTINPUT=${RUNARRAY[0]}$EXTENSION.msr
|
||||||
|
|
||||||
if [ "$TEMP" != "" ]; then
|
if [ "$TEMP" != "" ]; then
|
||||||
|
|
||||||
@ -96,8 +155,8 @@ if [ "$TEMP" != "" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$COUNT" == "$1" ]; then
|
if [ "$COUNT" == "${RUNARRAY[0]}" ]; then
|
||||||
awk -v count=$TEMP -v nextcount=$1 -v nextinput=$FIRSTINPUT '{
|
awk -v count=$TEMP -v nextcount=${RUNARRAY[0]} -v nextinput=$FIRSTINPUT '{
|
||||||
if(NR==1) print nextcount > nextinput
|
if(NR==1) print nextcount > nextinput
|
||||||
else if($1 == "RUN") {
|
else if($1 == "RUN") {
|
||||||
if (substr(count,1,1) != "_"){ count = sprintf("_%04u", count); nextcount = sprintf("_%04u", nextcount);}
|
if (substr(count,1,1) != "_"){ count = sprintf("_%04u", count); nextcount = sprintf("_%04u", nextcount);}
|
||||||
@ -107,10 +166,10 @@ if [ "$TEMP" != "" ]; then
|
|||||||
else print $0 >> nextinput
|
else print $0 >> nextinput
|
||||||
}' $TEMPLATE
|
}' $TEMPLATE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
musrfit $COUNT$EXTENSION.msr -k
|
||||||
|
|
||||||
musrfit $COUNT$3.msr
|
if [ "$NEXTCOUNT" != "${RUNARRAY[$LASTRUN]}" ]; then
|
||||||
|
|
||||||
if [ $NEXTCOUNT -le $2 ]; then
|
|
||||||
awk -v count=$COUNT -v nextcount=$NEXTCOUNT -v nextinput=$NEXTINPUT '{
|
awk -v count=$COUNT -v nextcount=$NEXTCOUNT -v nextinput=$NEXTINPUT '{
|
||||||
if(NR==1) print nextcount > nextinput
|
if(NR==1) print nextcount > nextinput
|
||||||
else if($1 == "RUN") {
|
else if($1 == "RUN") {
|
||||||
@ -119,12 +178,12 @@ if [ "$TEMP" != "" ]; then
|
|||||||
print $0 >> nextinput
|
print $0 >> nextinput
|
||||||
}
|
}
|
||||||
else print $0 >> nextinput
|
else print $0 >> nextinput
|
||||||
}' $COUNT$3.mlog
|
}' $COUNT$EXTENSION.mlog
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -e $COUNT$3.mlog ]; then
|
if [ ! -e $COUNT$EXTENSION.mlog ]; then
|
||||||
echo The specified musrfit output file $COUNT$3.mlog does not exist!
|
echo The specified musrfit output file $COUNT$EXTENSION.mlog does not exist!
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -137,7 +196,7 @@ RUNNUMBER=$( awk '{
|
|||||||
if(runNumber[1] ~ /lem/ && runNumber[2] == "his") {print substr(runNumber[3],1,4) }
|
if(runNumber[1] ~ /lem/ && runNumber[2] == "his") {print substr(runNumber[3],1,4) }
|
||||||
X=1
|
X=1
|
||||||
}
|
}
|
||||||
}' $COUNT$3.mlog )
|
}' $COUNT$EXTENSION.mlog )
|
||||||
|
|
||||||
RUNYEAR=$( awk '{
|
RUNYEAR=$( awk '{
|
||||||
if(NR==1) X=0
|
if(NR==1) X=0
|
||||||
@ -147,7 +206,7 @@ RUNYEAR=$( awk '{
|
|||||||
else print "XX"
|
else print "XX"
|
||||||
X=1
|
X=1
|
||||||
}
|
}
|
||||||
}' $COUNT$3.mlog )
|
}' $COUNT$EXTENSION.mlog )
|
||||||
|
|
||||||
if [ "$RUNYEAR" != "XX" ]; then
|
if [ "$RUNYEAR" != "XX" ]; then
|
||||||
|
|
||||||
@ -169,12 +228,12 @@ fi
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
awk -v parFOUR=$4 -v parFIVE=$5 -v parSIX=$6 '{
|
awk -v optPARone=$OPT_PAR_ONE -v optPARtwo=$OPT_PAR_TWO -v optPARthree=$OPT_PAR_THREE '{
|
||||||
|
|
||||||
outfile="out.db"
|
outfile="out.db"
|
||||||
if(parFOUR ~ /^-o/) outfile = substr(parFOUR,3)
|
if(optPARone ~ /^-o/) outfile = substr(optPARone,3)
|
||||||
if(parFIVE ~ /^-o/) outfile = substr(parFIVE,3)
|
if(optPARtwo ~ /^-o/) outfile = substr(optPARtwo,3)
|
||||||
if(parSIX ~ /^-o/) outfile = substr(parSIX,3)
|
if(optPARthree ~ /^-o/) outfile = substr(optPARthree,3)
|
||||||
|
|
||||||
FS = " "
|
FS = " "
|
||||||
OFS = " "
|
OFS = " "
|
||||||
@ -241,7 +300,7 @@ awk -v parFOUR=$4 -v parFIVE=$5 -v parSIX=$6 '{
|
|||||||
|
|
||||||
if("'"$TEMPERATURE"'" != "") {
|
if("'"$TEMPERATURE"'" != "") {
|
||||||
|
|
||||||
if("'"$COUNT"'" == "'"$1"'" && parFOUR != "noheader" && parFIVE != "noheader" && parSIX != "noheader"){
|
if("'"$COUNT"'" == "'"${RUNARRAY[0]}"'" && optPARone != "noheader" && optPARtwo != "noheader" && optPARthree != "noheader"){
|
||||||
print "TITLE" >> outfile
|
print "TITLE" >> outfile
|
||||||
print ">>>Put your title here<<<\n" >> outfile
|
print ">>>Put your title here<<<\n" >> outfile
|
||||||
print "Abstract" >> outfile
|
print "Abstract" >> outfile
|
||||||
@ -285,14 +344,14 @@ awk -v parFOUR=$4 -v parFIVE=$5 -v parSIX=$6 '{
|
|||||||
|
|
||||||
print dataArray[i+3] ",,, " "'"$TITLE"'" >> outfile
|
print dataArray[i+3] ",,, " "'"$TITLE"'" >> outfile
|
||||||
|
|
||||||
if("'"$COUNT"'" == "'"$2"'") print "\n" >> outfile
|
if("'"$COUNT"'" == "'"${RUNARRAY[$LASTRUN]}"'") print "\n" >> outfile
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# If we do not have the information from the summary file
|
# If we do not have the information from the summary file
|
||||||
|
|
||||||
else {
|
else {
|
||||||
if("'"$COUNT"'" == "'"$1"'" && parFOUR != "noheader" && parFIVE != "noheader" && parSIX != "noheader"){
|
if("'"$COUNT"'" == "'"${RUNARRAY[0]}"'" && optPARone != "noheader" && optPARtwo != "noheader" && optPARthree != "noheader"){
|
||||||
print "TITLE" >> outfile
|
print "TITLE" >> outfile
|
||||||
print ">>>Put your title here<<<\n" >> outfile
|
print ">>>Put your title here<<<\n" >> outfile
|
||||||
print "Abstract" >> outfile
|
print "Abstract" >> outfile
|
||||||
@ -321,15 +380,13 @@ awk -v parFOUR=$4 -v parFIVE=$5 -v parSIX=$6 '{
|
|||||||
|
|
||||||
print dataArray[i+3] ",,, " title >> outfile
|
print dataArray[i+3] ",,, " title >> outfile
|
||||||
|
|
||||||
if("'"$COUNT"'" == "'"$2"'") print "\n" >> outfile
|
if("'"$COUNT"'" == "'"${RUNARRAY[LASTRUN]}"'") print "\n" >> outfile
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}' $COUNT$3.mlog
|
}' $COUNT$EXTENSION.mlog
|
||||||
|
|
||||||
((COUNT++))
|
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user