Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fastsim digirecomix fixes #7358

Merged
merged 8 commits into from Jan 26, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
46 changes: 30 additions & 16 deletions Configuration/Applications/python/ConfigBuilder.py
Expand Up @@ -637,9 +637,22 @@ def addStandardSequences(self):
# load the pile up file
if self._options.pileup:
pileupSpec=self._options.pileup.split(',')[0]

# FastSim: GEN-mixing or DIGI-RECO mixing?
GEN_mixing = False
if self._options.fast and pileupSpec.find("GEN_") == 0:
GEN_mixing = True
pileupSpec = pileupSpec[4:]

# Does the requested pile-up scenario exist?
from Configuration.StandardSequences.Mixing import Mixing,defineMixing
if not pileupSpec in Mixing and '.' not in pileupSpec and 'file:' not in pileupSpec:
raise Exception(pileupSpec+' is not a know mixing scenario:\n available are: '+'\n'.join(Mixing.keys()))
message = pileupSpec+' is not a know mixing scenario:\n available are: '+'\n'.join(Mixing.keys())
if self._options.fast:
message += "\n-"*20+"\n additional options for FastSim (gen-mixing):\n" + "-"*20 + "\n" + '\n'.join(["GEN_" + x for x in Mixing.keys()]) + "\n"
raise Exception(message)

# Put mixing parameters in a dictionary
if '.' in pileupSpec:
mixingDict={'file':pileupSpec}
elif pileupSpec.startswith('file:'):
Expand All @@ -649,15 +662,22 @@ def addStandardSequences(self):
mixingDict=copy.copy(Mixing[pileupSpec])
if len(self._options.pileup.split(','))>1:
mixingDict.update(eval(self._options.pileup[self._options.pileup.find(',')+1:]))

# Load the pu cfg file corresponding to the requested pu scenario
if 'file:' in pileupSpec:
#the file is local
self.process.load(mixingDict['file'])
print "inlining mixing module configuration"
self._options.inlineObjets+=',mix'
else:
self.loadAndRemember(mixingDict['file'])
#if self._options.fast:
# self._options.customisation_file.append("FastSimulation/Configuration/MixingModule_Full2Fast.setVertexGeneratorPileUpProducer")

# FastSim: transform cfg of MixingModule from FullSim to FastSim
if self._options.fast:
if GEN_mixing:
self._options.customisation_file.append("FastSimulation/Configuration/MixingModule_Full2Fast.prepareGenMixing")
else:
self._options.customisation_file.append("FastSimulation/Configuration/MixingModule_Full2Fast.prepareDigiRecoMixing")

mixingDict.pop('file')
if not "DATAMIX" in self.stepMap.keys(): # when DATAMIX is present, pileup_input refers to pre-mixed GEN-RAW
Expand All @@ -666,16 +686,12 @@ def addStandardSequences(self):
mixingDict['F']=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],))[0]
else:
mixingDict['F']=self._options.pileup_input.split(',')
specialization=defineMixing(mixingDict,self._options.fast)
specialization=defineMixing(mixingDict)
for command in specialization:
self.executeAndRemember(command)
if len(mixingDict)!=0:
raise Exception('unused mixing specification: '+mixingDict.keys().__str__())

if self._options.fast and not 'SIM' in self.stepMap and not 'FASTSIM' in self.stepMap:
self.executeAndRemember('process.mix.playback= True')


# load the geometry file
try:
if len(self.stepMap):
Expand Down Expand Up @@ -1085,18 +1101,16 @@ def inGeometryKeys(opt):

# Mixing
if self._options.pileup=='default':
from Configuration.StandardSequences.Mixing import MixingDefaultKey,MixingFSDefaultKey
from Configuration.StandardSequences.Mixing import MixingDefaultKey
self._options.pileup=MixingDefaultKey
# temporary, until digi-reco mixing becomes standard in RelVals
if self._options.fast:
self._options.pileup=MixingFSDefaultKey
else:
self._options.pileup=MixingDefaultKey

self._options.pileup="GEN_" + MixingDefaultKey


#not driven by a default cff anymore
if self._options.isData:
self._options.pileup=None
if self._options.isMC==True and self._options.himix==False:
if self._options.fast:
self._options.pileup='FS_'+self._options.pileup
elif self._options.isMC==True and self._options.himix==True:
self._options.pileup='HiMix'

Expand Down
8 changes: 4 additions & 4 deletions Configuration/PyReleaseValidation/python/relval_steps.py
Expand Up @@ -752,10 +752,10 @@ def genvalid(fragment,d,suffix='all',fi='',dataSet=''):


#PU for FastSim
PUFS={'--pileup':'default'}
PUFS2={'--pileup':'mix_2012_Startup_inTimeOnly'}
PUFSAVE10={'--pileup':'E13TeV_AVE_10_inTimeOnly'}
PUFSAVE20={'--pileup':'E13TeV_AVE_20_inTimeOnly'}
PUFS={'--pileup':'GEN_2012_Summer_50ns_PoissonOOTPU'}
PUFS2={'--pileup':'2012_Startup_50ns_PoissonOOTPU'}
PUFSAVE10={'--pileup':'GEN_AVE_10_BX_25ns'}
PUFSAVE20={'--pileup':'GEN_AVE_20_BX_25ns'}

