# This script runs Lumi macros for the full Sim # # reads number of Events, name of run and verbose Level nEvts=10 nJobs=1 path="test" verbose=0 mom=0 ## ### make seed w/o zero ## zero=0 ## seedvar=$RANDOM ## seedvarSrt=`echo $seedvar` ## while [ $seedvarSrt == *$zero* ]; do ## seedvar=$RANDOM ## seedvarSrt=`echo $seedvar` ## done ## echo "seed value = '${seedvar}' " ## ######################### echo Enter number of Events: read nEvts echo "Number of Events: $nEvts!" echo Enter number of Jobs: read nJobs echo "Number of Jobs: $nJobs!" step=`expr $nEvts / $nJobs` # echo Enter storage-folder: # read folder # echo "Storagepath: $folder!" # echo Enter MCstorage-folder: # read folder2 # echo "MCStoragepath: $folder2!" echo Enter verbosity Level: read verbose echo "Verbosity Level is: $verbose!" echo Enter momentum from "1.5, 4.06, 8.9, 11.91, 15 [GeV/c]": read mom echo "Beam mometum is: $mom!" # echo Enter mode from "0 # inel.; 1 # el.+inel 2 # el.": # read mode # echo "Mode is: $mode!" #echo Enter pdg code for filter from "e.g -211 pi^{-}, -2212 bar{p} etc" #read pdgid #echo "PDG is: $pdgid " momStr=`echo $mom | sed -e '{ s/\./_/g; }'` #${folder} #pathMC="/home/karavdin/datastorage/BOXoutputJune2014_NewGeo/all_"${momStr}"/"${folder2} #path="/home/karavdin/datastorage/BOXoutputMarch2014_NewGeo_0_2degree/all_"${momStr}"/"${folder} #pathMC="/home/karavdin/datastorage/BOXoutputMarch2014_NewGeo_0_2degree/all_"${momStr}"/"${folder} if [ ! -d jobs_box/all_${momStr}/ ]; then mkdir -p jobs_box/all_${momStr}/ fi # let's go thMin=0.12 #mode=0 # inel. #mode=1 # el.+inel #mode=2 # el. ############## # set flags #Skip kinematic filter SkipFilt=false ## if SkipFilt=false (XThetaCut or YPhiCut) or BoxCut should be true: ## X-Theta kinematic cut before back-propagation XThetaCut=true YPhiCut=true ## BOX cut before back-propagation BoxCut=false ## Clean after back-propagation (momentum or MVA cut) CleanSig=true ## Write all MC info in TrkQA array WrAllMC=true ############## #dMom=(-1e-1 -1e-2 -1e-3 -1e-4 -1e-5 -1e-6 0 1e-6 1e-5 1e-4 1e-3 1e-2 1e-1) #dMom=(-1e-1 -1e-2 -1e-3 -1e-4 -1e-5 -1e-6 -1e-7 1e-7 1e-6 1e-5 1e-4 1e-3 1e-2 1e-1) dMom=(-1e-1 -1e-2 -1e-3 -1e-4 -1e-6 -1e-10 0) #dMom=(-1e-1 -1e-2 -1e-3 -1e-10 0) #dMom=(-1e-2) dMomN=${#dMom[@]} #for dP in -1e-1 for (( jp=0;jp<$dMomN;jp++)); do dP=${dMom[${jp}]} # make data directory, if not there. all data file go there, makes them easier to move around path="/home/karavdin/datastorage/BOXoutputJune2014_NewGeo5/all_"${momStr}"_dM_"${dP}"/PrecIsPbeam_allCutsON" if [ ! -d $path ]; then mkdir -p $path fi #echo "Output files will be saved in $path" #-1e-2 -1e-3 -1e-4 -1e-5 0 1e-5 1e-4 1e-3 1e-2 1e-1 #do last=`expr $nEvts - 1` for start in `seq 0 $step $last` ; do path_loc="/local/scratch/karavdina/datastorage/BOXoutputJune2014_NewGeo2/all_"${momStr}"_dM_"${dP}"/PrecIsPbeam/"${start}"/" #path_loc=$path cat >jobs_box/all_${momStr}/job_dP_${dP}_${start}.sh < ${path_loc}/0-sim_DPMdirect_${start}.log # cp ${pathMC}/Lumi_MC_${start}.root ${path_loc}/Lumi_MC_${start}.root # cp ${pathMC}/Lumi_Params_${start}.root ${path_loc}/Lumi_Params_${start}.root root -l -b -q runLumiPixel1Digi.C\(${step},${start},"\"${path_loc}\"",$verbose\) #&> ${path_loc}/1-digi_${start}.log #rm ${path_loc}/*.log # ### addMS=false root -l -b -q runLumiPixel2Reco.C\(${step},${start},"\"${path_loc}\"",$verbose\) #&> ${path_loc}/2-reco_${start}.log #rm ${path_loc}/*.log # ## CA & Kalman root -l -b -q runLumiPixel2bHitMerge.C\(${step},${start},"\"${path_loc}\""\) # &> ${path_loc}/2b-reco_${start}.log #rm ${path_loc}/*.log root -l -b -q runLumiPixel3Finder.C\(${step},${start},"\"${path_loc}\"",$verbose,"\"CA\"",true,true,true,${mom}\) # &> ${path_loc}/3-track_search${start}.log #rm ${path_loc}/*.log root -l -b -q runLumiPixel4Fitter.C\(${step},${start},"\"${path_loc}\"",$verbose,"\"Minuit\"",true\) # &> ${path_loc}/logMinuitFit_${start} #rm ${path_loc}/*.log ### Filter tracks root -l -b -q runLumiPixel4aFilter.C\(${step},${start},"\"${path_loc}\"",$verbose,true,${SkipFilt},${XThetaCut},${YPhiCut},${BoxCut}\) # &> ${path_loc}/4a-trk-filter${start}.log #rm ${path_loc}/*.log mv ${path_loc}/Lumi_Track_${start}.root ${path_loc}/Lumi_TrackNotFiltered_${start}.root cp ${path_loc}/Lumi_TrackFiltered_${start}.root ${path_loc}/Lumi_Track_${start}.root root -l -b -q runLumiPixel5BackProp.C\(${step},${start},"\"${path_loc}\"",$verbose,"\"Geane\"",true,${mom}\) # &> ${path_loc}/5-GEANE_${start}.log #rm ${path_loc}/*.log #clean signal from background (momentum cut or MVA cut) if [ $CleanSig == "true" ]; then root -l -b -q runLumiPixel5bCleanSig.C\(${step},${start},"\"${path_loc}\"",$verbose,${mom}\) # &> ${path_loc}/5b-sig-filter${start}.log fi # # Quality assurance task(s) root -l -b -q runLumiPixel7TrksQA.C\(${step},${start},"\"${path_loc}\"",$verbose,${mom},${WrAllMC},${CleanSig}\) # &> ${path_loc}/6-TrksQ_${start}.log # cp ${path_loc}/Lumi_TrksQA_${start}.root ${path}/Lumi_TrksQA_${start}.root root -l -b -q Anastasia/test_macros/EffTrks.C\(${step},${start},"\"${path_loc}\""\) cp ${path_loc}/Lumi_EffTrk_${start}.root ${path}/Lumi_EffTrk_${start}.root # cp ${path_loc}/Lumi_MC_${start}.root ${path}/Lumi_MC_${start}.root # cp ${path_loc}/Lumi_Params_${start}.root ${path}/Lumi_Params_${start}.root # cp ${path_loc}/0-sim_DPMdirect_${start}.log ${path}/. # mv ${path_loc}/5b-sig-filter${start}.log ${path}/. # cp ${path_loc}/5-GEANE_${start}.log ${path}/. ## cp ${path_loc}/* ${path}/. rm -r ${path_loc} exit 0 EOF ### submit job to batch system iter=0 while [ $iter -lt 1 ];do qsub jobs_box/all_${momStr}/job_dP_${dP}_${start}.sh done_test=$(echo $?) if [ "$done_test" -eq "0" ];then echo "Output files will be saved in $path" iter=1 else echo "qsub did not work sleep for 60 seconds and then try again." sleep 60 fi done done done