Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Background/config_tutorial.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
backgroundScriptCfg = {

# Setup
'inputWS':"/eos/user/p/pkrueper/STXS3_2025/src/run3hggstxs/classification/multiclassifier_extended_eval17marchon30may_176_finalfits/data/root/Data/ws/allData_data.root", # location of 'allData.root' file
'inputWS':"/eos/cms/store/group/phys_higgs/cmshgg/Run3HggSTXS_working/IA_nov2025/IA_corrected_5dec/data/ws_data/allData_data.root", # location of 'allData.root' file
'cats':'auto', # auto: automatically inferred from input ws
'catOffset':0, # add offset to category numbers (useful for categories from different allData.root files)
'ext':'STXS0', # extension to add to output directory
'ext':'STXS_12', # extension to add to output directory
'year':'combined', # Use combined when merging all years in category (for plots)

# Job submission options
Expand Down
6 changes: 3 additions & 3 deletions Background/test/fTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ RooAbsPdf* getPdf(PdfModelBuilder &pdfsModel, string type, int order, const char
if (type=="Bernstein") return pdfsModel.getBernstein(Form("%s_bern%d",ext,order),order);
else if (type=="Chebychev") return pdfsModel.getChebychev(Form("%s_cheb%d",ext,order),order);
else if (type=="Exponential") return pdfsModel.getExponentialSingle(Form("%s_exp%d",ext,order),order);
else if (type=="PowerLaw") return pdfsModel.getPowerLawSingle(Form("%s_pow%d",ext,order),order);
// else if (type=="PowerLaw") return pdfsModel.getPowerLawSingle(Form("%s_pow%d",ext,order),order);
else if (type=="Laurent") return pdfsModel.getLaurentSeries(Form("%s_lau%d",ext,order),order);
else {
cerr << "[ERROR] -- getPdf() -- type " << type << " not recognised." << endl;
Expand Down Expand Up @@ -484,7 +484,7 @@ void plot(RooRealVar *mass, map<string,RooAbsPdf*> pdfs, RooDataSet *data, strin
int col;
if (i<=6) col=color[i];
else {col=kBlack; style++;}
it->second->plotOn(plot,LineColor(col),LineStyle(style));//,RooFit::NormRange("fitdata_1,fitdata_2"));
// it->second->plotOn(plot,LineColor(col),LineStyle(style));//,RooFit::NormRange("fitdata_1,fitdata_2"));
TObject *pdfLeg = plot->getObject(int(plot->numItems()-1));
std::string ext = "";
if (bestFitPdf==i) ext=" (Best Fit Pdf) ";
Expand Down Expand Up @@ -828,7 +828,7 @@ int main(int argc, char* argv[]){
while (prob<0.05 && order < 7){
//FIXME
RooAbsPdf *bkgPdf = getPdf(pdfsModel,*funcType,order,Form("ftest_pdf_%d_%s",(cat+catOffset),ext.c_str()));
if ((!bkgPdf)){
if ((!bkgPdf)||((*funcType=="PowerLaw")&&(order>1))){
// assume this order is not allowed
order++;
}
Expand Down
7 changes: 5 additions & 2 deletions Combine/RunFits.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def getPdfIndicesFromJson(pdfjson):
if opt.doCustomCrab: job_opts += " --custom-crab %s/src/flashggFinalFit/Combine/custom_crab.py"%os.environ['CMSSW_BASE']
job_opts += " --memory %s"%opt.crabMemory
elif opt.batch == 'condor':
sub_opts = "--sub-opts=\'+JobFlavour = \"%s\""%opt.queue
sub_opts = "--sub-opts=\'+JobFlavour = \"%s\" \n transfer_output_files=\"\" "%opt.queue
if opt.subOpts != "": sub_opts += "\n%s"%opt.subOpts
sub_opts += "\'"
job_opts = "--job-mode condor %s"%sub_opts
Expand All @@ -73,6 +73,9 @@ def getPdfIndicesFromJson(pdfjson):
print(" --> [ERROR] Batch mode (%s) not supported. Leaving"%opt.batch)
leave()
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# job_opts+="\n transfer_output_files = \'\' "
print('now')
print(job_opts)

# Make folder for running fits if does not exist
if not os.path.isdir("runFits%s_%s"%(opt.ext,opt.mode)): os.system("mkdir runFits%s_%s"%(opt.ext,opt.mode))
Expand Down Expand Up @@ -163,7 +166,7 @@ def getPdfIndicesFromJson(pdfjson):
# For 1D scan when profiling other pois
elif _fit.split(":")[0] == "profile1D":
for poi in _fitpois:
fitcmd = "cd runFits%s_%s; source /cvmfs/cms.cern.ch/crab3/crab.sh; combineTool.py --task-name %s_%s -M MultiDimFit -m %s %s --floatOtherPOIs 1 %s -n _%s_%s -P %s --algo grid --points %s --alignEdges 1 --split-points %s %s %s %s %s; cd .."%(opt.ext,opt.mode,_name,poi,opt.mass,d_opts,exp_opts,_name,poi,poi,_points.split(":")[0],_points.split(":")[1],_fit_opts,pdf_opts,common_opts,job_opts)
fitcmd = "cd runFits%s_%s; source /cvmfs/cms.cern.ch/crab3/crab.sh;combineTool.py --task-name %s_%s -M MultiDimFit -m %s %s --floatOtherPOIs 1 %s -n _%s_%s -P %s --algo grid --points %s --alignEdges 1 --split-points %s %s %s %s %s --pre-cmd \"source /eos/user/p/pkrueper/HiggsDNA_and_FinalFits_tutorial24/FF_standalone/src/flashggFinalFit/Combine/test_addition_combine.sh;\"; cd .."%(opt.ext,opt.mode,_name,poi,opt.mass,d_opts,exp_opts,_name,poi,poi,_points.split(":")[0],_points.split(":")[1],_fit_opts,pdf_opts,common_opts,job_opts)
if(os.environ['PWD'].startswith("/eos"))&(opt.batch == "condor")&(not opt.dryRun):
fitcmd = re.sub("; cd ..", " --dry-run; condor_submit -spool condor_%s_%s.sub; cd .."%(_name,poi), fitcmd)
run(fitcmd)
Expand Down
34 changes: 32 additions & 2 deletions Combine/inputs_tutorial/inputs_tutorial_profile1D_syst.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
{
"mu_inclusive":{
"mu_inclusive_statonly":{
"pois":"r",
"fits":"profile1D:statonly:r",
"points":"20:10",
"fit_opts":"--setParameterRanges r=0,2 --saveSpecifiedNuis all --freezeParameters MH,lumiscale "
"fit_opts":"--setParameterRanges r=0,2 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale,allConstrainedNuisances"
},
"mu_inclusive":{
"pois":"r",
"fits":"profile1D:syst:r",
"points":"20:10",
"fit_opts":"--setParameterRanges r=0,2 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale "
},

"mu_ggH_VBF":{
Expand All @@ -13,6 +19,30 @@
"fit_opts":"--saveInactivePOI 1 --setParameterRanges r_ggH=0,3:r_VBF=0,5 --saveSpecifiedNuis all --freezeParameters MH"
},
"mu_STXS0":{
"pois":"r_GG2H,r_QQ2HQQ,r_WH2HLNU,r_ZH2HLL,r_TTH,r_TH",
"fits":"profile1D:syst:r_GG2H,r_QQ2HQQ,r_WH2HLNU,r_ZH2HLL,r_TTH,r_TH",
"points":"40:40",
"fit_opts":"--saveInactivePOI 1 --setParameters r_GG2H=1,r_QQ2HQQ=1,r_WH2HLNU=1,r_ZH2HLL=1,r_TTH=1,r_TH=1 --setParameterRanges r_GG2H=0,3:r_QQ2HQQ=0,3:r_WH2HLNU=0,3:r_ZH2HLL=0,3:r_TTH=0,3:r_TH=0,3 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale"
},
"mu_STXS0_statonly":{
"pois":"r_GG2H,r_QQ2HQQ,r_WH2HLNU,r_ZH2HLL,r_TTH,r_TH",
"fits":"profile1D:statonly:r_GG2H,r_QQ2HQQ,r_WH2HLNU,r_ZH2HLL,r_TTH,r_TH",
"points":"40:40",
"fit_opts":"--saveInactivePOI 1 --setParameters r_GG2H=1,r_QQ2HQQ=1,r_WH2HLNU=1,r_ZH2HLL=1,r_TTH=1,r_TH=1 --setParameterRanges r_GG2H=0,3:r_QQ2HQQ=0,3:r_WH2HLNU=0,3:r_ZH2HLL=0,3:r_TTH=0,3:r_TH=0,3 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale,allConstrainedNuisances"
},
"mu_STXS1P2_PROTO":{
"pois":"r_GG2H_PTH_GT200,r_GG2H_0J_PTH_0_10,r_GG2H_0J_PTH_GT10,r_GG2H_1J_PTH_0_60,r_GG2H_1J_PTH_60_120,r_GG2H_1J_PTH_120_200,r_GG2H_GE2J_MJJ_0_350_PTH_0_60,r_GG2H_GE2J_MJJ_0_350_PTH_60_120,r_GG2H_GE2J_MJJ_0_350_PTH_120_200,r_GG2H_MJJ_GT350_PTH_0_200,r_QQ2HQQ_REST,r_QQ2HQQ_GE2J_MJJ_60_120,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200,r_TTH_PTH_0_120,r_TTH_PTH_GT120,r_TH,r_WH2HLNU_PTV_0_150,r_WH2HLNU_PTV_GT150,r_ZH2HLL",
"fits":"profile1D:syst:r_GG2H_PTH_GT200,r_GG2H_0J_PTH_0_10,r_GG2H_0J_PTH_GT10,r_GG2H_1J_PTH_0_60,r_GG2H_1J_PTH_60_120,r_GG2H_1J_PTH_120_200,r_GG2H_GE2J_MJJ_0_350_PTH_0_60,r_GG2H_GE2J_MJJ_0_350_PTH_60_120,r_GG2H_GE2J_MJJ_0_350_PTH_120_200,r_GG2H_MJJ_GT350_PTH_0_200,r_QQ2HQQ_REST,r_QQ2HQQ_GE2J_MJJ_60_120,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200,r_TTH_PTH_0_120,r_TTH_PTH_GT120,r_TH,r_WH2HLNU_PTV_0_150,r_WH2HLNU_PTV_GT150,r_ZH2HLL",
"points":"40:40",
"fit_opts":"--saveInactivePOI 1 --setParameters r_GG2H_PTH_GT200=1,r_GG2H_0J_PTH_0_10=1,r_GG2H_0J_PTH_GT10=1,r_GG2H_1J_PTH_0_60=1,r_GG2H_1J_PTH_60_120=1,r_GG2H_1J_PTH_120_200=1,r_GG2H_GE2J_MJJ_0_350_PTH_0_60=1,r_GG2H_GE2J_MJJ_0_350_PTH_60_120=1,r_GG2H_GE2J_MJJ_0_350_PTH_120_200=1,r_GG2H_MJJ_GT350_PTH_0_200=1,r_QQ2HQQ_REST=1,r_QQ2HQQ_GE2J_MJJ_60_120=1,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200=1,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200=1,r_TTH_PTH_0_120=1,r_TTH_PTH_GT120=1,r_TH=1,r_WH2HLNU_PTV_0_150=1,r_WH2HLNU_PTV_GT150=1,r_ZH2HLL=1 --setParameterRanges r_GG2H_PTH_GT200=0,3:r_GG2H_0J_PTH_0_10=0,3:r_GG2H_0J_PTH_GT10=0,3:r_GG2H_1J_PTH_0_60=0,3:r_GG2H_1J_PTH_60_120=0,3:r_GG2H_1J_PTH_120_200=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_0_60=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_60_120=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_120_200=0,3:r_GG2H_MJJ_GT350_PTH_0_200=0,3:r_QQ2HQQ_REST=0,3:r_QQ2HQQ_GE2J_MJJ_60_120=0,3:r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200=0,3:r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200=0,3:r_TTH_PTH_0_120=0,3:r_TTH_PTH_GT120=0,3:r_TH=0,3:r_WH2HLNU_PTV_0_150=0,3:r_WH2HLNU_PTV_GT150=0,3:r_ZH2HLL=0,3 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale"
},
"mu_STXS1P2_PROTO_statonly":{
"pois":"r_GG2H_PTH_GT200,r_GG2H_0J_PTH_0_10,r_GG2H_0J_PTH_GT10,r_GG2H_1J_PTH_0_60,r_GG2H_1J_PTH_60_120,r_GG2H_1J_PTH_120_200,r_GG2H_GE2J_MJJ_0_350_PTH_0_60,r_GG2H_GE2J_MJJ_0_350_PTH_60_120,r_GG2H_GE2J_MJJ_0_350_PTH_120_200,r_GG2H_MJJ_GT350_PTH_0_200,r_QQ2HQQ_REST,r_QQ2HQQ_GE2J_MJJ_60_120,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200,r_TTH_PTH_0_120,r_TTH_PTH_GT120,r_TH,r_WH2HLNU_PTV_0_150,r_WH2HLNU_PTV_GT150,r_ZH2HLL",
"fits":"profile1D:statonly:r_GG2H_PTH_GT200,r_GG2H_0J_PTH_0_10,r_GG2H_0J_PTH_GT10,r_GG2H_1J_PTH_0_60,r_GG2H_1J_PTH_60_120,r_GG2H_1J_PTH_120_200,r_GG2H_GE2J_MJJ_0_350_PTH_0_60,r_GG2H_GE2J_MJJ_0_350_PTH_60_120,r_GG2H_GE2J_MJJ_0_350_PTH_120_200,r_GG2H_MJJ_GT350_PTH_0_200,r_QQ2HQQ_REST,r_QQ2HQQ_GE2J_MJJ_60_120,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200,r_TTH_PTH_0_120,r_TTH_PTH_GT120,r_TH,r_WH2HLNU_PTV_0_150,r_WH2HLNU_PTV_GT150,r_ZH2HLL",
"points":"40:40",
"fit_opts":"--saveInactivePOI 1 --setParameters r_GG2H_PTH_GT200=1,r_GG2H_0J_PTH_0_10=1,r_GG2H_0J_PTH_GT10=1,r_GG2H_1J_PTH_0_60=1,r_GG2H_1J_PTH_60_120=1,r_GG2H_1J_PTH_120_200=1,r_GG2H_GE2J_MJJ_0_350_PTH_0_60=1,r_GG2H_GE2J_MJJ_0_350_PTH_60_120=1,r_GG2H_GE2J_MJJ_0_350_PTH_120_200=1,r_GG2H_MJJ_GT350_PTH_0_200=1,r_QQ2HQQ_REST=1,r_QQ2HQQ_GE2J_MJJ_60_120=1,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200=1,r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200=1,r_TTH_PTH_0_120=1,r_TTH_PTH_GT120=1,r_TH=1,r_WH2HLNU_PTV_0_150=1,r_WH2HLNU_PTV_GT150=1,r_ZH2HLL=1 --setParameterRanges r_GG2H_PTH_GT200=0,3:r_GG2H_0J_PTH_0_10=0,3:r_GG2H_0J_PTH_GT10=0,3:r_GG2H_1J_PTH_0_60=0,3:r_GG2H_1J_PTH_60_120=0,3:r_GG2H_1J_PTH_120_200=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_0_60=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_60_120=0,3:r_GG2H_GE2J_MJJ_0_350_PTH_120_200=0,3:r_GG2H_MJJ_GT350_PTH_0_200=0,3:r_QQ2HQQ_REST=0,3:r_QQ2HQQ_GE2J_MJJ_60_120=0,3:r_QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200=0,3:r_QQ2HQQ_GE2J_MJJ_GT350_PTH_0_200=0,3:r_TTH_PTH_0_120=0,3:r_TTH_PTH_GT120=0,3:r_TH=0,3:r_WH2HLNU_PTV_0_150=0,3:r_WH2HLNU_PTV_GT150=0,3:r_ZH2HLL=0,3 --saveSpecifiedNuis all --freezeParameters MH,thQ_scale,thW_scale,allConstrainedNuisances"
},
"mu_STXS0_old":{
"pois":"r_gghtruth,r_tthtruth,r_thtruth,r_whltruth,r_zhltruth,r_vbftruth",
"fits":"profile1D:statonly:r_gghtruth,r_tthtruth,r_thtruth,r_whltruth,r_zhltruth,r_vbftruth",
"points":"40:40",
Expand Down
Loading