PUPPI softdrop jet mass scale and resolution

Introduction

PUPPI softdrop mass scale

The PUPPI softdrop mass scale is estimated from a fit to the W-jet mass peak in tt MC (see REF) and is estimated to be close to unity, see table below.

Value stat. sys. (tt MC) sys. (method) Total
JMS 0.999 0.004 (stat.) 0.0006 (sys.) 0 (sys.) 0.999 0.004

To implement, multiply the corrected (dedicated PUPPI softdrop jet mass corrections, NOT L2L3 corrected) by the jet mass scale (currently 0.999)

float jms = 0.999;
float oldmass = myPuppiSoftdropmass_corrected;
jmsCorrectedMass = oldmass*jms;

Systematics: Evaluation and implementation

The systematic uncertainties due to jet mass scale are evaluated by scaling the central value of the JMS up and down within its uncertainty. Three uncertainties on the JMS are quoted: one statistical (fit uncertainty), one systematic uncertainty due to choice of MC generator and an additional systematic uncertainty due to choice of fit method (see REF). The JMS is then scaled up and down with the given uncertainty and the impact on signal yield, scaling the mass either up or down, is calculated. To scale the JMS up and down, do

float jms = 0.999;
float jmsUnc = 0.004;
float oldmass = myPuppiSoftdropmass_corrected;
jmsScaleUpMass = oldmass*(jms+jmsUnc);
jmsScaleDownMass = oldmass*(jms-jmsUnc);

The impact on the W-jet mass peak when scaling the mass up and down within the uncertainty is shown in the image below where blue is the mass with the current JMS applied, red is after scaling the JMS up (0.999+0.004) and green after scaling down (0.999-0.004). The effects are tiny as the uncertainty is < 1%.
JMS_UpDown.png

PUPPI softdrop mass resolution

The PUPPI softdrop mass resolution is evaluated from a fit to the W-jet mass peak in data and in MC, where the resolution is taken from the ratio of the Gaussian widths obtained in data/MC. The numerical values are listed in the table below. The systematics include a systematics based on the use of different generators to produce the tt MC and one based on the use of different fit procedures when fitting the W-jet mass peak.

Value stat. sys. (tt MC) sys. (method) Total
JMR 1.079 0.065 (stat.) 0.083 (sys.) 0 (sys.) 1.079 0.105

The PUPPI softdrop mass resolution is worse in data then in MC and need to be smeared. This is done in a very similar way as for jet energy resolution smearing. We use a hybrid method were one scales or smears the PUPPI softdrop jet mass by

  • 1) scaling based on gen-reco softdrop mass difference, where the scaled mass is

         scaledSDMass = max(0., recoSDMass + ( (jmr-1)*(recoSDMass-genMass) ) );
         

or

  • 2) take a random number from Gaussian with width √(SF*SF-1) * σMC, where σMC is the ratio of the width of the fitted W-jet softdrop mass peak for reco PUPPI jets divided by the width obtained for AK8 genjets. The smeared mass is then

         smearedMass = tr_->Gaus( recoSDMass, TMath::Sqrt(jmr*jmr-1)*(massResolution-1)* recoSDMass);
          

Scaling is only used for well-matched jets, where well-matched means: ΔR(AK8,genJet) < 0.4 and pT,AK8-pT,GEN < 3*pT,AK8*jerSigmaPt. Here AK8 is the AK8PFCHS jet matched to the PUPPI jet (the PUPPI softdrop mass is "assigned" to a AK8PFCHS jet via a dR matching.) If this requirement is NOT met, proceed with smearing the mass instead. For a typical BulkGraviton to WW signal sample, the matching requirement only fails 4% of the, hence most jets are scaled and not smeared. A set of TF1s needed in order to get the mass resolution, can be found here: https://github.com/thaarres/PuppiSoftdropMassCorr/tree/master/weights --> "puppiSoftdropResol.root". For an example code snippet, see below

// The following assumes that you have two TLorentzvectors; puppijet_tlv and  AK8jet_tlv, where the PUPPI jet is matched to the AK8PFCHS jet. 
// "oldmass" is the corrected PUPPI softdrop mass (corrected using the jet mass corrections described above).
float mass    = 0;            
float jms       = 0.999; 
float jmr       = 1.079;
float massResolution   = 0;

//Evaluate PUPPI softdropMC  mass resolution as a function of PUPPI jet pt and eta:

TFile* filejmr = TFile::Open("puppiSoftdropResol.root","READ");
TF1*   puppisd_resolution_cen = (TF1*)filejmr->Get("massResolution_0eta1v3");
TF1*   puppisd_resolution_for   = (TF1*)filejmr->Get("massResolution_1v3eta2v5");

