Skip to content

Lepton Flavour Violation

skrausse edited this page Mar 1, 2021 · 15 revisions

Private sample production

2016 LFV samples are created following the private MC production explained https://github.com/CMSAachen3B/GeneratorTools/wiki/Private-MC-Production-Guide .

  • An issue in the production related to the number of jets is observed during the analysis. The distribution of the number of jets was not the same as in the DY samples. As a temporary solution, the number of jets are reweighed to match the Njet distribution to the one in DY sample. Keep this in mind!

Plotting

Example of plotting script execution

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioPlots.py --channel em --parameter m_vis --data Blinded --weight "pt_1>50"

BDT training

Create background and signal ntuples

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioMVA.py --channel em --create-input-trees

Training of the BDT

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioMVA.py --channel em --training

Show results of the training

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioMVA.py --channel em --results

Application of BDT on MC samples

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioMVA.py --application

Statistical analysis

Requires the BDT score!

Producing the datacard

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioLimits.py --channel em --method BDT --datacard

Calculate limits

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioLimits.py --channel em --method BDT --limits

Plot limits

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioLimitPlots.py --channel em --method BDT

Plot pre/post fit plots

python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioPrePostPlots.py --channel em

DNN Analysis

Disclaimer: The current setup used montecarlo samples from 2017. The signal samples were locally produced (HiggsAnalysis/KITHiggsToTauTau/data/Samples/XROOTD_sample_LFV_whajahma_RunIIFall17_13TeV_USER_madgraph-pythia8_recent.txt). For now, the analysis is only implemented for the Z -> mu tau channel.

For this analysis the signal and background ntuples already need to have been created. Also a json file from the makePlots_controlPlots.py needs to be created in order to use the weights and cuts from this file.

1.: Preprocessing (reading sensitive variables and calculating additional variables. Transforming to csv data in order to feed the data to the DNN)

python HiggsAnalysis/KITHiggsToTauTau/scripts/Flavio_DNN.py --csv

2.: training (Training two models on the preprocessed dataset and saving the trained model)

python HiggsAnalysis/KITHiggsToTauTau/scripts/Flavio_DNN.py --training

3.: obtaining DNN results (optional step: the accuracy and confusion matrix are produced)

python HiggsAnalysis/KITHiggsToTauTau/scripts/Flavio_DNN.py --results

4.: application of trained model (given datasets are fed to the trained model and a DNNscore variable is appended to the rootfile)

python HiggsAnalysis/KITHiggsToTauTau/scripts/Flavio_DNN.py --attach

Statistical analysis

The statistical analysis uses the code from the BDT analysis. It requires a DNNscore! In order to apply the statistical analysis, just follow the steps above with 2 modifications:

1.: change filename of the script from FlavioLimits.py to Flavio_DNN_limits.py

2.: change the method to DNN

NOTE: The channel needs to be clarified for the statistical analysis. However, since the analysis is only implemented for the mt channel, any other input will fail at this point.

Clone this wiki locally