#!/bin/bash if [ -z "$MacroDir" ]; then if [ -z "$1" ]; then echo 'no macro directory specified' exit 1 else MacroDir=$1 fi fi if [ -z "$UnpackDir" ]; then if [ -z "$2" ]; then echo 'no unpack directory specified' exit 1 else UnpackDir=$2 fi fi if [ -z "$CluDir" ]; then if [ -z "$3" ]; then echo 'no clu directory specified' exit 1 else CluDir=$3 fi fi if [ -z "$AnaDir" ]; then if [ -z "$4" ]; then echo 'no ana directory specified' exit 1 else AnaDir=$4 fi fi if [ -z "$SimulationDir" ]; then if [ -z "$5" ]; then echo 'no simulation directory specified' exit 1 else SimulationDir=$5 fi fi if [ -z "$iNDigiFiles" ]; then if [ -z "$6" ]; then echo 'no number of digi files specified' exit 1 else iNDigiFiles=$6 fi fi if [ -z "$MCFileName" ]; then if [ -z "$7" ]; then echo 'no MC file name specified' exit 1 else MCFileName=$7 fi fi if [ -z "$iNMCFiles" ]; then if [ -z "$8" ]; then echo 'no number of MC files specified' exit 1 else iNMCFiles=$8 fi fi if [ -z "$cGeometry" ]; then if [ -z "$9" ]; then echo 'no geometry tag specified' exit 1 else cGeometry=$9 fi fi if [ -z "$iDut" -o "${#iDut}" != "3" ]; then if [ -z "${10}" -o "${#10}" != "3" ]; then echo 'no valid Dut specified' exit 1 else iDut=${10} fi fi if [ -z "$iMRef" -o "${#iMRef}" != "3" ]; then if [ -z "${11}" -o "${#11}" != "3" ]; then echo 'no valid MRef specified' exit 1 else iMRef=${11} fi fi if [ -z "$iBRef" -o "${#iBRef}" != "3" ]; then if [ -z "${12}" -o "${#12}" != "3" ]; then echo 'no valid BRef specified' exit 1 else iBRef=${12} fi fi if [ -z "$iSel2" -o "${#iSel2}" != "3" ]; then if [ -z "${13}" -o "${#13}" != "3" ]; then echo 'no valid Sel2 specified' exit 1 else iSel2=${13} fi fi if [ -z "$dScaleFactor" ]; then if [ -z "${14}" ]; then echo 'no scale factor specified' exit 1 else dScaleFactor=${14} fi fi if [ -z "$bIdealCalibration" ]; then if [ -z "${15}" ]; then echo 'no calibration flag specified' exit 1 else bIdealCalibration=${15} fi fi if [ -z "$bHeavyIonCollisions" ]; then if [ -z "${16}" ]; then echo 'no collision flag specified' exit 1 else bHeavyIonCollisions=${16} fi fi if [ -z "$bSeparateHitFile" ]; then if [ -z "${17}" ]; then echo 'no hit file flag specified' exit 1 else bSeparateHitFile=${17} fi fi if [ -z "$bIdealClustering" ]; then if [ -z "${18}" ]; then echo 'no clustering flag specified' exit 1 else bIdealClustering=${18} fi fi if [ -z "$bAnalysisMCQA" ]; then if [ -z "${19}" ]; then echo 'no analysis MC QA flag specified' exit 1 else bAnalysisMCQA=${19} fi fi if [ -z "$cSetupName" ]; then if [ -z "${20}" ]; then echo 'no setup specified' exit 1 else cSetupName=${20} fi fi if [ -z "$bSimData" ]; then if [ -z "${21}" ]; then echo 'no data type specified' exit 1 else bSimData=${21} fi fi if [ -z "$iCalibrationMode" ]; then if [ -z "${22}" ]; then echo 'no calibration mode specified' exit 1 else iCalibrationMode=${22} fi fi if [ -z "$iAnalysisMode" ]; then if [ -z "${23}" ]; then echo 'no analysis mode specified' exit 1 else iAnalysisMode=${23} fi fi if [ -z "$bDifferentialTISAnalysis" ]; then if [ -z "${24}" ]; then echo 'no TIS mode specified' exit 1 else bDifferentialTISAnalysis=${24} fi fi if [ -z "$dTimeInSpill" ]; then if [ -z "${25}" ]; then echo 'no time in spill specified' exit 1 else dTimeInSpill=${25} fi fi if [ -z "$iNTISBins" ]; then if [ -z "${26}" ]; then echo 'no N TIS bins specified' exit 1 else iNTISBins=${26} fi fi if [ -z "$dChi2SHT" ]; then if [ -z "${27}" ]; then echo 'no SHT chi2 specified' exit 1 else dChi2SHT=${27} fi fi if [ -z "$dChi2SHTNN" ]; then if [ -z "${28}" ]; then echo 'no SHT NN chi2 specified' exit 1 else dChi2SHTNN=${28} fi fi if [ -z "$iTISBin" ]; then if [ -z "${29}" ]; then echo 'no TIS bin specified' exit 1 else iTISBin=${29} fi fi if [ -z "$VMCWORKDIR" ]; then echo 'no ROOT environment available' exit 1 fi if [ ! -d "${MacroDir}" ]; then echo 'macro directory does not exist' exit 1 fi if [ ! -d "${UnpackDir}" -o ! -d "${CluDir}" -o ! -d "${AnaDir}" ]; then echo 'unpack/clu/ana directory does not exist' exit 1 fi if [ "${iAnalysisMode}" == "1" ]; then WorkDir=${AnaDir}/FindBRefPeak iCorMode=10 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ cd ${WorkDir} root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}')' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root WorkDir=${AnaDir}/FindSHTPeaks iCorMode=20 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ InputCalibFile=${AnaDir}/FindBRefPeak/calib_ana.cor_out.root if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/calib_ana.cor_in.root cd ${WorkDir} root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}')' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root elif [ "${iAnalysisMode}" == "2" ]; then WorkDir=${AnaDir}/FindChi2Sigmas iCorMode=0 iExtSigMode=2 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ cp -v ${MacroDir}/find_chi2_weights.C ${WorkDir}/ InputCalibFile=${AnaDir}/../FindSHTPeaks/calib_ana.cor_out.root if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/calib_ana.cor_in.root cd ${WorkDir} root -b -q './find_chi2_weights.C+(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ 1000000.,'${dChi2SHT}','${iExtSigMode}',".")' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root WorkDir=${AnaDir}/FindSHTNNPeaks if [ "${bSimData}" == "1" ]; then SHTNNCalList=(30 9 30) else SHTNNCalList=(30 52 52 5 6 9 30) fi iStep=0 iStepLast=0 for iCorMode in ${SHTNNCalList[@]} do ((iStepLast = ${iStep})) ((iStep += 1)) mkdir -p ${WorkDir}/Iter${iStep} cp -v ${MacroDir}/.rootrc ${WorkDir}/Iter${iStep} cp -v ${MacroDir}/rootlogon.C ${WorkDir}/Iter${iStep} cp -v ${MacroDir}/ana_hits.C ${WorkDir}/Iter${iStep} if [ "${iStep}" == "1" ]; then InputCalibFile=${AnaDir}/FindChi2Sigmas/calib_ana.cor_out.root else InputCalibFile=${WorkDir}/Iter${iStepLast}/calib_ana.cor_out.root fi if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/Iter${iStep}/calib_ana.cor_in.root cd ${WorkDir}/Iter${iStep} root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ 1000000.,'${dChi2SHT}')' rm ${WorkDir}/Iter${iStep}/all_* rm ${WorkDir}/Iter${iStep}/hits.out.root done WorkDir=${AnaDir}/FindSHTNNPeaksTIS iCorMode=40 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ InputCalibFile=${AnaDir}/FindSHTNNPeaks/Iter${iStep}/calib_ana.cor_out.root if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/calib_ana.cor_in.root cd ${WorkDir} root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ 1000000.,'${dChi2SHT}')' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root elif [ "${iAnalysisMode}" == "3" ]; then WorkDir=${AnaDir}/FindChi2Sigmas iCorMode=0 iExtSigMode=1 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ cp -v ${MacroDir}/find_chi2_weights.C ${WorkDir}/ if [ "${iTISBin}" != "0" ]; then InputCalibFile=${AnaDir}/../../FindSHTNNPeaksTIS/calib_ana.cor_out.root else InputCalibFile=${AnaDir}/../FindSHTNNPeaksTIS/calib_ana.cor_out.root fi if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/calib_ana.cor_in.root cd ${WorkDir} root -b -q './find_chi2_weights.C+(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ '${dChi2SHTNN}','${dChi2SHT}','${iExtSigMode}',".",'${iTISBin}')' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root elif [ "${iAnalysisMode}" == "4" ]; then WorkDir=${AnaDir}/TISIntegral iCorMode=0 iExtSigMode=0 mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ cp -v ${MacroDir}/merge_TIS_calib.C ${WorkDir}/ cd ${WorkDir} if [ "${bDifferentialTISAnalysis}" == "0" ]; then InputCalibFile=${AnaDir}/../FindChi2Sigmas/calib_ana.cor_out.root if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/calib_ana.cor_in.root else root -b -q './merge_TIS_calib.C('${iNTISBins}')' fi root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ '${dChi2SHTNN}','${dChi2SHT}','${iExtSigMode}',0.,0.,0.,kFALSE)' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root if [ "${bDifferentialTISAnalysis}" == "1" ]; then WorkDir=${AnaDir}/TISDifferential mkdir ${WorkDir} cp -v ${MacroDir}/.rootrc ${WorkDir}/ cp -v ${MacroDir}/rootlogon.C ${WorkDir}/ cp -v ${MacroDir}/ana_hits.C ${WorkDir}/ InputCalibFile=${AnaDir}/TISIntegral/calib_ana.cor_in.root if [ ! -f "${InputCalibFile}" ]; then echo "input calib file ${InputCalibFile} does not exist" exit 1 fi cp -v ${InputCalibFile} ${WorkDir}/ cd ${WorkDir} root -b -q './ana_hits.C(1000000000,'${iCorMode}',"'${UnpackDir}'","'${CluDir}'",\ "'${SimulationDir}'",'${iNDigiFiles}',"'${MCFileName}'",'${iNMCFiles}',\ "'${cGeometry}'","'${cSetupName}'",'${bIdealCalibration}','${bHeavyIonCollisions}',\ '${bIdealClustering}','${bSeparateHitFile}','${bAnalysisMCQA}',\ '${iDut}','${iMRef}','${iBRef}','${iSel2}','${dScaleFactor}','${bSimData}',\ '${iCalibrationMode}',kTRUE,'${dTimeInSpill}','${iNTISBins}',\ '${dChi2SHTNN}','${dChi2SHT}','${iExtSigMode}',0.,0.,0.,kTRUE)' rm ${WorkDir}/all_* rm ${WorkDir}/hits.out.root fi fi