Skip to content

MiT-HEP/ChargedHiggs

Folders and files

NameName
Last commit message
Last commit date
May 29, 2024
May 30, 2024
Jul 16, 2024
Feb 7, 2021
Jul 16, 2024
Jul 26, 2020
May 30, 2024
Jan 27, 2023
Jul 16, 2024
Jan 19, 2023
Jan 10, 2018
Dec 21, 2020
Nov 20, 2019
Oct 22, 2019
Jun 17, 2022
May 2, 2022
Mar 16, 2023

Repository files navigation

Build Status

Charged Higgs Analysis Code

Table of Contents

Installation

  • Install Nero package and compile the Core (not scram). Though CMSSW is not required latest full work recipe has been tested in CMSSW_10_2_13.
BASE=$PWD [ $CMSSW_BASE/src ]
cd $BASE
git clone git@github.com:MiT-HEP/NeroProducer.git -b CMSSW_92X
cd NeroProducer/Core
make -j 16
  • Install the package
cd $BASE
git clone git@github.com:MiT-HEP/ChargedHiggs.git -b cmssw_94x ChargedHiggs
cd ChargedHiggs
make -j 16
  • Optional: install combine
cd $CMSSW_BASE/src
cmsenv
git clone https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit.git HiggsAnalysis/CombinedLimit
cd HiggsAnalysis/CombinedLimit
git checkout v8.0.1 
scram b -j 16 

Submission to Batch

  • Submission to the batch system is performed with the script/submit.py:
$python script/submit.py  --help
Usage: submit.py [options]

Options:
  -h, --help            show this help message and exit
  -i INPUT, --input=INPUT
                        Input Configuration file
  -d DIR, --dir=DIR     Directory where to write the configuration. WARNING OVERWRITE THE DIRECTORY!!!
  -v DEBUG, --debug=DEBUG
                        Debug Verbosity. From 0-3. Default=0
  -n NJOBS, --njobs=NJOBS
                        Number of Job to submit
  -q QUEUE, --queue=QUEUE
                        Queue

For example:

python script/submit.py -i dat/config.dat -v 3 -n 30 -q 1nh -d mysub/sub1
  • You can check the status with the command (after the job started):
python script/submit.py -d mysub/sub1 --status
  • you can resubmit jobs i-j,k or the failed job with the commands:
python script/submit.py -d mysub/sub1 --resubmit [ -j fail]
python script/submit.py -d mysub/sub1 --resubmit -j i-j,k
python script/submit.py -d mysub/sub1 --resubmit -j run

Local run

  • To run locally, you can call directly the looper with:
$python python/Loop.py --help
Usage: Loop.py [options]

Options:
  -h, --help         show this help message and exit
  -v, --verbose      Verbose
  -d DAT, --dat=DAT  Configuration file

For example:

python python/Loop.py -v -d dat/config.dat

Configuration

Configuration file

configuration file is a list of keys, followed by a '=' sign. The content depends on the key itself.

  • 'include': load the content of filename.dat
  • 'Files': the files to be run are file1,file2,/store..
  • 'addfiles': add these files to the Files to be run on.
  • 'Output': output file name will be...
  • 'MCDB': the Monte Carlo database file is ...
  • 'SFDB': the scale factor database file is...
  • 'Smears = @SmearBase,JER,JES': Book the systematics smears, by name, or by constructor (@)
  • 'Analysis = AnalysisBase,Analysis2 ': run the following analysis (that inherths from AnalysisBase) in that specifici order
  • 'config = AnalysisBase|a=1,b=2,c(3)': configure the analysis setting the public members, or running the public member functions ...

MC Database:

  • The MC database should contain the list of MCs with the info for the normalization. Can be dumped with the script:
$python python/mcDatabase.py --help
Usage: usage

Options:
  -h, --help            show this help message and exit
  -e EOS, --eos=EOS     eos directory to scout, will not read the files in the
                        pSet
  -x XSEC, --xsec=XSEC  Use external cross-section
  -l LABEL, --label=LABEL
                        MC label
  -f FILE, --file=FILE  mc_database file name
  -r, --recursive       do same for each subdir

e.g.:

python python/mcDatabase.py -r -e /store/user/amarini/Nero/v0.4/

PU Reweighting

  • Generate the PU distributions (1D)
python python/puDistributions.py -r -e /store/user/amarini/Nero/v0.4/  -f aux/pileup.root
  • or Run Dependent( RD )
python python/puDistributions.py -r -e /store/user/amarini/Nero/v0.4/ --run=0,1000,2000,3000 -f aux/pileupRD.root
  • add to these files the pileup distributions in data, with names:

    • PU-pileup
    • PU-pileupUp
    • PU-pileupDown
  • or for the RD model:

    • RD-pileup_run1_run2
    • RD-pileupUp_run1_run2
    • RD-pileupDown_run1_run2
  • modify the configuration file for using these files. The pileupRun and pileupLumi keys controls the RD vs 1D model.

SF Database

The Scale factor database, contains a list of scale-factors associated to a label. This are constructed in the looper and can be used in the analysis.

Datacards

  • Merge the output files (if necessary):
python script/submit.py --hadd -d mysub/sub1
  • Dump datacard shape based:
python python/dumpDatacard.py -i ChHiggs.root --hist=CutFlow/CutFlow -f datacard_2.txt -s 
  • or dump cut and count datacard:
python python/dumpDatacard.py -v -f datacard.txt -i ChHiggs.root --hist CutFlow/CutFlow --bin 2 --syst=JER

Development

Code structure

**********    *********    **********
* Looper * -> * Event * -> * Weight * -> MCDB, SF
**********    *********    **********

                                   *******
                        -> vector< * Jet * >
                                   *******
                        -> ...


                      *************  
           -> vector< * SmearBase * >      : set the actual systematic smear. Object or corrector should be awared.
                      *************  

                      *************  
           -> vector< * CorrectorBase * >  : change the content of the event, correcting objects like met, energy ...
                      *************  

                      ****************
           -> vector< * AnalysisBase * >   : perform analysis. Usually do not have rw access to the objects. To check.
                      ****************