CMS 3D CMS Logo

Functions

reco_TLR_42X Namespace Reference

Functions

def customiseCommon
def customiseCommonHI
def customiseCosmicData
def customiseCosmicMC
def customiseExpress
def customiseExpressHI
def customisePPData
def customisePPMC
def customisePrompt
def customisePromptHI
def customiseVALSKIM
def memorySavingTracking

Function Documentation

def reco_TLR_42X::customiseCommon (   process)

Definition at line 140 of file reco_TLR_42X.py.

00141                             :
00142 
00143     process = memorySavingTracking(process)
00144     
00145     return (process)
00146 

def reco_TLR_42X::customiseCommonHI (   process)

Definition at line 213 of file reco_TLR_42X.py.

00214                               :
00215     
00216     ###############################################################################################
00217     ####
00218     ####  Top level replaces for handling strange scenarios of early HI collisions
00219     ####
00220 
00221     ## Offline Silicon Tracker Zero Suppression
00222     process.siStripZeroSuppression.Algorithms.CommonModeNoiseSubtractionMode = cms.string("IteratedMedian")
00223     process.siStripZeroSuppression.Algorithms.CutToAvoidSignal = cms.double(2.0)
00224     process.siStripZeroSuppression.Algorithms.Iterations = cms.int32(3)
00225     process.siStripZeroSuppression.storeCM = cms.bool(True)
00226 
00227 
00228     ###
00229     ###  end of top level replacements
00230     ###
00231     ###############################################################################################
00232 
00233     return process

def reco_TLR_42X::customiseCosmicData (   process)

Definition at line 181 of file reco_TLR_42X.py.

00182                                 :
00183 
00184     return process

def reco_TLR_42X::customiseCosmicMC (   process)

Definition at line 186 of file reco_TLR_42X.py.

00187                               :
00188     
00189     return process
        
def reco_TLR_42X::customiseExpress (   process)

Definition at line 197 of file reco_TLR_42X.py.

00198                              :
00199     process= customisePPData(process)
00200 
00201     import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
00202     process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
00203     
00204     return process

def reco_TLR_42X::customiseExpressHI (   process)

Definition at line 235 of file reco_TLR_42X.py.

00236                                :
00237     process= customiseCommonHI(process)
00238 
00239     import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
00240     process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
00241     
00242     return process

def reco_TLR_42X::customisePPData (   process)

Definition at line 148 of file reco_TLR_42X.py.

00149                             :
00150     process= customiseCommon(process)
00151 
00152     ## particle flow HF cleaning
00153     process.particleFlowRecHitHCAL.LongShortFibre_Cut = 30.
00154     process.particleFlowRecHitHCAL.ApplyPulseDPG = True
00155 
00156     ## HF cleaning for data only
00157     process.hcalRecAlgos.SeverityLevels[3].RecHitFlags.remove("HFDigiTime")
00158     process.hcalRecAlgos.SeverityLevels[4].RecHitFlags.append("HFDigiTime")
00159 
00160     ##beam-halo-id for data only
00161     process.CSCHaloData.ExpectedBX = cms.int32(3)
00162 
00163     ## hcal hit flagging
00164     process.hfreco.PETstat.flagsToSkip  = 2
00165     process.hfreco.S8S1stat.flagsToSkip = 18
00166     process.hfreco.S9S1stat.flagsToSkip = 26
00167 
00168     ##Ecal time bias correction
00169     process.ecalGlobalUncalibRecHit.doEBtimeCorrection = True
00170     process.ecalGlobalUncalibRecHit.doEEtimeCorrection = True
00171     
00172     return process
00173 

def reco_TLR_42X::customisePPMC (   process)

Definition at line 175 of file reco_TLR_42X.py.

00176                           :
00177     process=customiseCommon(process)
00178     
00179     return process

def reco_TLR_42X::customisePrompt (   process)

Definition at line 206 of file reco_TLR_42X.py.

00207                             :
00208     process= customisePPData(process)
00209     return process

def reco_TLR_42X::customisePromptHI (   process)

Definition at line 244 of file reco_TLR_42X.py.

00245                               :
00246     process= customiseCommonHI(process)
00247 
00248     import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
00249     process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
00250     
00251     return process

def reco_TLR_42X::customiseVALSKIM (   process)

Definition at line 191 of file reco_TLR_42X.py.

00192                              :
00193     process= customisePPData(process)
00194     process.reconstruction.remove(process.lumiProducer)
00195     return process
                
def reco_TLR_42X::memorySavingTracking (   process)

Definition at line 3 of file reco_TLR_42X.py.

