CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 from RecoTracker.ConversionSeedGenerators.PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi import *
00004 
00005 convClusters = cms.EDProducer("TrackClusterRemover",
00006                               clusterLessSolution = cms.bool(True),
00007                               oldClusterRemovalInfo = cms.InputTag("tobTecStepClusters"),
00008                               trajectories = cms.InputTag("tobTecStepTracks"),
00009                               overrideTrkQuals = cms.InputTag('tobTecStepSelector','tobTecStep'),
00010                               TrackQuality = cms.string('highPurity'),
00011                               pixelClusters = cms.InputTag("siPixelClusters"),
00012                               stripClusters = cms.InputTag("siStripClusters"),
00013                               Common = cms.PSet(maxChi2 = cms.double(30.0))
00014                               )
00015 
00016 convLayerPairs = cms.ESProducer("SeedingLayersESProducer",
00017                                 ComponentName = cms.string('convLayerPairs'),
00018                                 layerList = cms.vstring('BPix1+BPix2', 
00019 
00020                                                         'BPix2+BPix3', 
00021                                                         'BPix2+FPix1_pos', 
00022                                                         'BPix2+FPix1_neg', 
00023                                                         'BPix2+FPix2_pos', 
00024                                                         'BPix2+FPix2_neg', 
00025 
00026                                                         'FPix1_pos+FPix2_pos', 
00027                                                         'FPix1_neg+FPix2_neg',
00028 
00029                                                         'BPix3+TIB1', 
00030                                                         'BPix3+TIB2',
00031                                                         
00032                                                         'TIB1+TID1_pos', 
00033                                                         'TIB1+TID1_neg', 
00034                                                         'TIB1+TID2_pos', 
00035                                                         'TIB1+TID2_neg',
00036                                                         'TIB1+TIB2',
00037                                                         'TIB1+TIB3',
00038 
00039                                                         'TIB2+TID1_pos', 
00040                                                         'TIB2+TID1_neg', 
00041                                                         'TIB2+TID2_pos', 
00042                                                         'TIB2+TID2_neg', 
00043                                                         'TIB2+TIB3',
00044                                                         'TIB2+TIB4', 
00045 
00046                                                         'TIB3+TIB4', 
00047                                                         'TIB3+TOB1', 
00048                                                         'TIB3+TID1_pos', 
00049                                                         'TIB3+TID1_neg', 
00050 
00051                                                         'TIB4+TOB1',
00052                                                         'TIB4+TOB2',
00053 
00054                                                         'TOB1+TOB2', 
00055                                                         'TOB1+TOB3', 
00056                                                         'TOB1+TEC1_pos', 
00057                                                         'TOB1+TEC1_neg', 
00058 
00059                                                         'TOB2+TOB3',  
00060                                                         'TOB2+TOB4',
00061                                                         'TOB2+TEC1_pos', 
00062                                                         'TOB2+TEC1_neg', 
00063 
00064                                                         #NB: re-introduce these combinations when large displaced
00065                                                         #    tracks, reconstructed only in TOB will be available
00066                                                         #    For instance think at the OutIn Ecal Seeded tracks
00067                                                         #'TOB3+TOB4', 
00068                                                         #'TOB3+TOB5',
00069                                                         #'TOB3+TEC1_pos', 
00070                                                         #'TOB3+TEC1_neg', 
00071                                                         #
00072                                                         #'TOB4+TOB5',
00073                                                         #'TOB4+TOB6',
00074                                                         #
00075                                                         #'TOB5+TOB6',
00076 
00077                                                         'TID1_pos+TID2_pos', 
00078                                                         'TID2_pos+TID3_pos', 
00079                                                         'TID3_pos+TEC1_pos', 
00080 
00081                                                         'TID1_neg+TID2_neg', 
00082                                                         'TID2_neg+TID3_neg', 
00083                                                         'TID3_neg+TEC1_neg', 
00084 
00085                                                         'TEC1_pos+TEC2_pos', 
00086                                                         'TEC2_pos+TEC3_pos', 
00087                                                         'TEC3_pos+TEC4_pos',
00088                                                         'TEC4_pos+TEC5_pos',
00089                                                         'TEC5_pos+TEC6_pos',
00090                                                         'TEC6_pos+TEC7_pos',
00091                                                         'TEC7_pos+TEC8_pos',
00092 
00093                                                         'TEC1_neg+TEC2_neg', 
00094                                                         'TEC2_neg+TEC3_neg', 
00095                                                         'TEC3_neg+TEC4_neg',
00096                                                         'TEC4_neg+TEC5_neg',
00097                                                         'TEC5_neg+TEC6_neg',
00098                                                         'TEC6_neg+TEC7_neg',
00099                                                         'TEC7_neg+TEC8_neg'
00100                                                         #other combinations could be added
00101                                                         ),
00102 
00103                                 BPix = cms.PSet(
00104                                     hitErrorRZ = cms.double(0.006),
00105                                     hitErrorRPhi = cms.double(0.0027),
00106                                     TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
00107                                     HitProducer = cms.string('siPixelRecHits'),
00108                                     useErrorsFromParam = cms.bool(True),
00109                                     skipClusters = cms.InputTag('convClusters'),
00110                                     ),
00111                                 FPix = cms.PSet(
00112                                     hitErrorRZ = cms.double(0.0036),
00113                                     hitErrorRPhi = cms.double(0.0051),
00114                                     TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
00115                                     HitProducer = cms.string('siPixelRecHits'),
00116                                     useErrorsFromParam = cms.bool(True),
00117                                     skipClusters = cms.InputTag('convClusters'),
00118                                     ),
00119                                 TIB1 = cms.PSet(
00120                                     TTRHBuilder = cms.string('WithTrackAngle'),
00121                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00122                                     skipClusters = cms.InputTag('convClusters'),
00123                                     ),
00124                                 TIB2 = cms.PSet(
00125                                     TTRHBuilder = cms.string('WithTrackAngle'),
00126                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00127                                     skipClusters = cms.InputTag('convClusters'),
00128                                     ),
00129                                 TIB3 = cms.PSet(
00130                                     TTRHBuilder = cms.string('WithTrackAngle'),
00131                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00132                                     skipClusters = cms.InputTag('convClusters'),
00133                                     ),
00134                                 TIB4 = cms.PSet(
00135                                     TTRHBuilder = cms.string('WithTrackAngle'),
00136                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00137                                     skipClusters = cms.InputTag('convClusters'),
00138                                     ),
00139                                 TID1 = cms.PSet(
00140                                     useSimpleRphiHitsCleaner = cms.bool(False),
00141                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00142                                     useRingSlector = cms.bool(True),
00143                                     TTRHBuilder = cms.string('WithTrackAngle'),
00144                                     maxRing = cms.int32(2),
00145                                     minRing = cms.int32(1),
00146                                     skipClusters = cms.InputTag('convClusters'),
00147                                     ),
00148                                 TID2 = cms.PSet(
00149                                     useSimpleRphiHitsCleaner = cms.bool(False),
00150                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00151                                     useRingSlector = cms.bool(True),
00152                                     TTRHBuilder = cms.string('WithTrackAngle'),
00153                                     maxRing = cms.int32(2),
00154                                     minRing = cms.int32(1),
00155                                     skipClusters = cms.InputTag('convClusters'),
00156                                     ),
00157                                 TID3 = cms.PSet(
00158                                     useSimpleRphiHitsCleaner = cms.bool(False),
00159                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00160                                     useRingSlector = cms.bool(True),
00161                                     TTRHBuilder = cms.string('WithTrackAngle'),
00162                                     maxRing = cms.int32(2),
00163                                     minRing = cms.int32(1),
00164                                     skipClusters = cms.InputTag('convClusters'),
00165                                     ),
00166                                 TEC = cms.PSet(
00167                                     useSimpleRphiHitsCleaner = cms.bool(False),
00168                                     minRing = cms.int32(1),
00169                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00170                                     useRingSlector = cms.bool(True),
00171                                     TTRHBuilder = cms.string('WithTrackAngle'),
00172                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHitUnmatched"),
00173                                     maxRing = cms.int32(7),
00174                                     stereoRecHits = cms.InputTag("siStripMatchedRecHits","stereoRecHitUnmatched"),
00175                                     skipClusters = cms.InputTag('convClusters'),
00176                                     ),
00177                                 TOB1 = cms.PSet(
00178                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00179                                     TTRHBuilder = cms.string('WithTrackAngle'),
00180                                     skipClusters = cms.InputTag('convClusters'),
00181                                     ),
00182                                 TOB2 = cms.PSet(
00183                                     matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00184                                     TTRHBuilder = cms.string('WithTrackAngle'),
00185                                     skipClusters = cms.InputTag('convClusters'),
00186                                     ),
00187                                 TOB3 = cms.PSet(
00188                                     TTRHBuilder = cms.string('WithTrackAngle'),
00189                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00190                                     skipClusters = cms.InputTag('convClusters'),
00191                                     ),
00192                                 TOB4 = cms.PSet(
00193                                     TTRHBuilder = cms.string('WithTrackAngle'),
00194                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00195                                     skipClusters = cms.InputTag('convClusters'),
00196                                     ),
00197                                 TOB5 = cms.PSet(
00198                                     TTRHBuilder = cms.string('WithTrackAngle'),
00199                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00200                                     skipClusters = cms.InputTag('convClusters'),
00201                                     ),
00202                                 TOB6 = cms.PSet(
00203                                     TTRHBuilder = cms.string('WithTrackAngle'),
00204                                     rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
00205                                     skipClusters = cms.InputTag('convClusters'),
00206                                     )
00207                                 )
00208 
00209 
00210 photonConvTrajSeedFromSingleLeg.TrackRefitter = cms.InputTag('generalTracks')
00211 photonConvTrajSeedFromSingleLeg.primaryVerticesTag = cms.InputTag('pixelVertices')
00212 
00213 
00214 # TRACKER DATA CONTROL
00215 
00216 # QUALITY CUTS DURING TRACK BUILDING
00217 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00218 convCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00219     ComponentName = 'convCkfTrajectoryFilter',
00220     filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00221         maxLostHits = 1,
00222         minimumNumberOfHits = 3,
00223         minPt = 0.1
00224         )
00225     )
00226 
00227 # TRACK BUILDING
00228 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00229 convCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00230     ComponentName = 'convCkfTrajectoryBuilder',
00231     trajectoryFilterName = 'convCkfTrajectoryFilter',
00232     minNrOfHitsForRebuild = 3,
00233     clustersToSkip = cms.InputTag('convClusters'),
00234     maxCand = 2
00235     )
00236 
00237 # MAKING OF TRACK CANDIDATES
00238 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00239 convTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00240     src = cms.InputTag('photonConvTrajSeedFromSingleLeg:convSeedCandidates'),
00241     TrajectoryBuilder = 'convCkfTrajectoryBuilder'
00242 )
00243 
00244 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
00245 convStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
00246     ComponentName = 'convStepFitterSmoother',
00247     EstimateCut = 30,
00248     Smoother = cms.string('convStepRKSmoother')
00249     )
00250     
00251 convStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
00252     ComponentName = cms.string('convStepRKSmoother'),
00253     errorRescaling = 10.0
00254     )
00255 
00256         
00257 # TRACK FITTING
00258 import RecoTracker.TrackProducer.TrackProducer_cfi
00259 convStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00260     src = 'convTrackCandidates',
00261     AlgorithmName = cms.string('iter8'),
00262     Fitter = 'convStepFitterSmoother',
00263     )
00264 
00265 
00266 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
00267 convStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
00268     src='convStepTracks',
00269     trackSelectors= cms.VPSet(
00270         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
00271             name = 'convStepLoose',
00272             applyAdaptedPVCuts = False,
00273             chi2n_par = 3.0,
00274             res_par = ( 0.003, 0.001 ),
00275             minNumberLayers = 3,
00276             maxNumberLostLayers = 1,
00277             minNumber3DLayers = 1,
00278             d0_par1 = ( 5., 8.0 ),
00279             dz_par1 = ( 5., 8.0 ),
00280             d0_par2 = ( 5., 8.0 ),
00281             dz_par2 = ( 5., 8.0 )
00282             ),
00283         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
00284             name = 'convStepTight',
00285             preFilterName = 'convStepLoose',
00286             chi2n_par = 2.5,
00287             res_par = ( 0.003, 0.001 ),
00288             minNumberLayers = 3,
00289             maxNumberLostLayers = 1,
00290             minNumber3DLayers = 1,
00291             d0_par1 = ( 5., 8.0 ),
00292             dz_par1 = ( 5., 8.0 ),
00293             d0_par2 = ( 5., 8.0 ),
00294             dz_par2 = ( 5., 8.0 )
00295             ),
00296         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
00297             name = 'convStep',
00298             preFilterName = 'convStepTight',
00299             chi2n_par = 2.0,
00300             res_par = ( 0.003, 0.001 ),
00301             minNumberLayers = 3,
00302             maxNumberLostLayers = 1,
00303             minNumber3DLayers = 1,
00304             d0_par1 = ( 5., 8.0 ),
00305             dz_par1 = ( 5., 8.0 ),
00306             d0_par2 = ( 5., 8.0 ),
00307             dz_par2 = ( 5., 8.0 )
00308             ),
00309         ) #end of vpset
00310     ) #end of clone
00311 
00312 ConvStep = cms.Sequence( convClusters 
00313                          + photonConvTrajSeedFromSingleLeg 
00314                          + convTrackCandidates
00315                          + convStepTracks
00316                          + convStepSelector)