Skip to content

Update notes

Brenda Fabela edited this page Sep 27, 2021 · 22 revisions

In this page, you can find information on what has changed in each version of the main Analyzer framework. We will keep track of the changes by the most recent date the master branch was updated.

Update: September 28, 2021.

New features

  • Included Loose and Medium PF muon IDs: The Muon POG recommended loose and medium IDs are now included (besides the existing tight and soft muon IDs). In order to use any of these, you need to include the corresponding flags in Muon_info.in, described here.
  • Included functions to apply cuts in photons: There is a new function that takes care of applying selections to photons, similarly to what is done for electrons, muons and taus. The Photon_info.in config file is updated and must be updated if running this version of the code to avoid any crashes. The structure is similar to Electron_info.in. In Cuts.in new cutflow flags related to photons are included, see here.
  • Updated SignalMC_info.in config file: the changes in this file are related to the newest filtering scheme for VBF SUSY signal MC samples. Though it is not relevant to all analyses, the new code needs the updated version of this file in order to run properly.

Update: June 3, 2021.

New features

  • Additional EE noise event veto for 2017 data (recommended): After discovering some remaining effects of noise in the 2.65<|eta|<3.14 region for jets with pT between 50 and 80 GeV only affecting data taking eras 2017E and 2017F, a new event veto has been included to reject any events that contain one or more jets with these (pT,eta) within these ranges. It is included as a flag in Run_info.in and its use is described here and it must only be applied to data. This is independent of the existing jet veto to mitigate this problem and both of them should be applied to data.
  • Modified recipes to derive JER corrections (optional): Following the studies about jet energy resolution corrections and their impact on MET, three modified recipes to derive these corrections are included. They improve the agreement between the prediction from simulation and data, specially for forward low pT jets and their subsequent impact on the modeling of MET. To use these recipes, three flags are added to the Jet_info.in configuration file: ModifiedPUsmearing, ModifiedForwardSmearing and CombinedModifiedSmearing (more details about each recipe can be found in this presentation). The recipe that gave the best results in general for all three year data sets is ModifiedForwardSmearing and is particularly useful for analysis that use forward jets (VBF topologies). These recipes are optional and their correct use is described here.
  • Additional pileup correction based on the number of primary vertices (update): These corrections are now available for 2017 and 2018.
  • Access to more information at gen-level: In Gen_info.in new options have been added to apply kinematic cuts to gen-level electrons and muons. Mother particle ID requirements can also be applied and an extra flag has been implemented to only select leptons that are part of the decay chain from the hard scattering process, that is, select leptons that do not come from pileup. The new flags are described here. New histograms have also been added to access more variables for each lepton at gen-level.

Fixes

  • Fixed MET xy-shift corrections for 2018 data.
  • Fixed line of code in which the mother particle ID requirement at gen-level was incorrectly applied.

Update: March 15, 2021.

New features

  • MET xy-shift corrections: these corrections take care of the phi-asymmetry observed both for data and simulation. Corrections are available for all three years in Run II and more details about how to activate them are given here.
  • Additional strategy to smear jet energy resolution (optional): a different approach proposed by the VBF SUSY team has been implemented as an alternative to the official recipe for jet energy smearing in CMS. More information is given here and the references therein.
  • Additional pileup correction based on the number of primary vertices (optional): A new set of event weights was derived from a standard candle Z(->mumu)+jets control region, correcting the shape of the number of primary vertices distribution in simulation to match the observed one in data. These weights work as an additional pileup correction and had an impact on improving the data/MC agreement in the MET distribution in this particular region. At the moment these weights are available only for 2016 (update: March 15, 2021). The weight derivation for 2017 and 2018 is in progress. Information on how to include these corrections is given here.
  • Jet TightLepVeto ID: besides the typical PF jet ID working points we have been using so far (Loose and Tight), there is an additional working point: TightLepVeto. This has been implemented in the code, and can be called from Jet_info.in with the flag ApplyTightLepVetoID.

Fixes

  • Revised propagation of JECs to raw MET to obtain type-I MET, removing muons from jets before correcting jet energy scale.
  • Revised propagation of JERCs to type-I MET, removing muons from jets before correcting jet energy resolution.

Update: February 1, 2021.

New features

  • Reactivated the second trigger requirement, in order to require two different triggers in a AND fashion (previously we had all different trigger requirements as OR). This functionality is useful for trigger efficiency studies.
  • Additional plots for min deltaPhi between any jet and MET. Option to get these after applying dilepton requirements, and for each specific charge combination (OS, LS).
  • Pile-up jet ID now available. Documentation and the implementation of corresponding weights can be found here.
  • New configuration file called SignalMC_info.in. It is needed for running but not fully functional at the moment. Progress will be posted and updated accordingly.

Fixes

  • L1 ECAL pre-firing weights (2016, 2017): Updated implementation of these weights, retrieving them from dedicated branches in the nanoAOD samples. These corrections are activated as originally implemented (no changes from the user point of view). For more information about these changes, check the presentation by B. Fabela at the BSM3G meeting on Jan 29, 2021.
  • MatchBToGen flag can be used again for b-jet gen-level matching, useful for b-tagging efficiency studies.
  • Changed name of flag DiscrByDPhi1 and Dphi1CutMet for DiscrByDPhiMet and DPhiMetCut, respectively in Jet_info.in. This flag can be used in any of the jet categories present in this config file.
  • Added new flag to reject dijet pairs where both jets lie on the forward region of the detector, with possibility of selecting the eta range denominated as forward.

