Tom Whyntie's SLHC Study Notes

Goals of this page

The main aim of this page is to provide an online notebook for my work on the upgrade to the CMS detector required for the SLHC programme.

Occupancy Studies

The aim is to compare:

So that we can use FastSimulation with 400 int/bx (as expected for SLHC) to estimate the Full simulation output (but not have to do the full simulations!!!).


Rather simple really:

  • Get hold of the PSimHits in the tracker and determine which layer (of which subdetector) they are in.
  • Count the hits in each layer for each event.
  • Divide by the pixels/strips in each layer to calculate the occupancy for each event.
  • Add to the "grand total" to allow the average occupancy to be calculated for all events at the end of the run.

Standard CMS Geometry

Numbers for the pixel detector: Obtained from here and the CMS TDR Vol I, page 18.

Layer No. of pixels No. of Modules
Barrel 1 9 .6 M 128/32
Barrel 2 16 .0 M 224/32
Barrel 3 22 .4 M 320/32
Barrel Total 48 .0 M 768
Endcap disk 4 .5 M 168

Note that the "/32" in the barrel No. of Modules column refers to the 32 modules on the four ladders that are half-width.

Conditions used in the simulations:

  • Standard (MP): Minimum bias events with gaussian vertex smearing and 20 int/bx. No simulation of tracker noise. Pixel inefficiencies and mis-calibrations turned off. No signal event.

Results for 100 events:

Fast Simulation: More Less

Python configuration file used: More Less

# My Fast Simulation test config.
import FWCore.ParameterSet.Config as cms

process = cms.Process("OCCFAST")

# FastSimulation include: Random numbers.
# Includes initialisation for many of the FastSim processes...


# Load the vertex smearing - needed for particle generation.
# See Configuration/StandardSequences/python for the other options available.

# Famos sequences (Frontier conditions)

# Parameterised magnetic field (new mapping, 3.8T)
process.VolumeBasedMagneticFieldESProducer.useParametrizedTrackerField = True

# If you want to turn on/off pile-up
process.famosPileUp.PileUpSimulator.averageNumber = 20.0    
process.famosSimHits.SimulateCalorimetry = True
process.famosSimHits.SimulateTracking = True

# Event output

# Specify the number of events required.
process.maxEvents = cms.untracked.PSet(
    input = cms.untracked.int32(100)

# Specify the output ROOT file.
process.FEVT = cms.OutputModule("PoolOutputModule",
    fileName = cms.untracked.string('MinBias_20int_bx.root'),
    outputCommands = cms.untracked.vstring("keep *",
                                           "drop *_mix_*_*")

# Produce everything
#process.p1 = cms.Path(process.famosWithEverything)
process.p1 = cms.Path(process.simulationWithFamos)

# Specify the output path - i.e. dumping the event content.
process.outpath = cms.EndPath(process.FEVT)

# Schedule all the required processes.
process.schedule = cms.Schedule(process.p1,process.outpath)

# Load the message logger, with timing and output file specified.
process.Timing = cms.Service("Timing")
process.MessageLogger.destinations = cms.untracked.vstring("pyDetailedInfo.txt")

# Make the job crash if there is a missing product
process.options = cms.untracked.PSet( Rethrow = cms.untracked.vstring("ProductNotFound") )

More Less

-- TomWhyntie - 03 Mar 2009

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2009-03-03 - TomWhyntie
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main 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