Split Cluster Study
Links
Issues
- The pileup mixing seems to throw away all the digis that are coming from the mixed pileup. This makes it difficult to add the digi markers.
- The digi collection does not exactly contain the same pixels as the cluster collection. Mostly the digis is a bigger set (with all the cluster pixels available in it), but for now on I create a lookup table and add zero markers for any extra cluster digis that might turn up. The rate of "mocked digis" is a good number to pay attention to when running the simulations even on the grid.
TODOs (problem fixes, find plans at the end of this page)
- Add modifications to the pileup mixing modules so that it propagates the digi flag collection from the mixed data and it can be combined to a correct flag collection
- Modify the histogram merger code not to merge the "ModuleClusterPlots" even if they are from the same run/lumiblock/event
Recipe to run the framework
Deploy script
export SCRAM_ARCH=slc6_amd64_gcc530
cmsrel CMSSW_9_3_0_pre1
cd CMSSW_9_3_0_pre1/src
cmsenv
git cms init
git cms-addpkg SimTracker/SiPixelDigitizer
git cms-addpkg RecoLocalTracker/SiPixelClusterizer
git remote add hunyadix git@github.com:hunyadix/cmssw.git
git fetch hunyadix
git checkout -t hunyadix/ModForPixelMerger
git clone git@github.com:hunyadix/PhaseISplitClusterAnalyzer.git DPGAnalysis/PhaseISplitClusterAnalyzer
scram b -j 20
Generating a CMSSW config file
cmsDriver.py \
-s GEN,SIM,DIGI,L1,DIGI2RAW,RAW2DIGI,RECO \
--evt_type SingleNuE10_cfi \
--process PrivateRECO \
--conditions auto:phase1_2017_realistic \
--era Run2_2017 \
--geometry DB:Extended \
--pileup Flat_0_50_25ns \
--relval 9000,50 \
--beamspot Realistic25ns13TeVEarly2017Collision \
--filein /store/relval/CMSSW_9_0_0_pre4/RelValMinBias_13/GEN-SIM/90X_upgrade2017_realistic_v6-v1/10000/0047A0C1-BDEC-E611-8FD9-0CC47A4D7630.root \
--pileup_input das:/RelValMinBias_13/CMSSW_9_2_3-92X_upgrade2017_realistic_v1_earlyBS2017-v1/GEN-SIM \
--eventcontent RECOSIM \
--datatier GEN-SIM-RECO \
--fileout file:GenNu_FlatPileup0to50_GENSIMRECO.root \
--python_filename PhaseI_GenNu_FlatPileup0to50_cfg.py \
--runUnscheduled \
-n 10 \
--no_exec
For no PU, I usually generate TTbar events.
How to add dynamic inefficiency
The tag is set when the db file is generated.
# Add dynamic inefficiency to simulate dcol losses
dynIneff_db = 'sqlite_file:phase1_efficiencies_95_pure.db'
dynIneff_tag = 'SiPixelDynamicInefficiency_v1'
process.DynIneffReader = cms.ESSource("PoolDBESSource",
DBParameters = cms.PSet(
messageLevel = cms.untracked.int32(0),
authenticationPath = cms.untracked.string('')),
toGet = cms.VPSet(cms.PSet(
record = cms.string("SiPixelDynamicInefficiencyRcd"),
tag = cms.string(dynIneff_tag))),
connect = cms.string(dynIneff_db))
process.dynineffprefer = cms.ESPrefer("PoolDBESSource", "DynIneffReader")
Calculating the pileup for data files
Example:
brilcalc lumi --byls -u /nb --minBiasXsec 78100 --begin 5659 --end 9999 | head -n-8 | tail -n+5 | sed "s;|;;g;s;:; ;g"):
This bash-script can be called from the
SplitClusterStudy analyzer (currently commented out), but opening a socket to store the string as a result still regularly fails (and also takes up too much time when testing).
Running the
HistogramMerger is as simple as checking out the git repository and specifying the target files and the output name in src/main.cxx.
Tests
- The pixel markers are seemingly present for all the cluster pixels when the pileup is 0 (1). The function checkDetIdToMarkerPtrMap() is currently run for each of the events and it prints out how many of the clusters have a corresponding marker.
- In the analyzer testPairFinding() tests the private areClustersPair() for pair finding efficiency. Seems like the pair finding works just fine if the cluster objects have properly set x, y and size fields.
Results
TTbar events, no pileup, 95% dcol efficiency statistics files:
/store/user/ahunyadi/SCS/Run2_CMSSW93X/SCS_93X_mcRun2_DynIneff_95_GEN_SIM_RAWTODIGI_evt100000
For users on the ui3 of the Wigner institute:
/data/gridout/ahunyadi/SCS/Run2_CMSSW93X/SCS_93X_mcRun2_DynIneff_95_GEN_SIM_RAWTODIGI_evt100000/171212_101805/0000/
Validation
Examples for module cluster plots of single events are shown below. Nothing unordinary to be seen.
Fluctuations in the leftmost and the rightmost pixels
Positions for the boundary clusters in pixels:
All boundary pixels |
Leftmost pixels |
Rightmost pixels |
|
|
|
Since the dcol loss has the opposite effect on the rightmost and leftmost pixels, the total boundary pixel distribution does not show any fluctuation effect. |
For 95% dcol efficiency the leftmost cell shows ~8.5-10.5% less pixels in the odd columns |
For 95% dcol efficiency the rightmost cell shows ~8.5-10.5% less pixels in the even columns |
Plans for the analysis
- Write a tool to properly calculate the percentage differences in the even and odd cols (excluding the fidicual areas)
- Measure the correspondence of the fluctuation in the leftmost and rightmost pixel position to the dcol efficiency correspondence by creating an efficiency scan with the SplitClusterStudy plugin
- Measure distributions for the left- and rightmost pixels in the data and give estimation for dcol efficiency loss.
--
AdamHunyadi - 2017-12-04