diff --git a/codeHF/clean.sh b/codeHF/clean.sh index 7316819e..13ce18cc 100644 --- a/codeHF/clean.sh +++ b/codeHF/clean.sh @@ -17,6 +17,7 @@ MC_dplus_eff.pdf MC_dplus_pT.pdf \ MC_lc_eff.pdf MC_lc_pT.pdf \ MC_xic_eff.pdf MC_xic_pT.pdf \ MC_jpsi_eff.pdf MC_jpsi_pT.pdf \ +MC_lc-tok0sP_eff.pdf MC_lc-tok0sP_pT.pdf \ ./*.log \ output_* \ || { echo "Error: Failed to delete files."; exit 1; } diff --git a/codeHF/config_tasks.sh b/codeHF/config_tasks.sh index c0992559..90f6997a 100644 --- a/codeHF/config_tasks.sh +++ b/codeHF/config_tasks.sh @@ -38,14 +38,17 @@ DOO2_PID_TOF=0 # pid-tof-full DOO2_PID_TOF_QA=0 # pid-tof-qa-mc # Vertexing DOO2_SKIM=0 # hf-track-index-skims-creator +DOO2_SKIM_V0=0 # hf-track-index-skims-creator_v0 DOO2_CAND_2PRONG=0 # hf-candidate-creator-2prong DOO2_CAND_3PRONG=0 # hf-candidate-creator-3prong +DOO2_CAND_CASC=0 # hf-candidate-creator-cascade # Selectors DOO2_SEL_D0=0 # hf-d0-candidate-selector DOO2_SEL_DPLUS=0 # hf-dplus-topikpi-candidate-selector DOO2_SEL_LC=0 # hf-lc-candidate-selector DOO2_SEL_XIC=0 # hf-xic-topkpi-candidate-selector DOO2_SEL_JPSI=0 # hf-jpsi-toee-candidate-selector +DOO2_SEL_LCK0SP=0 # hf-lc-tok0sp-candidate-selector # User tasks DOO2_TASK_D0=1 # hf-task-d0 DOO2_TASK_DPLUS=0 # hf-task-dplus @@ -65,6 +68,7 @@ APPLYCUTS_DPLUS=0 # Apply D+ selection cuts. APPLYCUTS_LC=0 # Apply Λc selection cuts. APPLYCUTS_XIC=0 # Apply Ξc selection cuts. APPLYCUTS_JPSI=0 # Apply J/ψ selection cuts. +APPLYCUTS_LCK0SP=0 # Apply Λc → K0S p selection cuts. SAVETREES=0 # Save O2 tables to trees. USEO2VERTEXER=0 # Use the O2 vertexer in AliPhysics. @@ -90,7 +94,7 @@ function Clean { function AdjustJson { # Make a copy of the default JSON file to modify it. JSON_EDIT="" - if [[ $APPLYCUTS_D0 -eq 1 || $APPLYCUTS_DPLUS -eq 1 || $APPLYCUTS_LC -eq 1 || $APPLYCUTS_XIC -eq 1 || $APPLYCUTS_JPSI -eq 1 ]]; then + if [[ $APPLYCUTS_D0 -eq 1 || $APPLYCUTS_DPLUS -eq 1 || $APPLYCUTS_LC -eq 1 || $APPLYCUTS_XIC -eq 1 || $APPLYCUTS_JPSI -eq 1 || $APPLYCUTS_LCK0SP -eq 1 ]]; then JSON_EDIT="${JSON/.json/_edit.json}" cp "$JSON" "$JSON_EDIT" || ErrExit "Failed to cp $JSON $JSON_EDIT." JSON="$JSON_EDIT" @@ -121,29 +125,44 @@ function AdjustJson { ReplaceString "\"d_selectionFlagXic\": \"0\"" "\"d_selectionFlagXic\": \"1\"" "$JSON" || ErrExit "Failed to edit $JSON." fi - # Enable J/ψ selection. + # Enable J/ψ selection. if [ $APPLYCUTS_JPSI -eq 1 ]; then MsgWarn "\nUsing J/ψ selection cuts" ReplaceString "\"d_selectionFlagJpsi\": \"0\"" "\"d_selectionFlagJpsi\": \"1\"" "$JSON" || ErrExit "Failed to edit $JSON." fi + + # Enable Λc → K0S p selection. + if [ $APPLYCUTS_LCK0SP -eq 1 ]; then + MsgWarn "\nUsing Λc → K0S p selection cuts" + ReplaceString "\"selectionFlagLcK0sp\": \"0\"" "\"selectionFlagLcK0sp\": \"1\"" "$JSON" || ErrExit "Failed to edit $JSON." + fi } # Generate the O2 script containing the full workflow specification. function MakeScriptO2 { WORKFLOWS="" + # QA [ $DOO2_QA_EFF -eq 1 ] && WORKFLOWS+=" o2-analysis-qa-efficiency" [ $DOO2_QA_EVTRK -eq 1 ] && WORKFLOWS+=" o2-analysis-qa-event-track" - [ $DOO2_SKIM -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-track-index-skims-creator" - [ $DOO2_CAND_2PRONG -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-candidate-creator-2prong" - [ $DOO2_CAND_3PRONG -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-candidate-creator-3prong" + [ $DOO2_MC_VALID -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-mc-validation" + # PID [ $DOO2_PID_TPC -eq 1 ] && WORKFLOWS+=" o2-analysis-pid-tpc-full" [ $DOO2_PID_TOF -eq 1 ] && WORKFLOWS+=" o2-analysis-pid-tof-full" [ $DOO2_PID_TOF_QA -eq 1 ] && WORKFLOWS+=" o2-analysis-pid-tof-qa-mc" + # Vertexing + [ $DOO2_SKIM -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-track-index-skims-creator" + [ $DOO2_SKIM_V0 -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-track-index-skims-creator_v0" + [ $DOO2_CAND_2PRONG -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-candidate-creator-2prong" + [ $DOO2_CAND_3PRONG -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-candidate-creator-3prong" + [ $DOO2_CAND_CASC -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-candidate-creator-cascade" + # Selectors [ $DOO2_SEL_D0 -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-d0-candidate-selector" [ $DOO2_SEL_JPSI -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-jpsi-toee-candidate-selector" [ $DOO2_SEL_DPLUS -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-dplus-topikpi-candidate-selector" [ $DOO2_SEL_LC -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-lc-candidate-selector" [ $DOO2_SEL_XIC -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-xic-topkpi-candidate-selector" + [ $DOO2_SEL_LCK0SP -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-lc-tok0sp-candidate-selector" + # User tasks [ $DOO2_TASK_D0 -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-d0" [ $DOO2_TASK_JPSI -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-jpsi" [ $DOO2_TASK_DPLUS -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-dplus" @@ -152,9 +171,9 @@ function MakeScriptO2 { [ $DOO2_TASK_BPLUS -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-bplus" [ $DOO2_TASK_X -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-x" [ $DOO2_TASK_LCK0SP -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-task-lc-tok0sp" + # Tree creators [ $DOO2_TREE_D0 -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-tree-creator-d0-tokpi" [ $DOO2_TREE_LC -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-tree-creator-lc-topkpi" - [ $DOO2_MC_VALID -eq 1 ] && WORKFLOWS+=" o2-analysis-hf-mc-validation" # Translate options into arguments of the generating script. OPT_MAKECMD="" diff --git a/codeHF/dpl-config_run3.json b/codeHF/dpl-config_run3.json index d7104d88..2d31f682 100644 --- a/codeHF/dpl-config_run3.json +++ b/codeHF/dpl-config_run3.json @@ -388,6 +388,56 @@ "cutYCandMax": "0.8", "d_selectionFlagJpsi": "0" }, + "hf-track-index-skims-cascades-creator": { + "doValPlots": "true", + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "UseAbsDCA": "true", + "doCutQuality": "true", + "TPCRefit": "true", + "i_minCrossedRows": "50", + "etaMax": "1.1", + "ptMin": "0.05", + "cosPAV0": "0.995", + "dcaXYNegToPV": "0.1", + "dcaXYPosToPVS": "0.1", + "cutInvMassV0": "0.05", + "cutCascPtCandMin": "-1", + "cutCascInvMassLc": "1" + }, + "hf-cand-creator-cascade": { + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "doValPlots": "true" + }, + "hf-lc-tok0sp-candidate-selector": { + "pTCandMin": "0", + "pTCandMax": "50", + "applyPidTPCMinPt": "4", + "pidTPCMinPt": "0", + "pidTPCMaxPt": "100", + "pidCombMaxP": "4", + "nSigmaTPC": "3", + "TPCNClsFindablePIDCut": "50", + "requireTPC": "true" + }, + "hf-task-lc-tok0sP": { + "selectionFlagLcK0sp": "0", + "cutEtaCandMax": "-1" + }, + "hf-task-lc-tok0sP-mc": { + "selectionFlagLc": "0", + "selectionFlagLcbar": "0", + "cutEtaCandMax": "-1" + }, "qa-tracking-efficiency-electron": { "eta-min": "-3", "eta-max": "3", diff --git a/codeHF/dpl-config_run5_hf.json b/codeHF/dpl-config_run5_hf.json index b478e2a3..8992cce9 100644 --- a/codeHF/dpl-config_run5_hf.json +++ b/codeHF/dpl-config_run5_hf.json @@ -394,6 +394,56 @@ "cutYCandMax": "0.8", "d_selectionFlagJpsi": "0" }, + "hf-track-index-skims-cascades-creator": { + "doValPlots": "true", + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "UseAbsDCA": "true", + "doCutQuality": "true", + "TPCRefit": "true", + "i_minCrossedRows": "50", + "etaMax": "1.1", + "ptMin": "0.05", + "cosPAV0": "0.995", + "dcaXYNegToPV": "0.1", + "dcaXYPosToPVS": "0.1", + "cutInvMassV0": "0.05", + "cutCascPtCandMin": "-1", + "cutCascInvMassLc": "1" + }, + "hf-cand-creator-cascade": { + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "doValPlots": "true" + }, + "hf-lc-tok0sp-candidate-selector": { + "pTCandMin": "0", + "pTCandMax": "50", + "applyPidTPCMinPt": "4", + "pidTPCMinPt": "0", + "pidTPCMaxPt": "100", + "pidCombMaxP": "4", + "nSigmaTPC": "3", + "TPCNClsFindablePIDCut": "50", + "requireTPC": "true" + }, + "hf-task-lc-tok0sP": { + "selectionFlagLcK0sp": "0", + "cutEtaCandMax": "-1" + }, + "hf-task-lc-tok0sP-mc": { + "selectionFlagLc": "0", + "selectionFlagLcbar": "0", + "cutEtaCandMax": "-1" + }, "qa-tracking-efficiency-electron": { "eta-min": "-3", "eta-max": "3", diff --git a/codeHF/dpl-config_run5_oniaX.json b/codeHF/dpl-config_run5_oniaX.json index 49e2538f..517cc613 100644 --- a/codeHF/dpl-config_run5_oniaX.json +++ b/codeHF/dpl-config_run5_oniaX.json @@ -394,6 +394,56 @@ "cutYCandMax": "0.8", "d_selectionFlagJpsi": "0" }, + "hf-track-index-skims-cascades-creator": { + "doValPlots": "true", + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "UseAbsDCA": "true", + "doCutQuality": "true", + "TPCRefit": "true", + "i_minCrossedRows": "50", + "etaMax": "1.1", + "ptMin": "0.05", + "cosPAV0": "0.995", + "dcaXYNegToPV": "0.1", + "dcaXYPosToPVS": "0.1", + "cutInvMassV0": "0.05", + "cutCascPtCandMin": "-1", + "cutCascInvMassLc": "1" + }, + "hf-cand-creator-cascade": { + "bZ": "5", + "propDCA": "true", + "maxR": "200", + "maxDZIni": "4", + "minParamChange": "0.001", + "minRelChi2Change": "0.9", + "doValPlots": "true" + }, + "hf-lc-tok0sp-candidate-selector": { + "pTCandMin": "0", + "pTCandMax": "50", + "applyPidTPCMinPt": "4", + "pidTPCMinPt": "0", + "pidTPCMaxPt": "100", + "pidCombMaxP": "4", + "nSigmaTPC": "3", + "TPCNClsFindablePIDCut": "50", + "requireTPC": "true" + }, + "hf-task-lc-tok0sP": { + "selectionFlagLcK0sp": "0", + "cutEtaCandMax": "-1" + }, + "hf-task-lc-tok0sP-mc": { + "selectionFlagLc": "0", + "selectionFlagLcbar": "0", + "cutEtaCandMax": "-1" + }, "qa-tracking-efficiency-electron": { "eta-min": "-3", "eta-max": "3",