00004                                  :
00005     toRemove={}
00006     #list of modules in iterative tracking
00007     ## remove rekeying of clusters refs from track producer
00008     trackProducers=['preFilterZeroStepTracks',
00009                     'preFilterStepOneTracks',
00010                     'secWithMaterialTracks',
00011                     'thWithMaterialTracks',
00012                     'fourthWithMaterialTracks',
00013                     'fifthWithMaterialTracks',
00014                     ]
00015 
00016     for tp in trackProducers:
00017         m=getattr(process,tp)
00018         if hasattr(m,"clusterRemovalInfo"):
00019             #print "removing cluter rekeying from",tp
00020             delattr(m,"clusterRemovalInfo")
00021 
00022     measurementTrackers=['MeasurementTracker',
00023                          'newMeasurementTracker',
00024                          'secMeasurementTracker',
00025                          'thMeasurementTracker',
00026                          'fourthMeasurementTracker',
00027                          'fifthMeasurementTracker',
00028                          ]
00029 
00030     # list of measurement tracker, component names
00031     ## create the clusterRef to skip creators (MT+'ToSkip')
00032     for mt in measurementTrackers:
00033         es=getattr(process,mt)
00034         ## modify MT to point to the full cluster list
00035         #if es.pixelClusterProducer.value() == 'siPixelClusters':
00036         #    continue
00037 
00038         #old trackclusterremoval module
00039         removalModule=es.pixelClusterProducer.value()
00040 
00041         if (removalModule != 'siPixelClusters'):
00042             es.skipClusters = cms.InputTag(removalModule)
00043             es.pixelClusterProducer = 'siPixelClusters'
00044             es.stripClusterProducer = 'siStripClusters'
00045             #print mt,es.skipClusters,es.pixelClusterProducer,es.stripClusterProducer
00046             tcremoval = getattr(process,removalModule)
00047             #print removalModule,"turned to using new scheme"
00048             tcremoval.clusterLessSolution= cms.bool(True)
00049             tcremoval.stripClusters = 'siStripClusters'
00050             tcremoval.pixelClusters = 'siPixelClusters'
00051             skipTrackQualityFilter=False
00052             if (skipTrackQualityFilter):
00053                 tcremoval.TrackQuality = cms.string('highPurity')
00054                 #remove the QualityFilter module from the path
00055                 toRemove[tcremoval.trajectories.value()]=True
00056                 qf=getattr(process,tcremoval.trajectories.value())
00057                 tcremoval.trajectories = qf.recTracks
00058         #else:
00059             #print mt,'no cluster to skip',es.pixelClusterProducer,es.stripClusterProducer
00060 
00061     patternRecoModules=[
00062         'fifthTrackCandidates',
00063         'fourthTrackCandidates',
00064         'newTrackCandidateMaker',
00065         'secTrackCandidates',
00066         'stepOneTrackCandidateMaker',
00067         'thTrackCandidates'
00068         ]
00069     
00070     for ckfm in patternRecoModules:
00071         ckf=getattr(process,ckfm)
00072         builder=getattr(process,ckf.TrajectoryBuilder.value())
00073         mtn= builder.MeasurementTrackerName.value()
00074         if mtn!='':
00075             #make it look at the central MT
00076             builder.MeasurementTrackerName=''
00077             mt=getattr(process,mtn)
00078             # transfer the cluster removal from the MT to the builder
00079             builder.clustersToSkip = mt.skipClusters
00080             #print "setting",ckf.TrajectoryBuilder.value(),"via",ckfm,"to look at central MT"
00081             #print "removing MT:",mtn
00082             delattr(process,mtn)
00083         #else:
00084             #print ckfm,"untouched"
00085             
00086     #all seeding layers should point to the same rechits collections
00087     for esp in process.es_producers_().keys():
00088         es = getattr(process,esp)
00089         if es._TypedParameterizable__type != 'SeedingLayersESProducer':
00090             continue
00091         for pm in es.parameters_().keys():
00092             p=getattr(es,pm)
00093             if p.pythonTypeName() == 'cms.PSet':
00094                 if hasattr(p,'HitProducer'):
00095                     #print "pixel",pm,p
00096                     #pixel case
00097                     if p.HitProducer != 'siPixelRecHits':
00098                         toRemove[p.HitProducer.value()]=True
00099                         skip=getattr(process,p.HitProducer.value()).src
00100                         p.HitProducer = 'siPixelRecHits'
00101                         #and set the skipping
00102                         p.skipClusters = cms.InputTag(skip.value())
00103                         #print esp,"modified for new skipping"
00104                         #print esp,pm,p
00105 
00106                 if hasattr(p,'matchedRecHits'):
00107                     #print "strip",pm,p
00108                     #strip case
00109                     ## rename the collection
00110                     if p.matchedRecHits.moduleLabel != 'siStripMatchedRecHits':
00111                         toRemove[p.matchedRecHits.moduleLabel]=True
00112                         skip=getattr(process,p.matchedRecHits.moduleLabel).ClusterProducer
00113                         p.matchedRecHits.setModuleLabel('siStripMatchedRecHits')
00114                         #and set the skipping
00115                         p.skipClusters = cms.InputTag(skip.value())
00116                         #print esp,pm,p
00117 
00118 
00119     for edp in process.producers_():
00120         p=getattr(process,edp)
00121         if hasattr(p,'ClusterCheckPSet'):
00122             #print "resetting cluster check for",edp
00123             p.ClusterCheckPSet.PixelClusterCollectionLabel = 'siPixelClusters'
00124             p.ClusterCheckPSet.ClusterCollectionLabel = 'siStripClusters'
00125 
00126     #force useless module to be removed
00127     toRemove['secStripRecHits']=True
00128     toRemove['fourthPixelRecHits']=True
00129     toRemove['fifthPixelRecHits']=True
00130     
00131     for tr in toRemove:
00132         if hasattr(process,tr):
00133             #print "removing",tr
00134             process.reconstruction_step.remove(getattr(process,tr))
00135 
00136     delattr(process.newCombinedSeeds,'clusterRemovalInfos')
00137         
00138     return (process)
00139