Mixing Signal Events into Heavy Ion Background

Complete: 5

Instructions for generating, simulating and mixing signal event

Quick Instructions

Heavy Ion mixing job can be created in two ways, by either using cmsDriver.py command, or writing a cfg yourself.

Using cmsDriver.py

You can create a configuration with the following command:

cmsDriver.py Pyquen_DiJet_pt80to120_4TeV_cfi.py \
--himix --scenario HeavyIons \
-s GEN:hiSignal,SIM,DIGI,L1,DIGI2RAW,RAW2DIGI,RECO \
--conditions FrontierConditions_GlobalTag,MC_31X_V9::All \
--datatier 'GEN-SIM-RAW-RECO' --eventcontent=FEVTDEBUG \
--processName 'HISIGNAL' \
--filein=inputfile.root --fileout=outputfile.root \
 -n 1 \
--no_exec

This configuration mixes dijets into heavy ion background, and runs up to RECO. The particularities are:

  • The input generator cfi has to be defined with label "hiSignal", rather than "generator".
  • The GEN sequence must be run with the option "hiSignal", by typing it as "GEN:hiSignal" among sequences.
  • The option "--himix" must be used.
  • Scenario "HeavyIons" must be specified.
  • A process name (of your choice) has to be specified in order not to clash with previous processes that ran on the events.

You can modify all other parameters as you like. You can look at SWGuidePyReleaseValidationOptions for cmsDriver.py details.

Writing a custom configuration

  • Create a PoolSource that opens an input (heavy ion background) file. Make sure you drop the previously produced DIGI, RAW etc. of the background event. You need only the GEN and SIM info from this file:

process.source = cms.Source("PoolSource",
    fileNames = cms.untracked.vstring('inputfile.root'),
    inputCommands = cms.untracked.vstring('drop *',
        'keep *_generator_*_*',
        'keep *_g4SimHits_*_*'),
    dropDescendantsOfDroppedBranches = cms.untracked.bool(False)
)

  • Load a generator particularly configured for mixing:
process.load('Configuration.Generator.Pyquen_GammaJet_pt20_4TeV_cfi')

Or, define a generator module from scratch:

process.hiSignal = cms.EDFilter('PyquenProducer',....)

  • Load the standard sequences for your job, including the standard GEN, SIM, DIGI stuff:

process.load('Configuration/StandardSequences/Services_cff')
process.load('Configuration/StandardSequences/Generator_cff')
process.load('Configuration/StandardSequences/Sim_cff')
process.load('Configuration/StandardSequences/Digi_cff')

and then add the extra sequences needed for hi-mixing:

process.load('Configuration/StandardSequences/HiEventMixing_cff')
process.load('SimGeneral/MixingModule/himixGEN_cff')
process.load('SimGeneral/MixingModule/himixSIMExtended_cff')
process.load('SimGeneral/MixingModule/himixDIGI_cff')

Make sure you load the hi-mix cff files AFTER you load the standard ones in your cfg!

  • Run the standard sequences, except pgen_himix instead of pgen_hi.
process.generation_step = cms.Path(process.pgen_himix)
process.simulation_step = cms.Path(process.psim)
process.digitisation_step = cms.Path(process.pdigi)
...

Other possibilities you may need

Mixing in Gen-Level only

  • Load only standard GEN sequences.
  • For mixing, use mixGenNoPU from HiEventMixing, by not loading; but importing.

from SimGeneral.MixingModule.HiEventMixing_cff import *
process.mix = mixGenHI
...
process.pmix = cms.Path(process.mix)

Running NoPileUp on hiSignal

You may want to take the already simulated signal events, which are mixed into HI background reconstructed, and run RECO on them without the heavy ion background. It is possible to save the RECO output of both mixed and signal-only event in the same file. Heere are the instructions to do it:

  • For now, you need to check out the HEAD of SimGeneral/MixingModule from the CVS.
  • Create a PoolSource that drops the DIGI, RAW, and local RECO of the input file.
  • Load only standard GEN, SIM, DIGI sequences.
  • For mixing, load HiEventMixing and change parameters to use only the signal:


process.load("SimGeneral.MixingModule.HiEventMixing_cff")
process.mix.srcGEN = ["hiSignal"]
process.mix.srcSIM = ["hSignalG4SimHits"]

  • Run standard DIGI, L1, RAW, RawToDigi sequences.

If you want to keep both Mixed ans Signal-only reconstruction objects, then you need new names for the Signal-only RECO objects. This is also easy:

  • Load standard RECO for heavy ions, but AFTER that, load the extra reco for hiSignal.

process.load('Configuration/StandardSequences/ReconstructionHeavyIons_cff')
process.load('RecoHI.Configuration.Reconstruction_hiSignal_cff')

This will modify the sequences defined in the standard configuration.

  • Run the standard reco sequence:

process.reconstruction_step = cms.Path(process.reconstructionHeavyIons)

Configuration Examples

http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/UserCode/CmsHi/Utilities/scripts/mixDiJet_reco.sh?view=markup

Related Links

Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2009-10-28 - YetkinYilmaz
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback