13 vertexParameters = cms.PSet()
16 if not hasattr(process,
"VtxSmeared"):
17 "WARNING: no vtx smearing applied (ok for steps other than SIM)"
18 return vertexParameters
19 vertexGenerator = process.VtxSmeared
22 vertexGeneratorType = vertexGenerator.type_().
replace(
"EvtVtxGenerator",
"")
23 vtxGenMap = {
"Betafunc":
"BetaFunc",
"Flat":
"Flat",
"Gauss":
"Gaussian"}
24 if not vertexGeneratorType
in vtxGenMap.keys():
25 raise Error(
"WARNING: given vertex generator type for vertex smearing is not supported")
26 vertexParameters.type = cms.string(vtxGenMap[vertexGeneratorType])
29 vertexGeneratorParameterNames = vertexGenerator.parameterNames_()
30 for name
in vertexGeneratorParameterNames:
31 exec(
"vertexParameters.{0} = {1}".
format(name,getattr(vertexGenerator,name).
dumpPython()))
33 return vertexParameters
38 PileUpSimulator = cms.PSet()
42 if hasattr(_input,
"type"):
45 if _type ==
"poisson":
46 if not hasattr(_input.nbPileupEvents,
"averageNumber"):
47 print " ERROR while reading PU distribution for FastSim PileUpProducer:"
48 print " when process.mix.input.type is set to 'poisson', process.mix.input.nbPileupEvents.averageNumber must be specified."
50 PileUpSimulator.averageNumber = _input.nbPileupEvents.averageNumber
51 PileUpSimulator.usePoisson = cms.bool(
True)
53 elif _type ==
"probFunction":
54 if not hasattr(_input.nbPileupEvents,
"probFunctionVariable")
or not hasattr(_input.nbPileupEvents,
"probValue"):
55 print " ERROR while reading PU distribution for FastSim PileUpProducer:"
56 print " when process.mix.input.type is set to 'probFunction', process.mix.nbPileupEvents.probFunctionVariable and process.mix.nbPileupEvents.probValue must be specified"
58 PileUpSimulator.usePoisson = cms.bool(
False)
59 PileUpSimulator.probFunctionVariable = _input.nbPileupEvents.probFunctionVariable
60 PileUpSimulator.probValue = _input.nbPileupEvents.probValue
63 print " ERROR while reading PU distribution for FastSim PileUpProducer:"
64 print " value {0} for process.mix.input.type not supported by FastSim GEN-level PU mixing".
format(_type)
68 from FastSimulation.PileUpProducer.PileUpFiles_cff
import puFileNames
69 PileUpSimulator.fileNames = puFileNames.fileNames
72 PileUpSimulator.inputFile = cms.untracked.string(
'PileUpInputFile.txt')
74 return PileUpSimulator
86 process.mix.maxBunch = cms.int32(0)
87 process.mix.minBunch = cms.int32(0)
95 process.mix.bunchspace = 450
98 process.famosPileUp = cms.EDProducer(
100 PileUpSimulator = cms.PSet(),
101 VertexGenerator = cms.PSet()
112 del process.mix.input
115 pos = process.simulationSequence.index(process.famosSimHits)
116 process.simulationSequence.insert(pos,process.famosPileUp)
119 del process.mix.digitizers.tracker
120 del process.mix.mixObjects.mixRecoTracks
121 del process.generalTracks
122 process.generalTracks = process.generalTracksBeforeMixing.clone()
123 process.iterTracking.replace(process.generalTracksBeforeMixing,process.generalTracks)
124 del process.generalTracksBeforeMixing
127 process.generalConversionTrackProducer.TrackProducer = cms.string(
'generalTracks')
129 process.trackerDrivenElectronSeedsTmp.TkColList = cms.VInputTag(cms.InputTag(
"generalTracks"))
130 process.trackerDrivenElectronSeeds.oldTrackCollection = cms.InputTag(
'generalTracks')
133 process.addPileupInfo.PileupMixingLabel = cms.InputTag(
"famosPileUp")
140 if hasattr(process,
"theDigitizersValid"):
141 del process.theDigitizersValid
143 process.mix.digitizers = theDigitizersValid
146 if hasattr(process,
"theMixObjects"):
147 del process.theMixObjects
148 from FastSimulation.Configuration.mixObjects_cfi
import theMixObjects
149 process.mix.mixObjects = theMixObjects
152 del process.simCastorDigis
153 del process.simSiPixelDigis
154 del process.simSiStripDigis
158 process.generalTracks = generalTracks
162 del process.trackingParticles
163 del process.stripDigitizer
164 del process.SiStripSimBlock
165 del process.castorDigitizer
166 del process.pixelDigitizer
167 del process.ecalDigitizer
172 del process.siStripGainSimESProducer
def get_PileUpSimulatorPSet_PileUpProducer
def get_VertexGeneratorPSet_PileUpProducer
def prepareDigiRecoMixing