Tutorial to make Full Simulation at High Pileup Scenarios
This tutorial illustrates the simulation of neutrino samples with pileup 70 considering upgraded geometry for the pixel detector (4-layers, 3-disks).
Generation of events
We are going to simulate Neutrinos with Pt 2-20 according to this
configuration fragment
ssh jruizvar@lxplus5.cern.ch
cmsrel CMSSW_6_1_2_SLHC6_patch1
cd CMSSW_6_1_2_SLHC6_patch1/src
source script.sh
script.sh requires
Bash terminal.
Copy the following configure file (in
CMSSW_6_1_2_SLHC6_patch1/src
)
Before submitting the job to crab using
do a local test
scram b -j 8
cmsRun Neutrino_Pt2to20_gun_cff_py_GEN_SIM.py
Check
edmFileUtil Neutrino_Pt2to20_gun_cff_py_GEN_SIM.root
. This file is only to test and can be removed (
rm Neutrino_Pt2to20_gun_cff_py_GEN_SIM.root
)
Submit to crab
crab -create
crab -submit -c Neutrino_Pt2to20_14TeV
It takes around 15 min to generate 10000 events. 0.2M events can be generated in 20 jobs. After
crab getoutput
, don't forget
crab -publish -c Neutrino_Pt2to20_14TeV
Create Analyzer
We are going to create an standalone analyzer (no need to checkout external libraries) that can be used with any GEN-SIM sample, not only neutrinos.
ssh jruizvar@lxplus5.cern.ch
cmsrel CMSSW_6_1_2_SLHC6_patch1
cd CMSSW_6_1_2_SLHC6_patch1/src
source script.sh
Same
script.sh as above. Make a directory with a dummy name, in this case
neutrinoPU70
. Create an analyzer respecting the name
Pxecal
mkdir neutrinoPU70
mkedanlzr Pxecal
cd Pxecal
Copy to this folder the following files
Run a local test and check the resulting n-tuple
Neutrino_PU70_ntuple.root
scram b -j 8
cmsRun pxecal_cfg.py
root -l Neutrino_PU70_ntuple.root
[0] NtupleMaker->cd()
[1] t->Draw("sqrt(ClGx*ClGx+ClGy*ClGy):ClGz")
[2] .q
rm Neutrino_PU70_ntuple.root
If local run succeeds, you can create and submit the jobs
crab -create
crab -submit 1-500 -c Neutrino_PU70_100K_ntuple
crab -submit 501-1000 -c Neutrino_PU70_100K_ntuple
This step is more time consuming than the generation part. No need to publish because the output are
n-tuples stored at T2_BR_SPRACE for private analysis.
Example plots
- Number of pixel cluster for low pileup (neutrino sample with 5000 events)
- Number of pixel cluster for high pileup (neutrino sample with 5000 events)
Exercise
Make the full simulation for a
SingleElectronFlatPt5To50 for three pileup scenarios:
- PU35 (200K events)
- PU70 (100K events)
- PU140 (50K events)
Hint:
- The GEN-SIM step should be done only once.
- The python configure files should be slightly modified.
- No need to touch the Pxecal.cc source file.
Simulated events for single electron
Full simulation with CMSSW_6_1_X using steps above.
Samples are @ T2_BR_SPRACE.
Step |
Path to dataset |
Number of Events |
GEN-SIM |
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectron_Pt5to50_14TeV_v2/ |
200K |
PileUP35 |
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectron_PU35_20K_ntuple_v4/ |
20K |
PileUP70 |
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectron_PU70_10K_ntuple_v4/ |
10K |
PileUP140 |
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectron_PU140_5K_ntuple_v4/ |
5K |
New Simulated events for single electron
Files in the table bellow were produced with CMSSW_6_1_2_SLHC6_patch1 from these official GEN-SIM samples (50K events)
/SingleElectronFlatPt0p2To50/UpgFall13-POSTLS261_V2-v1/GEN-SIM
and using the official
MinBias samples (30M events)
/MinBias_TuneZ2star_14TeV-pythia6/UpgFall13-POSTLS261_V2-v1/GEN-SIM
To open a merged file in lxplus , inside root mode, one can use
TFile *file = TFile::Open("dcap://osg-se.sprace.org.br:/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/MergedNtuples/SingleElectron_Pt2to50_noPU_ntuple.root");
Ntuples listed here are located at T2_SPRACE and contain information about both 5x5 and 1x1 EM crystals.
Scenario | Format | Size | Events | Details | Paths |
No PileUP | DIGIRAW | 12GB | 50K | Location | /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_noPileUP_50K_DIGI_RAW_v6/a49c986a608faae0f4ff11329e2bb83f/ |
datasetpath | /SingleElectronFlatPt0p2To50/adesouza-SingleElectron_noPileUP_50K_DIGI_RAW_v6-a49c986a608faae0f4ff11329e2bb83f/USER |
PileUP35 | DIGIRAW
| 110GB | 50K
| Location
|
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU35_50K_DIGI_RAW_v6/61196276663e836a1b830c8b84a619d4/
|
datasetpath
|
/SingleElectronFlatPt0p2To50/adesouza-SingleElectron_PU35_50K_DIGI_RAW_v6-61196276663e836a1b830c8b84a619d4/USER
|
PileUP70 | DIGIRAW | 210GB | 50K
| Location |
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU35_50K_DIGI_RAW_v6/61196276663e836a1b830c8b84a619d4/
|
datasetpath
| /SingleElectronFlatPt0p2To50/adesouza-SingleElectron_PU70_50K_DIGI_RAW_v6-3752475e524a60330e4a83a2952b3625/USER
|
PileUP140 | DIGIRAW | 400GB | 50K
| Location
|
/pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU140_50K_DIGI_RAW_v6/f74d2f3945f4866a2ea25695b38d79f0/
|
datasetpath
| /SingleElectronFlatPt0p2To50/adesouza-SingleElectron_PU140_50K_DIGI_RAW_v6-f74d2f3945f4866a2ea25695b38d79f0/USER
|
|
|
|
|
|
|
No PileUP | Ntuple | 24MB | 50K
| Location
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_noPileUP_50K_ntuple_v6/7fef2304deb2968f78764a0244f910ee/
|
Merged file | /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/MergedNtuples/SingleElectron_Pt2to50_noPU_ntuple.root
|
PileUP35 | Ntuple | 5.6GB | 50K
| Location
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU35_50K_ntuple_v6/7fef2304deb2968f78764a0244f910ee/
|
Merged file
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/MergedNtuples/SingleElectron_Pt2to50_PU35_ntuple_50K.root
|
PileUP70 | Ntuple | 11GB | 50K
| Location
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU70_50K_ntuple_v6/7fef2304deb2968f78764a0244f910ee/
|
Merged file
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/MergedNtuples/SingleElectron_Pt2to50_PU70_ntuple_50K.root
|
PileUP140 | Ntuple | 22GB | 50K
| Location
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/SingleElectron_PU140_50K_ntuple_v6/7fef2304deb2968f78764a0244f910ee/
|
Merged file
| /pnfs/sprace.org.br/data/cms/store/user/adesouza/SingleElectronFlatPt0p2To50/MergedNtuples/SingleElectron_Pt2to50_PU140_ntuple_50K.root
|
For rejection factor
Scenario |
Format |
Size |
Events |
Details |
Paths |
No PileUp |
DIGIRAW |
560GB |
1M |
400 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/MinBias_TuneZ2star_14TeV-pythia6/MinBias_NoPU_1M_DIGI_RAW/ |
No PileUp |
DIGIRAW |
5.60TB |
9.9M |
4000 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/MinBias_TuneZ2star_14TeV-pythia6/MinBias_NoPU_10M_DIGI_RAW/ |
PileUp35 |
DIGIRAW |
440GB |
0.2M |
2000 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/Neutrino_Pt2to20_gun/Neutrino_PU35_200K_DIGI_RAW/ |
PileUp70 |
DIGIRAW |
880GB |
0.2M |
2000 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/Neutrino_Pt2to20_gun/Neutrino_PU70_200K_DIGI_RAW/ |
No PileUp |
Ntuple |
19GB |
1M |
100 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/MinBias_NoPU_1M_ntuple/ |
No PileUp |
Ntuple |
280GB |
9.9M |
500 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/MinBias_NoPU_10M_ntuple/ |
PileUp35 |
Ntuple |
30GB |
0.2M |
200 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/Neutrino_PU35_200K_ntuple/ |
PileUp70 |
Ntuple |
60GB |
0.2M |
200 files |
/pnfs/sprace.org.br/data/cms/store/user/jruizvar/Neutrino_PU70_200K_ntuple/ |
Updated code available in
GIT.
Raw tables with pixel and ecal information
To produce a raw table use the following
root -b SingleElectron_Pt2to50_noPU_ntuple.root
[0] NtupleMaker->cd()
[1] t->Scan("bHitLayer:bHitGx:bHitGy:bHitGz:egEt:egGx:egGy:egGz","event<=10 && bHitLayer==1"); > singleElectron_withoutPileup.log
The resulting table is
*
singleElectron_withoutPileup.log
Name |
Description |
Row |
Event identifier |
Instance |
Value 0 indicates no pileup |
bHitLayer |
Value 1 indicates first layer of the pixel detector |
bHitGx |
Global x position (in cm) of pixel cluster |
bHitGy |
Global y position of pixel cluster |
bHitGz |
Global z position of pixel cluster |
egEt |
Transverse energy (in GeV) of the cluster in the ECAL |
egGx |
Global x position of ecal cluster |
egGy |
Global y position of ecal cluster |
egGz |
Global z position of ecal cluster |
Adding pileup to the event, the resulting table is
*
singleElectron_35Pileup.log