Skip to content

D0Wiki

Sections
Personal tools
You are here: Home » Members » kvita's Home » JES Closure package » Jes Closure Cut Flow

Jes Closure Cut Flow

Document Actions
Jes Closure Cut Flow Description

Main processor is ClosureTreeHistos. It rus on skimmed or unskimmed data (original CAF trees). Skimmed data are preferred and faster. See MakeClosureTree.cpp, ClosureInput.cpp and skimming configs like

makeClosureTreeData.config makeClosureTreeMC_p17.09.01_refixed.config makeClosureTreeMC_em-jet_p17.09.01_refixed.config

The cuts flow in ClosureTreeHistos.cpp:

Read config files.

MC config files use groups, so we do not want to return from each time of running the processor. Therefore we use if statements. The only situations we return false are as follow:

  • no PV vertex collection is found - required final state flavour partons are not found. - error running realistic particle jets (should not happen, could be in fact dangerous to leave this return! see ClosureTools MakeRealistic...) Otherwise we always return true.

JCCA or JCCB are to be run separately. Eventually, we store all jets, be it Reco/particle/trackcaljets in the beginning, into a TLorentzVector array of GoodJets.

Cuts flow, importat variables assignments:

  • Check Photon ID, enclose everything into an if statement. - check for asked gluaon or quark accompanying the photon (MC only). - if MC, get the truth gamma, we use this in particle jets mode, but also at reco level in Direct closure. - get Event and MC weights. - get Primary Vertices, return false if none exist. - get vertex z position, lumi or overlay lumi, MC pThat.
    • in the RECO case: - get skimmed/unskimmed photons, gamma deteta - if skimmed, get MET from skimmed tree. - Z option only partially supported at the moment... - scale MCReco photon if required, correct MET for it. - use the truth photon in MC reco otherwise (default) - TrackCalJets block: make track cal jets collection
      • Standard Reco jets: get them from the skimmed tree or get them from original CAF tree, check for good (but EM overlap is not checked! Works for dijets, perhaps also gamma jets, checking for good could be sufficient...need to check this; at least Jochen's bjet closure tests look OK. - get the old JES correction to MET - apply new JES by running jetcorr by hand in ClosureTools::DoJES(...): GoodRECOJets -> GoodCorrRECOJets - GoodJets = ClosureTools::MakeLorentz(GoodCorrRECOJets); - similarly for track cal jets - recompute MET in case of dijets, unskimmed trees. - recorrect MET for new JES - Get dijet jet indices (tag/probe) - follow the same in an (unused) option of not re-aplying JES (and use whatever is in CAF trees). - at each reco stage, compute jet detector eta from GoodCorrRECOJets or GoodRECOJets - _Nbadjets = BadRECOJets.size();
      • Particle jets: - a scatch of a Z option - get particle jets from skimmed tree or via ClosureInput::getParticleJets(...). This is crutial for signal MC, as we need to remove the particle jet associated with the photon! For dijets, it's in principle fine to use those directly from CAF trees. For running on mixer or emjet when using the reco photon with particle jets, one should also take the original particle jets and only remove the particle jet overlapping with the reco gamma.
        • Get the reco photon in case we need it in signal+background mixed sample - get particle jets and particle phoon jets; merge them - find the overlap of the reco photon to a particle jet, remove such jet from the collection
        • Standard particle jets: - GoodJets = ClosureTools::MakeLorentz(ParticleJets);
        • Realistic particle jets: - prepare realistic particle MET - ClosureTools::MakeRealisticParticleJets(...). So far, one resolution for comparison to Data or MCReco. Needs an update. - Or: ClosureTools::MakeRealisticParticleJetsResponseOnly (not default) - GoodJets = ClosureTools::MakeLorentz(RealisticJets); - _Nbadjets = ParticleJets.size() - GoodJets.size(); - _Histos -> FillTH1F("dNjets", ParticleJets.size() - GoodJets.size()); - Use realisic particles for dijet indices. - JetDetEta = GoodJets[ijetprobe].Eta();
      • Common code: - Use the Data Average GammaSF correction: this can be used for Data or for MC if we choose to run on the S+BG mixed sample. Correct the MET correspondingly. - - Cuts: - Cal data quality for Reco (both Data and MC due to the MB overlay!) - nPVs > 0 (default, can set via config) - Exactly one photon / 2 EMs in isZ / found a dijet solution (oone CC jet in the first two leading ones) - possible Z mass window cut - at lest one jet (two in dijet case) - cut on maximal number of jets, which is at the moment 4 = nJetBins - 1; (HistoMaker.hpp: const int nJetBins = 5;) - optional cut on minimal number of jets - optin cut on max/min number of bad jets. - compute tag-probe delta phi. - only now we compute Eprime = theTagObj.Pt()*cosh(GoodJets[ijetprobe].Eta()); - compute JetPt for binning; use average in dijets if requested. - do spectra reweighting if requested (e.g. njets, pT...). Needs to be tested! - delta phi cut: 3.0 default. - JetDetEta cuts for the probe jet (called leadjet i the code). - optionaly veto events with too forward jets. - photon in (CC) or (CC or EC). - compute which cal region the probe jet belongs to. - optionaly skip event if last pT jet has pT below specified raw pT cut. Not tested for some time.
      • Fill Histograms - control print out's. - fill basic histograms. - in MCReco get particle jets (without photon matched jet) and match leading jet to a particle jet; fill the Direct imbalance. - Fill histograms with partial JES corrections. - compute imbalances (DeltaS, Hemi, MPF) and fill imbalance histos (DeltaS, Hemi, MPF, Direct).

That's it!;-)

Documented by (c) Jiri Kvita, 28-30th August 2006.

Code by (c) Dag Gillberg and Jiri Kvita, 2005 - 2006.

Created by kvita
Last modified 2006-08-31 03:31 PM
 

Powered by Plone

This site conforms to the following standards: