Skip to content

Commit

Permalink
Merge pull request #6982 from CmsHI/mix_74X_09
Browse files Browse the repository at this point in the history
Adjustments for using MixingModule for Heavy Ion simulations
  • Loading branch information
davidlange6 committed Jan 16, 2015
2 parents d6932c2 + ac68f70 commit 21d9bf4
Show file tree
Hide file tree
Showing 20 changed files with 250 additions and 161 deletions.
3 changes: 2 additions & 1 deletion Configuration/Applications/python/ConfigBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -1339,7 +1339,7 @@ def prepare_GEN(self, sequence = None):
elif isinstance(theObject, cms.Sequence) or isinstance(theObject, cmstypes.ESProducer):
self._options.inlineObjets+=','+name

if sequence == self.GENDefaultSeq or sequence == 'pgen_genonly' or ( sequence == 'pgen_hi' and 'generator' in genModules):
if sequence == self.GENDefaultSeq or sequence == 'pgen_genonly' or ( sequence == 'pgen_himix' or sequence == 'pgen_hi'):
if 'ProductionFilterSequence' in genModules and ('generator' in genModules or 'hiSignal' in genModules):
self.productionFilterSequence = 'ProductionFilterSequence'
elif 'generator' in genModules:
Expand Down Expand Up @@ -1469,6 +1469,7 @@ def prepare_DIGI2RAW(self, sequence = None):
if "DIGIPREMIX" in self.stepMap.keys():
self.executeAndRemember("process.esDigiToRaw.Label = cms.string('mix')") ##terrible hack - bypass zero suppression
self.executeAndRemember("process.SiStripDigiToRaw.FedReadoutMode = cms.string('PREMIX_RAW')") ##special readout mode for StripTracker

return

def prepare_REPACK(self, sequence = None):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from Configuration.Generator.PyquenDefaultSettings_cff import *

