Home of the tools to produce samples for HGCAL reconstruction studies
Set up CMSSW according to https://github.com/CMS-HGCAL/reco-ntuples
Then anywhere,
git clone git@github.com:CMS-HGCAL/reco-prodtools.git
cd reco-prodtools
python SubmitHGCalPGun.py --nevts 2 --evtsperjob 1 --queue 1nh --partID 13 --thresholdMin 35 --thresholdMax 35 --gunType E --tag test_${USER}
To produce NEVENTS
GEN-SIM-DIGI events with NPART
sets of particles (per event) of type PART_PDGID
and in the p_T range from PTMIN
to PTMAX
, one should run:
python SubmitHGCalPGun.py
--datTier GSD
--nevts NEVENTS
--evtsperjob NPERJOB
--queue QUEUENAME
--partID PART_PDGID
--nPart NPART
--thresholdMin PTMIN
--thresholdMax PTMAX
--gunType GUNTYPE
[--gunMode GUNMODE]
[--local]
--tag MYTAG
Here, one can produce a custom set of particles by providing PART_PDGID
as a set of comma-separated single PDG IDs. To simulate the decay of unstable particles, e.g. quarks, gluons or taus, an alternative particle gun based on PYTHIA8 can be used by setting --gunMode pythia8
.
To produce NEVENTS
GEN-SIM-DIGI events with pair of particles within given angular distance ΔR(η,φ) (per event), where the first particle is of type PART_PDGID
and in the p_T range from PTMIN
to PTMAX
, and the second one is of type INCONE_PART_PDGID
and at distance from DRMIN
to DRMAX
and with p_T in range from PTRATIO_MIN
to PTRATIO_MAX
relative to the first particle, one should run:
python SubmitHGCalPGun.py
--datTier GSD
--nevts NEVENTS
--evtsperjob NPERJOB
--queue QUEUENAME
--partID PART_PDGID
--nPart 1
--thresholdMin PTMIN
--thresholdMax PTMAX
--gunType Pt
[--gunMode GUNMODE]
--InConeID INCONE_PART_PDGID
--MinDeltaR DRMIN
--MaxDeltaR DRMAX
--MinMomRatio PTRATIO_MIN
--MaxMomRatio PTRATIO_MAX
[--local]
--tag MYTAG
One should also note that for the genertion of pairs of particles within a given cone, one has to use the "Pt" gun. Also note that it is currently not possible to generate pairs within a cone using the PYTHIA8-based gun.
The script will create a directory called partGun_[MYTAG]_[DATE]
locally or on the CMG EOS area (see options), and submit jobs to queue QUEUENAME
with NPERJOB
events per job,
NEVENTS
in total.
The batch stdout
/stderr
files and .cfg
files used to run
are stored locally in partGun_[MYTAG]_[DATE]
, while the resulting files partGun_*_GSD_{i}.root
are stored in partGun_[MYTAG]_[DATE]
either locally or in /eos/cms/store/cmst3/group/hgcal/CMG_studies/Production/
.
Rule of thumb for GEN-SIM-DIGI: 4 events per 1nh
:
- 20 events should be possible to finish in queue
8nh
. - Ditto, 100 events in
1nd
.
Add options --PU NPUevents --PUDS MinBias_dataset. Remember to 'voms-proxy-init' before so to let the script use das-client. Example of MinBias dataset to use: /MinBias_TuneCUETP8M1_14TeV-v1-pythia8/PhaseIITDRFall17GS-93X_upgrade2023_realistic_v2-v1/GEN-SIM
To run RECO stage on the produced GEN-SIM-DIGI samples, stored under partGun_[MYTAG]_[DATE]
(locally or on the CMG EOS area), one should run:
python SubmitHGCalPGun.py \
--datTier RECO \
--evtsperjob NPERJOB \
--queue QUEUENAME \
--inDir partGun_[MYTAG]_[DATE] \
[--local] \
--tag MYTAG
The script will get the list of GEN-SIM-DIGI files from the directory partGun_[MYTAG]_[DATE]
/GSD
(locally or on the CMG EOS area), and submit jobs to queue QUEUENAME
(if possbile with NPERJOB
events per job).
The batch stdout
/stderr
files and .cfg
files are stored locally in partGun_[MYTAG]_[DATE]
, while the resulting files partGun_*_RECO_{i}.root
are stored in partGun_[MYTAG]_[DATE]
/RECO
either locally or in /eos/cms/store/cmst3/group/hgcal/CMG_studies/Production/
.
Rule of thumb for RECO: 10 events per 1nh
:
- 50 events should be possible to finish in queue
8nh
. - Ditto, 1000 events in
1nd
.
For more info on available options type python SubmitHGCalPGun.py --help
This needs the ntupliser to be installed as in https://github.com/CMS-HGCAL/reco-ntuples
To run NTUP stage on the produced RECO samples, stored under partGun_[MYTAG]_[DATE]
(locally or on the CMG EOS area), one should run:
python SubmitHGCalPGun.py \
--datTier NTUP \
--evtsperjob NPERJOB \
--queue QUEUENAME \
--inDir partGun_[MYTAG]_[DATE] \
[--noReClust] \
[--local] \
--tag MYTAG
It can also run directly on RelVal using the same NTUP cfg. It runs das_client internally so you need to have a valid proxy (i.e. run voms-proxy-init before). The output goes in an area (eos/local) named after the RelVal dataset with all '/' replaced by underscores.
Typical usage:
python SubmitHGCalPGun.py \
--datTier NTUP \
--queue QUEUENAME \
[--local] \
-r /RelValSingleMu..etc.
We use the fork and pull model:
If you haven't done so yet, clone this repository:
git clone git@github.com:CMS-HGCAL/reco-prodtools.git
Add your fork of the repository as remote:
git remote add mine git@github.com:`git config user.github`/reco-prodtools.git
git checkout -b ${USER}_feature_branch origin/master
Work on your feature, add
, commit
, etc.
git fetch origin
git rebase origin/master
git push mine feature_branch
Make a pull request on github.