BUILD GEMC SIMULATION.sh
Jump to navigation
Jump to search
#!/bin/bash bold=`tput bold` normal=`tput sgr0` echo "+------------------------------------------------------+" echo "| |" echo "| GEMC Simulations with root V1.0 |" echo "| Daniel VanWasshenova |" echo "| |" echo "+------------------------------------------------------+" #Source root for c++ programs source /home/lds/src/ROOT/root/bin/thisroot.sh #Get Conditions echo "********************************************************" echo "Target material (${bold}LH2${normal}, NH3, NO) ?" read TargetMaterial echo "Solenoid Field (-1 to ${bold}1${normal}, NO) ?" read SolenoidField echo "Torus Field (${bold}-1${normal} to 1) ?" read TorusField echo "Incident Electron Energy (GeV) ?" read IncidentEnergy echo "Phi Distribution (${bold}Isotropic${normal} or set value) ?" read PhiDistribution echo "GEMC Version (4 or ${bold}6${normal}) ?" read GEMCversion echo "Shield Status (${bold}In${normal}/Out) ?" read ShieldStatus if [ $ShieldStatus = "In" ] then echo "FT Status (ON/${bold}OFF${normal}) ?" read FTStatus echo "Beamline Status (${bold}In${normal}/Out) ?" read BeamlineStatus echo "VacuumLine Status (${bold}In${normal}/Out) ?" read VacuumLineStatus echo "CadBeamline Status (${bold}In${normal}/Out) ?" read CadBeamlineStatus nameOFpath="${TargetMaterial}"Tar_"${SolenoidField}"Sol_"${TorusField}"Tor_"${IncidentEnergy}"GeV_"${PhiDistribution}"Phi_v2_"${GEMCversion}"_Shield"${ShieldStatus}"_FT"${FTStatus}"_Beamline"${BeamlineStatus}"_VacuumLine"${VacuumLineStatus}"_CadBeamline"${CadBeamlineStatus}" fi if [ $ShieldStatus = "Out" ] then nameOFpath="${TargetMaterial}"Tar_"${SolenoidField}"Sol_"${TorusField}"Tor_"${IncidentEnergy}"GeV_"${PhiDistribution}"Phi_v2_"${GEMCversion}"_Shield"${ShieldStatus}" FTStatus="x" BeamlineStatus="x" VacuumLineStatus="x" CadBeamlineStatus="x" fi #Make directory echo "Creating directory "${nameOFpath} mkdir ${nameOFpath} echo "*********************************************************" #Copy needed files to directory cp gcard_builder.C ${nameOFpath} cp LUND_Spread_IsotropicPhi.C ${nameOFpath} cp Block_builder.C ${nameOFpath} cp submit_builder.C ${nameOFpath} #Move into directory cd ${nameOFpath} #Execute LUND creation file echo "Creating LUND files......" root -l -b -q LUND_Spread_IsotropicPhi.C #Move LUND file into directory named path mv LUND_Spread_IsotropicPhi.LUND ${nameOFpath}.LUND #Split LUND file split -d -l 3000 -a 3 ${nameOFpath}.LUND ${nameOFpath}_ #Name these components LUND files find . -type f ! -name "*.*" -exec mv {} {}.LUND \; #Place the LUND files in individual directories find . -name "*.LUND" -exec sh -c 'mkdir "${1%.*}" ; mv "$1" "${1%.*}" ' _ {} \; #Execute gcard builder and place gcards in each directory echo "*********************************************************" echo "Building specific gcards....." root -l -b -q 'gcard_builder.C("'${TargetMaterial}'","'${SolenoidField}'","'${TorusField}'","'${IncidentEnergy}'","'${PhiDistribution}'","'${GEMCversion}'","'${ShieldStatus}'","'${FTStatus}'","'${BeamlineStatus}'","'${VacuumLineStatus}'","'${CadBeamlineStatus}'")' echo "Creating submit files........" mkdir submit root -l -b -q 'submit_builder.C("'${nameOFpath}'")' root -l -b -q Block_builder.C cd submit echo "Changed directory to:${PWD}" chmod +x submit* chmod +x Block* #Open screen enviroments to run GEMC for each Block(10 sets of submits at 1000 events each) echo "" echo "*********************************************************" screen -dmS zeroth tcsh screen -dmS first tcsh screen -dmS second tcsh screen -dmS third tcsh if [ $PhiDistribution = "Isotropic" ] then screen -dmS fourth tcsh screen -dmS fifth tcsh screen -dmS sixth tcsh screen -dmS seventh tcsh screen -dmS eighth tcsh screen -dmS ninth tcsh screen -dmS tenth tcsh fi #Allow enough time for screens to open sleep 10 screen -S zeroth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S first -X stuff "source ~/src/CLAS/GEMC/setup " screen -S second -X stuff "source ~/src/CLAS/GEMC/setup " screen -S third -X stuff "source ~/src/CLAS/GEMC/setup " if [ $PhiDistribution = "Isotropic" ] then screen -S fourth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S fifth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S sixth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S seventh -X stuff "source ~/src/CLAS/GEMC/setup " screen -S eighth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S ninth -X stuff "source ~/src/CLAS/GEMC/setup " screen -S tenth -X stuff "source ~/src/CLAS/GEMC/setup " fi #Allow time for setup to finish sleep 10 echo "CREATING SCREEN: Name" echo "screen: zeroth" screen -S zeroth -X stuff "./Block000.csh " echo "screen: first" screen -S first -X stuff "./Block001.csh " echo "screen: second" screen -S second -X stuff "./Block002.csh " echo "screen: third" screen -S third -X stuff "./Block003.csh " if [ $PhiDistribution = "Isotropic" ] then echo "screen: fourth" screen -S fourth -X stuff "./Block004.csh " echo "screen: fifth" screen -S fifth -X stuff "./Block005.csh " echo "screen: sixth" screen -S sixth -X stuff "./Block006.csh " echo "screen: seventh" screen -S seventh -X stuff "./Block007.csh " echo "screen: eighth" screen -S eighth -X stuff "./Block008.csh " echo "screen: ninth" screen -S ninth -X stuff "./Block009.csh " echo "screen: tenth" screen -S tenth -X stuff "./Block010.csh " fi echo "Creating evio files!" touch count.txt Completed=$(numsum count.txt) loopcounter="0" if [ $PhiDistribution = "Isotropic" ] then NumberOfFiles=106 fi if [ $PhiDistribution != "Isotropic" ] then NumberOfFiles=34 fi echo -n "[$Completed %] finished" while [ $Completed -ne $NumberOfFiles ] do Completed=$(numsum count.txt) loopcounter=$((loopcounter+1)) sleep 10 if [ $((loopcounter%5)) -eq 0 ] then Pcent=$( echo "scale=1 ; $Completed / $NumberOfFiles / .01" | bc -l) echo -n "[$Pcent %] finished" fi echo -n "." done echo $Completed" GEMC evio files created" echo "Closing screens" killall screen echo "***********************************************************" echo "" echo "Creating virtual folder on lds2" sshpass -p 'c0d/\2.0' ssh -o StrictHostKeyChecking=no lds@lds2.physics.isu.edu "./first_commands.tcsh" echo "Run evio2Root" sleep 2 sshpass -p 'c0d/\2.0' ssh -o StrictHostKeyChecking=no lds@lds2.physics.isu.edu "./second_commands.tcsh $nameOFpath" sleep 2 sshpass -p 'c0d/\2.0' ssh -o StrictHostKeyChecking=no lds@lds2.physics.isu.edu "./last_commands.tcsh" echo "GEMC Program finished!"