CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/SLHCUpgradeSimulations/Configuration/python/phase2TkCustomsBE.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 #GEN-SIM so far...
00003 def customise(process):
00004     if hasattr(process,'DigiToRaw'):
00005         process=customise_DigiToRaw(process)
00006     if hasattr(process,'RawToDigi'):
00007         process=customise_RawToDigi(process)
00008     if hasattr(process,'reconstruction'):
00009         process=customise_Reco(process)
00010     if hasattr(process,'digitisation_step'):
00011         process=customise_Digi(process)
00012     if hasattr(process,'dqmoffline_step'):
00013         process=customise_DQM(process)
00014     if hasattr(process,'dqmHarvesting'):
00015         process=customise_harvesting(process)
00016     if hasattr(process,'validation_step'):
00017         process=customise_Validation(process)
00018     process=customise_condOverRides(process)
00019     
00020     return process
00021 
00022 def customise_Digi(process):
00023     process.mix.digitizers.pixel.MissCalibrate = False
00024     process.mix.digitizers.pixel.LorentzAngle_DB = False
00025     process.mix.digitizers.pixel.killModules = False
00026     process.mix.digitizers.pixel.useDB = False
00027     process.mix.digitizers.pixel.DeadModules_DB = False
00028     process.mix.digitizers.pixel.NumPixelBarrel = cms.int32(10)
00029     process.mix.digitizers.pixel.NumPixelEndcap = cms.int32(10)
00030     process.mix.digitizers.pixel.ThresholdInElectrons_FPix = cms.double(2000.0)
00031     process.mix.digitizers.pixel.ThresholdInElectrons_BPix = cms.double(2000.0)
00032     process.mix.digitizers.pixel.ThresholdInElectrons_BPix_L1 = cms.double(2000.0)
00033     process.mix.digitizers.pixel.thePixelColEfficiency_BPix4 = cms.double(0.999)
00034     process.mix.digitizers.pixel.thePixelEfficiency_BPix4 = cms.double(0.999)
00035     process.mix.digitizers.pixel.thePixelChipEfficiency_BPix4 = cms.double(0.999)
00036     process.mix.digitizers.pixel.thePixelColEfficiency_FPix3 = cms.double(0.999)
00037     process.mix.digitizers.pixel.thePixelEfficiency_FPix3 = cms.double(0.999)
00038     process.mix.digitizers.pixel.thePixelChipEfficiency_FPix3 = cms.double(0.999)
00039     process.mix.digitizers.pixel.AddPixelInefficiencyFromPython = cms.bool(False)
00040     process.mix.digitizers.strip.ROUList = cms.vstring("g4SimHitsTrackerHitsPixelBarrelLowTof",
00041                          'g4SimHitsTrackerHitsPixelEndcapLowTof')
00042     process.digitisation_step.remove(process.simSiStripDigiSimLink)
00043     process.mergedtruth.simHitCollections.tracker = []
00044     return process
00045 
00046 
00047 def customise_DigiToRaw(process):
00048     process.digi2raw_step.remove(process.siPixelRawData)
00049     process.digi2raw_step.remove(process.rpcpacker)
00050     return process
00051 
00052 def customise_RawToDigi(process):
00053     process.raw2digi_step.remove(process.siPixelDigis)
00054     return process
00055 
00056 def customise_Reco(process):
00057     #this may be a trimmed out process with only local reco
00058     #if so, don't use the customize stuff
00059     ## need changes to mixedtriplets step to use for imcreasing high eta efficiency
00060     process.reconstruction.remove(process.pixelLessStepSeedClusterMask)
00061     process.reconstruction.remove(process.castorreco)
00062     process.reconstruction.remove(process.CastorTowerReco)
00063     process.reconstruction.remove(process.ak7BasicJets)
00064     process.reconstruction.remove(process.ak7CastorJetID)
00065     #process.iterTracking.remove(process.PixelLessStep)
00066     #process.iterTracking.remove(process.TobTecStep)
00067     process.MixedTripletStep.remove(process.mixedTripletStepSeedsB)
00068     process.mixedTripletStepSeeds = cms.EDProducer("SeedCombiner",
00069         seedCollections = cms.VInputTag(cms.InputTag("mixedTripletStepSeedsA"))
00070     )
00071     process.load("RecoTracker.IterativeTracking.HighPtTripletStep_cff")
00072     from RecoTracker.IterativeTracking.HighPtTripletStep_cff import HighPtTripletStep
00073     process.iterTracking = cms.Sequence(process.InitialStep*
00074                             process.HighPtTripletStep*
00075                             process.LowPtTripletStep*
00076                             process.PixelPairStep*
00077                             process.DetachedTripletStep*
00078                             process.MixedTripletStep*
00079                             #process.PixelLessStep*
00080                             #process.TobTecStep*
00081                             process.earlyGeneralTracks*
00082                             process.muonSeededStep*
00083                             process.preDuplicateMergingGeneralTracks*
00084                             process.generalTracksSequence*
00085                             process.ConvStep*
00086                             process.conversionStepTracks
00087                             )
00088 
00089 
00090 
00091 
00092     process.convClusters.oldClusterRemovalInfo=cms.InputTag("mixedTripletStepClusters")
00093     process.convClusters.trajectories=cms.InputTag("mixedTripletStepTracks")
00094     process.convClusters.overrideTrkQuals= cms.InputTag("mixedTripletStep")
00095     process.mixedTripletStepSeedLayersA.layerList = cms.vstring('BPix1+BPix2+BPix3', 
00096         'BPix1+BPix2+FPix1_pos', 
00097         'BPix1+BPix2+FPix1_neg', 
00098         'BPix1+FPix1_pos+FPix2_pos', 
00099         'BPix1+FPix1_neg+FPix2_neg', 
00100         'BPix2+FPix1_pos+FPix2_pos', 
00101         'BPix2+FPix1_neg+FPix2_neg')
00102 
00103     process.earlyGeneralTracks.setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1,2,3,4), pQual=cms.bool(True) ))
00104     process.earlyGeneralTracks.hasSelector=cms.vint32(1,1,1,1,1)
00105     process.earlyGeneralTracks.selectedTrackQuals = cms.VInputTag(
00106          cms.InputTag("initialStepSelector","initialStep"),
00107          cms.InputTag("highPtTripletStepSelector","highPtTripletStep"),
00108          cms.InputTag("lowPtTripletStepSelector","lowPtTripletStep"),
00109          cms.InputTag("pixelPairStepSelector","pixelPairStep"),
00110          cms.InputTag("mixedTripletStep")
00111     )
00112     process.earlyGeneralTracks.TrackProducers = cms.VInputTag(
00113          cms.InputTag("initialStepTracks"),
00114          cms.InputTag("highPtTripletStepTracks"),
00115          cms.InputTag("lowPtTripletStepTracks"),
00116          cms.InputTag("pixelPairStepTracks"),
00117          cms.InputTag("mixedTripletStepTracks")
00118     )
00119 
00120     process.tripletElectronSeedLayers.BPix.skipClusters=cms.InputTag('mixedTripletStepSeedClusterMask')
00121     process.tripletElectronSeedLayers.FPix.skipClusters=cms.InputTag('mixedTripletStepSeedClusterMask')
00122     process.tripletElectronClusterMask.oldClusterRemovalInfo=cms.InputTag('mixedTripletStepSeedClusterMask')
00123 
00124     process.initialStepSeedClusterMask.oldClusterRemovalInfo=cms.InputTag("mixedTripletStepClusters") 
00125     process.newCombinedSeeds.seedCollections = cms.VInputTag(cms.InputTag('initialStepSeeds'),
00126                                                              cms.InputTag("highPtTripletStepSeeds"),
00127                                                              cms.InputTag('pixelPairStepSeeds'),
00128                                                              cms.InputTag('mixedTripletStepSeeds'),
00129                                                              cms.InputTag('tripletElectronSeeds'),
00130                                                              cms.InputTag('pixelPairElectronSeeds'), 
00131                                                              cms.InputTag('stripPairElectronSeeds')  )
00132     process.stripPairElectronSeedLayers.layerList = cms.vstring('BPix4+BPix5') # Optimize later
00133     process.stripPairElectronSeedLayers.BPix = cms.PSet(
00134         HitProducer = cms.string('siPixelRecHits'),
00135         hitErrorRZ = cms.double(0.006),
00136         useErrorsFromParam = cms.bool(True),
00137         TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
00138         skipClusters = cms.InputTag("pixelPairStepClusters"),
00139         hitErrorRPhi = cms.double(0.0027)
00140     )
00141     process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.layerList  = cms.vstring('BPix10+BPix9')  # Optimize later
00142     process.regionalCosmicTrackerSeeds.OrderedHitsFactoryPSet.LayerPSet.BPix = cms.PSet(
00143         HitProducer = cms.string('siPixelRecHits'),
00144         hitErrorRZ = cms.double(0.006),
00145         useErrorsFromParam = cms.bool(True),
00146         TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
00147         skipClusters = cms.InputTag("pixelPairStepClusters"),
00148         hitErrorRPhi = cms.double(0.0027)
00149     )
00150     process.pixelTracks.SeedMergerPSet = cms.PSet(
00151         layerListName = cms.string('PixelSeedMergerQuadruplets'),
00152         addRemainingTriplets = cms.bool(False),
00153         mergeTriplets = cms.bool(True),
00154         ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle')
00155         )
00156     process.initialStepSeedClusterMask.oldClusterRemovalInfo=cms.InputTag("mixedTripletStepClusters")
00157     
00158     # Need this line to stop error about missing siPixelDigis.
00159     process.MeasurementTracker.inactivePixelDetectorLabels = cms.VInputTag()
00160     process.load("SLHCUpgradeSimulations.Geometry.recoFromSimDigis_cff")
00161     # Use with latest pixel geometry. Only used for seeds, so we can use the Phase1Tk file.
00162     # We will need to turn it off for any steps that use the outer pixels as seeds.
00163     process.ClusterShapeHitFilterESProducer.PixelShapeFile = cms.string('RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1Tk.par')
00164     # Now make sure we us CPE Generic
00165     process.mergedDuplicateTracks.TTRHBuilder  = 'WithTrackAngle'
00166     process.ctfWithMaterialTracks.TTRHBuilder = 'WithTrackAngle'
00167     process.PixelCPEGenericESProducer.UseErrorsFromTemplates = cms.bool(False)
00168     process.PixelCPEGenericESProducer.TruncatePixelCharge = cms.bool(False)
00169     process.PixelCPEGenericESProducer.LoadTemplatesFromDB = cms.bool(False)
00170     process.PixelCPEGenericESProducer.Upgrade = cms.bool(True)
00171     process.PixelCPEGenericESProducer.IrradiationBiasCorrection = False
00172     process.PixelCPEGenericESProducer.DoCosmics = False
00173     process.siPixelRecHits.CPE = cms.string('PixelCPEGeneric')
00174     #the quadruplet merger configuration     
00175     process.load("RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff")
00176     process.pixelseedmergerlayers.BPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" )
00177     process.pixelseedmergerlayers.BPix.HitProducer = cms.string("siPixelRecHits" )
00178     process.pixelseedmergerlayers.FPix.TTRHBuilder = cms.string("PixelTTRHBuilderWithoutAngle" )
00179     process.pixelseedmergerlayers.FPix.HitProducer = cms.string("siPixelRecHits" )
00180 
00181     process.highPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00182     process.detachedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00183     process.initialStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00184     process.pixelPairStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00185     process.lowPtTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00186     process.convStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00187     process.mixedTripletStepTracks.TTRHBuilder=cms.string('WithTrackAngle')
00188     process.muonSeededSeedsInOut.TrackerRecHitBuilder = cms.string('WithTrackAngle')
00189     process.muonSeededTracksInOut.TTRHBuilder = cms.string('WithTrackAngle')
00190     process.muons1stStep.TrackerKinkFinderParameters.TrackerRecHitBuilder=cms.string('WithTrackAngle')
00191     process.regionalCosmicTracks.TTRHBuilder=cms.string('WithTrackAngle')
00192     process.cosmicsVetoTracksRaw.TTRHBuilder=cms.string('WithTrackAngle')
00193 
00194     return process
00195 
00196 def customise_condOverRides(process):
00197     process.load('SLHCUpgradeSimulations.Geometry.fakeConditions_BarrelEndcap_cff')
00198     process.trackerNumberingSLHCGeometry.layerNumberPXB = cms.uint32(20)
00199     process.trackerTopologyConstants.pxb_layerStartBit = cms.uint32(20)
00200     process.trackerTopologyConstants.pxb_ladderStartBit = cms.uint32(12)
00201     process.trackerTopologyConstants.pxb_moduleStartBit = cms.uint32(2)
00202     process.trackerTopologyConstants.pxb_layerMask = cms.uint32(15)
00203     process.trackerTopologyConstants.pxb_ladderMask = cms.uint32(255)
00204     process.trackerTopologyConstants.pxb_moduleMask = cms.uint32(1023)
00205     process.trackerTopologyConstants.pxf_diskStartBit = cms.uint32(18)
00206     process.trackerTopologyConstants.pxf_bladeStartBit = cms.uint32(12)
00207     process.trackerTopologyConstants.pxf_panelStartBit = cms.uint32(10)
00208     process.trackerTopologyConstants.pxf_moduleMask = cms.uint32(255)
00209     return process
00210 
00211 
00212 def l1EventContent(process):
00213     #extend the event content
00214 
00215     alist=['RAWSIM','FEVTDEBUG','FEVTDEBUGHLT','GENRAW','RAWSIMHLT','FEVT']
00216     for a in alist:
00217         b=a+'output'
00218         if hasattr(process,b):
00219             getattr(process,b).outputCommands.append('keep PSimHits_g4SimHits_*_*')
00220             getattr(process,b).outputCommands.append('keep SimTracks_g4SimHits_*_*')
00221             getattr(process,b).outputCommands.append('keep SimVertexs_g4SimHits_*_*')
00222             getattr(process,b).outputCommands.append('keep *_simSiPixelDigis_*_*')
00223             getattr(process,b).outputCommands.append('keep *_genParticles_*_*')
00224             getattr(process,b).outputCommands.append('keep *_L1TkBeams_*_*')
00225             getattr(process,b).outputCommands.append('keep *_L1TkClustersFromPixelDigis_*_*')
00226             getattr(process,b).outputCommands.append('keep *_L1TkClustersFromSimHits_*_*')
00227             getattr(process,b).outputCommands.append('keep *_L1TkStubsFromPixelDigis_*_*')
00228             getattr(process,b).outputCommands.append('keep *_L1TkStubsFromSimHits_*_*')
00229             getattr(process,b).outputCommands.append('keep *_siPixelRecHits_*_*')
00230             #drop some bigger collections we don't think we need
00231             getattr(process,b).outputCommands.append('drop PSimHits_g4SimHits_EcalHitsEB_*')
00232             getattr(process,b).outputCommands.append('drop PSimHits_g4SimHits_EcalHitsEE_*')
00233             getattr(process,b).outputCommands.append('drop *_L1TkStubsFromSimHits_StubsFail_*')
00234     return process
00235