bachelor_thesis/prog/runcards/pp/makefile

59 lines
2.5 KiB
Makefile
Raw Normal View History

2020-05-08 10:44:43 +02:00
SHERPA:=Sherpa
2020-05-17 13:11:11 +02:00
ANALYSIS_DIR:=qqgg_proton
ANALYSIS_NAME:=MC_DIPHOTON_PROTON
ANALYSIS_SO_NAME:=RivetMcDiphotonProton
OUT_DIR:=out
2020-05-08 10:44:43 +02:00
2020-05-17 13:11:11 +02:00
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"
2020-05-17 13:45:35 +02:00
all: sherpa_xs analysis_cpp analysis
2020-05-17 13:11:11 +02:00
###############################################################################
# Integrat the XS #
###############################################################################
2020-05-17 13:35:10 +02:00
sherpa_xs: $(OUT_DIR)/sherpa_xs
$(OUT_DIR)/sherpa_xs: Sherpa.yaml
2020-05-17 13:11:11 +02:00
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 #
###############################################################################
2020-05-17 13:35:10 +02:00
analysis: $(OUT_DIR)/analysis/Analysis.yoda
2020-05-17 13:43:47 +02:00
$(OUT_DIR)/analysis/Analysis.yoda: sherpa_xs $(ANALYSIS_DIR)/$(ANALYSIS_SO_NAME).so
2020-05-17 13:11:11 +02:00
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
2020-04-29 14:55:41 +02:00
.PHONY: clean
clean:
2020-05-17 13:11:11 +02:00
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"))