Skip to content

Commit 406dccb

Browse files
authored
Merge pull request #327 from silkenelson/enh_epixm_makepeds
add epixM support to makepeds_psana2
2 parents d79bb4c + c12f491 commit 406dccb

File tree

1 file changed

+93
-29
lines changed

1 file changed

+93
-29
lines changed

scripts/makepeds_psana2

Lines changed: 93 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,17 @@ OPTIONS:
4343
write pixel mask file for pixels with pedestal above xxx )currently integer only)
4444
-d|--calibdir
4545
give path for alternative calibdir
46+
-t|--test
47+
do not deploy
4648
--noseg
4749
do not split jobs into segments
4850
--gui
4951
start calibman. -r 0: show all darks, -r n: show runs (n-25) - 25
5052
--nstage1
5153
events for the first stage of processing
54+
--datinfo
55+
print info about run for detectors
56+
5257
EOF
5358
}
5459

@@ -108,6 +113,12 @@ check_running_jobs()
108113
return $NJOBS
109114
}
110115

116+
get_datinfo()
117+
{
118+
echo DATINFO_DEBUG
119+
datinfo -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L CRITICAL -t DRS > /tmp/datinfo_"$MYDET"_"$EXP"_"$CREATE_TIME"
120+
}
121+
111122
# Arg: DETECTOR class. This could be a comma-separated list, but we're
112123
# matching it in the config file as a string.
113124
get_config()
@@ -231,6 +242,10 @@ do
231242
shift
232243
shift
233244
;;
245+
--datinfo)
246+
DATINFO=1
247+
shift
248+
;;
234249
*)
235250
POSITIONAL+=("$1")
236251
shift
@@ -239,11 +254,6 @@ do
239254
done
240255
set -- "${POSITIONAL[@]}"
241256

242-
#check for a valid kerberos token, otherwise the deploy step will not work!
243-
if [ $(klist | wc -l) -eq 0 ]; then
244-
exit 4
245-
fi
246-
247257
T="$(date +%s%N)"
248258
echo "XXXXXXXXXXXXXXXXX START MAKEPEDS at $(date +'%T') on $HOSTNAME XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
249259

@@ -263,6 +273,14 @@ MYADUMIN=${MYADUMIN:=-1}
263273
MYADUMAX=${MYADUMAX:=-1}
264274
#one setting to run each process on an own server (currently faster) or not (if we had to use reservations)
265275

276+
#check for a valid kerberos token, otherwise the deploy step will not work!
277+
if ! klist -s ; then
278+
echo No valid kerberos token, deployment will not work
279+
if [ $DEPLOY == 1 ]; then
280+
exit 4
281+
fi
282+
fi
283+
266284
if [ "$RUN" == 0 ]; then
267285
printf "Please enter a run number HERE: \n"; read -r RUN
268286
fi
@@ -442,13 +460,50 @@ if [[ $HAVE_EPIX100 -ge 1 ]]; then
442460
echo '$MYDET is a $DETTYPE, looking for epix100'
443461
continue
444462
fi
445-
echo "now calibrate $MYDET"
463+
if [[ -v DATINFO ]]; then
464+
echo "get information in run for ${MYDET}"
465+
datinfo -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L CRITICAL -t DRS
466+
fi
467+
echo "now calibrate $MYDET"
446468
CMD="det_dark_proc -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO $LOCARG"
447469
echo "$CMD"
448470
$CMD
449471
done
450472
fi
451473

