1 |
# $Id: generalGsfTracking_cfi.py,v 1.3 2009/03/20 17:18:39 loizides Exp $
|
2 |
|
3 |
import FWCore.ParameterSet.Config as cms
|
4 |
|
5 |
import RecoEgamma.EgammaElectronProducers.gsfElectronCkfTrackCandidateMaker_cff
|
6 |
|
7 |
TrajectoryBuilderForGeneralGsfTracks = RecoEgamma.EgammaElectronProducers.gsfElectronCkfTrackCandidateMaker_cff.TrajectoryBuilderForPixelMatchGsfElectrons.clone()
|
8 |
TrajectoryBuilderForGeneralGsfTracks.ComponentName = 'TrajectoryBuilderForGeneralGsfTracks'
|
9 |
TrajectoryBuilderForGeneralGsfTracks.trajectoryFilterName = 'newTrajectoryFilter'
|
10 |
# TrajectoryBuilderForGeneralGsfTracks.trajectoryFilterName = 'TrajectoryFilterForGeneralGsfTracks'
|
11 |
|
12 |
# TrajectoryFilterForGeneralGsfTracks = RecoEgamma.EgammaElectronProducers.gsfElectronCkfTrackCandidateMaker_cff.TrajectoryFilterForPixelMatchGsfElectrons.clone()
|
13 |
# TrajectoryFilterForGeneralGsfTracks.ComponentName = 'TrajectoryFilterForGeneralGsfTracks'
|
14 |
# TrajectoryFilterForGeneralGsfTracks.filterPset.minPt = 0.0
|
15 |
# TrajectoryFilterForGeneralGsfTracks.filterPset.minPt.nSigmaMinPt = 0.0
|
16 |
|
17 |
newTrackCandidateMakerGsf = RecoEgamma.EgammaElectronProducers.gsfElectronCkfTrackCandidateMaker_cff.egammaCkfTrackCandidates.clone()
|
18 |
newTrackCandidateMakerGsf.TrajectoryBuilder = 'TrajectoryBuilderForGeneralGsfTracks'
|
19 |
newTrackCandidateMakerGsf.SeedProducer = 'newCombinedSeeds'
|
20 |
|
21 |
#normal iterative tracking procedure reimplemented using gsf fits for all tracks
|
22 |
import TrackingTools.GsfTracking.GsfElectronFit_cfi
|
23 |
preFilterFirstStepTracksGsf = TrackingTools.GsfTracking.GsfElectronFit_cfi.GsfGlobalElectronTest.clone()
|
24 |
preFilterFirstStepTracksGsf.src = 'newTrackCandidateMakerGsf'
|
25 |
preFilterFirstStepTracksGsf.TrajectoryInEvent = True
|
26 |
|
27 |
from MitEdm.TrackerElectrons.iterativeTkGsf_cff import *
|
28 |
from MitEdm.TrackerElectrons.MergeTrackCollectionsGsf_cff import *
|
29 |
|
30 |
import MitEdm.Producers.gsfTrackAssociator_cff
|
31 |
generalGsfTrackAssociator = MitEdm.Producers.gsfTrackAssociator_cff.gsfTrackAssociator.clone()
|
32 |
generalGsfTrackAssociator.fromTracks = 'generalTracksGsf'
|
33 |
|
34 |
import SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi
|
35 |
gsfMcMatch = SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi.trackingParticleRecoTrackAsssociation.clone()
|
36 |
gsfMcMatch.label_tr = 'generalTracksGsf'
|
37 |
|
38 |
#configure tracker-seeded electron producer with very loose cuts
|
39 |
import RecoEgamma.EgammaElectronProducers.globalGsfElectrons_cfi
|
40 |
globalGeneralGsfElectrons = RecoEgamma.EgammaElectronProducers.globalGsfElectrons_cfi.globalGsfElectrons.clone()
|
41 |
globalGeneralGsfElectrons.tracks = cms.InputTag("generalTracksGsf")
|
42 |
globalGeneralGsfElectrons.minEOverPEndcaps = 0.0
|
43 |
globalGeneralGsfElectrons.minEOverPBarrel = 0.0
|
44 |
globalGeneralGsfElectrons.maxEOverPEndcaps = 99999.9
|
45 |
globalGeneralGsfElectrons.maxEOverPBarrel = 99999.9
|
46 |
globalGeneralGsfElectrons.maxHOverE = 99999.9
|
47 |
globalGeneralGsfElectrons.maxDeltaPhi = 0.3
|
48 |
globalGeneralGsfElectrons.maxDeltaEta = 0.06
|
49 |
globalGeneralGsfElectrons.applyAmbResolution = True
|
50 |
|
51 |
#run isolation and electron id algorithms on new electron collection
|
52 |
import RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff
|
53 |
eleIsoDepositTkGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoDepositTk.clone()
|
54 |
eleIsoDepositTkGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
55 |
eleIsoDepositEcalFromHitsGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoDepositEcalFromHits.clone()
|
56 |
eleIsoDepositEcalFromHitsGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
57 |
eleIsoDepositHcalFromHitsGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoDepositHcalFromHits.clone()
|
58 |
eleIsoDepositHcalFromHitsGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
59 |
eleIsoFromDepsTkGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoFromDepsTk.clone()
|
60 |
eleIsoFromDepsTkGsf.deposits[0].src = cms.InputTag("eleIsoDepositEcalFromHitsGsf")
|
61 |
eleIsoFromDepsEcalFromHitsGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoFromDepsEcalFromHits.clone()
|
62 |
eleIsoFromDepsEcalFromHitsGsf.deposits[0].src = cms.InputTag("eleIsoDepositEcalFromHitsGsf")
|
63 |
eleIsoFromDepsHcalFromHitsGsf = RecoEgamma.EgammaIsolationAlgos.eleIsolationSequence_cff.eleIsoFromDepsHcalFromHits.clone()
|
64 |
eleIsoFromDepsHcalFromHitsGsf.deposits[0].src = cms.InputTag("eleIsoDepositHcalFromHitsGsf")
|
65 |
|
66 |
generalGsfElectronsIso = cms.Sequence(eleIsoDepositTkGsf*eleIsoDepositEcalFromHitsGsf*eleIsoDepositHcalFromHitsGsf
|
67 |
*eleIsoFromDepsTkGsf*eleIsoFromDepsEcalFromHitsGsf*eleIsoFromDepsHcalFromHitsGsf)
|
68 |
|
69 |
import RecoEgamma.ElectronIdentification.electronIdSequence_cff
|
70 |
eidRobustLooseGsf = RecoEgamma.ElectronIdentification.electronIdSequence_cff.eidRobustLoose.clone()
|
71 |
eidRobustLooseGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
72 |
eidRobustTightGsf = RecoEgamma.ElectronIdentification.electronIdSequence_cff.eidRobustTight.clone()
|
73 |
eidRobustTightGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
74 |
eidLooseGsf = RecoEgamma.ElectronIdentification.electronIdSequence_cff.eidLoose.clone()
|
75 |
eidLooseGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
76 |
eidTightGsf = RecoEgamma.ElectronIdentification.electronIdSequence_cff.eidTight.clone()
|
77 |
eidTightGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
78 |
|
79 |
import RecoEgamma.ElectronIdentification.electronIdNeuralNet_cfi
|
80 |
eidNeuralNetGsf = RecoEgamma.ElectronIdentification.electronIdNeuralNet_cfi.eidNeuralNet.clone()
|
81 |
eidNeuralNetGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
82 |
|
83 |
import RecoEgamma.ElectronIdentification.electronIdLikelihoodExt_cfi
|
84 |
eidLikelihoodExtGsf = RecoEgamma.ElectronIdentification.electronIdLikelihoodExt_cfi.eidLikelihoodExt.clone()
|
85 |
eidLikelihoodExtGsf.src = cms.InputTag("globalGeneralGsfElectrons")
|
86 |
|
87 |
generalGsfElectronId = cms.Sequence(eidRobustLooseGsf*eidRobustTightGsf*eidLooseGsf*eidTightGsf*eidNeuralNetGsf*eidLikelihoodExtGsf)
|
88 |
|
89 |
generalGsfTracking = cms.Sequence(newTrackCandidateMakerGsf*preFilterFirstStepTracksGsf*iterTrackingGsf*trackCollectionMergingGsf*
|
90 |
gsfMcMatch*generalGsfTrackAssociator*
|
91 |
globalGeneralGsfElectrons*generalGsfElectronsIso*generalGsfElectronId)
|