diff --git a/macro/beamtime/hd2020/calib_batch.sh b/macro/beamtime/hd2020/calib_batch.sh new file mode 100755 index 0000000000000000000000000000000000000000..a14e212a29f7f0f96e0c4ebd3cd8be9158d80370 --- /dev/null +++ b/macro/beamtime/hd2020/calib_batch.sh @@ -0,0 +1,85 @@ +#!/bin/bash +#SBATCH -J calib +#SBATCH -D /lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +#SBATCH --time=6-00:00:00 +#SBATCH --mem=4000 +#SBATCH --partition=long + +X=$((${SLURM_ARRAY_TASK_ID} - 0)) +XXX=$(printf "%03d" "$X") + +CalSet="$1" +if [[ ${CalSet} = "" ]]; then + echo please specify CalSet! + return +fi + +Sel2="$2" +if [[ ${Sel2} = "" ]]; then + echo please specify Sel2! + return +fi + +RunId="$3" +if [[ ${RunId} = "" ]]; then +RunList1=' +20161121_2133_run1_gdpb +' + I=1 + RunId="" + for RunId in $RunList1 + do + #echo check $RunId + if (($I == $X)); then + echo found RunId $RunId + break + fi + ((I=$I+1)) + done +fi + +CalMode="$4" +if [[ ${CalMode} = "" ]]; then +#CalMode="_DT200_0x00005006" +#CalMode="_DT50_0x00005006" +#CalMode="_DT50_0x00000000" +#CalMode="_DT50_0x00019026" +#CalMode="_DT50_Req5" +#CalMode="_DT50_Req0" +#CalMode="_DT50000_Req-3" +#CalMode="_DT50000_Req-4" +#CalMode="_DT26000_Req-4" +CalMode=".100.3" +#CalMode="_DT100_Req-4" +#CalMode="_DT50_Req-3" +#CalMode="_DT50_Req-2" +fi + +RunIdMode=`echo $RunId$CalMode` +Deadtime=50 + +echo define root execution environment at I=$I for Run $RunId Mode $RunIdMode + +if [ -e /lustre/nyx ]; then +source /lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/build/config.sh +wdir=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +outdir=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020/${RunId} +else +wdir=`pwd` +outdir=${wdir}/${RunId} +fi +mkdir ${outdir} + +cd ${wdir} +echo execute: ./init_calib.sh ${RunIdMode} ${CalSet} ${Deadtime} +source ./init_calib.sh ${RunIdMode} ${CalSet} ${Deadtime} + +cd ${wdir} +#echo execute: ./iter_calib.sh ${RunIdMode} ${CalSet} ${Sel2} ${Deadtime} +#source ./iter_calib.sh ${RunIdMode} ${CalSet} ${Sel2} ${Deadtime} + +cd ${wdir} +echo execute: ./gen_digi.sh ${RunIdMode} ${CalSet} ${Sel2} ${Deadtime} +source ./gen_digi.sh ${RunIdMode} ${CalSet} ${Sel2} ${Deadtime} + +mv -v slurm-${SLURM_ARRAY_JOB_ID}_${SLURM_ARRAY_TASK_ID}.out ${outdir}/Calib_${RunIdMode}_${CalSet}_${Sel2}.out diff --git a/macro/beamtime/hd2020/eval_tracks.sh b/macro/beamtime/hd2020/eval_tracks.sh new file mode 100755 index 0000000000000000000000000000000000000000..e1c3e474675cb78dad4b74d3e52da2345c7cbdcb --- /dev/null +++ b/macro/beamtime/hd2020/eval_tracks.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# shell script to iterate tracklet calibration histograms +#SBATCH -J eval_tracks +#SBATCH -D /lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +#SBATCH --time=1-00:00:00 +#SBATCH --mem=2000 +#SBATCH --partition=long + +X=$((${SLURM_ARRAY_TASK_ID} - 0)) +XXX=$(printf "%03d" "$X") + +cRun=$1 +iDut=$2; +iRef=$3; +iSel2=$4 +((iSel=$iDut*1000+$iRef)) +iTraSetup=$5 + +cSet=$6 +if [[ ${cSet} = "" ]]; then + cSet="900920910_911" +fi + +CalIdMode=$7 +if [[ ${CalIdMode} = "" ]]; then + echo use native calibration file + cCalId=$cRun; +else + cCalId=${CalIdMode} +fi + +dDTres=10000000 +nEvt=100000 + +cSel2=$iSel2; +if [[ $iSel2 < 100 ]]; then + cSel2="0"$iSel2 + if [[ $iSel2 < 10 ]]; then + cSel2="00"$iSel2 + fi +fi + +if [ -e /lustre/cbm ]; then +source /lustre/cbm/users/nh/CBM/cbmroot/trunk/build/config.sh +wdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +outdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020/${cRun} +else +wdir=`pwd` +outdir=${wdir}/${cRun} +fi + +# frange2 limits chi2 +fRange2=3.5 + +#frange1 limits DT spectrum range +fRange1=1.1 +dDeadtime=50 + +cd ${cRun} +mkdir Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup} +cp ../rootlogon.C Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}/ +cp ../.rootrc Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}/ +cd Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup} +rm -v *AnaTestBeam.hst.root +cp -v ../../${cCalId}_tofFindTracks.hst.root . +cSet9=${cSet:0:9} +ln -s -v ../${cCalId}_set${cSet9}_93_1tofClust.hst.root ${cCalId}_set${cSet9}_93_1tofClust.hst.root + +while [[ $dDTres > 0 ]]; do + +for iCal in 1 2 3 5 6 7 8 1 +do + +root -b -q '../../ana_trks.C('$nEvt','$iSel',-1,"'$cRun'","'$cSet'",'$iSel2','$iTraSetup','$fRange1','$fRange2','$dDeadtime',"'$cCalId'",'$iCal')' +mv -v tofAnaTestBeam.hst.root ${cRun}_TrkAnaTestBeam.hst.root +rm all_* + +if (! (test -f Test.res)); then +echo no resolution file available: return +exit 1 +fi +done + +Tres=`cat Test.res` +dTdif=`echo "$dDTres - $Tres" | bc` +dDTres=`echo "$dDTres - 0.005" | bc` +compare_result=`echo "$Tres < $dDTres" | bc` + +echo got Tres = $Tres, compare to $dDTres, dTdif = $dTdif, compare_result = $compare_result + +if [[ $compare_result > 0 ]]; then +dDTres=$Tres +else +dDTres=0 +fi + +done + +# final action -> scan full statistics +iCal=1 +root -b -q '../../ana_trks.C(-1,'$iSel',-1,"'$cRun'","'$cSet'",'$iSel2','$iTraSetup','$fRange1','$fRange2','$dDeadtime',"'$cCalId'",'$iCal')' +rm all_* +cd ../.. + +#mv -v slurm-${SLURM_ARRAY_JOB_ID}_${SLURM_ARRAY_TASK_ID}.out ${outdir}/IterTrack_${cRun}_${cSet}.out +mv -v slurm-${SLURM_JOB_ID}.out ${outdir}/EvalTrack_${cRun}_${cSet}_${iSel}_${iSel2}_${iTraSetup}.out diff --git a/macro/beamtime/hd2020/gen_digi.sh b/macro/beamtime/hd2020/gen_digi.sh new file mode 100755 index 0000000000000000000000000000000000000000..be5f26611c0ea10560c0dda351200a490e026b37 --- /dev/null +++ b/macro/beamtime/hd2020/gen_digi.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# shell script to apply clusterizer calibrations +#SBATCH -J gen_digi +#SBATCH -D /lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +#SBATCH --time=4:00:00 +#SBATCH --mem=2000 +##SBATCH --partition=long +cRun=$1 + +iCalSet=$2 +((iTmp = $iCalSet )) +((iBRef = $iTmp % 1000)) +((iTmp = $iTmp - $iBRef)) +((iSet = $iTmp / 1000)) +((iRef = $iTmp % 1000000)) +((iRef = $iRef / 1000)) +((iTmp = $iTmp - $iRef)) +((iDut = $iTmp / 1000000)) + +iSel2=$3 + +if((${iSel2}<0));then + ((iBRef=-$iSel2)) +fi + +cCalSet=$iCalSet +if (( iCalSet<100000000 )); then +cCalSet="0"$iCalSet +fi +if (( iCalSet<10000000 )); then +cCalSet="00"$iCalSet +fi +if (( iCalSet<1000000 )); then +cCalSet="000"$iCalSet +fi +if (( iCalSet<100000 )); then +cCalSet="0000"$iCalSet +fi +echo cCalSet = $cCalSet + +Deadtime=$4 +if [[ ${Deadtime} = "" ]]; then +Deadtime=50. +fi + +CalIdMode=$5 +if [[ ${CalIdMode} = "" ]]; then + echo use native calibration file + CalIdMode=${cRun} + CalFile=${cRun}_set${cCalSet}_93_1tofClust.hst.root +else + CalFile=${CalIdMode}_set${cCalSet}_93_1tofClust.hst.root + RunFile=${cRun}_set${cCalSet}_93_1tofClust.hst.root +# rm ${RunFile} +# ln -s ${CalFile} ${RunFile} + echo use calibrations from ${CalFile} +fi + +CalIdSet=$6 +if [[ ${CalIdSet} = "" ]]; then + echo use native calibration file + CalIdSet=$cCalSet +else + CalFile=${CalIdMode}_set${CalIdSet}_93_1tofClust.hst.root +fi + +echo gen_digi for $cRun with iDut=$iDut, iRef=$iRef, iSet=$iCalSet, iSel2=$iSel2, iBRef=$iBRef, Deadtime=$Deadtime, CalFile=$CalFile + +if [ -e /lustre/cbm ]; then +source /lustre/cbm/users/nh/CBM/cbmroot/trunk/build/config.sh +wdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2019 +outdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2019/${cRun} +else +wdir=`pwd` +outdir=${wdir}/${cRun} +fi + +cd $wdir +mkdir $cRun +cd $cRun +cp ../.rootrc . +cp ../rootlogon.C . +cp -v ../${CalFile} . +#root -b -q './ana_digi.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime') ' +#root -b -q '../ana_digi_dev.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' +root -b -q '../ana_digi_cal.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' +#root -b -q '../ana_digi_cos.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' +#root -b -q '../ana_digi_star.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' + +cd .. + +mv -v slurm-${SLURM_JOB_ID}.out ${outdir}/GenDigi_${cRun}_${iCalSet}_${iSel2}_${iCalIdMode}.out diff --git a/macro/beamtime/hd2020/init_calib.sh b/macro/beamtime/hd2020/init_calib.sh new file mode 100755 index 0000000000000000000000000000000000000000..3bbe437dd97fdadd4b06897310e6c3518be97edc --- /dev/null +++ b/macro/beamtime/hd2020/init_calib.sh @@ -0,0 +1,130 @@ +#!/bin/bash +# shell script to initialize clusterizer calibrations +#SBATCH -J calall +#SBATCH -D /lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +#SBATCH --time=6-00:00:00 +#SBATCH --mem=2000 +#SBATCH --partition=long +cRun=$1 + +echo 'Initialize clusterizer calibration for run '$cRun + +iCalSet=$2 +((iTmp = $iCalSet )) +((iBRef = $iTmp % 1000)) +((iTmp = $iTmp - $iBRef)) +((iSet = $iTmp / 1000)) +((iMRef = $iTmp % 1000000)) +((iMRef = $iMRef / 1000)) +((iTmp = $iTmp - $iMRef)) +((iDut = $iTmp / 1000000)) +echo Calib setup is ${iCalSet}, iSet=$iSet, iDut=$iDut, iMRef=$iMRef, iBRef=$iBRef +cCalSet=$iCalSet +if (( iCalSet<100000000 )); then +cCalSet="0"$iCalSet +fi +if (( iCalSet<10000000 )); then +cCalSet="00"$iCalSet +fi +if (( iCalSet<1000000 )); then +cCalSet="000"$iCalSet +fi +if (( iCalSet<100000 )); then +cCalSet="0000"$iCalSet +fi +echo cCalSet = $cCalSet +#iSet=0 +#lastOpt='' +nEvi0=100000 # start value +nEvi1=10000 # increment + +if [ -e /lustre ]; then +source /lustre/cbm/users/nh/CBM/cbmroot/trunk/build6/config.sh +wdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +outdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020/${RunId} +else +wdir=`pwd` +outdir=${wdir}/${RunId} +fi +mkdir ${outdir} + +cd ${wdir} +mkdir ${cRun} +cp rootlogon.C ${cRun} +cp .rootrc ${cRun} +cd ${cRun} + +# Global variables, for for-loops +iRestart=0 +#iRestart=12 +iStep=0 +iStepLast=0 +iCalSel0=0 +iCalSel1=1 +# ************************** Starting while Loop ***************************** # + +(( nEvi = nEvi0 + 10*nEvi1 )) +optList="" +optList=`echo " $nEvi,93,1,$iMRef,0 "`$optList +icalmod=3 +for icallev in 8 6 4 2 +do + (( nEvi = nEvi0 + (icallev-1)*nEvi1 )) + optList=`echo " $nEvi,$icallev$icalmod,$iCalSel0,$iDut,0 "`$optList + optList=`echo " $nEvi,$icallev$icalmod,$iCalSel1,$iMRef,0 "`$optList + optList=`echo " $nEvi,$icallev$icalmod,$iCalSel0,99,50 "`$optList + #optList=`echo " $nEvi,$icallev$icalmod,$iCalSel1,99,50 "`$optList +done + optList=`echo " $nEvi,0,0,99,50 "`$optList # start Init1 + echo optList: $optList + +for inOpt in $optList +do + echo step ${iStep} with option $inOpt + ((iStepLast = ${iStep})) + ((iStep += 1)) + + mkdir Init${iStep} + cp rootlogon.C Init${iStep} + cp .rootrc Init${iStep} + cd Init${iStep} + + if [[ ${lastOpt:+1} ]] ; then + # echo last round was done with $lastOpt, extract 2. and 3. word + i1=`expr index $inOpt , ` + i2=($i1+3) + #echo `expr index $inOpt , ` = $i1 + cMode=${inOpt:$i1:2} + cSel=${inOpt:$i2:1} + echo next iteration: cMode=$cMode, cSel=$cSel + if [[ ${cSel} = "-" ]];then + cSel=${inOpt:$i2:2} + echo cSel=$cSel + cSel="0" + fi + #copy calibration file + if (($iStep > $iRestart)) ; then + cp -v ../Init${iStepLast}/tofClust_${cRun}_set${cCalSet}.hst.root ${cRun}_set${cCalSet}_${cMode}_${cSel}tofClust.hst.root + fi + fi + + lastOpt=$inOpt + # generate new calibration file + if (($iStep > $iRestart)) ; then + root -b -q '../../ana_digi_cal.C('$inOpt',"'${cRun}'",'${iCalSet}',0,'${iBRef}') ' + + cp -v tofClust_${cRun}_set${cCalSet}.hst.root ../${cRun}_set${cCalSet}_${cMode}_${cSel}tofClust.hst.root + cp *pdf ../ + #./screenshot.sh + cd .. + rm ../${cRun}_set${cCalSet}_${cMode}_${cSel}tofClust.hst.root + ln -s ./${cRun}/${cRun}_set${cCalSet}_${cMode}_${cSel}tofClust.hst.root ../${cRun}_set${cCalSet}_${cMode}_${cSel}tofClust.hst.root + echo Init step $iStep with mode ${cMode}, option $inOpt finished + else + cd .. + echo Init step $iStep with mode ${cMode}, option $inOpt skipped + fi +done + +cd ${wdir} +mv -v slurm-${SLURM_JOB_ID}.out ${outdir}/InitCalib_${cRun}_${cCalSet}.out diff --git a/macro/beamtime/hd2020/trk_cal_digi.sh b/macro/beamtime/hd2020/trk_cal_digi.sh new file mode 100755 index 0000000000000000000000000000000000000000..2a74911b54b8268edeede1e9ec11d3ae34c31631 --- /dev/null +++ b/macro/beamtime/hd2020/trk_cal_digi.sh @@ -0,0 +1,221 @@ +#!/bin/bash +# shell script to apply clusterizer calibrations +#SBATCH -J trk_cal_digi +#SBATCH -D /lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +#SBATCH --time=5-24:00:00 +#SBATCH --mem=4000 +#SBATCH --partition=long +cRun=$1 + +iCalSet=$2 +((iTmp = $iCalSet )) +((iBRef = $iTmp % 1000)) +((iTmp = $iTmp - $iBRef)) +((iSet = $iTmp / 1000)) +((iRef = $iTmp % 1000000)) +((iRef = $iRef / 1000)) +((iTmp = $iTmp - $iRef)) +((iDut = $iTmp / 1000000)) + +iSel2=$3 +cSel2=$iSel2 +if (( iSel2<100 )); then +cSel2="0"$iSel2 +fi +if (( iSel2<10 )); then +cSel2="00"$iSel2 +fi + +cCalSet=$iCalSet +if (( iCalSet<100000000 )); then +cCalSet="0"$iCalSet +fi +if (( iCalSet<10000000 )); then +cCalSet="00"$iCalSet +fi +if (( iCalSet<1000000 )); then +cCalSet="000"$iCalSet +fi +if (( iCalSet<100000 )); then +cCalSet="0000"$iCalSet +fi +echo cCalSet = $cCalSet + +Deadtime=$4 +if [[ ${Deadtime} = "" ]]; then +Deadtime=50. +fi + +CalIdMode=$5 +if [[ ${CalIdMode} = "" ]]; then + echo use native calibration file + CalIdMode=${cRun} + CalFile=${cRun}_set${cCalSet}_93_1tofClust.hst.root +else + CalFile=${CalIdMode}_set${cCalSet}_93_1tofClust.hst.root + RunFile=${cRun}_set${cCalSet}_93_1tofClust.hst.root +# rm ${RunFile} +# ln -s ${CalFile} ${RunFile} + echo use calibrations from ${CalFile} +fi + +iCalOpt=$6 +if [[ ${iCalOpt} = "" ]]; then + iCalOpt=1 +fi + +iTraSetup=$7 +if [[ $iTraSetup = "" ]]; then + iTraSetup=11 +fi + +CalIdSet=$8 +if [[ ${CalIdSet} = "" ]]; then + echo use native calibration file + CalIdSet=$cCalSet +else + CalFile=${CalIdMode}_set${CalIdSet}_93_1tofClust.hst.root +fi + + +echo trk_cal_digi for $cRun with iDut=$iDut, iRef=$iRef, iSet=$iCalSet, iSel2=$iSel2, iBRef=$iBRef, Deadtime=$Deadtime, CalFile=$CalFile + +if [ -e /lustre/cbm ]; then +source /lustre/cbm/users/nh/CBM/cbmroot/trunk/build/config.sh +wdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020 +outdir=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/hd2020/${cRun} +else +wdir=`pwd` +outdir=${wdir}/${cRun} +fi + +nEvt=200000 +dDTres=100000 +dDTRMSres=100000 +iter=0; + +cd $wdir +mkdir $cRun +cd $cRun +cp ../.rootrc . +cp ../rootlogon.C . + +echo Execute in `pwd`: ./trk_cal_digi.sh $1 $2 $3 $4 $5 $6 $7 $8 + +# get initial digi calibration +#cp -v ./I*/${CalFile} . + +# get latest tracker offsets +# cp -v ../${cRun}_tofFindTracks.hst.root . + +rm -v TCalib.res +nEvtMax=0 +(( nEvtMax = nEvt*10 )) + +#frange1 limits DT spectrum range +fRange1=2. +# frange2 limits chi2 +fRange2=5.0 +TRange2Limit=3. + +iSel=911921 +iGenCor=3 +cCalSet2=${cCalSet}_$cSel2 + +case $iCalOpt in + 1) # TOff + ;; + 2) # Walk + (( nEvt *= 10 )) + (( nEvtMax *= 10 )) + ;; +esac + +while [[ $dDTres > 0 ]]; do + nEvt=`echo "scale=0;$nEvt * 1./1." | bc` + #nEvt=`echo "scale=0;$nEvt * 1.1/1." | bc` + if [ $nEvt -gt $nEvtMax ]; then + nEvt=$nEvtMax + fi + + fRange2=`echo "$fRange2 * 0.9" | bc` + compare_TRange2=`echo "$fRange2 < $TRange2Limit" | bc` + if [[ $compare_TRange2 > 0 ]]; then + fRange2=$TRange2Limit + fi + + cd $wdir/$cRun + iCalAct=$iCalOpt + echo Enter while loop with $iCalAct in dir `pwd` + while [[ $iCalAct > 0 ]]; do + if [[ $iCalOpt = 1 ]] || [[ $iCalAct > 1 ]]; then + root -b -q '../ana_digi_cal.C('$nEvt',93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' + # update calibration parameter file, will only be active in next iteration + # cp -v tofClust_${cRun}_set${cCalSet}.hst.root ../${cRun}_set${cCalSet}_93_1tofClust.hst.root + + root -b -q '../ana_trks.C('$nEvt','$iSel','$iGenCor',"'$cRun'","'$cCalSet2'",'$iSel2','$iTraSetup','$fRange1','$fRange2','$Deadtime',"'$CalIdMode'",1,1,'$iCalSet','$iCalAct')' + #root -l 'ana_trksi.C(-1,10,1,"385.50.5.0","000014500_020",20,1,1.90,7.60,50,"385.50.5.0",1,1)' + + cp -v New_${CalFile} ${CalFile} + + else + cd $wdir + # store current status + dLDTres=$dDTres + dLDTRMSres=$dDTRMSres + echo Store limits $dLDTres, $dLDTRMSres + echo exec in `pwd`: trk_cal_digi.sh $1 $2 $3 $4 $5 1 $7 + ./trk_cal_digi.sh $1 $2 $3 $4 $5 1 $7 + # restore old status + dDTres=$dLDTres + dDTRMSres=$dLDTRMSres + echo exec1done, resume with old status $dDTres, $dDTRMSres + fi + (( iCalAct -= 1 )) + echo Continue while loop with $iCalAct + done + + cd $wdir/$cRun + Tres=`cat TOffAvOff.res` + TRMSres=`cat TOffAvRMS.res` + + if [[ $Tres = 0 ]]; then + Tres=1 + fi + dTdif=`echo "$dDTres - $Tres" | bc` + compare_result=`echo "$Tres < $dDTres" | bc` + + dTRMSdif=`echo "$dDTRMSres - $TRMSres" | bc` + compare_RMS=`echo "$TRMSres < $dDTRMSres" | bc` + + echo at iter=$iter got TOff = $Tres, compare to $dDTres, dTdif = $dTdif, result = $compare_result, TRMS = $TRMSres, old $dDTRMSres, dif = $dTRMSdif, result = $compare_RMS + + ((compare_result += $compare_RMS)) + echo CMPR result_summary: $compare_result + +# if [ $iter = 1 ]; then +# exit 0 # for debugging +# fi + + if [[ $compare_result > 0 ]]; then + if [[ $Tres = 0 ]]; then + Tres=1 + fi + dDTres=$Tres + dDTRMSres=$TRMSres + (( dDTRMSres -= 1 )) # next attempt should be at least 1ps better for continuation + cp -v New_${CalFile} ${CalFile} + cp -v New_${CalFile} ${CalFile}_$iter + else + dDTres=0 + fi + (( iter += 1 )) +done + +cd $wdir/$cRun +# generate full statistics digi file +root -b -q '../ana_digi_cal.C(-1,93,1,'$iRef',1,"'$cRun'",'$iCalSet',1,'$iSel2','$Deadtime',"'$CalIdMode'") ' + +cd $wdir + +mv -v slurm-${SLURM_JOB_ID}.out ${outdir}/TrkCalDigi_${cRun}_${iCalSet}_${iSel2}_${iCalIdMode}.out diff --git a/macro/beamtime/pl_XY_trk.C b/macro/beamtime/pl_XY_trk.C index ea6a1c44df6d7ddc8c5a819ff4876add457ba54f..18194c2524717df345942a7ba6ec389e690b99c5 100644 --- a/macro/beamtime/pl_XY_trk.C +++ b/macro/beamtime/pl_XY_trk.C @@ -1,4 +1,4 @@ -void pl_XY_trk(Int_t NSt = 4, Double_t MinEff = 0.5, Double_t dThr = 0.01) { +void pl_XY_trk(Int_t NSt = 4, Double_t MinEff = 0.5, Double_t dThr = 0.1) { // TCanvas *can = new TCanvas("can22","can22"); // can->Divide(2,2); TCanvas* can = new TCanvas("can", "can", 50, 0, 800, 800); diff --git a/macro/beamtime/pl_pull_trk.C b/macro/beamtime/pl_pull_trk.C index 41368e5dcd1f82168a3b98b92614d78bd5fbcd2c..47627efb246f11377625d008239b1c7154f20f47 100644 --- a/macro/beamtime/pl_pull_trk.C +++ b/macro/beamtime/pl_pull_trk.C @@ -3,6 +3,7 @@ void pl_pull_trk(Int_t NSt = 8, Int_t iVar = 0, Int_t iFit = 0) { // can->Divide(2,2); TCanvas* can = new TCanvas("can", "can", 50, 0, 800, 800); switch (NSt) { + case 7: can->Divide(3, 4); break; case 6: case 5: case 4: can->Divide(3, 3); break;