-- 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:

  1. Validation plots
  2. Submit a jira ticket for exotics & PMG aproval
  3. 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

  1. 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


#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

  1. Heavy Higgs Search: Flavor Matters

MadGraph Recipes

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:

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:

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
Zprime4b800 mc16_13TeV.309648.Pythia8EvtGen_A14NNPDF23LO_Zprime4b800.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 100000 0.3438
Zprime4b1000 mc16_13TeV.309649.Pythia8EvtGen_A14NNPDF23LO_Zprime4b1000.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 60000 0.1136
Zprime4b2000 mc16_13TeV.309650.Pythia8EvtGen_A14NNPDF23LO_Zprime4b2000.deriv.DAOD_EXOT2.e6487_e5984_s3126_r10201_r10210_p3374 40000 0.0021

Trigger and Data Preparation

Tri-jet trigger with asymmetric thresholds


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
--- LumiCalculator      : Prescale Weighted Livetime: 23710.3
--- LumiCalculator      : Good LBs     : 406
--- LumiCalculator      : Bad LBs      : 0
--- LumiCalculator      : IntL delivered (ub^-1) : 1.01535e+08
--- LumiCalculator      : IntL after livefraction (ub^-1):  1.00076e+08
--- LumiCalculator      : IntL after LAr fraction (ub^-1):  1.00071e+08
--- LumiCalculator      : IntL recorded after prescale (ub^-1) : 1.00071e+08
--- LumiCalculator      : L1 Prescales: [1107,1195]:1, [1196,1310]:1, [1311,1427]:1, [1428,1562]:1, 
--- LumiCalculator      : HLT Prescales: [1107,1195]:1, [1196,1310]:1, [1311,1427]:1, [1428,1562]:1, 
--- LumiCalculator      : -----------------------------------
--- LumiCalculator      :   LumiCalculator summary
--- LumiCalculator      : -----------------------------------
--- LumiCalculator      :      Total    L1-Acc    L2-Acc    L3-Acc  LiveTime  IntL rec.(ub^-1)  IntL del.(ub^-1)
--- LumiCalculator      :           4157394338         0         04.81438e+06       4.34344e+10       4.54655e+10
--- LumiCalculator      : Total L1/2/3 accept: 41573943380         0         
--- LumiCalculator      : Total L1 livetime trigger accept: 60709860  
--- LumiCalculator      : First Run: 325713    
--- LumiCalculator      : Last Run: 340453    
--- LumiCalculator      : Total L1BeforePresc: 296026634 
--- LumiCalculator      : Total Livetime     : 4.81438e+06
--- LumiCalculator      : Total prescale weighted Livetime: 4.81438e+06
--- LumiCalculator      : Total Good LBs     : 88225
--- LumiCalculator      : Total Bad LBs     : 0
--- LumiCalculator      : Total IntL delivered (ub^-1) : 4.54655e+10
--- LumiCalculator      : Total IntL after livefraction (ub^-1):  4.34513e+10
--- LumiCalculator      : Total IntL after LAr fraction (ub^-1):  4.34344e+10
--- LumiCalculator      : Total IntL recorded (ub^-1) : 4.34344e+10
--- CoolQuery           : Closing database 'CONDBR2
--- CoolQuery           : Closing database 'CONDBR2
--- CoolQuery           : Closing database 'CONDBR2
--- iLumiCalc           : --------------------------------------------
--- TGoodRunsListWriter : GoodRunsList stored as        : ilumicalc_merged_grl_325713.97-340453.1562.xml
--- iLumiCalc           : Real time: 1658.05 s
--- iLumiCalc           : CPU time:  348.2 s
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:

  1. Flexibility: The software should not have to be recompiled each time a cut value or histogram binning needs to be changed.
  2. 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.
  3. 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
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
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
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


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:
                                              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

Date Highlights Reminders Link to Agenda
Mar 7, 2017 ASC: Summary on the 4-b Search Efforts Link to agenda
Mar 31, 2017 JDM: Initial Discussion on 4-b Search Link to agenda
Dec 15, 2017 JDM: Rel21 on the 4-b Search Efforts Link to agenda
Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatcsv lumitable.csv r1 manage 15.3 K 2018-02-21 - 10:00 BingxuanLiu Lumi Table
PDFpdf lumitable.pdf r1 manage 64.1 K 2018-02-26 - 14:21 BingxuanLiu PDF Lumitable
PNGpng xsec_vs_zprime_mass.png r1 manage 10.1 K 2017-11-09 - 17:16 BingxuanLiu cross section vs zprime mass plot made by an arguably senior member of the group using fairly old shool techniques
Edit | Attach | Watch | Print version | History: r46 < r45 < r44 < r43 < r42 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r46 - 2018-03-28 - BingxuanLiu
    • 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-2021 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