hiSignal = cms.EDFilter("PyquenGeneratorFilter",
generator = cms.EDFilter("PyquenGeneratorFilter",
collisionParameters,
qgpParameters,
pyquenParameters,
Expand All @@ -19,12 +19,12 @@
bMax = cms.double(0.0) ## max impact param (fm); valid only if cflag_!=0
)

hiSignal.embeddingMode = True
generator.embeddingMode = False

configurationMetadata = cms.untracked.PSet(
version = cms.untracked.string('$Revision: 1.2 $'),
name = cms.untracked.string('$Source: /local/projects/CMSSW/rep/CMSSW/Configuration/Generator/python/Pyquen_DiJet_pt80to120_2760GeV_cfi.py,v $'),
annotation = cms.untracked.string('PYQUEN quenched dijets (80 < pt-hat < 120 GeV) at sqrt(s) = 2.76TeV')
)

ProductionFilterSequence = cms.Sequence(hiSignal)
ProductionFilterSequence = cms.Sequence(generator)
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from Configuration.Generator.PyquenDefaultSettings_cff import *

hiSignal = cms.EDFilter("PyquenGeneratorFilter",
generator = cms.EDFilter("PyquenGeneratorFilter",
collisionParameters,
qgpParameters,
pyquenParameters,
Expand All @@ -22,12 +22,12 @@
bMax = cms.double(0.0) ## max impact param (fm); valid only if cflag_!=0
)

hiSignal.embeddingMode = True
generator.embeddingMode = False

configurationMetadata = cms.untracked.PSet(
version = cms.untracked.string('$Revision: 1.3 $'),
name = cms.untracked.string('$Source: /local/projects/CMSSW/rep/CMSSW/Configuration/Generator/python/Pyquen_GammaJet_pt20_2760GeV_cfi.py,v $'),
annotation = cms.untracked.string('PYQUEN quenched gamma-jets (pt-hat > 20 GeV) at sqrt(s) = 2.76TeV')
)

ProductionFilterSequence = cms.Sequence(hiSignal)
ProductionFilterSequence = cms.Sequence(generator)
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from Configuration.Generator.PyquenDefaultSettings_cff import *

hiSignal = cms.EDFilter("PyquenGeneratorFilter",
generator = cms.EDFilter("PyquenGeneratorFilter",
collisionParameters,
qgpParameters,
pyquenParameters,
Expand All @@ -22,12 +22,12 @@
bMax = cms.double(0.0) ## max impact param (fm); valid only if cflag_!=0
)

hiSignal.embeddingMode = True
generator.embeddingMode = False

configurationMetadata = cms.untracked.PSet(
version = cms.untracked.string('$Revision: 1.3 $'),
name = cms.untracked.string('$Source: /local/projects/CMSSW/rep/CMSSW/Configuration/Generator/python/Pyquen_ZeemumuJets_pt10_2760GeV_cfi.py,v $'),
annotation = cms.untracked.string('PYQUEN Z->mumu and Z->ee (pt-hat > 10 GeV) at sqrt(s) = 2.76TeV')
)

ProductionFilterSequence = cms.Sequence(hiSignal)
ProductionFilterSequence = cms.Sequence(generator)
2 changes: 1 addition & 1 deletion Configuration/PyReleaseValidation/python/ConfigBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -1336,7 +1336,7 @@ def prepare_GEN(self, sequence = None):
elif isinstance(theObject, cms.Sequence) or isinstance(theObject, cmstypes.ESProducer):
self._options.inlineObjets+=','+name

if sequence == self.GENDefaultSeq or sequence == 'pgen_genonly' or ( sequence == 'pgen_hi' and 'generator' in genModules):
if sequence == self.GENDefaultSeq or sequence == 'pgen_genonly' or ( sequence == 'pgen_himix' or sequence == 'pgen_hi'):
if 'ProductionFilterSequence' in genModules and ('generator' in genModules or 'hiSignal' in genModules):
self.productionFilterSequence = 'ProductionFilterSequence'
elif 'generator' in genModules:
Expand Down
6 changes: 1 addition & 5 deletions Configuration/StandardSequences/python/Generator_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,10 @@
#

hiGenJets = cms.Sequence(hiGenParticlesForJets*hiRecoGenJets)

from PhysicsTools.HepMCCandAlgos.HiGenParticles_cfi import *

pgen_hi = cms.Sequence(cms.SequencePlaceholder("randomEngineStateProducer")+VertexSmearing+hiGenParticles+hiGenJets)

from SimGeneral.MixingModule.MatchVtx_cfi import *

pgen_himix = cms.Sequence(cms.SequencePlaceholder("randomEngineStateProducer")+matchVtx+hiGenParticles+hiGenJets)
pgen_himix = cms.Sequence(cms.SequencePlaceholder("randomEngineStateProducer")+cms.SequencePlaceholder("mix")+VertexSmearing+hiGenParticles+hiGenJets)

fixGenInfo = cms.Sequence(GeneInfo * genJetMET)

Expand Down
3 changes: 2 additions & 1 deletion Configuration/StandardSequences/python/Mixing.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ def addMixingScenario(label,dict):
addMixingScenario("E8TeV_AVE_16_BX_50ns",{'file': 'SimGeneral.MixingModule.mix_POISSON_average_cfi','BX':50, 'B': (-3,2), 'N': 16})
addMixingScenario("E8TeV_AVE_10_BX_50ns_300ns_spread",{'file':'SimGeneral.MixingModule.mix_E8TeV_AVE_10_BX_50ns_300ns_spread_cfi'})
addMixingScenario("E8TeV_AVE_10_BX_25ns_300ns_spread",{'file':'SimGeneral.MixingModule.mix_E8TeV_AVE_10_BX_25ns_300ns_spread_cfi'})
addMixingScenario("HiMix",{'file': 'SimGeneral.MixingModule.HiEventMixing_cff'})
addMixingScenario("HiMix",{'file': 'SimGeneral.MixingModule.HiMix_cff'})
addMixingScenario("HiMixGEN",{'file': 'SimGeneral.MixingModule.HiMixGEN_cff'})
addMixingScenario("HighLumiPileUp",{'file': 'SimGeneral.MixingModule.mixHighLumPU_cfi'})
addMixingScenario("InitialLumiPileUp",{'file': 'SimGeneral.MixingModule.mixInitialLumPU_cfi'})
addMixingScenario("LowLumiPileUp",{'file': 'SimGeneral.MixingModule.mixLowLumPU_cfi'})
Expand Down
7 changes: 5 additions & 2 deletions Configuration/StandardSequences/python/VtxSmeared.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,11 @@
'Realistic2p76TeV2011Collision': 'IOMC.EventVertexGenerators.VtxSmearedRealistic2p76TeV2011Collision_cfi',
'Realistic2p76TeV2013Collision': 'IOMC.EventVertexGenerators.VtxSmearedRealistic2p76TeV2013Collision_cfi',
'Centered7TeV2011Collision': 'IOMC.EventVertexGenerators.VtxSmearedCentered7TeV2011Collision_cfi',
'RealisticHI2011Collision': 'IOMC.EventVertexGenerators.VtxSmearedRealisticHI2011Collision_cfi',
'Realistic8TeVCollisionPPbBoost': 'GeneratorInterface.HiGenCommon.VtxSmearedRealisticPPbBoost8TeVCollision_cff',
'Realistic5TeVPPbBoost': 'GeneratorInterface.HiGenCommon.VtxSmearedRealistic5TeVPPbBoost_cff',
'Realistic5TeVPPbBoostReversed': 'GeneratorInterface.HiGenCommon.VtxSmearedRealistic5TeVPPbBoostReversed_cff',
'MatchHI': 'GeneratorInterface.HiGenCommon.VtxSmearedMatchHI_cff',
'Match5TeVPPbBoost': 'GeneratorInterface.HiGenCommon.VtxSmearedMatch5TeVPPbBoost_cff',
'Match5TeVPPbBoostReversed': 'GeneratorInterface.HiGenCommon.VtxSmearedMatch5TeVPPbBoostReversed_cff',
'HLLHC' : 'IOMC.EventVertexGenerators.VtxSmearedHLLHC_cfi',
'ShiftedCollision2015' : 'IOMC.EventVertexGenerators.VtxSmearedShiftedCollision2015_cfi',
'NominalCollision2015' : 'IOMC.EventVertexGenerators.VtxSmearedNominalCollision2015_cfi'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *
VtxSmeared = cms.EDProducer("MixBoostEvtVtxGenerator",
useCF = cms.untracked.bool(True),
signalLabel = cms.InputTag("generator"),
mixLabel = cms.InputTag("mix","generator"),
Beta=cms.double(0.434)
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *
VtxSmeared = cms.EDProducer("MixBoostEvtVtxGenerator",
useCF = cms.untracked.bool(True),
signalLabel = cms.InputTag("generator"),
mixLabel = cms.InputTag("mix","generator"),
Beta=cms.double(-0.434)
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *
VtxSmeared = cms.EDProducer("MixEvtVtxGenerator",
useCF = cms.untracked.bool(True),
signalLabel = cms.InputTag("generator"),
mixLabel = cms.InputTag("mix","generator")
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import FWCore.ParameterSet.Config as cms

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *

Realistic5TeVPPbBoostReversedVtxSmearingParameters= cms.PSet(

Phi = cms.double(0.0),
BetaStar = cms.double(80.0),
Emittance = cms.double(6.25e-07),
Alpha = cms.double(0.0),
SigmaZ = cms.double(8.0),
TimeOffset = cms.double(0.0),
X0 = cms.double(0.2440),
Y0 = cms.double(0.3929),
Z0 = cms.double(0.4145),
Beta=cms.double(0.434)
)

VtxSmeared = cms.EDProducer("BetaBoostEvtVtxGenerator",
VtxSmearedCommon,
Realistic5TeVPPbBoostReversedVtxSmearingParameters
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import FWCore.ParameterSet.Config as cms

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *

Realistic5TeVPPbBoostReversedVtxSmearingParameters= cms.PSet(

Phi = cms.double(0.0),
BetaStar = cms.double(80.0),
Emittance = cms.double(6.25e-07),
Alpha = cms.double(0.0),
SigmaZ = cms.double(8.0),
TimeOffset = cms.double(0.0),
X0 = cms.double(0.2440),
Y0 = cms.double(0.3929),
Z0 = cms.double(0.4145),
Beta=cms.double(-0.434)
)

VtxSmeared = cms.EDProducer("BetaBoostEvtVtxGenerator",
VtxSmearedCommon,
Realistic5TeVPPbBoostReversedVtxSmearingParameters
)
17 changes: 8 additions & 9 deletions PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,8 @@ GenParticleProducer::GenParticleProducer( const ParameterSet & cfg ) :
produces<vector<int> >().setBranchAlias( alias + "BarCodes" );
}

if(doSubEvent_){
vectorSrcTokens_ = vector_transform(cfg.getParameter<std::vector<std::string> >( "srcVector" ), [this](std::string const & label){return mayConsume<HepMCProduct>(InputTag(label));});
// produces<SubEventMap>();
}else if(useCF_) {
mixToken_ = mayConsume<CrossingFrame<HepMCProduct> >(InputTag(cfg.getParameter<std::string>( "mix" ),"generator"));
srcToken_ = mayConsume<HepMCProduct>(cfg.getUntrackedParameter<InputTag>( "src" , InputTag(cfg.getParameter<std::string>( "mix" ),"generator")));
} else srcToken_ = mayConsume<HepMCProduct>(cfg.getParameter<InputTag>( "src" ));
if(useCF_) mixToken_ = mayConsume<CrossingFrame<HepMCProduct> >(InputTag(cfg.getParameter<std::string>( "mix" ),"generator"));
else srcToken_ = mayConsume<HepMCProduct>(cfg.getParameter<InputTag>( "src" ));
}

GenParticleProducer::~GenParticleProducer() {
Expand Down Expand Up @@ -159,9 +154,13 @@ void GenParticleProducer::produce( Event& evt, const EventSetup& es ) {
evt.getByToken(mixToken_,cf);
cfhepmcprod = new MixCollection<HepMCProduct>(cf.product());
npiles = cfhepmcprod->size();
LogDebug("GenParticleProducer")<<"npiles : "<<npiles<<endl;
for(unsigned int icf = 0; icf < npiles; ++icf){
LogDebug("GenParticleProducer")<<"subSize : "<<cfhepmcprod->getObject(icf).GetEvent()->particles_size()<<endl;
totalSize += cfhepmcprod->getObject(icf).GetEvent()->particles_size();
}
LogDebug("GenParticleProducer")<<"totalSize : "<<totalSize<<endl;

}else if (doSubEvent_){
for(size_t i = 0; i < npiles; ++i){
Handle<HepMCProduct> handle;
Expand Down Expand Up @@ -194,6 +193,7 @@ void GenParticleProducer::produce( Event& evt, const EventSetup& es ) {
/// fill indices
if(doSubEvent_ || useCF_){
for(size_t ipile = 0; ipile < npiles; ++ipile){
LogDebug("GenParticleProducer")<<"mixed object ipile : "<<ipile<<endl;
barcodes_.clear();
if(useCF_) mc = cfhepmcprod->getObject(ipile).GetEvent();
else mc = heps[ipile]->GetEvent();
Expand All @@ -203,10 +203,10 @@ void GenParticleProducer::produce( Event& evt, const EventSetup& es ) {
const HepMC::HeavyIon * hi = mc->heavy_ion();
if(hi && hi->Ncoll_hard() > 1) isHI = true;
size_t num_particles = mc->particles_size();
LogDebug("GenParticleProducer")<<"num_particles : "<<num_particles<<endl;
fillIndices(mc, particles, *barCodeVector, offset);
// fill output collection and save association
for( size_t ipar = offset; ipar < offset + num_particles; ++ ipar ) {

const HepMC::GenParticle * part = particles[ ipar ];
reco::GenParticle & cand = cands[ ipar ];
// convert HepMC::GenParticle to new reco::GenParticle
Expand All @@ -231,7 +231,6 @@ void GenParticleProducer::produce( Event& evt, const EventSetup& es ) {
if(sub_id < 0) sub_id = 0;
int new_id = sub_id + suboffset;
GenParticleRef dref( ref_, d );
// subs.insert(dref,new_id); // For SubEventMap
cands[d].setCollisionId(new_id); // For new GenParticle
LogDebug("VertexId")<<"SubEvent offset 3 : "<<suboffset;
}
Expand Down
6 changes: 3 additions & 3 deletions PhysicsTools/HepMCCandAlgos/python/HiGenParticles_cfi.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import FWCore.ParameterSet.Config as cms

hiGenParticles = cms.EDProducer('GenParticleProducer',
srcVector = cms.vstring("generator"),
mix = cms.string("mix"),
doSubEvent = cms.untracked.bool(True),
useCrossingFrame = cms.untracked.bool(False),
useCrossingFrame = cms.untracked.bool(True),
saveBarCodes = cms.untracked.bool(True),
abortOnUnknownPDGCode = cms.untracked.bool(False)
abortOnUnknownPDGCode = cms.untracked.bool(False)
)
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@

HiMixRAW = cms.PSet(
outputCommands = cms.untracked.vstring(
'keep *_hiSignal_*_*',
'keep *_hiSignalG4SimHits_*_*',
'keep *_mix_MergedTrackTruth_*',
'drop CrossingFramePlaybackInfoExtended_mix_*_*',
'keep *_mix_*_SIM',
'keep *_hiGenParticles_*_*'
)
)

HiMixRECO = cms.PSet(
outputCommands = cms.untracked.vstring(
'keep *_hiSignal_*_*',
'keep *_hiGenParticles_*_*'
'keep *_mix_MergedTrackTruth_*',
'drop CrossingFramePlaybackInfoExtended_mix_*_*',
'keep *_mix_*_SIM',
'keep *_hiGenParticles_*_*'
)
)

Expand Down
Loading

0 comments on commit 21d9bf4

Please sign in to comment.