--
BingxuanLiu - 2017-03-28
Heavy Resonance Search with Associated B-Jets
Four-b Resonance Search Top Priorities:
(Largely DONE) Develop and debug the analysis framework.
Core functionalities are in place and full analysis chain has been tested. In migration to Argonne currently.
(Largely DONE) Trigger performance studies.
Leading two jets 260~270 GeV should do the work. Need some extra checks.
(DONE) Determine the derivation to use.
EXOT2 has all the info needed. If we explore b-trigger in the future we need to make sure trigger matching is available in the derivation.
(In Process) Target the models to probe and request MC samples.
Theory models identified.
Exotics official MC production requests procedures
Simple steps:
- Validation plots
- Submit a jira ticket for exotics & PMG aproval
- Monitor production process
More ditail is given in this
twiki page.
Pythia 8 examples:
One can find
instructions on Z'->bb samples and the
MC15/16 joboption files
Perform sensitivity studies.
Figure out background estimation strategies.
Determine statistical framework.
Signal Models and Theory
Flavor physics anomalies
have drawn lots of attentions. Models with lepton flavor violation are proposes to incorporate them. NP with enhanced or exclusive couplings to third generation are often enforced in those models.
Simplified Models with Enhanced/Exclusive Couplings to Third Generation
- On the breaking of Lepton Flavor Universality in B decays
In the above model the third generation couplings of ZPrime are enhanced. We can generate such models based on the existing ZPrime models in ATLAS. A recipe is given below:
mkdir ZPrimeto4bSignal
cd ZPrimeto4bSignal
git clone https://:@gitlab.cern.ch:8443/biliu/ANLAnalysis.git
mv ./ANLAnalysis/SignalProduction/ .
rm -rf ANLAnalysis/
cd SignalProduction
source setup_athena.sh
mkdir Zprime4b_500GeV
cd Zprime4b_500GeV
source ../run.sh 320500 123 50 /path/to/your/output/dir
#argument 1: runumber, runumber - 320000 is the zprime mass
#argument 2: seed, random seed
#argument 3: maxevent
#argument 4: output directory, make sure it exists first
echo "const double n2f=1000000.; grep "cross" Zprime4b_*GeV/log.generate |sed 's/Zprime4b_//g' | sort -n | sed 's?GeV/? ?g'| awk '{print "("$1",n2f*"$6");"}'
# setup athena release
asetup 20.7.8.19,AtlasDerivation,here
#Run reconstruction for TRUTH3
Reco_tf.py --inputEVNTFile=test_Zprime_4b.EVNT.POOL.root
--outputDAODFile=test_Zprime_4.AOD.TRUTH3.root --reductionConf=TRUTH3
2HDM Models
- Heavy Higgs Search: Flavor Matters
We might have to run MadGraph by ourselves using the UFO files produced by the model builders. Instructions on MadGraph and MadAnalysis can be found
here
.
FeynRules
is a Mathematic tool for cross section, etc, calculations. Example models can be downloaded
here
for exercises.
Recently, MG5 was tested on ANL cluster, the recipes are:
1 Download tarball from: https://launchpad.net/mg5amcnlo
2 Untar
3 Point the madgraph config file MG5_aMC_v2_6_0/input/mg5_configuration.txt to central versions of FastJet and LHAPDF6:
lhapdf6 = /share/sl6/lhapdf6/bin/lhapdf-config
fastjet = /share/sl6/fastjet/bin/fastjet-config
4 Launch MadGraph:
./bin/mg5_aMC
5 Install MadAnalysis5 & pythia8:
MG5_aMC> install MadAnalysis5
MG5_aMC> install pythia8
6 Profit.
Recently, MG5 was also tested on lxplus cluster (YAY), the recipes are:
1 Download tarball from: https://launchpad.net/mg5amcnlo
2 Untar
3 Point the madgraph config file MG5_aMC_v2_6_0/input/mg5_configuration.txt to central versions of FastJet and LHAPDF6:
lhapdf6 = /afs/cern.ch/sw/lcg/external/MCGenerators_lcgcmt67c/lhapdf/6.2.0/x86_64-slc6-gcc48-opt/bin/lhapdf-config
fastjet = /afs/cern.ch/sw/lcg/external/fastjet/3.2.0/x86_64-slc6-gcc48-opt/bin/fastjet-config
4 Launch MadGraph:
./bin/mg5_aMC
5 Install MadAnalysis5 & pythia8:
MG5_aMC> install MadAnalysis5
MG5_aMC> install pythia8
6 Profit.
Signal Samples
Z' exclusively couples to b-quarks: pp->Z'bb~->bbb~b~
Three benchmark model at m(Z') = 800GeV, 1TeV and 2TeV with 100K, 60K and 40K events.
Link to
Jira ticket
The three probe signal samples have been prepared in AOD:
Name |
Dataset |
Stats |
Cross Sections pb |
Zprime4b800 |
mc16_13TeV.309648.Pythia8EvtGen_A14NNPDF23LO_Zprime4b800.recon.AOD.e6487_e5984_s3126_r10201 |
100000 |
0.3438 |
Zprime4b1000 |
mc16_13TeV.309649.Pythia8EvtGen_A14NNPDF23LO_Zprime4b1000.recon.AOD.e6487_e5984_s3126_r10201 |
60000 |
0.1136 |
Zprime4b2000 |
mc16_13TeV.309650.Pythia8EvtGen_A14NNPDF23LO_Zprime4b2000.recon.AOD.e6487_e5984_s3126_r10201 |
40000 |
0.0021 |
The three probe signal samples have been prepared in DAOD format via EXOT2 derivation:
Name |
Dataset |
Stats |
Cross Sections pb |
Zprime4b2000 |
mc16_13TeV.309650.Pythia8EvtGen_A14NNPDF23LO_Zprime4b2000.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 |
40000 |
0.0021 |
Zprime4b1000 |
mc16_13TeV.309649.Pythia8EvtGen_A14NNPDF23LO_Zprime4b1000.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 |
60000 |
0.1136 |
Zprime4b800 |
mc16_13TeV.309648.Pythia8EvtGen_A14NNPDF23LO_Zprime4b800.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 |
100000 |
0.3438 |
Trigger and Data Preparation
Tri-jet trigger with asymmetric thresholds
Derivations
All the info about Exotics derivations can be found in this
page. A central
JIRA
keeps track of the process. We can start with an existing derivation and see whether a dedicated one is needed.
Use the following command to generate a list of data sample for the grid jobs, please indicate the time it is generated until it is frozen for the analysis:
source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/user/atlasLocalSetup.sh
lsetup rucio
#Replace the p-tag in the example to the latest and greatest one.
rucio ls data17_13TeV:data17_13TeV*EXOT2\.*3372 | grep "CONTAINER" | awk '{print $2}' | sed 's/data17_13TeV://g' > Data13TeV_Main_EXOT2_gridSamples_2017_Dec18th.txt
Note: sometime there are datasets with similar but not exact strings so that please double check the list!
Tip: Do check a given p tag every once a while just in case (Then a diff can tell whether there are new samples.)
The text file generated should go to your MultiBTaggedAlgo/scripts/sampleLists directory as introduced in the framework section.
GRL and Luminosity
The recommendation can be found
here
. The current one used is
v97-pro21-13
.
The luminosity is calculated via the iLumiCalc.exe tool. The recorded luminosity for the trigger being used (HLT_2j225_gsc250_boffperf_split_0eta240_j70_gsc120_boffperf_split_0eta240) is 43.4344 fb-1. The input arguments for the online lumical tool is listed below.
Luminosity DB tag: OflLumi-13TeV-010
Live fraction trigger: L1_EM24VHI
Physics trigger: HLT_2j225_gsc250_boffperf_split_0eta240_j70_gsc120_boffperf_split_0eta240
LAr EventVeto Tag: LARBadChannelsOflEventVeto-RUN2-UPD4-08
GRL file: data17_13TeV.periodAllYear_DetStatus-v97-pro21-13_Unknown_PHYS_StandardGRL_All_Good_25ns_JetHLT_Normal2017.xml was uploaded successfully to /tmp/lumifiles/392298
The output is:
--- LumiCalculator : Livetime : 23710.3[0m
--- LumiCalculator : Prescale Weighted Livetime: 23710.3[0m
--- LumiCalculator : Good LBs : 406[0m
--- LumiCalculator : Bad LBs : 0[0m
--- LumiCalculator : IntL delivered (ub^-1) : 1.01535e+08[0m
--- LumiCalculator : IntL after livefraction (ub^-1): 1.00076e+08[0m
--- LumiCalculator : IntL after LAr fraction (ub^-1): 1.00071e+08[0m
--- LumiCalculator : IntL recorded after prescale (ub^-1) : 1.00071e+08[0m
--- LumiCalculator : L1 Prescales: [1107,1195]:1, [1196,1310]:1, [1311,1427]:1, [1428,1562]:1, [0m
--- LumiCalculator : HLT Prescales: [1107,1195]:1, [1196,1310]:1, [1311,1427]:1, [1428,1562]:1, [0m
--- LumiCalculator : -----------------------------------[0m
--- LumiCalculator : LumiCalculator summary[0m
--- LumiCalculator : -----------------------------------[0m
--- LumiCalculator : Total L1-Acc L2-Acc L3-Acc LiveTime IntL rec.(ub^-1) IntL del.(ub^-1)[0m
--- LumiCalculator : 4157394338 0 04.81438e+06 4.34344e+10 4.54655e+10[0m
--- LumiCalculator : Total L1/2/3 accept: 41573943380 0 [0m
--- LumiCalculator : Total L1 livetime trigger accept: 60709860 [0m
--- LumiCalculator : First Run: 325713 [0m
--- LumiCalculator : Last Run: 340453 [0m
--- LumiCalculator : Total L1BeforePresc: 296026634 [0m
--- LumiCalculator : Total Livetime : 4.81438e+06[0m
--- LumiCalculator : Total prescale weighted Livetime: 4.81438e+06[0m
--- LumiCalculator : Total Good LBs : 88225[0m
--- LumiCalculator : Total Bad LBs : 0[0m
--- LumiCalculator : Total IntL delivered (ub^-1) : 4.54655e+10[0m
--- LumiCalculator : Total IntL after livefraction (ub^-1): 4.34513e+10[0m
--- LumiCalculator : Total IntL after LAr fraction (ub^-1): 4.34344e+10[0m
--- LumiCalculator : Total IntL recorded (ub^-1) : 4.34344e+10[0m
--- CoolQuery : Closing database 'CONDBR2[0m
--- CoolQuery : Closing database 'CONDBR2[0m
--- CoolQuery : Closing database 'CONDBR2[0m
--- iLumiCalc : --------------------------------------------[0m
--- TGoodRunsListWriter : GoodRunsList stored as : ilumicalc_merged_grl_325713.97-340453.1562.xml[0m
--- iLumiCalc : Real time: 1658.05 s[0m
--- iLumiCalc : CPU time: 348.2 s[0m
Done
Tue Feb 20 17:37:18 CET 2018
Background Studies
Background MC Samples
QCD multijet process contribute the most to this final state. 2016 JZ slice MC EXOT2 derivations have been finished, the list of samples is:
Name |
Dataset |
Stats |
Cross Sections pb |
JZ0W |
mc16_13TeV.361020.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ0W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
16000000 |
78420000000 |
JZ1W |
mc16_13TeV.361021.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ1W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
15998000 |
78420000000 |
JZ2W |
mc16_13TeV.361022.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ2W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15989500 |
2433200000 * 0.00033432 |
JZ3W |
mc16_13TeV.361023.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ3W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15879500 |
26454000 * 0.00032012 |
JZ4W |
mc16_13TeV.361024.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ4W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15925500 |
254630 * 0.00053156 |
JZ5W |
mc16_13TeV.361025.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ5W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15993500 |
4553.5 * 0.0009244 |
JZ6W |
mc16_13TeV.361026.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ6W.deriv.DAOD_EXOT2.e3569_e5984_s3126_r9781_r9778_p3371 |
17734000 |
257.53 * 0.00094071 |
JZ7W |
mc16_13TeV.361027.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ7W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15983000 |
16.215 * 0.00039264 |
JZ8W |
mc16_13TeV.361028.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ8W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
15999000 |
0.625 * 0.010176 |
JZ9W |
mc16_13TeV.361029.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ9W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
13995500 |
0.020 * 0.012076 |
JZ10W |
mc16_13TeV.361030.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ10W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
13985000 |
0.001 * 0.0059093 |
JZ11W |
mc16_13TeV.361031.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ11W.deriv.DAOD_EXOT2.e3569_s3126_r9781_r9778_p3340 |
15958000 |
0.000042260 * 0.0026759 |
JZ12W |
mc16_13TeV.361032.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ12W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 |
15995600 |
0.000001037 * 0.00042587 |
B-tagging Studies
Flavor Tagging Recommendation
Rel21 recommendations for 2018 winter conference is in
CDI
. The latest CDI file is 2017-21-13TeV-MC16-CDI-2018-02-09_v1.root. Due to its large size it can not be stored in GitLab.
Four B-Jet Analysis Framework
General design philosophies and goals
The analysis framework is built based on the xAODHelpers, the DiJetFramework and the standalone analysis package developed at Argonne. The xAODHelpers is a central package for Nutple production so that there are no changes need to be made to suit this analysis. DiJetFramework is a customized package where we determine how to skim the derivations. Only a sub-package, DiJetResonanceAlgo is used here. The standalone analysis package developed at Argonne is the tool to apply analysis specific selections and make histograms or CutFlow tables.
This software model has been used successfully in the Di-BJet search. For the Four B-Jet Analysis Framework, DiJetResonanceAlgo has been updated to MultiBTaggedAlgo. The standalone ANL analysis package has been revamped to fulfill the following design goals:
- Flexibility: The software should not have to be recompiled each time a cut value or histogram binning needs to be changed.
- Reproductivity: The software automatically keeps track of the setup for a given job. Information to keep track includes the samples used, important cuts applied and current software version.
- Clarity: The software should be written in a straightforward and modular fashion. The logic should be clearly represented by the code line by line or comments.
The above points will be illustrated in the following recipes and instructions. Any new ideas to further improve the framework is welcome. Everything is tested on lxplus.
Package recipes
All necessary packages can be installed at once on lxplus:
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
mkdir FourB
cd FourB
mkdir src build
cd src
asetup AnalysisBase,21.2.10,here
git clone https://github.com/UCATLAS/xAODAnaHelpers.git
git clone https://:@gitlab.cern.ch:8443/biliu/FourBJetAnalysis.git
git clone https://:@gitlab.cern.ch:8443/biliu/MultiBTaggedAlgo.git
cd ../build
cmake ../src
make
cd ../
source build/${CMTCONFIG}/setup.sh
For the time being on LCRC at ANL the CMTCONFIG variable must be set by hand to x86_64-centos7-gcc62-opt.
Furthermore an additional step is needed to access GitLab on the Argonne clusters:
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
kinit your_cern_username@CERN.CH
aklog
mkdir FourB
cd FourB
mkdir src build
cd src
asetup AnalysisBase,21.2.10,here
git clone https://github.com/UCATLAS/xAODAnaHelpers.git
git clone https://:@gitlab.cern.ch:8443/biliu/FourBJetAnalysis.git
git clone https://:@gitlab.cern.ch:8443/biliu/MultiBTaggedAlgo.git
cd ../build
cmake ../src
make
cd ../
#Here you may see machine name as centos7 insteed of slac6. This is fine so just ignore it.
source build/x86*/setup.sh
#For test run: you can create a run directory and run analysis code under this directory
#For example mine looks like "build/ runDir/ src/".
#Under runDir/ you should create an "output/" directory.
#Here is a test command:
run_4b /users/bingxuan.liu/FourB/run/PeriodD/user.biliu.PeriodD.Run331085.physics_Main.Nominal.Part4 /users/bingxuan.liu/FourB/run/HLT_2j225_j70_preselection_noTrigger.txt /users/bingxuan.liu/FourB/run/dataHistograms.txt Inclusive
#(I don’t know if you can read directories from atlas* machine)
#You should ignore ERROR messages related to any TBranches.
After everything is compiled, you can create a setup script inside
FourB directory:
cd src
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
asetup AnalysisBase,21.2.10,here
cd ../
source build/${CMTCONFIG}/setup.sh
Instructions on each package are listed below.
xAODHelpers and <nop>MultiBTaggedAlgo Packages
xAODHelpers is well documented
here
. This package is maintained by a lot of people, please become an watcher of the central
GitHub repository,
xAODHelpers
. Update this package frequently and make sure our framework is compatible with it. MultiBTaggedAlgo is an algorithm developed to run with the default algorithms in xAODHelpers. It applies additional cuts and calculate additional variables.
An example to run the full chain locally is listed below:
source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/user/atlasLocalSetup.sh
lsetup rucio
rucio download mc16_13TeV.361027.Pythia8EvtGen_A14NNPDF23LO_jetjet_JZ7W.deriv.DAOD_EXOT2.e3668_s3126_r9781_r9778_p3340 --nrandom 1
xAH_run.py --config ../src/MultiBTaggedAlgo/data/config_MultiBTaggedAlgo_Nominal_2017.py --files file_you_just_downloaded --isMC --submitDir rel21_test --nevents 100000 direct
GRL is defined in config_MultiBTaggedAlgo_Nominal_2017.py, use the one recommended.
More often we run this step on the grid, before submitting a big queue to the grid, it is better to try a probe job first. an example is given below:
source /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/user/atlasLocalSetup.sh
voms-proxy-init -voms atlas
lsetup rucio
lsetup panda
echo data17_13TeV.00333650.physics_Main.deriv.DAOD_EXOT2.f857_m1855_p3372 > test
xAH_run.py --inputRucio --inputList --files test.txt --config $WorkDir_DIR/data/MultiBTaggedAlgo/config_MultiBTaggedAlgo_Nominal_2017.py --force --submitDir gridSubmission/test prun --optGridDestSE=BNL-OSG2_USERDISK --optBatchShellInit 'source $WorkDir_DIR/setup.sh' --optGridOutputSampleName=user.biliu.test.Dec18th.%in:name[1]%.%in:name[2]%.%in:name[3]%.Nominal --optGridNGBPerJob=2
Samples
The preselection skims for data and QCD have been transferred to eos here: /eos/atlas/user/b/biliu/FourBNtuples/. The events are required to pass a set of preselections defied as below:
The raw tuples are located in the ATLAS AFS area at Argonne: /atlasfs/atlas/local/bingxuan.liu/FourJetNtuple
Statistical Framework
Use HistFitter package:
https://gitlab.cern.ch/HistFitter/HistFitter
Tutorial:
https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/HistFitterTutorial
Advanced tutorial:
https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/HistFitterAdvancedTutorial
Input to HistFitter
We use TTree (Ntuple) as input format to Histfitter.
Root file format:
sample_dir/root_file.root:
NomonalTreeName
NomonalTreeName _Sys1Up
NomonalTreeName _Sys1Down
.......
In the Hist Fitter config file define systimatics: jes as an example
jes = Systematic("JES","_NoSys","_JESup","_JESdown","tree","overallSys")
Analysis Meetings