Skip to content

Commit bf511db

Browse files
authored
Merge pull request #46884 from CMSTrackerDPG/PixelSimHitExtraInfoLite_from-CMSSW_14_2_0_pre4
Run-dependent pixel simulation using additionally compressed SimHit info
2 parents e7b451a + fd11b45 commit bf511db

File tree

16 files changed

+646
-43
lines changed

16 files changed

+646
-43
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import FWCore.ParameterSet.Config as cms
2+
runDependentForPixelVal = cms.Modifier()

Configuration/PyReleaseValidation/python/relval_premix.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@
4949
workflows[250202.181]=['TTbar13TeVPUppmx2018',['TTbar_13UP18','PREMIXUP18_PU25','DIGIPRMXLOCALUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
5050
workflows[250202.182]=['',['TTbar_13UP18_RD','DIGIPRMXUP18_PU25_RD','RECOPRMXUP18_PU25_RD','HARVESTUP18_PU25_RD']]
5151
workflows[250202.183]=['',['TTbar_13UP18_RD_IB','DIGIPRMXUP18_PU25_RD_IB','RECOPRMXUP18_PU25_RD','HARVESTUP18_PU25_RD']]
52-
workflows[250202.184]=['',['TTbar_13UP18','PREMIXUP18_PU25_RDPix','DIGIPRMXLOCALUP18_PU25_RDPix','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
52+
#workflows[250202.184]=['',['TTbar_13UP18','PREMIXUP18_PU25_RDPix','DIGIPRMXLOCALUP18_PU25_RDPix','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
53+
workflows[250202.184]=['',['TTbar_13UP18','PREMIXUP18_PU25_RDPixLite','DIGIPRMXLOCALUP18_PU25_RDPix','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
54+
workflows[250202.185]=['',['TTbar_13UP18','PREMIXUP18_PU25_RDPixLite','DIGIPRMXLOCALUP18_PU25_RDPixLite','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
5355
workflows[250203.18]=['',['H125GGgluonfusion_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
5456
workflows[250204.18]=['',['QQH1352T_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]
5557
workflows[250205.18]=['',['ZTT_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']]

Configuration/PyReleaseValidation/python/relval_steps.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2127,12 +2127,17 @@ def lhegensim2018ml(fragment,howMuch):
21272127
{'--era':'Run2_2018'},
21282128
{'--procModifiers':'premix_stage1,runDependentForPixel'},
21292129
premixUp2015Defaults])
2130+
premixUp2018_RDPixLite = merge([{'--conditions':'auto:phase1_2018_realistic_rd'},
2131+
{'--era':'Run2_2018'},
2132+
{'--procModifiers':'premix_stage1,runDependentForPixelVal'},
2133+
premixUp2015Defaults])
21302134

21312135
steps['PREMIXUP15_PU25']=merge([PU25,Kby(100,100),premixUp2015Defaults])
21322136
steps['PREMIXUP15_PU50']=merge([PU50,Kby(100,100),premixUp2015Defaults50ns])
21332137
steps['PREMIXUP17_PU25']=merge([PU25UP17,Kby(100,100),premixUp2017Defaults])
21342138
steps['PREMIXUP18_PU25']=merge([PU25UP18,Kby(100,100),premixUp2018Defaults])
21352139
steps['PREMIXUP18_PU25_RDPix']=merge([PU25UP18,Kby(100,100),premixUp2018_RDPix])
2140+
steps['PREMIXUP18_PU25_RDPixLite']=merge([PU25UP18,Kby(100,100),premixUp2018_RDPixLite])
21362141

21372142
digiPremixUp2015Defaults25ns = {
21382143
'--conditions' : 'auto:run2_mc',
@@ -2207,6 +2212,8 @@ def lhegensim2018ml(fragment,howMuch):
22072212

22082213
steps['DIGIPRMXLOCALUP18_PU25_RDPix']=merge([{'--conditions':'auto:phase1_2018_realistic_rd', '--procModifiers':'premix_stage2,runDependentForPixel'}, digiPremixLocalPileupUp2018Defaults25ns])
22092214

2215+
steps['DIGIPRMXLOCALUP18_PU25_RDPixLite']=merge([{'--conditions':'auto:phase1_2018_realistic_rd', '--procModifiers':'premix_stage2,runDependentForPixelVal'}, digiPremixLocalPileupUp2018Defaults25ns])
2216+
22102217
premixProd25ns = {'-s' : 'DIGI,DATAMIX,L1,DIGI2RAW,HLT:@relval2016',
22112218
'--eventcontent' : 'PREMIXRAW',
22122219
'--datatier' : 'PREMIXRAW'}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#ifndef PixelSimHitExtraInfoLite_h
2+
#define PixelSimHitExtraInfoLite_h
3+
4+
#include "DataFormats/GeometryVector/interface/LocalPoint.h"
5+
#include "DataFormats/Math/interface/libminifloat.h"
6+
#include <vector>
7+
#include <cstdint>
8+
9+
class PixelSimHitExtraInfoLite {
10+
public:
11+
PixelSimHitExtraInfoLite(size_t Hindex, const Local3DPoint& entryP, const Local3DPoint& exitP, unsigned int ch) {
12+
index_ = Hindex;
13+
// theEntryPoint_ = entryP;
14+
// theExitPoint_ = exitP;
15+
theEntryPointX_ = MiniFloatConverter::float32to16(entryP.x());
16+
theEntryPointY_ = MiniFloatConverter::float32to16(entryP.y());
17+
theEntryPointZ_ = MiniFloatConverter::float32to16(entryP.z());
18+
theExitPointX_ = MiniFloatConverter::float32to16(exitP.x());
19+
theExitPointY_ = MiniFloatConverter::float32to16(exitP.y());
20+
theExitPointZ_ = MiniFloatConverter::float32to16(exitP.z());
21+
chan_.push_back(ch);
22+
};
23+
PixelSimHitExtraInfoLite() = default;
24+
~PixelSimHitExtraInfoLite() = default;
25+
size_t hitIndex() const { return index_; };
26+
const uint16_t& entryPointX() const { return theEntryPointX_; }
27+
const uint16_t& entryPointY() const { return theEntryPointY_; }
28+
const uint16_t& entryPointZ() const { return theEntryPointZ_; }
29+
const uint16_t& exitPointX() const { return theExitPointX_; }
30+
const uint16_t& exitPointY() const { return theExitPointY_; }
31+
const uint16_t& exitPointZ() const { return theExitPointZ_; }
32+
33+
Local3DPoint& entryPoint() {
34+
UncompressedEntryPoint_ = Local3DPoint(MiniFloatConverter::float16to32(theEntryPointX_),
35+
MiniFloatConverter::float16to32(theEntryPointY_),
36+
MiniFloatConverter::float16to32(theEntryPointZ_));
37+
return UncompressedEntryPoint_;
38+
}
39+
Local3DPoint& exitPoint() {
40+
UncompressedExitPoint_ = Local3DPoint(MiniFloatConverter::float16to32(theExitPointX_),
41+
MiniFloatConverter::float16to32(theExitPointY_),
42+
MiniFloatConverter::float16to32(theExitPointZ_));
43+
return UncompressedExitPoint_;
44+
}
45+
46+
const std::vector<unsigned int>& channel() const { return chan_; };
47+
48+
inline bool operator<(const PixelSimHitExtraInfoLite& other) const { return hitIndex() < other.hitIndex(); }
49+
50+
void addDigiInfo(unsigned int theDigiChannel) { chan_.push_back(theDigiChannel); }
51+
bool isInTheList(unsigned int channelToCheck) {
52+
bool result_in_the_list = false;
53+
for (unsigned int icheck = 0; icheck < chan_.size(); icheck++) {
54+
if (channelToCheck == chan_[icheck]) {
55+
result_in_the_list = true;
56+
break;
57+
}
58+
}
59+
return result_in_the_list;
60+
}
61+
62+
private:
63+
size_t index_;
64+
uint16_t theEntryPointX_;
65+
uint16_t theEntryPointY_;
66+
uint16_t theEntryPointZ_;
67+
uint16_t theExitPointX_;
68+
uint16_t theExitPointY_;
69+
uint16_t theExitPointZ_;
70+
Local3DPoint UncompressedEntryPoint_;
71+
Local3DPoint UncompressedExitPoint_;
72+
std::vector<unsigned int> chan_;
73+
};
74+
#endif

SimDataFormats/TrackerDigiSimLink/src/classes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
#include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h"
1010
#include "SimDataFormats/TrackerDigiSimLink/interface/StripCompactDigiSimLinks.h"
1111
#include "SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h"
12+
#include "SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfoLite.h"
1213

1314
#endif // TRACKERDIGISIMLINK_CLASSES_H

SimDataFormats/TrackerDigiSimLink/src/classes_def.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,19 @@
4747
<class name="edm::Wrapper< edm::DetSetVector<PixelSimHitExtraInfo> >" splitLevel="0" />
4848

4949

50+
<class name="PixelSimHitExtraInfoLite" ClassVersion="3">
51+
<field name="index_" transient="true" />
52+
<field name="UncompressedEntryPoint_" transient="true" />
53+
<field name="UncompressedExitPoint_" transient="true" />
54+
<version ClassVersion="3" checksum="425674366"/>
55+
</class>
56+
<class name="edm::DetSet<PixelSimHitExtraInfoLite>"/>
57+
<class name="std::vector<PixelSimHitExtraInfoLite>"/>
58+
<class name="edm::DetSetVector<PixelSimHitExtraInfoLite>"/>
59+
<class name="std::vector<edm::DetSet<PixelSimHitExtraInfoLite> >"/>
60+
<class name="edm::Wrapper< edm::DetSet<PixelSimHitExtraInfoLite> >" splitLevel="0" />
61+
<class name="edm::Wrapper< std::vector<edm::DetSet<PixelSimHitExtraInfoLite> > >" splitLevel="0" />
62+
<class name="edm::Wrapper< edm::DetSetVector<PixelSimHitExtraInfoLite> >" splitLevel="0" />
63+
64+
5065
</lcgdict>

SimGeneral/MixingModule/python/SiPixelSimParameters_cfi.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ def _modifyPixelDigitizerForRun3( digitizer ):
5050
KillBadFEDChannels = cms.bool(False),
5151
UseReweighting = cms.bool(False),
5252
applyLateReweighting = cms.bool(False),
53+
usePixelExtraLiteFormat = cms.bool(False),
5354
store_SimHitEntryExitPoints = cms.bool(False),
55+
store_SimHitEntryExitPointsLite = cms.bool(False),
5456
PrintClusters = cms.bool(False),
5557
PrintTemplates = cms.bool(False),
5658
DoPixelAging = cms.bool(False),

SimGeneral/MixingModule/python/aliases_cfi.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,16 @@
9898
from Configuration.ProcessModifiers.runDependentForPixel_cff import runDependentForPixel
9999
(runDependentForPixel).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))])
100100

101+
from Configuration.ProcessModifiers.runDependentForPixelVal_cff import runDependentForPixelVal
102+
(runDependentForPixelVal).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))] + [cms.PSet(type = cms.string('PixelSimHitExtraInfoLiteedmDetSetVector'))])
103+
101104
from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose
102105
(~phase2_hfnose).toModify(simHFNoseUnsuppressedDigis, mix = None)
103106

104107
from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
105108
phase1Pixel.toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelFEDChanneledmNewDetSetVector'))])
106109
(phase1Pixel & runDependentForPixel).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))] + [cms.PSet(type = cms.string('PixelFEDChanneledmNewDetSetVector'))])
110+
(phase1Pixel & runDependentForPixelVal).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))] + [cms.PSet(type = cms.string('PixelSimHitExtraInfoLiteedmDetSetVector'))] + [cms.PSet(type = cms.string('PixelFEDChanneledmNewDetSetVector'))])
107111

