#!/bin/bash #numer of events used for resolution study SIMEVENTS=100000 #SIMEVENTS=100 #Declare array with elements for knoss stat. study ARRAY=(100000 50000 20000 10000 5000 2000 1000 500 200 100) # get number of elements in the array ELEMENTS=${#ARRAY[@]} #Declare array with elements for misalignment scale #ARRAYD=(0 20 30 50 70 100 150 200 250 300 350 400 450 500) #mum ARRAYD=(500) #mum ELEMENTSD=${#ARRAYD[@]} ARRAYA=(0 1 2 3 4 5 6 7 8 9 10 15 20 25 30 40 50 70 100) # 1e-3 rad #ARRAYA=(1 5) # 1e-3 rad # get number of elements in the array ELEMENTSA=${#ARRAYA[@]} # echo each element in array # for loop for (( j=0;j<$ELEMENTSD;j++)); do for (( ia=0;ia<$ELEMENTSA;ia++)); do for (( i=0;i<$ELEMENTS;i++)); do T="$(date)" echo ${T} ": Now we'll do test with "${ARRAY[${i}]} "events for misalignment ~ "${ARRAYD[${j}]} "mum and" ${ARRAYA[${ia}]} "*10e-3 rad">> logSTAT # #---------------------------------------------------------------------- rm /home/akaravdina/lmdMacro/tmpOutputAlign/* ##Full sim & rec time root -l -b -q runLumi0SimBox.C\(${SIMEVENTS},11.91,\"tmpOutputAlign\"\) time root -l -b -q runLumi1Digi.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) # time root -l -b -q create_misalignment_lumi.C\(${ARRAYD[${j}]},0.\) #shift # time root -l -b -q create_misalignment_lumi.C\(0.,${ARRAYD[${j}]}\) #rotation time root -l -b -q create_misalignment_lumi.C\(${ARRAYD[${j}]},${ARRAYA[${ia}]}\) #rotation and translation time root -l -b -q runLumi2Reco.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) # time root -l -b -q runLumi3Finder.C\(${SIMEVENTS},0,\"tmpOutputAlign\",0,\"CA\",true\)>> logTrkFind # time root -l -b -q runLumi3Finder.C\(${SIMEVENTS},0,\"tmpOutputAlign\",0,\"CA\",true\) time root -l -b -q runLumi3Finder.C\(${SIMEVENTS},0,\"tmpOutputAlign\",0,\"CA\",false\) time root -l -b -q runLumi4Fitter.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) time root -l -b -q runLumi5Geane.C\(${SIMEVENTS},11.91,0,\"tmpOutputAlign\"\) cd /data/FAIRsorf/pandaroot/build/bin ##obtain information about resolution before alignment ./rec_mc_match -s 0 -n ${SIMEVENTS} -mom 11.91 -path "/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign" ##obtain info about hits for alignment ./hits_align -s 0 -n ${ARRAY[${i}]} -path "/home/akaravdina/lmdMacro/tmpOutputAlign" -out "/home/akaravdina/lmdMacro/tmpOutputAlign/TrackForAlign.txt" -outhist "/home/akaravdina/lmdMacro/tmpOutputAlign/ResidualsHist.root" -v 0 ##do alignment cd /data/FAIRsorf/pandaroot/karavdina/myKnossos ./knossos -i "/home/akaravdina/lmdMacro/tmpOutputAlign/TrackForAlign.txt" -o "/home/akaravdina/lmdMacro/tmpOutputAlign/LumiAlignConst.txt" -n ${ARRAY[${i}]} -r 1 rm /home/akaravdina/lmdMacro/lumi.misalign_after.par head -14 /home/akaravdina/lmdMacro/lumi.misalign.par >> /home/akaravdina/lmdMacro/lumi.misalign_after.par #obtain results and write it in new *.par file ./analyze -in '/home/akaravdina/lmdMacro/lumi.misalign.par' -out '/home/akaravdina/lmdMacro/tmpOutputAlign/LumiAlignConst.txt' -new '/home/akaravdina/lmdMacro/lumi.misalign_after.par' >> logAnalyze ## change old params for new params mv /home/akaravdina/lmdMacro/lumi.misalign.par /home/akaravdina/lmdMacro/lumi.misalign_before.par mv /home/akaravdina/lmdMacro/lumi.misalign_after.par /home/akaravdina/lmdMacro/lumi.misalign.par ##save results in good storage place cd /home/akaravdina/lmdMacro #pathname=/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign/results/misalign${ARRAYD[${j}]}_10e-4radDOF000111_${ARRAY[${i}]}_events pathname=/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign/results/misalign_${ARRAYD[${j}]}mum_${ARRAYA[${ia}]}_10e-3radDOF111111_${ARRAY[${i}]}_events # pathname=/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign/results/misalign_${ARRAYD[${j}]}mum_DOF111000_${ARRAY[${i}]}_events mkdir ${pathname} echo "dir " ${pathname} "is made!" cp /home/akaravdina/lmdMacro/tmpOutputAlign/Lumi_out_MC_and_REC_trks_matches_with_IDs0.root ${pathname}/Lumi_out_MC_and_REC_trks_matches_with_IDs0_before.root cp /data/FAIRsorf/pandaroot/karavdina/myKnossos/Results.root ${pathname}/Results.root cp /home/akaravdina/lmdMacro/lumi.misalign_before.par ${pathname}/. cp /home/akaravdina/lmdMacro/lumi.misalign.par ${pathname}/lumi.misalign_after.par cp /home/akaravdina/lmdMacro/tmpOutputAlign/ResidualsHist.root ${pathname}/ResidualsHist_before.root rm /home/akaravdina/lmdMacro/tmpOutputAlign/* ##repeat rec with new params time root -l -b -q runLumi0SimBox.C\(${SIMEVENTS},11.91,\"tmpOutputAlign\"\) time root -l -b -q runLumi1Digi.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) time root -l -b -q runLumi2Reco.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) time root -l -b -q runLumi3Finder.C\(${SIMEVENTS},0,\"tmpOutputAlign\",0,\"CA\",true\) time root -l -b -q runLumi4Fitter.C\(${SIMEVENTS},0,\"tmpOutputAlign\"\) time root -l -b -q runLumi5Geane.C\(${SIMEVENTS},11.91,0,\"tmpOutputAlign\"\) cd /data/FAIRsorf/pandaroot/build/bin ##obtain information about residuals and resolution before alignment ./hits_align -s 0 -n ${ARRAY[${i}]} -path "/home/akaravdina/lmdMacro/tmpOutputAlign" -out "/home/akaravdina/lmdMacro/tmpOutputAlign/TrackForAlign.txt" -outhist "/home/akaravdina/lmdMacro/tmpOutputAlign/ResidualsHist.root" -v 0 ./rec_mc_match -s 0 -n ${SIMEVENTS} -mom 11.91 -path "/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign" cp /home/akaravdina/lmdMacro/tmpOutputAlign/ResidualsHist.root ${pathname}/ResidualsHist_after.root cp /home/akaravdina/lmdMacro/tmpOutputAlign/Lumi_out_MC_and_REC_trks_matches_with_IDs0.root ${pathname}/Lumi_out_MC_and_REC_trks_matches_with_IDs0_after.root cd /home/akaravdina/lmdMacro/ # time root -l -b -q GenAlignEffect.C\(\"${pathname}/\"\) resfile=/data/FAIRsorf/pandaroot/trunk/macro/lmd/tmpOutputAlign/results/RotStudy time root -l -b -q GenAlignEffect.C\(\"${pathname}/\",${ARRAYA[${ia}]},${ia},${ELEMENTSA},\"${resfile}\"\) #time root -l -b -q GenAlignEffect.C\(\"${pathname}/\",${ARRAYD[${j}]},${j},${ELEMENTSD},\"${resfile}\"\) # # #---------------------------------------------------------------------- done done done echo "results saved in " ${pathname} exit