Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:58

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 import RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi
0004 import RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi
0005 
0006 # Conversion Track candidate producer 
0007 from RecoEgamma.EgammaPhotonProducers.conversionTrackCandidates_cff import *
0008 # Conversion Track producer  ( final fit )
0009 from RecoEgamma.EgammaPhotonProducers.ckfOutInTracksFromConversions_cfi import *
0010 from RecoEgamma.EgammaPhotonProducers.ckfInOutTracksFromConversions_cfi import *
0011 ckfTracksFromConversionsReRecoTask = cms.Task(conversionTrackCandidates,
0012                                               ckfOutInTracksFromConversions,
0013                                               ckfInOutTracksFromConversions)
0014 
0015 #producer from general tracks collection, set tracker only and merged arbitrated flag
0016 generalConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
0017     TrackProducer  = 'generalTracks',
0018     setTrackerOnly = True,
0019     useTrajectory  = False,
0020 )
0021 
0022 #producer from conversionStep tracks collection, set tracker only, merged arbitrated, merged arbitrated ecal/general flags
0023 conversionStepConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
0024     TrackProducer  = 'conversionStepTracks',
0025     setTrackerOnly = True,
0026     setArbitratedMergedEcalGeneral = True,
0027     useTrajectory  = False,
0028 )
0029 
0030 #producer from inout ecal seeded tracks, set arbitratedecalseeded and mergedarbitrated flags
0031 inOutConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
0032     TrackProducer = 'ckfInOutTracksFromConversions',
0033     setArbitratedEcalSeeded = True,
0034     useTrajectory = False,
0035 )
0036 
0037 #producer from outin ecal seeded tracks, set arbitratedecalseeded and mergedarbitrated flags
0038 outInConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
0039     TrackProducer = 'ckfOutInTracksFromConversions',
0040     setArbitratedEcalSeeded = True,
0041     useTrajectory = False,
0042 )
0043 
0044 #producer from gsf tracks, set only mergedarbitrated flag (default behaviour)
0045 gsfConversionTrackProducerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackProducer_cfi.conversionTrackProducer.clone(
0046     TrackProducer = 'electronGsfTracks',
0047     useTrajectory = False,
0048 )
0049 
0050 conversionTrackProducersReRecoTask = cms.Task(generalConversionTrackProducerReReco,
0051                                               conversionStepConversionTrackProducerReReco,
0052                                               inOutConversionTrackProducerReReco,
0053                                               outInConversionTrackProducerReReco,
0054                                               gsfConversionTrackProducerReReco)
0055 
0056 #merge generalTracks and conversionStepTracks collections, with arbitration by nhits then chi^2/ndof for ecalseededarbitrated, mergedarbitratedecalgeneral and mergedarbitrated flags
0057 generalConversionStepConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
0058     TrackProducer1 = 'generalConversionTrackProducerReReco',
0059     TrackProducer2 = 'conversionStepConversionTrackProducerReReco',
0060     #prefer collection settings:
0061     #-1: propagate output/flag from both input collections
0062     # 0: propagate output/flag from neither input collection
0063     # 1: arbitrate output/flag (remove duplicates by shared hits), give precedence to first input collection
0064     # 2: arbitrate output/flag (remove duplicates by shared hits), give precedence to second input collection
0065     # 3: arbitrate output/flag (remove duplicates by shared hits), arbitration first by number of hits, second by chisq/ndof  
0066     arbitratedMergedPreferCollection = 3,
0067     arbitratedMergedEcalGeneralPreferCollection = 3,
0068 )
0069 
0070 #merge two ecal-seeded collections, with arbitration by nhits then chi^2/ndof for both ecalseededarbitrated and mergedarbitrated flags
0071 inOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
0072     TrackProducer1 = 'inOutConversionTrackProducerReReco',
0073     TrackProducer2 = 'outInConversionTrackProducerReReco',
0074     #prefer collection settings:
0075     #-1: propagate output/flag from both input collections
0076     # 0: propagate output/flag from neither input collection
0077     # 1: arbitrate output/flag (remove duplicates by shared hits), give precedence to first input collection
0078     # 2: arbitrate output/flag (remove duplicates by shared hits), give precedence to second input collection
0079     # 3: arbitrate output/flag (remove duplicates by shared hits), arbitration first by number of hits, second by chisq/ndof  
0080     arbitratedEcalSeededPreferCollection = 3,    
0081     arbitratedMergedPreferCollection = 3,
0082 )
0083 
0084 #merge ecalseeded collections with collection from general tracks
0085 #trackeronly flag is forwarded from the generaltrack-based collections
0086 #ecalseeded flag is forwarded from the ecal seeded collection
0087 #arbitratedmerged flag is set based on shared hit matching, arbitration by nhits then chi^2/ndof
0088 generalInOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
0089     TrackProducer1 = 'inOutOutInConversionTrackMergerReReco',
0090     TrackProducer2 = 'generalConversionStepConversionTrackMergerReReco',
0091     arbitratedMergedPreferCollection = 3,
0092 )
0093 
0094 #merge the result of the above with the collection from gsf tracks
0095 #trackeronly and mergedecal flags are forwarded
0096 #arbitratedmerged flag set based on overlap removal by shared hits, with precedence given to gsf tracks
0097 gsfGeneralInOutOutInConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
0098     TrackProducer1 = 'generalInOutOutInConversionTrackMergerReReco',
0099     TrackProducer2 = 'gsfConversionTrackProducerReReco',
0100     arbitratedMergedPreferCollection = 2,
0101 )
0102 
0103 #final output collection contains combination of generaltracks, ecal seeded tracks and gsf tracks, with overlaps removed by shared hits
0104 #precedence is given first to gsf tracks, then to the combination of ecal seeded and general tracks
0105 #overlaps between the ecal seeded track collections and between ecal seeded and general tracks are arbitrated first by nhits then by chi^2/dof
0106 #(logic and much of the code is adapted from FinalTrackSelectors)
0107 
0108 conversionTrackMergersReRecoTask = cms.Task(inOutOutInConversionTrackMergerReReco,
0109                                             generalConversionStepConversionTrackMergerReReco,
0110                                             generalInOutOutInConversionTrackMergerReReco,
0111                                             gsfGeneralInOutOutInConversionTrackMergerReReco)
0112 
0113 conversionTrackTaskForReReco = cms.Task(ckfTracksFromConversionsReRecoTask,
0114                                         conversionTrackProducersReRecoTask,
0115                                         conversionTrackMergersReRecoTask)
0116 conversionTrackSequenceForReReco = cms.Sequence(conversionTrackTaskForReReco)
0117 
0118 #merge the general tracks with the collection from gsf tracks
0119 #arbitratedmerged flag set based on overlap removal by shared hits, with precedence given to gsf tracks
0120 gsfGeneralConversionTrackMergerReReco = RecoEgamma.EgammaPhotonProducers.conversionTrackMerger_cfi.conversionTrackMerger.clone(
0121     TrackProducer1 = 'generalConversionTrackProducerReReco',
0122     TrackProducer2 = 'gsfConversionTrackProducerReReco',
0123     arbitratedMergedPreferCollection = 2,
0124 )
0125 
0126 #conversionTrackSequenceNoEcalSeeded = cms.Sequence(generalConversionTrackProducer*gsfConversionTrackProducer*gsfGeneralConversionTrackMerger)