108112
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
109113
phase2_tracker.toModify(simSiStripDigis, mix = None)

SimGeneral/MixingModule/python/pixelDigitizer_cfi.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,19 @@
4040
(runDependentForPixel & premix_stage1).toModify(pixelDigitizer,
4141
UseReweighting = False,
4242
applyLateReweighting = False,
43+
usePixelExtraLiteFormat = False,
4344
store_SimHitEntryExitPoints = True,
45+
store_SimHitEntryExitPointsLite = False,
46+
AdcFullScale = 1023,
47+
MissCalibrate = False
48+
)
49+
from Configuration.ProcessModifiers.runDependentForPixelVal_cff import runDependentForPixelVal
50+
(runDependentForPixelVal & premix_stage1).toModify(pixelDigitizer,
51+
UseReweighting = False,
52+
applyLateReweighting = False,
53+
usePixelExtraLiteFormat = False,
54+
store_SimHitEntryExitPoints = True,
55+
store_SimHitEntryExitPointsLite = True,
4456
AdcFullScale = 1023,
4557
MissCalibrate = False
4658
)

SimGeneral/PreMixingModule/python/mixOne_premix_on_sim_cfi.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
pixeldigiCollectionSig = cms.InputTag("simSiPixelDigis"),
5858
pixeldigiCollectionPile = cms.InputTag("simSiPixelDigis"),
5959
pixeldigiExtraCollectionPile = cms.InputTag("simSiPixelDigis"),
60+
pixeldigiExtraLiteCollectionPile = cms.InputTag("simSiPixelDigis"),
6061
PixelDigiCollectionDM = cms.string('siPixelDigisDM'),
6162
),
6263
strip = cms.PSet(
@@ -158,7 +159,18 @@
158159
(runDependentForPixel & premix_stage2).toModify(mixData.workers.pixel,
159160
UseReweighting=False,
160161
applyLateReweighting=True,
161-
store_SimHitEntryExitPoints=False
162+
usePixelExtraLiteFormat = False,
163+
store_SimHitEntryExitPoints=False,
164+
store_SimHitEntryExitPointsLite = False
165+
)
166+
167+
from Configuration.ProcessModifiers.runDependentForPixelVal_cff import runDependentForPixelVal
168+
(runDependentForPixelVal & premix_stage2).toModify(mixData.workers.pixel,
169+
UseReweighting=False,
170+
applyLateReweighting=True,
171+
usePixelExtraLiteFormat = True,
172+
store_SimHitEntryExitPoints=False,
173+
store_SimHitEntryExitPointsLite = False
162174
)
163175

164176
from Configuration.Eras.Modifier_fastSim_cff import fastSim

0 commit comments

Comments
 (0)