CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoEgamma/EgammaPhotonProducers/python/conversionTrackSequenceForReReco_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 import RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi
00004 import RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi
00005 
00006 # Conversion Track candidate producer 
00007 from RecoEgamma.EgammaPhotonProducers.conversionTrackCandidates_cfi import *
00008 # Conversion Track producer  ( final fit )
00009 from RecoEgamma.EgammaPhotonProducers.ckfOutInTracksFromConversions_cfi import *
00010 from RecoEgamma.EgammaPhotonProducers.ckfInOutTracksFromConversions_cfi import *
00011 ckfTracksFromConversionsReReco = cms.Sequence(conversionTrackCandidates*ckfOutInTracksFromConversions*ckfInOutTracksFromConversions)
00012 
00013 
00014 #producer from general tracks collection, set tracker only and merged arbitrated flag
00015 generalConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
00016     TrackProducer = cms.string('generalTracks'),
00017     setTrackerOnly = cms.bool(True),
00018     useTrajectory = cms.bool(False),
00019 )
00020 
00021 #producer from inout ecal seeded tracks, set arbitratedecalseeded and mergedarbitrated flags
00022 inOutConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
00023     TrackProducer = cms.string('ckfInOutTracksFromConversions'),
00024     setArbitratedEcalSeeded = cms.bool(True),
00025     useTrajectory = cms.bool(False), 
00026 )
00027 
00028 #producer from outin ecal seeded tracks, set arbitratedecalseeded and mergedarbitrated flags
00029 outInConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
00030     TrackProducer = cms.string('ckfOutInTracksFromConversions'),
00031     setArbitratedEcalSeeded = cms.bool(True),
00032     useTrajectory = cms.bool(False),
00033 )
00034 
00035 #producer from gsf tracks, set only mergedarbitrated flag (default behaviour)
00036 gsfConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
00037     TrackProducer = cms.string('electronGsfTracks'),
00038     useTrajectory = cms.bool(False),
00039 )
00040 
00041 conversionTrackProducersReReco = cms.Sequence(generalConversionTrackProducerReReco*inOutConversionTrackProducerReReco*outInConversionTrackProducerReReco*gsfConversionTrackProducerReReco)
00042 
00043 #merge two ecal-seeded collections, with arbitration by nhits then chi^2/ndof for both ecalseededarbitrated and mergedarbitrated flags
00044 inOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
00045     TrackProducer1 = cms.string('inOutConversionTrackProducerReReco'),
00046     TrackProducer2 = cms.string('outInConversionTrackProducerReReco'),
00047     #prefer collection settings:
00048     #-1: propagate output/flag from both input collections
00049     # 0: propagate output/flag from neither input collection
00050     # 1: arbitrate output/flag (remove duplicates by shared hits), give precedence to first input collection
00051     # 2: arbitrate output/flag (remove duplicates by shared hits), give precedence to second input collection
00052     # 3: arbitrate output/flag (remove duplicates by shared hits), arbitration first by number of hits, second by chisq/ndof  
00053     arbitratedEcalSeededPreferCollection = cms.int32(3),    
00054     arbitratedMergedPreferCollection = cms.int32(3),
00055 )
00056 
00057 #merge ecalseeded collections with collection from general tracks
00058 #trackeronly flag is forwarded from the generaltrack-based collections
00059 #ecalseeded flag is forwarded from the ecal seeded collection
00060 #arbitratedmerged flag is set based on shared hit matching, arbitration by nhits then chi^2/ndof
00061 generalInOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
00062     TrackProducer1 = cms.string('inOutOutInConversionTrackMergerReReco'),
00063     TrackProducer2 = cms.string('generalConversionTrackProducerReReco'),
00064     arbitratedMergedPreferCollection = cms.int32(3),
00065 )
00066 
00067 #merge the result of the above with the collection from gsf tracks
00068 #trackeronly and mergedecal flags are forwarded
00069 #arbitratedmerged flag set based on overlap removal by shared hits, with precedence given to gsf tracks
00070 gsfGeneralInOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
00071     TrackProducer1 = cms.string('generalInOutOutInConversionTrackMergerReReco'),
00072     TrackProducer2 = cms.string('gsfConversionTrackProducerReReco'),
00073     arbitratedMergedPreferCollection = cms.int32(2),
00074 )
00075 
00076 #final output collection contains combination of generaltracks, ecal seeded tracks and gsf tracks, with overlaps removed by shared hits
00077 #precedence is given first to gsf tracks, then to the combination of ecal seeded and general tracks
00078 #overlaps between the ecal seeded track collections and between ecal seeded and general tracks are arbitrated first by nhits then by chi^2/dof
00079 #(logic and much of the code is adapted from FinalTrackSelectors)
00080 
00081 conversionTrackMergersReReco = cms.Sequence(inOutOutInConversionTrackMergerReReco*generalInOutOutInConversionTrackMergerReReco*gsfGeneralInOutOutInConversionTrackMergerReReco)
00082 
00083 conversionTrackSequenceForReReco = cms.Sequence(ckfTracksFromConversionsReReco*conversionTrackProducersReReco*conversionTrackMergersReReco)
00084 
00085 #merge the general tracks with the collection from gsf tracks
00086 #arbitratedmerged flag set based on overlap removal by shared hits, with precedence given to gsf tracks
00087 gsfGeneralConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
00088     TrackProducer1 = cms.string('generalConversionTrackProducerReReco'),
00089     TrackProducer2 = cms.string('gsfConversionTrackProducerReReco'),
00090     arbitratedMergedPreferCollection = cms.int32(2),
00091 )
00092 
00093 #conversionTrackSequenceNoEcalSeeded = cms.Sequence(generalConversionTrackProducer*gsfConversionTrackProducer*gsfGeneralConversionTrackMerger)