Muon trigger recommendations for release 21
Below are the recommendations for muon triggers and muon trigger scale factors when running on data and MC processed with release 21.
To date, scale factors are available for 2015, 2016 and 2017 data.
Recommended triggers
Single muon triggers
The table summarises the recommended unprescaled single-muon triggers:
Year |
2017 |
2016 |
2015 |
OR of isolated and non-isolated |
HLT_mu26_ivarmedium OR HLT_mu50 |
HLT_mu24_ivarmedium OR HLT_mu50 |
HLT_mu20_iloose_L1MU15 OR HLT_mu50 |
Isolated |
HLT_mu26_ivarmedium |
HLT_mu24_ivarmedium |
HLT_mu20_iloose_L1MU15 |
Non-isolated |
HLT_mu50 |
HLT_mu50 |
HLT_mu50 |
MS only |
HLT_mu50_0eta105_msonly |
HLT_mu60_0eta105_msonly |
HLT_mu60_0eta105_msonly |
Note, in some of the early periods in 2015 and 2016 slightly looser triggers were unprescaled, however since the fraction of the data is very small, we assume that the simpler approach of using a single trigger in each data taking year is sufficient for most analyses. If you are interested in the looser triggers, pease contact
Marcus and
Mark.
Multi-muon triggers
The table summarises the recommended unprescaled multi-muon triggers:
Year |
2017 |
2016 |
2015 |
Di-muon trigger requiring only 1 L1 muon |
HLT_mu22_mu8noL1 |
HLT_mu20_mu8noL1 |
HLT_mu18_mu8noL1 |
Di-muon trigger requiring 2 L1 muons |
HLT_2mu14 |
HLT_2mu14(_nomucomb) |
HLT_2mu10 |
Tri-muon trigger requiring only 1 L1 muon |
HLT_mu20_2mu4noL1 |
HLT_mu20_2mu4noL1 |
HLT_mu18_2mu4noL1 |
Tri-muon trigger requiring 3 L1 muons |
HLT_3mu4 |
HLT_3mu6 |
HLT_3mu6 |
Tri-muon trigger, MS only |
HLT_3mu6_msonly |
HLT_3mu6_msonly |
HLT_3mu6_msonly |
Note, in some of the early periods in 2015 and 2016 slightly looser triggers were unprescaled, however since the fraction of the data is very small, we assume that the simpler approach of using a single trigger in each data taking year is sufficient for most analyses. If you are interested in the looser triggers, pease contact
Marcus and
Mark.
Muon trigger matching
For recommended trigger matching in release 21 please refer to
xAODMatchingTool
Muon trigger efficiency scale factors
To get the trigger efficiency scale factor, the
MuonEfficiencyCorrections is used.
The tool to use is
CP::MuonTriggerScaleFactors. This works both in athena and standalone xAOD analysis.
Notes:
- For single muon triggers, the pT of the offline muon has to be greater or equal to 1.05*pT_trigger_threshold,
- For dimuon triggers, the pT of the offline muon has to be greater or equal to the pT_trigger_threshold listed in MuonTriggerScaleFactors::getDileptonThresholds here
,
- please make sure you have read all the parts denoted with NOTE below.
- NOTE: For release21 analyses using MC16 only single muon trigger scale factors are supported. Di-muon trigger scale factors are currently measured and will be published asap.
How to setup
The tool can be configured via the Property mechanism. In athena, this is simply done in the joboptions. In standalone xAOD analysis, you can use the "SetProperty" Methods.
For nominal operation, you only need to set the following properties:
Option |
Default value |
Available values |
Additional comments |
MuonQuality |
"Medium" |
"Loose", "Medium", "Tight", "HighPt" |
Muon quality working point used in the analysis. |
useRel207 |
False |
True, False |
If true use SF evaluated on MC15c and release 20.7. False (default): MC16a/c and release21 SF (single muon trigger only!) |
AllowZeroSF |
False |
True, False |
If true will return a SF/efficiency of 0 if the trigger is not present. See below for more information. |
EventInfoContName |
"EventInfo" |
|
Optional: Custom EventInfo container name. |
- MuonQuality: muons have to be preselected using MuonSelectionTool (see above). SFs are provided for four separate muon quality points. For each muon quality working point, the same SFs are used for isolation working points because differences among isolation working points are very small. These differences are included in the systematic uncertainty. Our recommendation is to use muon trigger SFs for matching muon quality working point regardless of isolation selection.
- Trigger selection: the triggers available changes depending on which data period you are considering. It is important to check that you have a consistent setup when it comes to data set, MC, and list of triggers, since which triggers are included in which data/mc set changes. If the configuration is not consistent, the tool will give ERRORS.
- AllowZeroSF: If this is set to true AND if a trigger is not available in the efficiency maps, the tool will return a SF (or efficiency) of 0. If this is false AND a trigger is not available, you will get an error message instead. It is recommended to keep this set at false as it is easier to tell if you have everything set up correctly (and are using the right triggers in the right places) if you see the error messages. Set to true only at your own risk.
- UseExperimental: Flag to enable experimental features. Currently this affects the SF retrieval for single muons and the bin access in systematics variations. Set to true only at your own risk.
In
Athena, add the following lines to the Job option file :
from MuonEfficiencyCorrections.MuonEfficiencyCorrectionsConf import CP__MuonTriggerScaleFactors
trigsftool = CP__MuonTriggerScaleFactors("TriggerSFTool", MuonQuality="Medium")
in your
AlgTool header:
#include "MuonEfficiencyCorrections/IMuonTriggerScaleFactors.h"
(...)
ToolHandle< CP::IMuonTriggerScaleFactors > m_trigsf_Tool;
and in your
AlgTool implementation:
// in the constructor
declareProperty( "TrigScaleFactorTool", m_trigsf_Tool );
// in initialize()
ATH_CHECK(m_trigsf_Tool.retrieve());
In
standalone xAOD analysis:
#include "MuonEfficiencyCorrections/MuonTriggerScaleFactors.h"
(...)
CP::MuonTriggerScaleFactors m_trig_sf("TrigSFClass");
// examples about how to change options:
// ASG_CHECK_SA(APP_NAME,m_trig_sf.setProperty("MuonQuality", "Tight")); // if you are selecting Tight offline muons
// ASG_CHECK_SA(APP_NAME,m_trig_sf.setProperty("CalibrationRelease", "170128_Moriond")); // latest calibration area
// ASG_CHECK_SA(APP_NAME,m_trig_sf.setProperty("UseExperimental", true)); // enable experimental features
ASG_CHECK_SA(APP_NAME,m_trig_sf.initialize());
How to retrieve the SF
There are two steps that need to be done for each event.
- First, you need to set the runNumber using following function in execute:
CorrectionCode setRunNumber(Int_t runNumber);
You can get the runNumber which is weighted by integrated luminosity using "getRandomRunnumber" in
PileupReweightingTool to give the argument to setRunNumber.
For your information, in the SF tool the runNumber is translated to relevant data taking periods internally like
if( runNumber >= 266904 && runNumber <= 272531 ) return TrigMuonEff::per2015ABC;
if( runNumber >= 276073 && runNumber <= 276954 ) return TrigMuonEff::per2015D;
- The following function is used to get the trigger scale factor:
CorrectionCode getTriggerScaleFactor(const xAOD::MuonContainer& mucont,
Double_t& triggersf,
std::string& trigger);
NOTE : mucont should only include the selected muons. please refer to the
sample program
to know how to make a new container. It doesn't matter if the muon is matched to the muon trigger objejct, i.e. any muons after your quality requirement should be included. But you have to require there is at least one trigger-matched muon in the event.
Supported triggers
*
NOTE: Currently we do NOT support di-muon trigger efficiencies. In urgent cases there is a fall-back recommendation to apply release 20.7 scale factors evaluated on MC15c and 2015-2016 data. An update is expected soon.
*
NOTE: Due to some issues
HLT_mu50 in combination with the
HighPt working point can currently not be supported. If you use this combination in your analysis we recommend to use the medium quality working point.
The supported triggers are as follows :
Year/MC |
Period |
Triggers |
Available single lepton legs (for multi-lepton triggers) - r20.7 ONLY!!! |
2015/mc16a |
D-J |
HLT_mu20_iloose_L1MU15, HLT_mu26_imedium, HLT_mu40, HLT_mu50, HLT_mu20_iloose_L1MU15_OR_HLT_mu40, HLT_mu20_iloose_L1MU15_OR_HLT_mu50, HLT_mu26_imedium_OR_HLT_mu40, HLT_mu26_imedium_OR_HLT_mu50 |
HLT_mu10, HLT_mu14, HLT_mu18, HLT_mu22, HLT_mu24, HLT_mu8noL1 |
2016/mc16a |
A |
HLT_mu24_iloose_OR_HLT_mu24_iloose_L1MU15, HLT_mu24_iloose_OR_HLT_mu24_iloose_L1MU15_OR_HLT_mu40, HLT_mu24_iloose_OR_HLT_mu24_iloose_L1MU15_OR_HLT_mu50, HLT_mu24_imedium, HLT_mu24_imedium_OR_HLT_mu40, HLT_mu24_imedium_OR_HLT_mu50, HLT_mu24_ivarmedium, HLT_mu24_ivarmedium_OR_HLT_mu40, HLT_mu24_ivarmedium_OR_HLT_mu50, HLT_mu26_imedium, HLT_mu26_imedium_OR_HLT_mu40, HLT_mu26_imedium_OR_HLT_mu50, HLT_mu26_ivarmedium, HLT_mu26_ivarmedium_OR_HLT_mu40, HLT_mu26_ivarmedium_OR_HLT_mu50, HLT_mu40, HLT_mu50 |
HLT_mu6, HLT_mu10, HLT_mu14, HLT_mu20, HLT_mu22, HLT_mu24, HLT_mu26, HLT_mu8noL1 |
|
B - D3 |
HLT_mu24_imedium, HLT_mu24_imedium_OR_HLT_mu50, HLT_mu24_ivarmedium, HLT_mu24_ivarmedium_OR_HLT_mu50, HLT_mu26_imedium, HLT_mu26_imedium_OR_HLT_mu50, HLT_mu26_ivarmedium, HLT_mu26_ivarmedium_OR_HLT_mu50, HLT_mu50 |
HLT_mu6, HLT_mu14, HLT_mu20, HLT_mu22, HLT_mu24, HLT_mu26, HLT_mu8noL1 |
|
D4 - F |
HLT_mu26_imedium, HLT_mu26_imedium_OR_HLT_mu50, HLT_mu26_ivarmedium, HLT_mu26_ivarmedium_OR_HLT_mu50, HLT_mu50 |
HLT_mu6, HLT_mu14, HLT_mu22, HLT_mu24, HLT_mu26, HLT_mu8noL1 |
|
G - L |
HLT_mu26_ivarmedium, HLT_mu26_ivarmedium_OR_HLT_mu50, HLT_mu50 |
HLT_mu6, HLT_mu14, HLT_mu22, HLT_mu24, HLT_mu26, HLT_mu8noL1 |
2017/mc16c |
B-K |
HLT_mu26_ivarmedium, HLT_mu26_ivarmedium_OR_HLT_mu50, HLT_mu50 |
|
NOTE : if you would like to get the trigger scale factor, please set the above name which you want to use as the argument "std::string& trigger". Please note that only the above strings are supported.
NOTE : for standard dimuon triggers (HLT_2muXX), the SF can be retrieved in the same way as for single muons (if you pass the tool two muons). For full scan dimuon triggers (HLT_muXX_muYnoL1), you need to get the efficiency directly for each leg of the chain (
MuonTriggerScaleFactors::getTriggerEfficiency). However, pleas be reminded that currently the SF measurement is only available for release 20.7 and mc15.
How to retrieve the trigger efficiency per muon
If you would like to get the trigger efficiency per muon, the following function is used :
CorrectionCode MuonTriggerScaleFactors::getTriggerEfficiency(const xAOD::Muon& mu,
Double_t& efficiency,
std::string trigger,
Bool_t dataType)
If you would like to get the trigger efficiency of MC(data), dataType should be false(true).
NOTE : this function can also return statistical variation once you set MUON_EFF_TrigStatUncertainty as below. However, this doesn't return proper systematic variation even if you set MUON_EFF_TrigSystUncertainty. We currently only provide systematic variation on the SF, but not on the trigger efficiency itself.
Supported systematics
This tool supports the ASG systematic interface. The name of systematic option is as follows :
MUON_EFF_TrigSystUncertainty : Systematic error on the SF. Variation by + 1 or -1 Sigma.
MUON_EFF_TrigStatUncertainty : Statistical error on the SF. Variation by + 1 or -1 Sigma.
Support
In case of any question please contact
Marcus and
Mark
--
MarcusMorgenstern - 2018-02-12