-
Notifications
You must be signed in to change notification settings - Fork 18
Lepton Flavour Violation
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!
Example of plotting script execution
python HiggsAnalysis/KITHiggsToTauTau/scripts/FlavioPlots.py --channel em --parameter m_vis --data Blinded --weight "pt_1>50"
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
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
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
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.