diff --git a/machine_learning_hep/data/data_run3/database_ml_parameters_LcJet_pp.yml b/machine_learning_hep/data/data_run3/database_ml_parameters_LcJet_pp.yml index d3c0f9549e..15ce1a6dbc 100644 --- a/machine_learning_hep/data/data_run3/database_ml_parameters_LcJet_pp.yml +++ b/machine_learning_hep/data/data_run3/database_ml_parameters_LcJet_pp.yml @@ -12,589 +12,934 @@ # along with this program. if not, see . # LcJet_pp: - doml: true - mass: 2.28646 - sel_reco_unp: "fPt>0" - sel_gen_unp: "fPt>0" - sel_cen_unp: null - sel_good_evt_unp: null # "fIsEventReject == 0" - # sel_reco_skim: ["mlPromptScore > 0.96", "mlPromptScore > 0.97", "mlPromptScore > 0.9", "mlPromptScore > 0.85", "mlPromptScore > 0.8", "mlPromptScore > 0.6", null] # (sel_skim_binmin bins) - sel_reco_skim: [null,null,null,null,null,null,null] # (sel_skim_binmin bins) - sel_gen_skim: [null,null,null,null,null,null,null] # (sel_skim_binmin bins) - sel_skim_binmin: [1,2,4,6,8,12,24] # skimming pt bins (sel_skim_binmin bins) - sel_skim_binmax: [2,4,6,8,12,24,48] # skimming pt bins (sel_skim_binmin bins) - var_binning: fPt - dofullevtmerge: false - var_cand: fCandidateSelFlag - # var_swap: fIsCandidateSwapped - bitmap_sel: - var_name: fFlagMcMatchRec - var_name_gen: fFlagMcMatchGen - var_name_origgen: fOriginMcGen - var_name_origrec: fOriginMcRec - var_isstd: isstd - var_ismcsignal: ismcsignal - var_ismcprompt: ismcprompt - var_ismcfd: ismcfd - var_ismcbkg: ismcbkg - var_ismcrefl: ismcrefl - isstd : [[1],[]] - ismcsignal: [[1],[]] - ismcprompt: [[0],[]] - ismcfd: [[1],[]] - ismcbkg: [[],[1]] - ismcrefl: [[1],[1]] # probably missing from tree creator - - #region dfs - dfs: - read: - evtorig: - level: all - index: fIndexHf3PCollBases - trees: - O2hf3pcollbase: [fNumContrib] - extra: - fIsEventReject: 0 - collcnt: - trees: - O2collcount: [fReadCounts, fReadCountsWithTVX, fReadCountsWithTVXAndZVertexAndSel8, fReadCountsWithTVXAndZVertexAndSelMC] - bccnt: - trees: - O2bccount: [fReadCountsWithTVX, fReadCountsWithTVXAndNoTFB, fReadCountsWithTVXAndNoTFBAndNoITSROFB] - - # collgen: - # level: gen - # index: fIndexLcCMCPJetCOs - # trees: - # O2lccmcpjetco: [fPosZ, fCentrality, fEventSel] - jetgen: - level: gen - index: fIndexLCCMCPJETOS - trees: - O2hf3ppbase: [fPt, fY, fEta, fPhi, fFlagMcMatchGen, fOriginMcGen] - O2lccmcpjeto: [fIndexLCCMCPJETCOS, fIndexHF3PPBASES_0, fJetPt, fJetPhi, fJetEta, fJetNConstituents, fJetR] - O2lccmcpjetmo: [fIndexArrayLCCMCDJETOS_hf, fIndexArrayLCCMCDJETOS_geo, fIndexArrayLCCMCDJETOS_pt] - O2lccmcpjetsso: [fEnergyMother, fPtLeading, fPtSubLeading, fTheta, fNSub2DR, fNSub1, fNSub2] - tags: - isstd: {var: fFlagMcMatchGen, req: [[1],[]]} - ismcsignal: {var: fFlagMcMatchGen, req: [[1],[]], abs: true} - ismcbkg: {var: fFlagMcMatchGen, req: [[],[1]], abs: true} - ismcprompt: {var: fOriginMcGen, req: [[0],[]]} - ismcfd: {var: fOriginMcGen, req: [[1],[]]} - filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut - - colldet: - level: det - index: fIndexLCCMCDJETCOS - trees: - O2lccmcdjetco: [fPosZ, fCentrality, fEventSel] - jetdet: - level: det - index: fIndexLCCMCDJETOS - trees: - O2hf3pbase: [fIndexHf3PCollBases, fPt, fY, fEta, fPhi, fM] - O2hf3pmc: [fFlagMcMatchRec, fOriginMcRec] - O2hf3ppar: [fCpa, fCpaXY, fChi2PCA, - fDecayLength, fDecayLengthXY, fDecayLengthNormalised, fDecayLengthXYNormalised, - fImpactParameter0, fImpactParameter1, fImpactParameter2, - fImpactParameterNormalised0, fImpactParameterNormalised1, fImpactParameterNormalised2, - fPtProng0, fPtProng1, fPtProng2] - O2hf3ppare: [fErrorDecayLength, fErrorDecayLengthXY, - fErrorImpactParameter0, fErrorImpactParameter1] - O2hf3psel: [fCandidateSelFlag] - O2hf3pml: [fMlScores] - O2lccmcdjeto: [fIndexLCCMCDJETCOS, fIndexHF3PBASES_0, fJetPt, fJetPhi, fJetEta, fJetNConstituents, fJetR] - O2lccmcdjetmo: [fIndexArrayLCCMCPJETOS_hf, fIndexArrayLCCMCPJETOS_geo, fIndexArrayLCCMCPJETOS_pt] - O2lccmcdjetsso: [fEnergyMother, fPtLeading, fPtSubLeading, fTheta, fNSub2DR, fNSub1, fNSub2] - tags: - isstd: {var: fFlagMcMatchRec, req: [[1],[]]} - ismcsignal: {var: fFlagMcMatchRec, req: [[1],[]], abs: true} - ismcbkg: {var: fFlagMcMatchRec, req: [[],[1]], abs: true} - ismcprompt: {var: fOriginMcRec, req: [[0],[]]} - ismcfd: {var: fOriginMcRec, req: [[1],[]]} - extract_component: - - {var: fMlScores, newvar: mlPromptScore, component: 1} - filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut - # swap: {cand: fCandidateSelFlag, var_swap: fIsCandidateSwapped, vars: [ismcsignal, ismcprompt, icmcfd]} - - colldata: - level: data - index: fIndexLCCJETCOS - trees: - O2lccjetco: [fPosZ, fCentrality, fEventSel] - jetdata: - level: data - index: fIndexLCCJETOS - trees: - O2hf3pbase: [fIndexHf3PCollBases, fPt, fY, fEta, fPhi, fM] - O2hf3ppar: [fCpa, fCpaXY, fChi2PCA, - fDecayLength, fDecayLengthXY, fDecayLengthNormalised, fDecayLengthXYNormalised, - fImpactParameter0, fImpactParameter1, fImpactParameter2, - fImpactParameterNormalised0, fImpactParameterNormalised1, fImpactParameterNormalised2, - fPtProng0, fPtProng1, fPtProng2] - O2hf3ppare: [fErrorDecayLength, fErrorDecayLengthXY, - fErrorImpactParameter0, fErrorImpactParameter1] - O2hf3psel: [fCandidateSelFlag] - O2hf3pml: [fMlScores] - O2lccjeto: [fIndexLCCJETCOS, fIndexHF3PBASES_0, - fJetPt, fJetPhi, fJetEta, fJetNConstituents, fJetR] - O2lccjetsso: [fIndexLCCJETOS, fEnergyMother, fPtLeading, fPtSubLeading, fTheta, fNSub2DR, fNSub1, fNSub2] - extract_component: - - {var: fMlScores, newvar: mlPromptScore, component: 1} - filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut - - merge: - # - {base: jetgen, ref: collgen} - - {base: jetdet, ref: colldet} - - {base: jetdata, ref: colldata} - - write: - jetgen: - level: gen - file: AnalysisResultsGen.parquet - jetdet: - level: det - file: AnalysisResultsReco.parquet - jetdata: - level: data - file: AnalysisResultsReco.parquet - evtorig: - level: all - file: AnalysisResultsEvtOrig.parquet - evt: - level: all - source: evtorig - file: AnalysisResultsEvt.parquet - filter: "fIsEventReject == 0" - collcnt: - level: all - file: AnalysisResultsCollCnt.parquet - bccnt: - level: all - file: AnalysisResultsBcCnt.parquet - - variables: - var_all: [fIndexCollisions, fFlagMcMatchRec, fCandidateSelFlag, fOriginMcRec, fIsCandidateSwapped, fNProngsContributorsPV, - fY, fEta, fPt, fCpa, fCpaXY, fM, fChi2PCA, fDecayLength, fDecayLengthXY, - fPtProng0, fPtProng1, fPtProng2, fImpactParameter0, fImpactParameter1, fImpactParameter2, - fNSigTpcPi0, fNSigTpcPr0, fNSigTpcKa1, fNSigTpcPi2, fNSigTpcPr2, - fNSigTofPi0, fNSigTofPr0, fNSigTofKa1, fNSigTofPi2, fNSigTofPr2, - fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2] - var_training: [[fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2], - [fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2], - [fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2], - [fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2], - [fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2], - [fImpactParameter0, fImpactParameter1, fImpactParameter2, fCpa, fChi2PCA, fDecayLength, fDecayLengthXY, fNSigTpcTofPi0, fNSigTpcTofPr0, fNSigTpcTofKa1, fNSigTpcTofPi2, fNSigTpcTofPr2]] - # sel_skim_binmin bins - var_boundaries: [fCosThetaStar, fPtProng] - var_correlation: - - [fCosThetaStar] # TODO: update - - [fPtProng0] - var_signal: signal - var_class: class - var_inv_mass: fM - var_y: fY - var_evt_sel: fIsEventReject - var_cuts: - - [fPtProng0, lt, null] - - [fPtProng1, lt, null] - - plot_options: - prob_cut_scan: - fPtProng0: - xlim: - - 0 - - 1 - fPtProng1: - xlim: - - 0 - - 1 - eff_cut_scan: - fPtProng0: - xlim: - - 0 - - 1 - fPtProng1: - xlim: - - 0 - - 1 - - files_names: - namefile_unmerged_tree: AO2D.root - namefile_reco: AnalysisResultsReco.parquet - namefile_evt: AnalysisResultsEvt.parquet - namefile_collcnt: AnalysisResultsCollCnt.parquet - namefile_bccnt: AnalysisResultsBcCnt.parquet - namefile_evtvalroot: AnalysisResultsROOTEvtVal.root - namefile_evtorig: AnalysisResultsEvtOrig.parquet - namefile_gen: AnalysisResultsGen.parquet - namefile_reco_applieddata: AnalysisResultsRecoAppliedData.parquet - namefile_reco_appliedmc: AnalysisResultsRecoAppliedMC.parquet - namefile_mcweights: mcweights.root - treeoutput: "Lctree" - histofilename: "masshisto.root" - efffilename: "effhisto.root" - respfilename: "resphisto.root" - crossfilename: "cross_section_tot.root" - resultfilename: "results.root" - - #region multi - multi: - data: - nprocessesparallel: 80 - maxfiles: [-1] #list of periods - chunksizeunp: [100] #list of periods - chunksizeskim: [100] #list of periods - fracmerge: [1.] #list of periods - seedmerge: [12] #list of periods - period: [LHC22o] #list of periods - select_period: [1] - prefix_dir: /data2/MLhep/real/train_257594/ - unmerged_tree_dir: [alice] #list of periods - pkl: ['${USER}/lcjet/pkl'] #list of periods - pkl_skimmed: ['${USER}/lcjet/pklsk'] #list of periods - pkl_skimmed_merge_for_ml: ['${USER}/lcjet/pklskml'] #list of periods - pkl_skimmed_merge_for_ml_all: '${USER}/lcjet/pp_data_mltot' - pkl_evtcounter_all: '${USER}/lcjet/pp_data_evttot' - mcreweights: [../Analyses] #list of periods - mc: - nprocessesparallel: 80 - maxfiles: [-1] #list of periods - chunksizeunp: [100] #list of periods - chunksizeskim: [1000] #list of periods - fracmerge: [1.] #list of periods - seedmerge: [12] #list of periods - period: [LHC24d3b] #list of periods - select_period: [1] - prefix_dir: /data2/MLhep/sim/train_257383/ - unmerged_tree_dir: [alice] - pkl: ['${USER}/lcjet/pkl'] #list of periods - pkl_skimmed: ['${USER}/lcjet/pklsk'] #list of periods - pkl_skimmed_merge_for_ml: ['${USER}/lcjet/pklskml'] #list of periods - pkl_skimmed_merge_for_ml_all: '${USER}/lcjet/pp_mc_prod_mltot' - pkl_evtcounter_all: '${USER}/lcjet/pp_mc_prod_evttot' - mcreweights: [../Analyses] #list of periods - - ml: - evtsel: fIsEventReject == 0 - triggersel: - data: null - mc: null - - nbkg: 500000 - nsig: 500000 - mult_bkg: [1,1,1,1,1,1,1] - nclasses: [20000, 20000] - sampletags: [0, 1] - equalise_sig_bkg: True - # sampletagforsignal: 1 - # sampletagforbkg: 0 - sel_ml: [fM < 2.22 or fM > 2.35, ismcsignal == 1 and ismcprompt == 1] - sel_bkg: fM < 2.22 or fM > 2.35 - class_labels: [bkg, sig] - nkfolds: 5 - rnd_shuffle: 12 - rnd_splt: 12 - rnd_all: 12 - test_frac: 0.2 - binmin: [1,2,4,6,8,12,24] # must be equal to sel_skim_binmin (sel_skim_binmin bins) - binmax: [2,4,6,8,12,24,36] # must be equal to sel_skim_binmax (sel_skim_binmin bins) - mltype: BinaryClassification - ncorescrossval: 10 - prefix_dir_ml: '/data2/${USER}/MLhep/' - mlplot: mlplot - mlout: mlout - - opt: - isFONLLfromROOT: true - filename_fonll: 'data/fonll/DmesonLcPredictions_13TeV_y05_FFptDepLHCb_BRpythia8_PDG2020.root' # file with FONLL predictions - fonll_particle: 'hLcpkpipred' - fonll_pred: 'max' # edge of the FONLL prediction - FF: 0.204 # fragmentation fraction - sigma_MB: 57.8e-3 # Minimum Bias cross section (pp) 50.87e-3 [b], 1 for Pb-Pb - Taa: 1 # 23260 [b^-1] in 0-10% Pb-Pb, 3917 [b^-1] in 30-50% Pb-Pb, 1 for pp - BR: 6.24e-2 # branching ratio of the decay Lc -> p K- pi+ - f_prompt: 0.9 # estimated fraction of prompt candidates - bkg_data_fraction: 0.05 # fraction of real data used in the estimation - num_steps: 111 # number of steps used in efficiency and signif. estimation - bkg_function: pol2 # fit function for bkg (among TH1 predefined fit functions, e.g. expo, pol1, pol2, ...) - save_fit: True # save bkg fits with the various cuts on ML output - raahp: [1,1,1,1,1,1,1] # sel_skim_binmin bins - presel_gen_eff: "fPt > 0. and abs(fY) < 0.8" - - mlapplication: - data: - prefix_dir_app: '/data2/${USER}/' - pkl_skimmed_dec: [LHC22pp/MLapplication/prod_LHC22o/skpkldecdata] #list of periods - pkl_skimmed_decmerged: [LHC22pp/MLapplication/prod_LHC22o/skpkldecdatamerged] #list of periods - mc: - prefix_dir_app: '/data2/${USER}/' - pkl_skimmed_dec: [LHC22pp_mc/MLapplication/prod_LHC24d3b/skpkldecmc] #list of periods - pkl_skimmed_decmerged: [LHC22pp_mc/MLapplication/prod_LHC24d3b/skpkldecmcmerged] #list of periods - modelname: xgboost - modelsperptbin: [xgboost_classifierLcpKpi_dfselection_fPt_1.0_2.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_2.0_4.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_4.0_6.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_6.0_8.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_8.0_12.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_12.0_24.0.sav, - xgboost_classifierLcpKpi_dfselection_fPt_12.0_24.0.sav] # sel_skim_binmin bins - probcutpresel: - data: [0.70, 0.70, 0.60, 0.60, 0.40, 0.40, 0.] # sel_skim_binmin bins - mc: [0.70, 0.70, 0.60, 0.60, 0.40, 0.40, 0.] # sel_skim_binmin bins - probcutoptimal: [0.96, 0.97, 0.90, 0.85, 0.80, 0.60, 0.] # sel_skim_binmin bins - - #region analysis - analysis: - anahptspectrum: "LctopKpi" #D0Kpi, DplusKpipi, DstarD0pi, DsKKpi, LctopKpi, LcK0Sp - fd_method: "Nb" #fc, Nb - cctype: "pp" - sigmamb: 57.8e-3 #NB: multiplied by 1e12 before giving to HFPtSpectrum! - inputfonllpred: data/fonll/DmesonLcPredictions_13TeV_y05_FFptDepLHCb_BRpythia8_PDG2020.root - dir_general_plots: '/data2/${USER}/data/analysis_plots' - - jet_obs: &jet_default - sel_an_binmin: [3,4,5,6,7,8,10,12,16] # hadron pt bins (sel_an_binmin bins) - sel_an_binmax: [4,5,6,7,8,10,12,16,24] # hadron pt bins (sel_an_binmin bins) - bins_ptjet: [5, 7, 15, 30, 50] # systematics, TODO: split rec and gen binning - bins_ptjet_eff: [2, 5, 7, 15, 30, 50, 70] # systematics, TODO: split rec and gen binning - cand_collidx: fIndexHf3PCollBases - counter_read_data: fReadCountsWithTVXAndZVertexAndSel8 - counter_read_mc: fReadCountsWithTVXAndZVertexAndSelMC - counter_tvx: fReadCountsWithTVX - xsection_inel: 59.4 # (mb) cross-section of minimum-bias events # used # systematics - lumi_scale_mc: 408 # charm enhancement factor in MC to scale the MC luminosity - branching_ratio: 6.24e-2 # used - - observables: - zg: - bins_gen_fix: [6, -.1, .5] - bins_det_fix: [6, -.1, .5] - label: '#it{z}_{g}' - label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{z}_{g}" - nsd: - bins_gen_fix: [10, -.5, 9.5] - bins_det_fix: [10, -.5, 9.5] - label: '#it{n}_{SD}' - label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{n}_{SD}" - rg: - bins_gen_fix: [11, -.1, 1.] - bins_det_fix: [11, -.1, 1.] - label: '#it{R}_{g}' - label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{R}_{g}" - zpar: - # bins_gen_fix: [10, 0., 1.] - # bins_det_fix: [10, 0., 1.] - bins_gen_var: [0.4, 0.6, 0.7, 0.8, 0.9, 1.] - bins_det_var: [0.4, 0.6, 0.7, 0.8, 0.9, 1.] - label: '#it{z}_{#parallel}' - label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{z}_{#parallel}" - dr: - bins_gen_fix: [10, 0., 1.] - bins_det_fix: [10, 0., 1.] - label: '#Delta#it{r}' - lntheta: - bins_gen_fix: [10, 0., 5.] - bins_det_fix: [10, 0., 5.] - label: '#minusln(#it{#theta})' - arraycols: [3] - lnkt: - bins_gen_fix: [10, -8., 2.] - bins_det_fix: [10, -8., 2.] - label: 'ln(#it{k}_{T}/(GeV/#it{c}))' - arraycols: [3] - lntheta-lnkt: - arraycols: [3, 4] - - mass_roofit: - - level: mc - # per_ptjet: true - components: - sig: - fn: 'Gaussian::peak(m[1., 5.], mean[2.27,2.29], sigma_g1[.01,.005,.035])' - wide: - fn: 'Gaussian::wide(m, mean, expr("n*sigma_g1", n[1.,5.], sigma_g1))' - model: - fn: 'SUM::sig(f_peak[0.,1.]*peak, wide)' - - ptrange: [1., 5.] - range: [2.16, 2.40] - fix_params: ['n', 'f_peak'] - # per_ptjet: true - components: - # sig: - # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.005,.015])' - bkg: - fn: 'Polynomial::bkg(m, {a0[0.2, -3, 3], a1[-0.1, -3, 3], a2[0.1, 0.01, 3]})' - model: - fn: 'SUM::sum(f_sig[0.,1.]*sig, bkg)' - - ptrange: [5., 8.] - range: [2.1, 2.48] - fix_params: ['n', 'f_peak'] - # per_ptjet: true - components: - # sig: - # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.03])' - bkg: - fn: 'Polynomial::bkg(m, {a0[0.2, -3, 3], a1[0.2 , -3, 3], a2[0.2, -3, 3]})' - model: - fn: 'SUM::sum(f_sig[0.,1.]*sig, bkg)' - - range: [2.05, 2.5] - fix_params: ['n', 'f_peak'] - # per_ptjet: true - components: - # sig: - # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.03])' - bkg: - fn: 'Polynomial::bkg(m, {a0[0.2, -3, 3], a1[0.2 , -3, 3], a2[0.2, -3, 3]})' - model: - fn: 'SUM::sum(f_sig[0.,1.]*sig, bkg)' - - #sidesub_per_ptjet: true - sidesub: - - regions: - left: [-5.5, -3.] # systematics - signal: [-2., 2.] # systematics - right: [3., 5.5] # systematics - - mass_fit: - func_sig: 'gaus' - func_bkg: 'expo' - # par_start: - # par_fix: {1: 2.286} - par_constrain: {1: [2.28, 2.29], 2: [.005, .03]} - range: [2.08, 2.48] - mass_fit_lim: [1.9, 2.62] # histogram range of the invariant mass distribution [GeV/c^2] - bin_width: 0.001 # bin width of the invariant mass histogram - n_rebin: 3 # number of mass bins to merge - efficiency: - index_match: fIndexArrayLCCMCPJETOS_hf - extra_cols: ['mlPromptScore'] - correction_method: run3 - - unfolding_iterations: 8 # used, maximum iteration - unfolding_iterations_sel: 5 # used, selected iteration # systematics - unfolding_prior_flatness: 0. # ranges from 0. (no flatness) to 1. (flat) - - fd_folding_method: 3d - fd_root: '/data2/vkucera/powheg/trees_powheg_fd_F05_R05.root' - fd_parquet: '/data2/jklein/powheg/Lc_powheg_fd_F05_R05.parquet' - - proc_type: Jets - useperiod: [1] #list of periods - usejetptbinned_deff: false - doeff_resp: true #efficiency correction for the response matrix - unmatched_gen: true - latexnamehadron: "#Lambda_{c}^{#plus}" - latexnamedecay: "pK#pi" - var_binning2: pt_jet - var_binning2_gen: pt_gen_jet - latexbin2var: "#it{p}_{T}^{jet ch}" - sel_binmin2_reco: [7.0,15.0,30.0] # rec jet pt bins (sel_binmin2_reco bins) - sel_binmax2_reco: [15.0,30.0,50.0] # rec jet pt bins (sel_binmin2_reco bins) - sel_binmin2_gen: [7.0,15.0,30.0] # gen jet pt bins (sel_binmin2_gen bins) - sel_binmax2_gen: [15.0,30.0,50.0] # gen jet pt bins (sel_binmin2_gen bins) - var_binningshape: zg_jet - var_binningshape_gen: zg_gen_jet - var_shape_latex: "#it{z}_{g}" - sel_binminshape_reco: [-0.1,0.1,0.2,0.3,0.4] - sel_binmaxshape_reco: [0.1,0.2,0.3,0.4,0.5] - sel_binminshape_gen: [-0.1,0.1,0.2,0.3,0.4] - sel_binmaxshape_gen: [0.1,0.2,0.3,0.4,0.5] - sel_closure_frac: 0.2 - triggerbit: INT7 - #jetsel_gen: "abs(y_cand) < 0.8 and abs(z_vtx_gen) < 10 and abs(eta_jet) < 0.5" - #jetsel_sim: "abs(y_cand) < 0.8 and abs(eta_jet) < 0.5" # jet selection in simulations - #jetsel_reco: "abs(y_cand) < 0.8 and abs(z_vtx_reco) < 10 and abs(eta_jet) < 0.5" - #jetsel_gen_matched_reco: "abs(eta_gen_jet) < 5.0" - jetsel_gen: "abs(y_cand) < 0.5 and abs(z_vtx_gen) < 10 and abs(eta_jet) < 0.5" - jetsel_sim: "abs(y_cand) < 0.5 and abs(eta_jet) < 0.5" # jet selection in simulations - jetsel_reco: "abs(y_cand) < 0.5 and abs(z_vtx_reco) < 10 and abs(eta_jet) < 0.5" - jetsel_gen_matched_reco: "abs(y_cand) < 0.5 and abs(z_vtx_gen) < 10 and abs(eta_gen_jet) < 0.5" - evtsel: fIsEventReject==0 - triggersel: - data: "trigger_hasbit_INT7==1" - mc: null - data: &data_out_default - runselection: [null] #FIXME - results: ['/home/${USER}/mlhep/lcjet/jet_obs/default/default/data/results'] #list of periods - resultsallp: '/home/${USER}/mlhep/lcjet/jet_obs/default/default/data/results_all' - mc: &mc_out_default - runselection: [null,null] #FIXME - results: ['/home/${USER}/mlhep/lcjet/jet_obs/default/default/mc/results'] #list of periods - resultsallp: '/home/${USER}/mlhep/lcjet/jet_obs/default/default/mc/results_all' - data_proc: # alternative processor output used as the analyzer input - <<: *data_out_default - mc_proc: # alternative processor output used as the analyzer input - <<: *mc_out_default - - # simple fitter START - sgnfunc: [0,0,0,0,0,0,0,0,0,0,0] # kGaus=0, k2Gaus=1, k2GausSigmaRatioPar=2 (sel_an_binmin bins) - bkgfunc: [0,0,0,0,0,0,0,0,0,0,0] # kExpo=0, kLin=1, kPol2=2, kNoBk=3, kPow=4, kPowEx=5 (sel_an_binmin bins) - masspeak: 2.286 - massmin: [1.66,1.66,1.66,1.66,1.66,1.66,1.66,1.66,1.66,1.66,1.66,] # sel_an_binmin bins, fit region of the invariant mass distribution [GeV/c^2] - massmax: [2.06,2.06,2.06,2.06,2.06,2.06,2.06,2.06,2.06,2.06,2.06] # sel_an_binmin bins, fit region of the invariant mass distribution [GeV/c^2] - rebin: [6,6,6,6,6,6,6,6,6,6,6,6] # sel_an_binmin bins - fix_mean: [false, false, false, false, false, false, false, false, false, false, false] # sel_an_binmin bins - masspeaksec: 2.286 - - # If SetArraySigma true: sigma_initial is taken from sigmaarray; false: sigma_initial is taken from MC - # If SetFixGaussianSigma true: sigma fixed to sigma_initial - # SetFixGaussianSigma: [false, false, false, false, false, false, false, false, false, false, false] # sel_an_binmin bins - SetFixGaussianSigma: [true, true, true, true, true, true, true, true, true, true] # sel_an_binmin bins - SetArraySigma: [false, false, false, false, false, false, false, false, false, false, false] # sel_an_binmin bins - sigmaarray: [0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01] # initial sigma (sel_an_binmin bins) - - fix_sigmasec: [true, true, true, true, true, true, true, true, true] # sel_an_binmin bins - sigmaarraysec: [0.007497,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01] # sel_an_binmin bins - use_reflections: true - # simple fitter END - - signal_sigma: 2.0 - sigma_scale: 0.9545 - sideband_sigma_1_left: 4 - sideband_sigma_2_left: 9 - sideband_sigma_1_right: 4 - sideband_sigma_2_right: 9 - sidebandleftonly: false - - niterunfolding: 15 - niterunfoldingchosen: 4 - - doprior: false - domodeldep: false - path_modeldep: /home/nzardosh/PYTHIA_Sim/PYTHIA8_Simulations/Plots/D0_Substructure_Simulations_Output.root - - powheg_path_nonprompt: /data/POWHEG/trees_powheg_fd_central.root - - powheg_path_prompt: /data/POWHEG/trees_powheg_pr_central.root - powheg_prompt_variations_path: /data/POWHEG/trees_powheg_pr_ - powheg_prompt_variations: ["F1_R05","F05_R1","F2_R1","F1_R2","F2_R2","F05_R05","Mhigh","Mlow"] - - pythia8_prompt_variations_path: /data/PYTHIA8/trees_pythia8_pr_ - pythia8_prompt_variations: ["default", "charm_lo"] #["default","colour0soft"] - pythia8_prompt_variations_legend: ["PYTHIA 8 (Monash)", "PYTHIA 8 charm LO"] # ["PYTHIA 8 (Monash)","PYTHIA 8 SoftQCD, mode 0"] - - variations_db: database_variations_LcJet_pp_jet_obs.yml - - # Additional cuts applied before mass histogram is filled - use_cuts: True - cuts: ["mlPromptScore > 0.97", "mlPromptScore > 0.9", "mlPromptScore > 0.9", "mlPromptScore > 0.85", "mlPromptScore > 0.85", "mlPromptScore > 0.8", "mlPromptScore > 0.8", "mlPromptScore > 0.6", "mlPromptScore > 0.6"] # (sel_an_binmin bins) systematics FIXME: Update for new model. - - systematics: # used in machine_learning_hep/analysis/systematics.py - probvariation: - useperiod: [0,0,1] #period from where to define prob cuts - ncutvar: 10 #number of looser and tighter variations - maxperccutvar: 0.25 #max diff in efficiency for loosest/tightest var - cutvarminrange: [0.80, 0.80, 0.6, 0.3, 0.3] #Min starting point for scan - cutvarmaxrange: [0.98, 0.95, 0.95, 0.95, 0.95] #Max starting point for scan - fixedmean: True #Fix mean cutvar histo to central fit - fixedsigma: True #Fix sigma cutvar histo to central fit - mcptshape: - #FONLL / generated LHC19h4c1 - weights: [1.000000] - #From SetPtWeightsFromFONLL13overLHC17c3a12 in AliPhysics - #weights: [1.429770] - weights_min_pt: 0 - weights_max_pt: 40 - weights_bins: 400 + doml: true + mass: 2.28646 + sel_reco_unp: "fPt>0" + sel_gen_unp: "fPt>0" + sel_cen_unp: null + sel_good_evt_unp: null # "fIsEventReject == 0" + # sel_reco_skim: ["mlPromptScore > 0.96", "mlPromptScore > 0.97", "mlPromptScore > 0.9", "mlPromptScore > 0.85", "mlPromptScore > 0.8", "mlPromptScore > 0.6", null] # (sel_skim_binmin bins) + sel_reco_skim: [null, null, null, null, null, null, null] # (sel_skim_binmin bins) + sel_gen_skim: [null, null, null, null, null, null, null] # (sel_skim_binmin bins) + sel_skim_binmin: [1, 2, 4, 6, 8, 12, 24] # skimming pt bins (sel_skim_binmin bins) + sel_skim_binmax: [2, 4, 6, 8, 12, 24, 48] # skimming pt bins (sel_skim_binmin bins) + var_binning: fPt + dofullevtmerge: false + var_cand: fCandidateSelFlag + # var_swap: fIsCandidateSwapped + bitmap_sel: + var_name: fFlagMcMatchRec + var_name_gen: fFlagMcMatchGen + var_name_origgen: fOriginMcGen + var_name_origrec: fOriginMcRec + var_isstd: isstd + var_ismcsignal: ismcsignal + var_ismcprompt: ismcprompt + var_ismcfd: ismcfd + var_ismcbkg: ismcbkg + var_ismcrefl: ismcrefl + isstd: [[1], []] + ismcsignal: [[1], []] + ismcprompt: [[0], []] + ismcfd: [[1], []] + ismcbkg: [[], [1]] + ismcrefl: [[1], [1]] # probably missing from tree creator + + #region dfs + dfs: + read: + evtorig: + level: all + index: fIndexHfLcCollBases + trees: + O2hflccollbase: [fNumContrib] + extra: + fIsEventReject: 0 + collcnt: + trees: + O2collcount: + [ + fReadCounts, + fReadCountsWithTVX, + fReadCountsWithTVXAndZVertexAndSel8, + fReadCountsWithTVXAndZVertexAndSelMC, + ] + bccnt: + trees: + O2bccount: + [ + fReadCountsWithTVX, + fReadCountsWithTVXAndNoTFB, + fReadCountsWithTVXAndNoTFBAndNoITSROFB, + ] + + # collgen: + # level: gen + # index: fIndexLcCMCPJetCOs + # trees: + # O2lccmcpjetco: [fPosZ, fCentrality, fEventSel] + jetgen: + level: gen + index: fIndexLCMCPJETOS + trees: + O2hflcpbase: + [fPt, fY, fEta, fPhi, fFlagMcMatchGen, fOriginMcGen] + O2lccmcpjeto: + [ + fIndexLCCMCPJETCOS, + fIndexHFLcPBASES_0, + fJetPt, + fJetPhi, + fJetEta, + fJetNConstituents, + fJetR, + ] + O2lccmcpjetmo: + [ + fIndexArrayLCCMCDJETOS_hf, + fIndexArrayLCCMCDJETOS_geo, + fIndexArrayLCCMCDJETOS_pt, + ] + O2lccmcpjetsso: + [ + fEnergyMother, + fPtLeading, + fPtSubLeading, + fTheta, + fNSub2DR, + fNSub1, + fNSub2, + ] + tags: + isstd: { var: fFlagMcMatchGen, req: [[1], []] } + ismcsignal: + { var: fFlagMcMatchGen, req: [[1], []], abs: true } + ismcbkg: { var: fFlagMcMatchGen, req: [[], [1]], abs: true } + ismcprompt: { var: fOriginMcGen, req: [[0], []] } + ismcfd: { var: fOriginMcGen, req: [[1], []] } + filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut + + colldet: + level: det + index: fIndexLCCMCDJETCOS + trees: + O2lccmcdjetco: [fPosZ, fCentrality, fEventSel] + jetdet: + level: det + index: fIndexLCCMCDJETOS + trees: + O2hflcbase: [fIndexHfLcCollBases, fPt, fY, fEta, fPhi, fM] + O2hflcmc: [fFlagMcMatchRec, fOriginMcRec] + # O2hflcpar: + # [ + # fCpa, + # fCpaXY, + # fChi2PCA, + # fDecayLength, + # fDecayLengthXY, + # fDecayLengthNormalised, + # fDecayLengthXYNormalised, + # fImpactParameter0, + # fImpactParameter1, + # fImpactParameter2, + # fImpactParameterNormalised0, + # fImpactParameterNormalised1, + # fImpactParameterNormalised2, + # fPtProng0, + # fPtProng1, + # fPtProng2, + # ] + # O2hflcpare: + # [ + # fErrorDecayLength, + # fErrorDecayLengthXY, + # fErrorImpactParameter0, + # fErrorImpactParameter1, + # ] + O2hflcsel: [fCandidateSelFlag] + O2hflcml: [fMlScores] + O2lccmcdjeto: + [ + fIndexLCCMCDJETCOS, + fIndexHFLcBASES_0, + fJetPt, + fJetPhi, + fJetEta, + fJetNConstituents, + fJetR, + ] + O2lccmcdjetmo: + [ + fIndexArrayLCCMCPJETOS_hf, + fIndexArrayLCCMCPJETOS_geo, + fIndexArrayLCCMCPJETOS_pt, + ] + O2lccmcdjetsso: + [ + fEnergyMother, + fPtLeading, + fPtSubLeading, + fTheta, + fNSub2DR, + fNSub1, + fNSub2, + ] + tags: + isstd: { var: fFlagMcMatchRec, req: [[1], []] } + ismcsignal: + { var: fFlagMcMatchRec, req: [[1], []], abs: true } + ismcbkg: { var: fFlagMcMatchRec, req: [[], [1]], abs: true } + ismcprompt: { var: fOriginMcRec, req: [[0], []] } + ismcfd: { var: fOriginMcRec, req: [[1], []] } + extract_component: + - { var: fMlScores, newvar: mlPromptScore, component: 1 } + filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut + # swap: {cand: fCandidateSelFlag, var_swap: fIsCandidateSwapped, vars: [ismcsignal, ismcprompt, icmcfd]} + + colldata: + level: data + index: fIndexLCCJETCOS + trees: + O2lccjetco: [fPosZ, fCentrality, fEventSel] + jetdata: + level: data + index: fIndexLCCJETOS + trees: + O2hflcbase: [fIndexHfLcCollBases, fPt, fY, fEta, fPhi, fM] + # O2hflcpar: + # [ + # fCpa, + # fCpaXY, + # fChi2PCA, + # fDecayLength, + # fDecayLengthXY, + # fDecayLengthNormalised, + # fDecayLengthXYNormalised, + # fImpactParameter0, + # fImpactParameter1, + # fImpactParameter2, + # fImpactParameterNormalised0, + # fImpactParameterNormalised1, + # fImpactParameterNormalised2, + # fPtProng0, + # fPtProng1, + # fPtProng2, + # ] + # O2hflcpare: + # [ + # fErrorDecayLength, + # fErrorDecayLengthXY, + # fErrorImpactParameter0, + # fErrorImpactParameter1, + # ] + O2hflcsel: [fCandidateSelFlag] + O2hflcml: [fMlScores] + O2lccjeto: + [ + fIndexLCCJETCOS, + fIndexHFLcBASES_0, + fJetPt, + fJetPhi, + fJetEta, + fJetNConstituents, + fJetR, + ] + O2lccjetsso: + [ + fIndexLCCJETOS, + fEnergyMother, + fPtLeading, + fPtSubLeading, + fTheta, + fNSub2DR, + fNSub1, + fNSub2, + ] + extract_component: + - { var: fMlScores, newvar: mlPromptScore, component: 1 } + filter: "fPt >= 1. and abs(fY) <= 0.8 and abs(fJetEta) < (.9 - (fJetR / 100.))" # TODO: check jet eta cut + + merge: + # - {base: jetgen, ref: collgen} + - { base: jetdet, ref: colldet } + - { base: jetdata, ref: colldata } + + write: + jetgen: + level: gen + file: AnalysisResultsGen.parquet + jetdet: + level: det + file: AnalysisResultsReco.parquet + jetdata: + level: data + file: AnalysisResultsReco.parquet + evtorig: + level: all + file: AnalysisResultsEvtOrig.parquet + evt: + level: all + source: evtorig + file: AnalysisResultsEvt.parquet + filter: "fIsEventReject == 0" + collcnt: + level: all + file: AnalysisResultsCollCnt.parquet + bccnt: + level: all + file: AnalysisResultsBcCnt.parquet + + variables: + var_all: + [ + fIndexCollisions, + fFlagMcMatchRec, + fCandidateSelFlag, + fOriginMcRec, + fIsCandidateSwapped, + fNProngsContributorsPV, + fY, + fEta, + fPt, + fCpa, + fCpaXY, + fM, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fPtProng0, + fPtProng1, + fPtProng2, + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fNSigTpcPi0, + fNSigTpcPr0, + fNSigTpcKa1, + fNSigTpcPi2, + fNSigTpcPr2, + fNSigTofPi0, + fNSigTofPr0, + fNSigTofKa1, + fNSigTofPi2, + fNSigTofPr2, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ] + var_training: + [ + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + [ + fImpactParameter0, + fImpactParameter1, + fImpactParameter2, + fCpa, + fChi2PCA, + fDecayLength, + fDecayLengthXY, + fNSigTpcTofPi0, + fNSigTpcTofPr0, + fNSigTpcTofKa1, + fNSigTpcTofPi2, + fNSigTpcTofPr2, + ], + ] + # sel_skim_binmin bins + var_boundaries: [fCosThetaStar, fPtProng] + var_correlation: + - [fCosThetaStar] # TODO: update + - [fPtProng0] + var_signal: signal + var_class: class + var_inv_mass: fM + var_y: fY + var_evt_sel: fIsEventReject + var_cuts: + - [fPtProng0, lt, null] + - [fPtProng1, lt, null] + + plot_options: + prob_cut_scan: + fPtProng0: + xlim: + - 0 + - 1 + fPtProng1: + xlim: + - 0 + - 1 + eff_cut_scan: + fPtProng0: + xlim: + - 0 + - 1 + fPtProng1: + xlim: + - 0 + - 1 + + files_names: + namefile_unmerged_tree: AO2D.root + namefile_reco: AnalysisResultsReco.parquet + namefile_evt: AnalysisResultsEvt.parquet + namefile_collcnt: AnalysisResultsCollCnt.parquet + namefile_bccnt: AnalysisResultsBcCnt.parquet + namefile_evtvalroot: AnalysisResultsROOTEvtVal.root + namefile_evtorig: AnalysisResultsEvtOrig.parquet + namefile_gen: AnalysisResultsGen.parquet + namefile_reco_applieddata: AnalysisResultsRecoAppliedData.parquet + namefile_reco_appliedmc: AnalysisResultsRecoAppliedMC.parquet + namefile_mcweights: mcweights.root + treeoutput: "Lctree" + histofilename: "masshisto.root" + efffilename: "effhisto.root" + respfilename: "resphisto.root" + crossfilename: "cross_section_tot.root" + resultfilename: "results.root" + + #region multi + multi: + data: + nprocessesparallel: 80 + maxfiles: [-1] #list of periods + chunksizeunp: [100] #list of periods + chunksizeskim: [100] #list of periods + fracmerge: [1.] #list of periods + seedmerge: [12] #list of periods + period: [LHC22o] #list of periods + select_period: [1] + prefix_dir: /data2/MLhep/real/train_318625/ + unmerged_tree_dir: [alice] #list of periods + pkl: ["${USER}/lcjet/pkl"] #list of periods + pkl_skimmed: ["${USER}/lcjet/pklsk"] #list of periods + pkl_skimmed_merge_for_ml: ["${USER}/lcjet/pklskml"] #list of periods + pkl_skimmed_merge_for_ml_all: "${USER}/lcjet/pp_data_mltot" + pkl_evtcounter_all: "${USER}/lcjet/pp_data_evttot" + mcreweights: [../Analyses] #list of periods + mc: + nprocessesparallel: 80 + maxfiles: [-1] #list of periods + chunksizeunp: [100] #list of periods + chunksizeskim: [1000] #list of periods + fracmerge: [1.] #list of periods + seedmerge: [12] #list of periods + period: [LHC24d3b] #list of periods + select_period: [1] + prefix_dir: /data2/MLhep/sim/train_316964/ + unmerged_tree_dir: [alice] + pkl: ["${USER}/lcjet/pkl"] #list of periods + pkl_skimmed: ["${USER}/lcjet/pklsk"] #list of periods + pkl_skimmed_merge_for_ml: ["${USER}/lcjet/pklskml"] #list of periods + pkl_skimmed_merge_for_ml_all: "${USER}/lcjet/pp_mc_prod_mltot" + pkl_evtcounter_all: "${USER}/lcjet/pp_mc_prod_evttot" + mcreweights: [../Analyses] #list of periods + + ml: + evtsel: fIsEventReject == 0 + triggersel: + data: null + mc: null + + nbkg: 500000 + nsig: 500000 + mult_bkg: [1, 1, 1, 1, 1, 1, 1] + nclasses: [20000, 20000] + sampletags: [0, 1] + equalise_sig_bkg: True + # sampletagforsignal: 1 + # sampletagforbkg: 0 + sel_ml: [fM < 2.22 or fM > 2.35, ismcsignal == 1 and ismcprompt == 1] + sel_bkg: fM < 2.22 or fM > 2.35 + class_labels: [bkg, sig] + nkfolds: 5 + rnd_shuffle: 12 + rnd_splt: 12 + rnd_all: 12 + test_frac: 0.2 + binmin: [1, 2, 4, 6, 8, 12, 24] # must be equal to sel_skim_binmin (sel_skim_binmin bins) + binmax: [2, 4, 6, 8, 12, 24, 36] # must be equal to sel_skim_binmax (sel_skim_binmin bins) + mltype: BinaryClassification + ncorescrossval: 10 + prefix_dir_ml: "/data2/${USER}/MLhep/" + mlplot: mlplot + mlout: mlout + + opt: + isFONLLfromROOT: true + filename_fonll: "data/fonll/DmesonLcPredictions_13TeV_y05_FFptDepLHCb_BRpythia8_PDG2020.root" # file with FONLL predictions + fonll_particle: "hLcpkpipred" + fonll_pred: "max" # edge of the FONLL prediction + FF: 0.204 # fragmentation fraction + sigma_MB: 57.8e-3 # Minimum Bias cross section (pp) 50.87e-3 [b], 1 for Pb-Pb + Taa: 1 # 23260 [b^-1] in 0-10% Pb-Pb, 3917 [b^-1] in 30-50% Pb-Pb, 1 for pp + BR: 6.24e-2 # branching ratio of the decay Lc -> p K- pi+ + f_prompt: 0.9 # estimated fraction of prompt candidates + bkg_data_fraction: 0.05 # fraction of real data used in the estimation + num_steps: 111 # number of steps used in efficiency and signif. estimation + bkg_function: pol2 # fit function for bkg (among TH1 predefined fit functions, e.g. expo, pol1, pol2, ...) + save_fit: True # save bkg fits with the various cuts on ML output + raahp: [1, 1, 1, 1, 1, 1, 1] # sel_skim_binmin bins + presel_gen_eff: "fPt > 0. and abs(fY) < 0.8" + + mlapplication: + data: + prefix_dir_app: "/data2/${USER}/" + pkl_skimmed_dec: [LHC22pp/MLapplication/prod_LHC22o/skpkldecdata] #list of periods + pkl_skimmed_decmerged: [ + LHC22pp/MLapplication/prod_LHC22o/skpkldecdatamerged, + ] #list of periods + mc: + prefix_dir_app: "/data2/${USER}/" + pkl_skimmed_dec: [LHC22pp_mc/MLapplication/prod_LHC24d3b/skpkldecmc] #list of periods + pkl_skimmed_decmerged: [ + LHC22pp_mc/MLapplication/prod_LHC24d3b/skpkldecmcmerged, + ] #list of periods + modelname: xgboost + modelsperptbin: [ + xgboost_classifierLcpKpi_dfselection_fPt_1.0_2.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_2.0_4.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_4.0_6.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_6.0_8.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_8.0_12.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_12.0_24.0.sav, + xgboost_classifierLcpKpi_dfselection_fPt_12.0_24.0.sav, + ] # sel_skim_binmin bins + probcutpresel: + data: [0.70, 0.70, 0.60, 0.60, 0.40, 0.40, 0.] # sel_skim_binmin bins + mc: [0.70, 0.70, 0.60, 0.60, 0.40, 0.40, 0.] # sel_skim_binmin bins + probcutoptimal: [0.96, 0.97, 0.90, 0.85, 0.80, 0.60, 0.] # sel_skim_binmin bins + + #region analysis + analysis: + anahptspectrum: "LctopKpi" #D0Kpi, DplusKpipi, DstarD0pi, DsKKpi, LctopKpi, LcK0Sp + fd_method: "Nb" #fc, Nb + cctype: "pp" + sigmamb: 57.8e-3 #NB: multiplied by 1e12 before giving to HFPtSpectrum! + inputfonllpred: data/fonll/DmesonLcPredictions_13TeV_y05_FFptDepLHCb_BRpythia8_PDG2020.root + dir_general_plots: "/data2/${USER}/data/analysis_plots" + + jet_obs: &jet_default + sel_an_binmin: [3, 4, 5, 6, 7, 8, 10, 12, 16] # hadron pt bins (sel_an_binmin bins) + sel_an_binmax: [4, 5, 6, 7, 8, 10, 12, 16, 24] # hadron pt bins (sel_an_binmin bins) + bins_ptjet: [5, 7, 15, 30, 50] # systematics, TODO: split rec and gen binning + bins_ptjet_eff: [2, 5, 7, 15, 30, 50, 70] # systematics, TODO: split rec and gen binning + cand_collidx: fIndexHfLcCollBases + counter_read_data: fReadCountsWithTVXAndZVertexAndSel8 + counter_read_mc: fReadCountsWithTVXAndZVertexAndSelMC + counter_tvx: fReadCountsWithTVX + xsection_inel: 59.4 # (mb) cross-section of minimum-bias events # used # systematics + lumi_scale_mc: 408 # charm enhancement factor in MC to scale the MC luminosity + branching_ratio: 6.24e-2 # used + + observables: + zg: + bins_gen_fix: [6, -.1, .5] + bins_det_fix: [6, -.1, .5] + label: "#it{z}_{g}" + label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{z}_{g}" + nsd: + bins_gen_fix: [10, -.5, 9.5] + bins_det_fix: [10, -.5, 9.5] + label: "#it{n}_{SD}" + label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{n}_{SD}" + rg: + bins_gen_fix: [11, -.1, 1.] + bins_det_fix: [11, -.1, 1.] + label: "#it{R}_{g}" + label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{R}_{g}" + zpar: + # bins_gen_fix: [10, 0., 1.] + # bins_det_fix: [10, 0., 1.] + bins_gen_var: [0.4, 0.6, 0.7, 0.8, 0.9, 1.] + bins_det_var: [0.4, 0.6, 0.7, 0.8, 0.9, 1.] + label: "#it{z}_{#parallel}" + label_y: "(1/#it{N}_{jet ch}) d#it{N}/d#it{z}_{#parallel}" + dr: + bins_gen_fix: [10, 0., 1.] + bins_det_fix: [10, 0., 1.] + label: "#Delta#it{r}" + lntheta: + bins_gen_fix: [10, 0., 5.] + bins_det_fix: [10, 0., 5.] + label: "#minusln(#it{#theta})" + arraycols: [3] + lnkt: + bins_gen_fix: [10, -8., 2.] + bins_det_fix: [10, -8., 2.] + label: "ln(#it{k}_{T}/(GeV/#it{c}))" + arraycols: [3] + lntheta-lnkt: + arraycols: [3, 4] + + mass_roofit: + - level: mc + # per_ptjet: true + components: + sig: + fn: "Gaussian::peak(m[1., 5.], mean[2.27,2.29], sigma_g1[.01,.005,.035])" + wide: + fn: 'Gaussian::wide(m, mean, expr("n*sigma_g1", n[1.,5.], sigma_g1))' + model: + fn: "SUM::sig(f_peak[0.,1.]*peak, wide)" + - ptrange: [1., 5.] + range: [2.16, 2.40] + fix_params: ["n", "f_peak"] + # per_ptjet: true + components: + # sig: + # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.005,.015])' + bkg: + fn: "Polynomial::bkg(m, {a0[0.2, -3, 3], a1[-0.1, -3, 3], a2[0.1, 0.01, 3]})" + model: + fn: "SUM::sum(f_sig[0.,1.]*sig, bkg)" + - ptrange: [5., 8.] + range: [2.1, 2.48] + fix_params: ["n", "f_peak"] + # per_ptjet: true + components: + # sig: + # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.03])' + bkg: + fn: "Polynomial::bkg(m, {a0[0.2, -3, 3], a1[0.2 , -3, 3], a2[0.2, -3, 3]})" + model: + fn: "SUM::sum(f_sig[0.,1.]*sig, bkg)" + - range: [2.05, 2.5] + fix_params: ["n", "f_peak"] + # per_ptjet: true + components: + # sig: + # fn: 'Gaussian::sig(m, mean[2.28,2.29], sigma_g1[.005,.03])' + bkg: + fn: "Polynomial::bkg(m, {a0[0.2, -3, 3], a1[0.2 , -3, 3], a2[0.2, -3, 3]})" + model: + fn: "SUM::sum(f_sig[0.,1.]*sig, bkg)" + + #sidesub_per_ptjet: true + sidesub: + - regions: + left: [-5.5, -3.] # systematics + signal: [-2., 2.] # systematics + right: [3., 5.5] # systematics + + mass_fit: + func_sig: "gaus" + func_bkg: "expo" + # par_start: + # par_fix: {1: 2.286} + par_constrain: { 1: [2.28, 2.29], 2: [.005, .03] } + range: [2.08, 2.48] + mass_fit_lim: [1.9, 2.62] # histogram range of the invariant mass distribution [GeV/c^2] + bin_width: 0.001 # bin width of the invariant mass histogram + n_rebin: 3 # number of mass bins to merge + efficiency: + index_match: fIndexArrayLCCMCPJETOS_hf + extra_cols: ["mlPromptScore"] + correction_method: run3 + + unfolding_iterations: 8 # used, maximum iteration + unfolding_iterations_sel: 5 # used, selected iteration # systematics + unfolding_prior_flatness: 0. # ranges from 0. (no flatness) to 1. (flat) + + fd_folding_method: 3d + fd_root: "/data2/vkucera/powheg/trees_powheg_fd_F05_R05.root" + fd_parquet: "/data2/jklein/powheg/Lc_powheg_fd_F05_R05.parquet" + + proc_type: Jets + useperiod: [1] #list of periods + usejetptbinned_deff: false + doeff_resp: true #efficiency correction for the response matrix + unmatched_gen: true + latexnamehadron: "#Lambda_{c}^{#plus}" + latexnamedecay: "pK#pi" + var_binning2: pt_jet + var_binning2_gen: pt_gen_jet + latexbin2var: "#it{p}_{T}^{jet ch}" + sel_binmin2_reco: [7.0, 15.0, 30.0] # rec jet pt bins (sel_binmin2_reco bins) + sel_binmax2_reco: [15.0, 30.0, 50.0] # rec jet pt bins (sel_binmin2_reco bins) + sel_binmin2_gen: [7.0, 15.0, 30.0] # gen jet pt bins (sel_binmin2_gen bins) + sel_binmax2_gen: [15.0, 30.0, 50.0] # gen jet pt bins (sel_binmin2_gen bins) + var_binningshape: zg_jet + var_binningshape_gen: zg_gen_jet + var_shape_latex: "#it{z}_{g}" + sel_binminshape_reco: [-0.1, 0.1, 0.2, 0.3, 0.4] + sel_binmaxshape_reco: [0.1, 0.2, 0.3, 0.4, 0.5] + sel_binminshape_gen: [-0.1, 0.1, 0.2, 0.3, 0.4] + sel_binmaxshape_gen: [0.1, 0.2, 0.3, 0.4, 0.5] + sel_closure_frac: 0.2 + triggerbit: INT7 + #jetsel_gen: "abs(y_cand) < 0.8 and abs(z_vtx_gen) < 10 and abs(eta_jet) < 0.5" + #jetsel_sim: "abs(y_cand) < 0.8 and abs(eta_jet) < 0.5" # jet selection in simulations + #jetsel_reco: "abs(y_cand) < 0.8 and abs(z_vtx_reco) < 10 and abs(eta_jet) < 0.5" + #jetsel_gen_matched_reco: "abs(eta_gen_jet) < 5.0" + jetsel_gen: "abs(y_cand) < 0.5 and abs(z_vtx_gen) < 10 and abs(eta_jet) < 0.5" + jetsel_sim: "abs(y_cand) < 0.5 and abs(eta_jet) < 0.5" # jet selection in simulations + jetsel_reco: "abs(y_cand) < 0.5 and abs(z_vtx_reco) < 10 and abs(eta_jet) < 0.5" + jetsel_gen_matched_reco: "abs(y_cand) < 0.5 and abs(z_vtx_gen) < 10 and abs(eta_gen_jet) < 0.5" + evtsel: fIsEventReject==0 + triggersel: + data: "trigger_hasbit_INT7==1" + mc: null + data: &data_out_default + runselection: [null] #FIXME + results: [ + "/home/${USER}/mlhep/lcjet/jet_obs/default/default/data/results", + ] #list of periods + resultsallp: "/home/${USER}/mlhep/lcjet/jet_obs/default/default/data/results_all" + mc: &mc_out_default + runselection: [null, null] #FIXME + results: [ + "/home/${USER}/mlhep/lcjet/jet_obs/default/default/mc/results", + ] #list of periods + resultsallp: "/home/${USER}/mlhep/lcjet/jet_obs/default/default/mc/results_all" + data_proc: # alternative processor output used as the analyzer input + <<: *data_out_default + mc_proc: # alternative processor output used as the analyzer input + <<: *mc_out_default + + # simple fitter START + sgnfunc: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # kGaus=0, k2Gaus=1, k2GausSigmaRatioPar=2 (sel_an_binmin bins) + bkgfunc: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # kExpo=0, kLin=1, kPol2=2, kNoBk=3, kPow=4, kPowEx=5 (sel_an_binmin bins) + masspeak: 2.286 + massmin: [ + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + 1.66, + ] # sel_an_binmin bins, fit region of the invariant mass distribution [GeV/c^2] + massmax: [ + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + 2.06, + ] # sel_an_binmin bins, fit region of the invariant mass distribution [GeV/c^2] + rebin: [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] # sel_an_binmin bins + fix_mean: [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] # sel_an_binmin bins + masspeaksec: 2.286 + + # If SetArraySigma true: sigma_initial is taken from sigmaarray; false: sigma_initial is taken from MC + # If SetFixGaussianSigma true: sigma fixed to sigma_initial + # SetFixGaussianSigma: [false, false, false, false, false, false, false, false, false, false, false] # sel_an_binmin bins + SetFixGaussianSigma: [ + true, + true, + true, + true, + true, + true, + true, + true, + true, + true, + ] # sel_an_binmin bins + SetArraySigma: [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] # sel_an_binmin bins + sigmaarray: [ + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + ] # initial sigma (sel_an_binmin bins) + + fix_sigmasec: [true, true, true, true, true, true, true, true, true] # sel_an_binmin bins + sigmaarraysec: [ + 0.007497, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + ] # sel_an_binmin bins + use_reflections: true + # simple fitter END + + signal_sigma: 2.0 + sigma_scale: 0.9545 + sideband_sigma_1_left: 4 + sideband_sigma_2_left: 9 + sideband_sigma_1_right: 4 + sideband_sigma_2_right: 9 + sidebandleftonly: false + + niterunfolding: 15 + niterunfoldingchosen: 4 + + doprior: false + domodeldep: false + path_modeldep: /home/nzardosh/PYTHIA_Sim/PYTHIA8_Simulations/Plots/D0_Substructure_Simulations_Output.root + + powheg_path_nonprompt: /data/POWHEG/trees_powheg_fd_central.root + + powheg_path_prompt: /data/POWHEG/trees_powheg_pr_central.root + powheg_prompt_variations_path: /data/POWHEG/trees_powheg_pr_ + powheg_prompt_variations: + [ + "F1_R05", + "F05_R1", + "F2_R1", + "F1_R2", + "F2_R2", + "F05_R05", + "Mhigh", + "Mlow", + ] + + pythia8_prompt_variations_path: /data/PYTHIA8/trees_pythia8_pr_ + pythia8_prompt_variations: ["default", "charm_lo"] #["default","colour0soft"] + pythia8_prompt_variations_legend: [ + "PYTHIA 8 (Monash)", + "PYTHIA 8 charm LO", + ] # ["PYTHIA 8 (Monash)","PYTHIA 8 SoftQCD, mode 0"] + + variations_db: database_variations_LcJet_pp_jet_obs.yml + + # Additional cuts applied before mass histogram is filled + use_cuts: True + cuts: [ + "mlPromptScore > 0.97", + "mlPromptScore > 0.9", + "mlPromptScore > 0.9", + "mlPromptScore > 0.85", + "mlPromptScore > 0.85", + "mlPromptScore > 0.8", + "mlPromptScore > 0.8", + "mlPromptScore > 0.6", + "mlPromptScore > 0.6", + ] # (sel_an_binmin bins) systematics FIXME: Update for new model. + + systematics: # used in machine_learning_hep/analysis/systematics.py + probvariation: + useperiod: [0, 0, 1] #period from where to define prob cuts + ncutvar: 10 #number of looser and tighter variations + maxperccutvar: 0.25 #max diff in efficiency for loosest/tightest var + cutvarminrange: [0.80, 0.80, 0.6, 0.3, 0.3] #Min starting point for scan + cutvarmaxrange: [0.98, 0.95, 0.95, 0.95, 0.95] #Max starting point for scan + fixedmean: True #Fix mean cutvar histo to central fit + fixedsigma: True #Fix sigma cutvar histo to central fit + mcptshape: + #FONLL / generated LHC19h4c1 + weights: [1.000000] + #From SetPtWeightsFromFONLL13overLHC17c3a12 in AliPhysics + #weights: [1.429770] + weights_min_pt: 0 + weights_max_pt: 40 + weights_bins: 400