Migration of CMSSW software from 6_2_0 version to 7_0_4
What needs to be done:
- Some more testing
- Fix Raw Data Reader
- Migrate some modules omitted in previous migration
- Add CMS UATree producer
Raw Data Reader was not migrated due to changes in data format and project of Michał Żmuda.
Changes in configurations - general
To run your configurations, which are not in repository, you may need to make some changes:
In src/Configuration/TotemCommon/python/mixNoPU_cfi.py
+ mix.mixObjects.mixSH.crossingFrames = cms.untracked.vstring('MuonCSCHits',
+ 'MuonDTHits',
+ 'MuonRPCHits',
+ 'TotemHitsT1',
+ 'TotemHitsT2Gem',
+ 'TotemHitsRP')
In src/Configuration/TotemCommon/python/g4SimHits_cfi.py
Under Physics = cms.PSet( ...
+ ElectronStepLimit = cms.bool(False),
+ ElectronRangeTest = cms.bool(False),
+ PositronStepLimit = cms.bool(False),
+ MinStepLimit = cms.double(1.0),
Under StackingAction = cms.PSet( ...
+ RusRoGammaEnergyLimit = cms.double(5.0), ## (MeV)
+ RusRoEcalGamma = cms.double(0.3),
+ RusRoHcalGamma = cms.double(0.3),
+ RusRoMuonIronGamma = cms.double(0.3),
+ RusRoPreShowerGamma = cms.double(0.3),
+ RusRoCastorGamma = cms.double(0.3),
+ RusRoWorldGamma = cms.double(0.3)
In src/Configuration/TotemCommon/python/g4SimHits_cfi.py
+ UseMeasuredGeometryRecord = cms.untracked.bool(True),
This is because TOTEM uses MeasuredGeometryRecord instead of IdealGeometryRecord.
In src/Configuration/TotemCommon/python/g4SimHits_cfi.py
- LeaveScatteredProtons = cms.bool(True), ##Leave intact protons after scattering for further near beam transport
- LeaveOnlyScatteredProtons = cms.bool(False) ##Leave only intact protons and reject all the other particles
+ LeaveScatteredProtons = cms.untracked.bool(True), ##Leave intact protons after scattering for further near beam transport
+ LeaveOnlyScatteredProtons = cms.untracked.bool(False) ##Leave only intact protons and reject all the other particles
This change was done to be CMS compatibile.
In Configuration/TotemStandardSequences/python/prodT1T2Default_cfg.py
- process.g4SimHits.Generator.LeaveScatteredProtons = cms.bool(False)
+ process.g4SimHits.Generator.LeaveScatteredProtons = cms.untracked.bool(False)
Changes in configurations - merged configs
To make configurations work together, you should do the following:
- create a root file with generated events
- make configs treat this file as input
- exclude generators from chain (if present).
In the example we're going to use:
- prodT1T2pythiaMBbeta11energy450GeV_cfg.py (TOTEM part)
- step1_MinBias_13TeV_cfi_py_GEN_SIM.py and step2_DIGI_L1_DIGI2RAW_HLT_RAW2DIGI_L1Reco_RECO.py (CMS part).
Note: All configs - both original and modified - can be found as attachments.
1. Create and store events.
Changes with respect to "step1" config, which serves as base configuration (copy the internals of step1 and apply the changes).
Change process name so that cmsRun does not complain.
- process = cms.Process('SIM')
+ process = cms.Process('EVENTSPRODUCER')
Specify number of events to create
- input = cms.untracked.int32(-1)
+ input = cms.untracked.int32(5)
Change output file name.
- fileName = cms.untracked.string('file:MinbiasTest_GEN_SIM.root'),
+ fileName = cms.untracked.string('file:bare_events.root'),
- process.simulation_step = cms.Path(process.psim)
- process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
- process.endjob_step = cms.EndPath(process.endOfProcess)
Just generate and store events.
- process.schedule = cms.Schedule(process.genfiltersummary_step,process.simulation_step,process.endjob_step,process.RAWSIMoutput_step)
+ process.schedule = cms.Schedule(process.generation_step, process.RAWSIMoutput_step)
2. Modify TOTEM config
Read events from file
+ process.source = cms.Source("PoolSource",
+ fileNames = cms.untracked.vstring("file:bare_events.root")
+ )
Process all events from file
- input = cms.untracked.int32(10)
+ input = cms.untracked.int32(-1)
Remove generator from module chain
-process.p1 = cms.Path(process.generator*process.SmearingGenerator*process.g4SimHits*process.mix*process.T1Digis*process.t1cluster*process.t1rechit*process.t1roads*process.t1tracks2*process.T2Digis*process.T2MCl*process.T2Hits*process.T2RoadPadFinder*process.T2TrackColl3*process.T2CC)
+process.p1 = cms.Path(process.SmearingGenerator*process.g4SimHits*process.mix*process.T1Digis*process.t1cluster*process.t1rechit*process.t1roads*process.t1tracks2*process.T2Digis*process.T2MCl*process.T2Hits*process.T2RoadPadFinder*process.T2TrackColl3*process.T2CC)
2. Modify CMS step1 config
- input = cms.untracked.int32(50)
+ input = cms.untracked.int32(-1)
- process.source = cms.Source("EmptySource")
+ process.source = cms.Source("PoolSource",
+ fileNames = cms.untracked.vstring("file:bare_events.root")
+ )
- SelectEvents = cms.untracked.PSet(
- SelectEvents = cms.vstring('generation_step')
- )
- process.generation_step = cms.Path(process.pgen)
- process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step,process.RAWSIMoutput_step)
+ process.schedule = cms.Schedule(process.genfiltersummary_step,process.simulation_step,process.endjob_step,process.RAWSIMoutput_step)
No changes are needed for the step2 config.
--
PiotrSzymonSarnicki - 09 Sep 2014