Update: September 28, 2020.

New features

  • Implemented L1 prefiring weights for 2016 and 2017. The SFs are activated in the Run_info.in config file.
  • Two new sets of Z-boost weight corrections are available with new corresponding flags for each of them (Run_info.in).
  • New kinematic distributions available (dilepton pt, deltaEta of the dijet pair with the largest dijet mass, prefiring weights).

Fixes

  • Fixed application of kinematic requirements on the first and second leading jets.
  • Definition of tau ID SF modules done only if the corresponding flag in Run_info.in is activated.
  • b-tagging SFs are now applied only to b-jets that have a matching b-jet at gen-level.

Update: August 7, 2020.

New features

  • Implemented tau ID as well as anti-lepton discriminator scale factors for MVA and Deep Tau IDs, based on the official tool from the CMS Tau POG. The SFs are activated in the Run_info.in config file.
  • Tau energy scale corrections were reimplemented. These can be activated in the Tau_info.in config file.

Update: June 26, 2020.

New features

  • Added variable (ptak8pt) relevant to the VBF heavy neutrino analysis that combined leading muon and AK8 jet to reconstruct the heavy neutrino mass.
  • Added overlap removal between ak8 jets with B jets in the 'Jet_info.in' file.
  • Changed 'FatJet_info.in' file to fit the recommendation for AK8 jets.
  • Implemented some missing distributions for dilepton combinations.

Fixes

  • Fixed and updated systematics calculation in MET.
  • Removed line in applyJetEnergyCorrections that would store twice the 4-momentum of jets that matched a lepton at gen-level.
  • Updated DiParticle_info.in and all dilepton combinations config files with the different flags available for cos(dPhi) cuts.
  • Updated Hist_entries.in to include several distributions related to cos(dPhi) for dilepton combinations.
  • Improved function that calculates the dilepton mass deltaPt, which takes as arguments the rest masses of the leptons according to their flavors (hard-coded before for electron tau combinations, now it's automatically assigned by reading the lepton type).

Update: June 16, 2020.

New features

  • The ROOT files that contain the pileup distributions for data (PileUpReweighting201X.root) have been updated and they contain the nominal distribution as well as up and down shifts.

Fixes

  • Removed a line that reloaded the JECs text files after the first initialization and would set them up for 2016.
  • For systematics studies, the particle collections for each systematic shift are now properly updated.
  • The "orig" folder for systematics studies is now filled as well as the Events and NVertices histograms in each systematics folder.

Update: June 4, 2020.

New features

  • Electron MVA ID is fully implmented in the Analyzer (Electron_info.in).
  • Function to treat muons as neutrinos was reimplemented with proper modifications to some MET functions. Two options were aded: treat all muons as neutrinos and treat only one muon as neutrino.
  • New function for Z-boost weights systematics studies.

Fixes

  • Fixed a bug related to closing the output ROOT file after analyzing all events.
  • Updated electron isolation branch names to match the latest ones available in NanoAODv6.

Update: May 31, 2020.

New features

  • Integrated a new function to apply jet energy corrections and jet energy resolution effects to AK4 jets (applyJetEnergyCorrections). These corrections are propagated to MET as well.
  • New jet veto for 2017 data and MC corresponding to the MET recipe v2 recommended to mitigate the EE noise issue. This is reflected as a new option in the Jet_info.in configuration file.

Update: May 17, 2020.

New features

  • Use of tigger name wildcards is now optional.
  • New function to apply a gen-level dilepton mass filter for Z+jets samples (see validation plots here).
  • HEM veto function for 2018 events is implemented and optional.
  • Added new kinematic variable and distributions applied to ditau combinations (optional).

Fixes

  • Trigger decision vector wasn't filled properly. Fixed by manually setting branch address, storing decision and resetting branch address. Fix already validated with the Z->mumu standard candle (link).
  • Included try-catch statements for the SpecialPUcalculation option, making it safer to use and easier to debug.

Update: April 30, 2020.

New features

  • Analyzer has as an argument the run year (2016, 2017 or 2018). It is required to properly load some branches that are era-specific.
  • DeepTauID available for tau identification, keeping compatibility with MVA tau ID.
  • Added new Particle class (GenHadronicTaus) that contains information from visible products from hadronically decaying taus to perform MC truth matching.
  • Special option to apply MC-specific pileup weights for 2017 MC (optional, read the instructions in the Configuration files page).
  • B-tagging scale factor reader (BTagCalibration) module is brought back and easy to use to apply different scale factors according to the working point and b-tagging algorithm selected by the user.
  • Added new kinematic variables and distributions implemented by the DY Z' working group.
  • Made JSON file filtering optional (some datasets cannot be filtered).
  • Added MET filters (optional).

Fixes

  • Fixed trigger flag wildcards, trigger decision vector is cleaned up at each event to reduce memory usage.
  • Reduced tree size from the metadata -> reduced output file size.
  • Pileup weights properly initialized, calculated and applied to each event.
  • Gen-level cuts (initializeMCselection) are optional.
  • Restructured some of the functions existing in Analyzer::preprocess to improve code readability.