474+
HAVE_EPIXM=$(grep -c epixm /tmp/detnames_"$EXP"_"$CREATE_TIME")
475+
if [[ $HAVE_EPIXM -ge 1 ]]; then
476+
echo "***** have epixm ***"
477+
DETNAMES=$(grep epixm /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $1}' | paste -d " " -s)
478+
for MYDET in ${DETNAMES}; do
479+
LOCARG=$ARG' -o '$CALIBDIR
480+
if [[ -v VALSTR ]]; then
481+
LOCARG=$LOCARG' -t '$VALSTR
482+
fi
483+
if [[ -v NRECS1 ]]; then
484+
LOCARG=$LOCARG' --nrecs1 '$NRECS1
485+
else
486+
LOCARG=$LOCARG' --nrecs1 100'
487+
fi
488+
if [[ -v NUMEVT ]]; then
489+
LOCARG=$LOCARG' -n '$NUMEVT
490+
fi
491+
DETTYPE=$(grep $MYDET /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $2}' | paste -d " " -s)
492+
if [[ ! $DETTYPE =~ 'epixm' ]]; then
493+
echo '$MYDET is a $DETTYPE, looking for epixm'
494+
continue
495+
fi
496+
if [[ -v DATINFO ]]; then
497+
echo "get information in run for $MYDET"
498+
datinfo -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L CRITICAL -t DRS
499+
fi
500+
echo "now calibrate $MYDET"
501+
CMD="epixm320_dark_proc -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO $LOCARG"
502+
echo "$CMD"
503+
$CMD
504+
done
505+
fi
506+
452507
#DEBUG rixx1017523, run 388 : archon
453508
#reconsider doing all det_dark_proc detectors together later
454509
#not sure this is supported + different numbers of skip events
@@ -508,25 +563,30 @@ fi
508563
HAVE_EPIX10K=$(grep -c epix10ka /tmp/detnames_"$EXP"_"$CREATE_TIME")
509564
if [[ $HAVE_EPIX10K -ge 1 ]]; then
510565
DETNAMES=$(grep epix10ka /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $1}' | paste -d " " -s)
511-
for EPIX10K in ${DETNAMES}; do
566+
for MYDET in ${DETNAMES}; do
512567
LOCARG=' -o '$CALIBDIR
513-
#EPIX10K="${DETNAMES[i]// /}"
514-
DETTYPE=$(grep $EPIX10K /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $2}' | paste -d " " -s)
568+
#MYDET="${DETNAMES[i]// /}"
569+
DETTYPE=$(grep $MYDET /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $2}' | paste -d " " -s)
515570
#MYDETTYPE="${DETTYPES[i]// /}"
516571
if [ ! "$DETTYPE" =~ 'epix10ka' ]; then
517572
continue
518573
fi
519-
echo "Epix10ka name for ${EXP} is: ${EPIX10K}"
574+
echo "Epix10ka name for ${EXP} is: ${MYDET}"
575+
576+
if [[ -v DATINFO ]]; then
577+
echo "get information in run for ${MYDET}"
578+
datinfo -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L CRITICAL -t DRS
579+
fi
520580
NSEG=1
521-
if [[ $EPIX10K =~ "2M" ]]; then
581+
if [[ $MYDET =~ "2M" ]]; then
522582
NSEG=16;
523-
elif [[ $EPIX10K =~ "uad" ]]; then
583+
elif [[ $MYDET =~ "uad" ]]; then
524584
NSEG=4;
525585
fi
526586
for calibcycle in {0..4}; do
527587
nextcycle=$(( calibcycle + 1 ))
528-
CMD="epix10ka_pedestals_calibration $LOCARG -d $EPIX10K -k exp=$EXP,run=$RUN,dir=$XTCDIR --stepnum $calibcycle --stepmax $nextcycle -L INFO"
529-
echo "---------------EPIX10K PEDESTALS FOR CYCLE $calibcycle --------------------"
588+
CMD="epix10ka_pedestals_calibration $LOCARG -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR --stepnum $calibcycle --stepmax $nextcycle -L INFO"
589+
echo "---------------MYDET PEDESTALS FOR CYCLE $calibcycle --------------------"
530590
if [[ $RUNLOCAL != 1 ]]; then
531591
for ((segment=0; segment<NSEG; segment++)); do
532592
if [[ $NSEG -gt 1 ]]; then
@@ -540,7 +600,7 @@ if [[ $HAVE_EPIX10K -ge 1 ]]; then
540600
printf '#!/bin/bash\n' > "$tmpScript"
541601
printf 'source %s/manage/bin/psconda.sh\n' "${SIT_ENV_DIR}" >> "$tmpScript"
542602
printf '%s\n' "${CMDS}" >> "$tmpScript"
543-
ep10kaCmd="sbatch ${SBATCH_ARGS} --mem 8GB --cpus-per-task 1 -o $WORKDIR/${EPIX10K}_${EXP}_Run${RUN}_cycle${calibcycle}_%J.out $tmpScript"
603+
ep10kaCmd="sbatch ${SBATCH_ARGS} --mem 8GB --cpus-per-task 1 -o $WORKDIR/${MYDET}_${EXP}_Run${RUN}_cycle${calibcycle}_%J.out $tmpScript"
544604

545605
echo "run in queue: $ep10kaCmd"
546606
SUBMISSION=$($ep10kaCmd)
@@ -586,7 +646,7 @@ if [[ $HAVE_EPIX10K -ge 1 ]]; then
586646
fi
587647

588648
if [ "$DEPLOY" == 1 ]; then
589-
echo "---------------EPIX10K PEDESTALS CALCULATED NOW DEPLOY --------------------"
649+
echo "--------------- PEDESTALS CALCULATED NOW DEPLOY --------------------"
590650
if [ "$NFAILEDJOBS" -gt 0 ]; then
591651
read -r -p "$NFAILEDJOBS of the calibration tasks failed, do you want to continue anyways (y/n)?"
592652
if [ "$REPLY" != "y" ];then
@@ -595,9 +655,9 @@ if [[ $HAVE_EPIX10K -ge 1 ]]; then
595655
fi
596656

