bachelor_thesis/prog/runcards/pp/makefile
2020-05-17 19:37:30 +02:00

58 lines
2.5 KiB
Makefile

SHERPA:=Sherpa
ANALYSIS_DIR:=qqgg_proton
ANALYSIS_NAME:=MC_DIPHOTON_PROTON
ANALYSIS_SO_NAME:=RivetMcDiphotonProton
OUT_DIR:=out
THIS_DIR:=$(dir $(abspath $(firstword $(MAKEFILE_LIST))))
SET_RIVET:=RIVET_ANALYSIS_PATH="$(THIS_DIR)$(ANALYSIS_DIR)"
SHERPA_CMD:=$(SHERPA) "RESULT_DIRECTORY: Results" "ANALYSIS_OUTPUT: analysis"
all: sherpa_xs analysis_cpp analysis
###############################################################################
# Integrate the XS #
###############################################################################
sherpa_xs: $(OUT_DIR)/sherpa_xs
$(OUT_DIR)/sherpa_xs: Sherpa.yaml
cd $(OUT_DIR) && $(SHERPA_CMD) -e 0 -a "" \
| sed 's/\x1b\[[0-9;]*m//g' \
| perl -ne 'while(/.*\s:\s([0-9]+\.[0-9]+(?:e-?[0-9]+)?)\spb\s\+-\s\(\s([0-9]+\.[0-9]+(?:e-?[0-9]+)?).*$$/g){print "$$1\n$$2\n";}' \
| tee sherpa_xs
###############################################################################
# Build Rivet Analysis #
###############################################################################
analysis_cpp: $(ANALYSIS_DIR)/$(ANALYSIS_SO_NAME).so
$(ANALYSIS_DIR)/$(ANALYSIS_SO_NAME).so: $(ANALYSIS_DIR)/$(ANALYSIS_NAME).cc
cd $(ANALYSIS_DIR) \
&& rivet-build $(ANALYSIS_SO_NAME).so $(ANALYSIS_NAME).cc
###############################################################################
# Run Analysis #
###############################################################################
analysis: $(OUT_DIR)/analysis/Analysis.yoda
$(OUT_DIR)/analysis/Analysis.yoda: Sherpa.yaml sherpa_xs $(ANALYSIS_DIR)/$(ANALYSIS_SO_NAME).so
cd $(OUT_DIR) && \
$(SET_RIVET) mpirun --use-hwthread-cpus \
--use-hwthread-cpus $(SHERPA_CMD) "OUTPUT: 0"
cd $(OUT_DIR) && yodamerge *.yoda -o Analysis_all.yoda
cd $(OUT_DIR) && $(SET_RIVET) rivet-mkhtml Analysis_all.yoda -o analysis
cd $(OUT_DIR) && mv Analysis_all.yoda analysis/Analysis.yoda && rm *.yoda
.PHONY: clean
clean:
rm -rf $(OUT_DIR)
rm -f $(ANALYSIS_DIR)/$(ANALYSIS_SO_NAME).so
###############################################################################
# Create Directories and copy Sherpa.yaml #
###############################################################################
$(info $(shell mkdir -p $(OUT_DIR) && echo "Created output directory: $(OUT_DIR)"))
$(info $(shell cp Sherpa.yaml $(OUT_DIR) && echo "Copied Sherpa.yaml"))