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

Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r6 - 2018-02-16 - MarkOwen
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback