Child pages
  • Zprime4Lepton8TeV

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
# current signal sample, M(phi) = 50 GeV, is done by Suneel
Under investigation 

 

Ntuple production

Ntuple production is based on the DY ntuple production. In this version, more variables for high pt muon id/iso and HEEP id/iso are included. Also there are preselection briefly to reduce the size of ntuples. See more details in ZprimeAnalyzer.cc

 

Code Block
cd CMSSW_5_3_11/src/Phys/ZprimeAnalyzer/ # this directory is for ntuple production
# ZprimeAnalyzer: EDMAnalyzer for ntuple production
# basic config: python/ZprimeAnalyzer_cfi.py
# PU reweighting config: python/PUreweight2012_cff.py
cd ntuples/allProd/ # directory for all data/background MC ntuple production
multicrab -create -submit -cfg MultiCrabConfig_*.cfg # see each config file what for
cd ntuples/Model1/ # directory for all signal MC ntuple production
# use submit.csh to submit crab jobs with existing configuration

...

Code Block
cd muTrkIso
root -b -q muonIso.C++ # produce output of histograms 
root effMuon.C # produce comparison plot among original trk iso, PF iso, and trk iso with a veto of 2nd lepton in AN note

Muon selection efficiency

Background estimation

Mass resolution

Systematic uncertainties

Limit calculation

Electron id

Code Block

for( int j = 0; j < nelec; j++ ) {
          if( fabs(elec_etaSC[j]) < 1.47 ) isEB = true;
          else isEE = true;
          double _modTrkIso = elec_modIsoPtTrks[j];
          double _modEMHADIso = elec_modIsoEMHADDepth1[j];
          for( int k = 0; k < nTT; k++ ) {
            if( track_pT[k] < _ptCut ) continue;
            double tmpDr = deltaR(track_eta[k], track_phi[k], elec_gsfEta[j], elec_gsfPhi[j]);
            if( tmpDr < 0.3 ) {
              _modTrkIso -= track_pT[k];
              if( _modTrkIso < 0 ) _modTrkIso = 0;
            }
          }
          bool isElecSel = false;
          if( fabs(elec_etaSC[j]) < _etaCut
            && elec_ecalDriven[j] == 1
            && fabs(elec_dPhiIn[j]) < 0.06
            && fabs(elec_dEtaIn[j]) < 0.02
            && elec_HoverE[j] > -99 && elec_HoverE[j] < 0.1 // default: 0.05
            && (elec_mHits[j] >= 0 && elec_mHits[j] <= 1)
            && _modTrkIso < 5 // iso
            ) {
            if( isEB ) {
              if( //fabs(elec_dEtaIn[j]) < 0.007
                //(elec_25over55[j] > 0.90 || elec_15over55[j] > 0.83)
                _modEMHADIso < (2.0+0.05*elec_et[j])  // iso
                && fabs(elec_dxyVTX[j]) < 0.02 ) {
                if( elec_et[j] > _ptCutLeading ) {
                  elecEBLeading.push_back(tmpElec);
                  if( elec_charge[j] > 0 ) elPlus.push_back(tmpElec);
                  else elMinus.push_back(tmpElec);
                  isElecSel = true;
                }
                else if( elec_et[j] > _ptCut ) {
                  elecEB2ndLeading.push_back(tmpElec);
                  if( elec_charge[j] > 0 ) elPlus.push_back(tmpElec);
                  else elMinus.push_back(tmpElec);
                  isElecSel = true;
                }
              }
            }
            else if( isEE ) {
              bool isPassEMH = false;
              // elec iso
              if( elec_et[j] < 50. ) {
                if( _modEMHADIso < (2.5) ) isPassEMH = true;
              }
              else {
                if( _modEMHADIso < (2.5+0.05*(elec_et[j]-50.)) ) isPassEMH = true;
              }
              
              if( isPassEMH 
                  && elec_sigmaIEtaIEta[j] > -99 && elec_sigmaIEtaIEta[j] < 0.03
                  && fabs(elec_dxyVTX[j]) < 0.05 ) {
                if( elec_et[j] > _ptCutLeading ) {
                  elecEELeading.push_back(tmpElec);
                  if( elec_charge[j] > 0 ) elPlus.push_back(tmpElec);
                  else elMinus.push_back(tmpElec);
                  isElecSel = true;
                }
                else if( elec_et[j] > _ptCut ) {
                  elecEE2ndLeading.push_back(tmpElec);
                  if( elec_charge[j] > 0 ) elPlus.push_back(tmpElec);
                  else elMinus.push_back(tmpElec);
                  isElecSel = true;
                }
              }
            }
          }

Merged electron/HEEP id modification study

Need this treatment to recover inefficiency by the merged electron

Code Block
 // check additional gsfTrack in a cone (dR < 0.30)
          bool isMoreGsfTrack = false;
          if( isElecSel && elec_et[j] > 500. ) {
            for( int l = 0; l < nTT; l++ ) {
              if( track_pT[l] < _ptCut ) continue;
              double dR = deltaR(elec_etaSC[j], elec_phiSC[j], track_eta[l], track_phi[l]);
                //cout << "track = " << l << " " << track_pT[l] << " " << track_eta[l] << " " << track_phi[l] << " " << track_charge[l] << " " << endl;
              if( dR < 0.25 && elec_eoverp[j] > 1.5 ) isMoreGsfTrack = true;
            }
            if( isMoreGsfTrack ) nMerged++;
          }
Code Block
cd preapproval/countMerged
root -b mergedElecAllch.C++ # produce histogram for fraction of merged electron
root fracMerge.C # produce a plot in AN Note
 
cd preapproval/inEffElec/
root -b cutOpt.C++ # produce histograms for HEEP id modification study
root makePlots.C
root -b invMergedElec++ # produce histograms for merged electron studyroot EoverP.C

Electron iso

Code Block
 cd preapproval/elecIso
root -b elecIso.C++ # produce histograms for electron iso
root effElec.C # produce the figure in AN note

 

 Efficiency

Produce various muon/electron id efficiency and event selection efficiency

Code Block
cd preapproval/accEff
root -b evtEff(ZZ).C++ # produce histograms for cut-flow of event selection efficiency
root compEvtEff.C # produce plots
root -b lepEff.C++ # produce histograms for lepton id efficiency as a function of lepton pt
root compSeqEff.C
root compLepPt.C
root compIso.C
root seqEff(ZZ).C++ # produce histograms for cut-flow event selection efficiency 
root -b AccEff.C++ # produce histograms for event selection efficiency as a function of Z' mass
root finalEff.C # produce plots in AN note 

 

Background estimation

Control plots

Code Block
cd preapproval/ControlPlots
root -b ControlPlots.C++ # produce histograms for comparison between data and mc as a function of 4 lepton inv. mass
root getControlPlots.C # produce plot in AN note

Mass resolution

Code Block
cd preapproval/Gen
root -b MassResolution.C++ # produce mass resolution histograms
root massRes.C # fit the resolution plots
root combRes.C # fit and produce figure in AN note

Systematic uncertainties

To produce efficiency systematic uncertainty

Code Block
cd preapproval/accEff
root GetSyst.C # then print out the efficiency difference between signal and ZZ MC

Limit calculation