DAS  3.0
Das Analysis System
applyJERsmearing.cc File Reference
#include <cassert>
#include <cstdlib>
#include <algorithm>
#include <functional>
#include <filesystem>
#include <iostream>
#include <limits>
#include <random>
#include <vector>
#include <TChain.h>
#include <TDirectory.h>
#include <TH2.h>
#include <TFile.h>
#include "Core/CommonTools/interface/DASOptions.h"
#include "Core/CommonTools/interface/toolbox.h"
#include "Core/CommonTools/interface/ControlPlots.h"
#include "Core/Objects/interface/Event.h"
#include "Core/Objects/interface/Format.h"
#include "Core/Objects/interface/Jet.h"
#include "Core/JEC/interface/JMEmatching.h"
#include <correction.h>
#include <darwin.h>
#include "common.h"
+ Include dependency graph for applyJERsmearing.cc:

Namespaces

 DAS
 
 DAS::JetEnergy
 

Functions

void applyJERsmearing (const vector< fs::path > &inputs, const fs::path &output, const pt::ptree &config, const int steering, const DT::Slice slice={1, 0})
 
int main (int argc, char *argv[])
 

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)
228 {
229  try {
231 
232  vector<fs::path> inputs;
233  fs::path output;
234 
235  auto options = DAS::Options(
236  "Apply jet energy smearing correction. In practice, the correction factors "
237  "are stored in a dedicated vector in the reconstructed jets. To apply the "
238  "pure stochastic (scaling) smearing, use a null (infinite) core size; hybrid "
239  "smearing (scaling in core and stochastic in tails) is recommended. Note: JME "
240  "recommends 3 sigmas, but Run 2 studies suggest not more than 2 sigmas.",
242  options.inputs("inputs", &inputs, "input ROOT file(s) or directory")
243  .output("output", &output, "output ROOT file")
244  .arg<fs::path>("tables", "corrections.JER.tables",
245  "JSON file containing the corrections")
246  .arg<string>("campaign", "corrections.JER.campaign",
247  "campaign (e.g. `Summer19UL18_RunA`)")
248  .arg<float>("core_width", "corrections.JER.core_width",
249  "width of the Gaussian core in units of sigma "
250  "(for the matching algorithm)");
251 
252  const auto& config = options(argc, argv);
253  const auto& slice = options.slice();
254  const int steering = options.steering();
255 
256  DAS::JetEnergy::applyJERsmearing(inputs, output, config, steering, slice);
257  }
258  catch (boost::exception& e) {
259  DE::Diagnostic(e);
260  return EXIT_FAILURE;
261  }
262 
263  return EXIT_SUCCESS;
264 }
DYToLL_M-50_13TeV_pythia8_cff_GEN_SIM_RECOBEFMIX_DIGI_L1_DIGI2RAW_L1Reco_RECO.options
options
Definition: DYToLL_M-50_13TeV_pythia8_cff_GEN_SIM_RECOBEFMIX_DIGI_L1_DIGI2RAW_L1Reco_RECO.py:41
Darwin::Exceptions::Diagnostic
void Diagnostic(const boost::exception &e)
Definition: exceptions.h:131
Darwin::Tools::Friend
@ Friend
activate -F to only fill the new branches
Definition: Options.h:28
DAS::JetEnergy::applyJERsmearing
void applyJERsmearing(const vector< fs::path > &inputs, const fs::path &output, const pt::ptree &config, const int steering, const DT::Slice slice={1, 0})
Definition: applyJERsmearing.cc:47
Darwin::Tools::split
@ split
activate -k and -j to define slice
Definition: Options.h:26
Darwin::Tools::syst
@ syst
activate -s to systematic uncertainties
Definition: Options.h:29
Darwin::Tools::StandardInit
void StandardInit()
Definition: FileUtils.cc:70
Ntupliser_cfg.config
config
Definition: Ntupliser_cfg.py:297
jercExample.inputs
def inputs
Definition: jercExample.py:118
DAS::Options
Darwin::Tools::Options Options(const char *, int=Darwin::Tools::none)
Constructs Darwin options with the correct commit information.
Definition: DASOptions.cc:14