#
steps['TTbarFSPU']=merge([PUFS,Kby(100,500),steps['TTbarFS']] )
Expand Down
33 changes: 2 additions & 31 deletions Configuration/StandardSequences/python/Mixing.py
Expand Up @@ -106,24 +106,6 @@ def addMixingScenario(label,dict):
addMixingScenario("Phys14_50ns_PoissonOOT",{'file': 'SimGeneral.MixingModule.mix_Phys14_50ns_PoissonOOTPU_cfi'})
addMixingScenario("ProdStep2",{'file': 'SimGeneral.MixingModule.mixProdStep2_cfi'})
addMixingScenario("fromDB",{'file': 'SimGeneral.MixingModule.mix_fromDB_cfi'})
##fastsim section
addMixingScenario("FS_NoPileUp",{'file': 'FastSimulation.Configuration.mixNoPU_cfi'})
addMixingScenario("FS_LowLumiPileUp",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_LowLumiPileUp_cff'})
addMixingScenario("FS_FlatDist10_2011EarlyData_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_FlatDist10_2011EarlyData_inTimeOnly_cff'})
addMixingScenario("FS_E7TeV_Fall2011_Reprocess_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E7TeV_Fall2011_Reprocess_inTimeOnly_cff'})
addMixingScenario("FS_E7TeV_ProbDist_2011Data_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E7TeV_ProbDist_2011Data_inTimeOnly_cff'})
addMixingScenario("FS_2012_Startup_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_2012_Startup_inTimeOnly_cff'})
addMixingScenario("FS_2012_Summer_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_2012_Summer_inTimeOnly_cff'})
addMixingScenario("FS_mix_2012_Startup_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.mix_2012_Startup_inTimeOnly_cff'})
addMixingScenario("FS_mix_2012_Summer_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.mix_2012_Summer_inTimeOnly_cff'})
addMixingScenario("FS_mix_2012_Summer_50ns_PoissonOOTPU",{'file': 'FastSimulation.PileUpProducer.mix_2012_Summer_50ns_PoissonOOTPU_cfi'}) # note: eventually we want absolute synchronization between FastSim and FullSim PU scenarios, and files like this one should be moved to SimGeneral/MixingModule ; to be done after full validation
addMixingScenario("FS_CSA14_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_CSA14_inTimeOnly_cff'})
addMixingScenario("FS_E13TeV_AVE_10_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E13TeV_AVE_10_inTimeOnly_cff'})
addMixingScenario("FS_E13TeV_AVE_20_inTimeOnly",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E13TeV_AVE_20_inTimeOnly_cff'})
addMixingScenario("FS_E8TeV_2012_run198588",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E8TeV_run198588_cff'})
addMixingScenario("FS_E8TeV_2012_run203002",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E8TeV_run203002_cff'})
addMixingScenario("FS_E8TeV_2012_run209148",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E8TeV_run209148_cff'})
addMixingScenario("FS_E8TeV_2012_ZmumugSkim",{'file': 'FastSimulation.PileUpProducer.PileUpSimulator_E8TeV_zmmg_skim_cff'})

#scenarios for L1 tdr work
addMixingScenario("AVE_4_BX_50ns",{'file': 'SimGeneral.MixingModule.mix_POISSON_average_cfi','BX':50, 'B': (-12,3), 'N': 4})
Expand Down Expand Up @@ -168,30 +150,19 @@ def addMixingScenario(label,dict):
addMixingScenario("Flat_0_50_50ns",{'file': 'SimGeneral.MixingModule.mix_Flat_0_50_50ns_cfi'})

MixingDefaultKey = '2012_Summer_50ns_PoissonOOTPU'
MixingFSDefaultKey = '2012_Summer_inTimeOnly'

def printMe():
global Mixing
keys = Mixing.keys()
keys.sort()
fskeys=[]
for key in keys:
if '_FS' in key:
fskeys.append(key)
else:
print 'addMixingScenario("%s",%s)'%(key,repr(Mixing[key]))

for key in fskeys:
print 'addMixingScenario("%s",%s)'%(key,repr(Mixing[key]))


def defineMixing(dict,FS=False):
def defineMixing(dict):
commands=[]
if 'N' in dict:
if FS:
commands.append('process.famosPileUp.PileUpSimulator.averageNumber = cms.double(%f)'%(dict['N'],))
else:
commands.append('process.mix.input.nbPileupEvents.averageNumber = cms.double(%f)'%(dict['N'],))
commands.append('process.mix.input.nbPileupEvents.averageNumber = cms.double(%f)'%(dict['N'],))
dict.pop('N')
if 'BX' in dict:
commands.append('process.mix.bunchspace = cms.int32(%d)'%(dict['BX'],))
Expand Down
6 changes: 4 additions & 2 deletions FastSimulation/Configuration/python/EventContent_cff.py
Expand Up @@ -257,6 +257,8 @@
outputCommands = cms.untracked.vstring('drop *',
'keep *_famosSimHits_*_*',
'keep *_MuonSimHits_*_*',
'keep Traj*_*_*_*',
'keep *_generalTracks_*_*')
'drop *_generalTracksBeforeMixing_MVAVals_*',
'drop *_famosSimHits_VertexTypes_*',
'keep *_generalTracksBeforeMixing_*_*'
)
)
14 changes: 0 additions & 14 deletions FastSimulation/Configuration/python/MixingFamos_cff.py

This file was deleted.

23 changes: 0 additions & 23 deletions FastSimulation/Configuration/python/MixingFull_cff.py

This file was deleted.

12 changes: 0 additions & 12 deletions FastSimulation/Configuration/python/MixingHitsAndTracks_cff.py

This file was deleted.