597657
for i in "${!DETNAMES[@]}"; do
598-
EPIX10K="${DETNAMES[i]// /}"
599-
#for EPIX10K in $DETNAMES; do
600-
CMD="epix10ka_deploy_constants $LOCARG -D -d $EPIX10K -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO"
658+
MYDET="${DETNAMES[i]// /}"
659+
#for MYDET in $DETNAMES; do
660+
CMD="epix10ka_deploy_constants $LOCARG -D -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO"
601661
if [ -v "$VALSTR" ]; then
602662
echo 'setting validity....'"$VALSTR"
603663
CMD=$CMD' -t '$VALSTR
@@ -633,19 +693,23 @@ fi
633693
HAVE_JUNGFRAU=$(grep -c jungfrau /tmp/detnames_"$EXP"_"$CREATE_TIME")
634694
if [[ $HAVE_JUNGFRAU -ge 1 ]]; then
635695
DETNAMES=$(grep jungfrau /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $1}' | paste -d " " -s)
636-
for JUNGFRAU in ${DETNAMES}; do
696+
for MYDET in ${DETNAMES}; do
637697
LOCARG=' -o '$CALIBDIR
638-
DETTYPE=$(grep $JUNGFRAU /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $2}' | paste -d " " -s)
698+
DETTYPE=$(grep $MYDET /tmp/detnames_"$EXP"_"$CREATE_TIME" | grep raw | awk 'BEGIN { FS = "|"}; {print $2}' | paste -d " " -s)
639699
if [[ ! $DETTYPE =~ 'jungfrau' ]]; then
640700
continue
641701
fi
642-
echo "Jungfrau name for ${EXP} is: ${JUNGFRAU}"
702+
echo "Jungfrau name for ${EXP} is: ${MYDET}"
703+
if [[ -v DATINFO ]]; then
704+
echo "get information in run for ${MYDET}"
705+
datinfo -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L CRITICAL -t DRS
706+
fi
643707
NSEG=1
644-
if [[ $JUNGFRAU =~ "16M" ]]; then
708+
if [[ $MYDET =~ "16M" ]]; then
645709
NSEG=32;
646-
elif [[ $JUNGFRAU =~ "4M" ]]; then
710+
elif [[ $MYDET =~ "4M" ]]; then
647711
NSEG=8;
648-
elif [[ $JUNGFRAU =~ "1M" ]]; then
712+
elif [[ $MYDET =~ "1M" ]]; then
649713
NSEG=2;
650714
elif [[ $EXP =~ "mfx" ]]; then #note that this is a hotfix!
651715
NSEG=32;
@@ -657,7 +721,7 @@ if [[ $HAVE_JUNGFRAU -ge 1 ]]; then
657721
fi
658722
for calibcycle in {0..2}; do
659723
nextcycle=$(( calibcycle + 1 ))
660-
CMD="jungfrau_dark_proc $LOCARG -d $JUNGFRAU -k exp=$EXP,run=$RUN,dir=$XTCDIR --stepnum $calibcycle --stepmax $nextcycle -L INFO"
724+
CMD="jungfrau_dark_proc $LOCARG -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR --stepnum $calibcycle --stepmax $nextcycle -L INFO"
661725
echo "---------------JUNGFRAU PEDESTALS FOR CYCLE $calibcycle --------------------"
662726
if [[ $RUNLOCAL != 1 ]]; then
663727
for ((segment=0; segment<NSEG; segment++)); do
@@ -674,7 +738,7 @@ if [[ $HAVE_JUNGFRAU -ge 1 ]]; then
674738
printf '#!/bin/bash\n' > "$tmpScript"
675739
printf 'source %s/manage/bin/psconda.sh\n' "${SIT_ENV_DIR}" >> "$tmpScript"
676740
printf '%s\n' "${CMDS}" >> "$tmpScript"
677-
jfCmd="sbatch ${SBATCH_ARGS} --mem ${MEM}GB --cpus-per-task 1 -o $WORKDIR/${JUNGFRAU}_${EXP}_Run${RUN}_cycle${calibcycle}_segment${segment}_%J.out $tmpScript"
741+
jfCmd="sbatch ${SBATCH_ARGS} --mem ${MEM}GB --cpus-per-task 1 -o $WORKDIR/${MYDET}_${EXP}_Run${RUN}_cycle${calibcycle}_segment${segment}_%J.out $tmpScript"
678742

679743
echo "run in queue: $jfCmd"
680744
SUBMISSION=$($jfCmd)
@@ -734,8 +798,8 @@ if [[ $HAVE_JUNGFRAU -ge 1 ]]; then
734798
fi
735799
fi
736800

737-
for JUNGFRAU in ${DETNAMES}; do
738-
CMD="jungfrau_deploy_constants -D -d $JUNGFRAU -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO -o $CALIBDIR -p psrnx"
801+
for MYDET in ${DETNAMES}; do
802+
CMD="jungfrau_deploy_constants -D -d $MYDET -k exp=$EXP,run=$RUN,dir=$XTCDIR -L INFO -o $CALIBDIR -p psrnx"
739803
if [ -v "$VALSTR" ]; then
740804
echo 'setting validity....'"$VALSTR"
741805
CMD=$CMD' -t '$VALSTR

0 commit comments

Comments
 (0)