Skip to content

asimsek/NPSTriggerAnalysis

Repository files navigation

NPS Trigger Analysis Framework

This framework is created to check the NPS HLT rates. It uses the OMSRatesNtuples from STEAM Group to do rate checks between various stages, and plots groups of triggers all in the same location.

Setup

The required packages for the Jupyter Notebook is given in the requirements.txt file.

pip3 install -r requirements.txt

For the lxplus, you need to create a new CMSSW (14_X_X or later)

mkdir NPSTrigger
cd NPSTrigger/ 
cmsrel CMSSW_14_0_4
cd CMSSW_14_0_4/src
cmsenv

Then, pull the framework from github:

git config --global user.name <yourUserName>
git config --global user.email <yourEmailAddress>
git config --global http.emptyAuth true
unset SSH_ASKPASS
git clone --recursive https://github.com/asimsek/NPSTriggerAnalysis
cd NPSTriggerAnalysis/

The most recent set of OMSRatesNtuples can be found here:

/eos/cms/store/group/tsg/STEAM/OMSRateNtuple/2024_physics_merged_final.root
/eos/user/s/sdonato/www/OMSRatesNtuple/OMSRatesNtuple/OMS_ntuplizer/2025_physics_merged.root

The trigger groups are defined in a json file: triggerNames.json.

Run number is given to the framework and it can be found by looking at OMS and PdmVRun3Analysis. Please select the run number with the highest statistics, taking into account the different eras and interventions. Also, Make sure select the runs which has a similar amount of deadtime. For more, see 2024 Golden JSON and OMS HLT Trigger Rates.

Rate Analysis

Once you have defined your eras, run the rateAnalysis.py script to generate the plots.

NPS-Only Triggers:

python3 rateAnalysis.py jsonFiles/triggerLists/2025/triggerNames_NPSOnly.json jsonFiles/eras/2025/eraRate.json plots/2025/NPSOnly_Sept2025 rootFiles/inputFiles.txt
python3 rateAnalysis.py jsonFiles/triggerLists/2024/triggerNames_NPSOnly.json jsonFiles/eras/2024/eraRate.json plots/2024/NPSOnly_Dec2024 /eos/cms/store/group/tsg/STEAM/OMSRateNtuple/2024/physics.root

Rate Monitoring Plots

Similarly to produce the trigger rate plots run the rateMonitoring.py script to generate the plots.

NPS-Only Triggers:

python3 rateMonitoring.py jsonFiles/triggerLists/2025/triggerNames_NPSOnly.json jsonFiles/eras/2025/eraMonitoring.txt plots/2025/NPSOnly_Sept2025 rootFiles/inputFiles.txt --l1seed
python3 rateMonitoring.py jsonFiles/triggerLists/2024/triggerNames_SUSOnly.json jsonFiles/eras/2024/eraMonitoring.txt plots/2024/NPSOnly_Dec2024 /eos/cms/store/group/tsg/STEAM/OMSRateNtuple/2024/physics.root --l1seed

More options for rateMonitoring.py: --l1seed: Generate L1-seed trigger dictionary and run additional monitoring --gRun: Regenerate GRun.csv (requires --l1seed) before extracting seeds --noHLT: No HLT monitoring

If you require to filter trigger paths, find full trigger names in NPS Trigger Review 2023 and/or NPS Trigger Group Twiki Page - NPS triggers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published