if( fabs(puppijet_tlv.Eta()) <= 1.3 ){
    massResolution = puppisd_resolution_cen->Eval( puppijet_tlv.Pt() );
}
else{
    massResolution = puppisd_resolution_for->Eval( puppijet_tlv.Pt() );
}
  
//Apply jet mass scale (see above)
mass = oldmass*jms;
bool scaled = false;

// First try scaling:
for( int j = 0; j < data_.ngenJetsAK8 ; ++j ){
      float genMass = (*data_.genJetAK8_softdropmass).at(j);
      TLorentzVector genJet;
      genJet.SetPtEtaPhiE( (*data_.genJetAK8_pt).at(j), (*data_.genJetAK8_eta).at(j), (*data_.genJetAK8_phi).at(j), (*data_.genJetAK8_e).at(j) );
      if( AK8jet_tlv.DeltaR(genJet) > 0.4 || ( fabs(AK8jet_tlv.Pt()-genJet.Pt()) > (3*AK8jet_tlv.Pt()*jerSigmaPt))) continue;
      mass = max(float(0.), mass + ((jmr-1)*(mass-genMass)));
      scaled = true;
      break;
}
//Scaling failed, move to smearing:
if( !scaled ){
      mass = tr_->Gaus( mass, TMath::Sqrt(jmr*jmr-1)*(massResolution-1)*mass);
}

The fitted W-jet mass peak for a Bulk Graviton to WW signal sample (2 TeV) is shown in the plot below. The fitted width is increased by 7% after smearing.
preVsPostJMR.png

Systematics: Evaluation and implementation

The systematic uncertainty due to jet mass resolution is evaluated in the same way as for the jet mass scale. First, the uncertainty on the JMR is calculated (again, one statistical and two systematic uncertainties). We then proceed by scaling the central value of the JMR up and down with the resulting JMR uncertainty, checking the impact on the final signal yield. As the smearing procedure does not allow "improving" the jet mass resolution (the resulting effect of scaling the JMR down), the "scaling method" only is used to calculate the JMR systematic uncertainty. Find an example code snippet below


float mass = = oldmass*jms;  // Use softdrop mass with JMS applied
float jmr = 1.079;
float jmrUnc = 0.105;

if( scaleUncPar_.find("JMRup") != std::string::npos  ){ // Flag to calculate JMS up
    for( int j = 0; j < data_.ngenJetsAK8 ; ++j ){
      if( (*data_.genJetAK8_pt).at(j) < 0.01 ) continue;
      TLorentzVector genJet;
      genJet.SetPtEtaPhiE( (*data_.genJetAK8_pt).at(j), (*data_.genJetAK8_eta).at(j), (*data_.genJetAK8_phi).at(j), (*data_.genJetAK8_e).at(j) );
      if( AK8jet_tlv.DeltaR(genJet) > 0.4) continue;
      float genMass = (*data_.genJetAK8_softdropmass).at(j);
      mass = max(float(0.), mass + ((jmr+jmrUnc-1)*(mass-genMass)));
    }
  }
  else if( scaleUncPar_.find("JMRdown") != std::string::npos  ){  // Flag to calculate JMS down
    for( int j = 0; j < data_.ngenJetsAK8 ; ++j ){
      if( (*data_.genJetAK8_pt).at(j) < 0.01 ) continue;
      TLorentzVector genJet;
      genJet.SetPtEtaPhiE( (*data_.genJetAK8_pt).at(j), (*data_.genJetAK8_eta).at(j), (*data_.genJetAK8_phi).at(j), (*data_.genJetAK8_e).at(j) );
      if( AK8jet_tlv.DeltaR(genJet) > 0.4) continue;
      float genMass = (*data_.genJetAK8_softdropmass).at(j);
      mass = max(float(0.), mass + ((jmr-jmrUnc-1)*(mass-genMass)));
    }
  }
 

The fitted W-jet mass peak before and after scaling the jet mass resolution up/down within the uncertainty is shown below. A better resolution is achieved when scaling the JMR down, and a worse resolution when scaling up.
JMRdown.png JMRup.png

Documentation

Public results

  • JME-16-003: "Jet algorithms performance in 13 TeV data" In process!!

Talks

Internal and analysis notes (for CMS internal usage only)

  • CMS AN-2016/215: "Identification and calibration of boosted hadronic W/Z bosons at 13 TeV"

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng JMRdown.png r1 manage 38.8 K 2016-10-10 - 17:04 TheaAarrestad  
PNGpng JMRup.png r1 manage 39.5 K 2016-10-10 - 17:04 TheaAarrestad  
PNGpng JMS_UpDown.png r1 manage 15.1 K 2016-10-10 - 16:02 TheaAarrestad  
PNGpng preVsPostJMR.png r1 manage 39.7 K 2016-10-10 - 16:11 TheaAarrestad  
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2016-10-10 - TheaAarrestad
 
    • 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