File indexing completed on 2024-04-06 11:58:38
0001 import FWCore.ParameterSet.Config as cms
0002
0003
0004
0005 myEleCollection = cms.InputTag("gedGsfElectrons")
0006
0007 MinEleNumberFilter = cms.EDFilter("CandViewCountFilter",
0008 src = myEleCollection,
0009 minNumber = cms.uint32(1)
0010 )
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 GsfMatchedPhotonCands = cms.EDProducer("ElectronMatchedCandidateProducer",
0021 src = cms.InputTag("goodPhotons"),
0022 ReferenceElectronCollection = cms.untracked.InputTag("goodElectrons"),
0023 deltaR = cms.untracked.double(0.3)
0024 )
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 import HLTrigger.HLTfilters.hltHighLevel_cfi
0047 ZSCHltFilter = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone(
0048 throw = cms.bool(False),
0049 HLTPaths = ['HLT_Ele27_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele15_CaloIdT_CaloIsoVL_trackless_v*']
0050 )
0051
0052
0053
0054
0055 genEleFromZ = cms.EDFilter("CandViewSelector",
0056 src = cms.InputTag("genParticles"),
0057 cut = cms.string("(pdgId == 11 || pdgId == -11) && eta <2.5 && eta>-2.5 && pt > 15 && mother(0).pdgId == 23"),
0058 )
0059
0060 genEleFromW = cms.EDFilter("CandViewSelector",
0061 src = cms.InputTag("genParticles"),
0062 cut = cms.string("(pdgId == 11 || pdgId == -11) && eta <2.5 && eta>-2.5 && pt > 25 && (mother(0).pdgId == 24 || mother(0).pdgId == -24)"),
0063 )
0064
0065 genNuFromW = cms.EDFilter("CandViewSelector",
0066 src = cms.InputTag("genParticles"),
0067 cut = cms.string("(pdgId == 12 || pdgId == -12) && (mother(0).pdgId == 24 || mother(0).pdgId == -24)"),
0068 )
0069
0070 combZ = cms.EDProducer("CandViewShallowCloneCombiner",
0071 decay = cms.string("genEleFromZ genEleFromZ"),
0072 checkCharge = cms.bool(False),
0073 cut = cms.string("40 < mass < 140"),
0074 )
0075
0076 combW = cms.EDProducer("CandViewShallowCloneCombiner",
0077 decay = cms.string("genEleFromW genNuFromW"),
0078 checkCharge = cms.bool(False),
0079 cut = cms.string(""),
0080 )
0081
0082 ZFilterMC = cms.EDFilter("CandViewCountFilter",
0083 src = cms.InputTag("combZ"),
0084 minNumber = cms.uint32(1)
0085 )
0086
0087 WFilterMC = cms.EDFilter("CandViewCountFilter",
0088 src = cms.InputTag("combW"),
0089 minNumber = cms.uint32(1)
0090 )
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101 selectedECALElectrons = cms.EDFilter("GsfElectronRefSelector",
0102 src = myEleCollection,
0103 cut = cms.string(
0104 "(abs(superCluster.eta)<3) && (energy*sin(superClusterPosition.theta)> 15)")
0105 )
0106
0107 selectedECALMuons = cms.EDFilter("MuonRefSelector",
0108 src = cms.InputTag( 'muons' ),
0109 cut = cms.string("")
0110 )
0111
0112 selectedECALPhotons = cms.EDFilter("PhotonRefSelector",
0113 src = cms.InputTag( 'gedPhotons' ),
0114 cut = cms.string(
0115 "(abs(superCluster.eta)<3) && (pt > 10)")
0116 )
0117
0118
0119
0120 PassingVetoId = selectedECALElectrons.clone(
0121 cut = cms.string(
0122 selectedECALElectrons.cut.value() +
0123 " && (gsfTrack.hitPattern().numberOfLostHits(\'MISSING_INNER_HITS\')<=2)"
0124 " && ((isEB"
0125 " && ( ((pfIsolationVariables().sumChargedHadronPt + max(0.0,pfIsolationVariables().sumNeutralHadronEt + pfIsolationVariables().sumPhotonEt - 0.5 * pfIsolationVariables().sumPUPt))/p4.pt)<0.164369)"
0126 " && (full5x5_sigmaIetaIeta<0.011100)"
0127 " && ( - 0.252044<deltaPhiSuperClusterTrackAtVtx< 0.252044 )"
0128 " && ( -0.016315<deltaEtaSuperClusterTrackAtVtx<0.016315 )"
0129 " && (hadronicOverEm<0.345843)"
0130 ")"
0131 " || (isEE"
0132 " && (gsfTrack.hitPattern().numberOfLostHits(\'MISSING_INNER_HITS\')<=3)"
0133 " && ( ((pfIsolationVariables().sumChargedHadronPt + max(0.0,pfIsolationVariables().sumNeutralHadronEt + pfIsolationVariables().sumPhotonEt - 0.5 * pfIsolationVariables().sumPUPt))/p4.pt)<0.212604 )"
0134 " && (full5x5_sigmaIetaIeta<0.033987)"
0135 " && ( -0.245263<deltaPhiSuperClusterTrackAtVtx<0.245263 )"
0136 " && ( -0.010671<deltaEtaSuperClusterTrackAtVtx<0.010671 )"
0137 " && (hadronicOverEm<0.134691) "
0138 "))"
0139 )
0140 )
0141
0142 PassingMuonVeryLooseId = selectedECALMuons.clone(
0143 cut = cms.string(
0144 selectedECALMuons.cut.value() +
0145 "(isPFMuon) && (isGlobalMuon || isTrackerMuon)"
0146 )
0147 )
0148
0149 PassingPhotonVeryLooseId = selectedECALPhotons.clone(
0150 cut = cms.string(
0151 selectedECALPhotons.cut.value() +
0152 "&& ( (eta<1.479 && sigmaIetaIeta<0.02 && hadronicOverEm<0.06 )"
0153 "||"
0154 "( eta>=1.479 && sigmaIetaIeta<0.04 && hadronicOverEm<0.06 ) )"
0155 )
0156 )
0157
0158 MuFilter = cms.EDFilter("CandViewCountFilter",
0159 src = cms.InputTag("PassingMuonVeryLooseId"),
0160 minNumber = cms.uint32(2)
0161 )
0162 PhoFilter = cms.EDFilter("CandViewCountFilter",
0163 src = cms.InputTag("PassingPhotonVeryLooseId"),
0164 minNumber = cms.uint32(1)
0165 )
0166
0167
0168
0169 SCselector = cms.EDFilter("SuperClusterSelector",
0170 src = cms.InputTag('correctedMulti5x5SuperClustersWithPreshower'),
0171 cut = cms.string('(eta>2.4 || eta<-2.4) && (energy*sin(position.theta)> 15)')
0172 )
0173
0174
0175 eleSC = cms.EDProducer('ConcreteEcalCandidateProducer',
0176 src = cms.InputTag('SCselector'),
0177 particleType = cms.string('gamma')
0178 )
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189 eleSelSeq = cms.Sequence( selectedECALElectrons + PassingVetoId +
0190 (SCselector*eleSC)
0191 )
0192
0193 muSelSeq = cms.Sequence( selectedECALMuons + selectedECALPhotons + PassingMuonVeryLooseId + PassingPhotonVeryLooseId + MuFilter + PhoFilter +
0194 (SCselector*eleSC)
0195 )
0196
0197
0198
0199
0200
0201 ZeeSelector = cms.EDProducer("CandViewShallowCloneCombiner",
0202 decay = cms.string("PassingVetoId PassingVetoId"),
0203 checkCharge = cms.bool(False),
0204 cut = cms.string("40 < mass < 140")
0205 )
0206
0207
0208
0209 MT="sqrt(2*daughter(0).pt*daughter(1).pt*(1 - cos(daughter(0).phi - daughter(1).phi)))"
0210 MET_CUT_MIN = 25.
0211 W_ELECTRON_ET_CUT_MIN = 30.0
0212 MT_CUT_MIN = 50.
0213
0214 WenuSelector = cms.EDProducer("CandViewShallowCloneCombiner",
0215 decay = cms.string("pfMet PassingVetoId"),
0216 checkCharge = cms.bool(False),
0217 cut = cms.string(("daughter(0).pt > %f && daughter(1).pt > %f && "+MT+" > %f") % (MET_CUT_MIN, W_ELECTRON_ET_CUT_MIN, MT_CUT_MIN))
0218 )
0219
0220
0221 EleSCSelector = cms.EDProducer("CandViewShallowCloneCombiner",
0222 decay = cms.string("PassingVetoId eleSC"),
0223 checkCharge = cms.bool(False),
0224 cut = cms.string("40 < mass < 140")
0225 )
0226
0227
0228 WZSelector = cms.EDProducer("CandViewMerger",
0229 src = cms.VInputTag("WenuSelector", "ZeeSelector", "EleSCSelector")
0230 )
0231
0232
0233
0234
0235 WenuFilter = cms.EDFilter("CandViewCountFilter",
0236 src = cms.InputTag("WenuSelector"),
0237 minNumber = cms.uint32(1)
0238 )
0239
0240 ZeeFilter = cms.EDFilter("CandViewCountFilter",
0241 src = cms.InputTag("ZeeSelector"),
0242 minNumber = cms.uint32(1)
0243 )
0244
0245 ZSCFilter = cms.EDFilter("CandViewCountFilter",
0246 src = cms.InputTag("EleSCSelector"),
0247 minNumber = cms.uint32(1)
0248 )
0249
0250
0251 WZFilter = cms.EDFilter("CandViewCountFilter",
0252 src = cms.InputTag("WZSelector"),
0253 minNumber = cms.uint32(1)
0254 )
0255
0256
0257
0258
0259
0260
0261
0262 preFilterSeq = cms.Sequence(MinEleNumberFilter)
0263
0264 selectorProducerSeq = cms.Sequence(eleSelSeq * (ZeeSelector + WenuSelector + EleSCSelector) * WZSelector)
0265
0266 ZeeSkimFilterSeq = cms.Sequence(preFilterSeq * selectorProducerSeq *
0267 ZeeFilter)
0268 ZSCSkimFilterSeq = cms.Sequence(preFilterSeq * selectorProducerSeq *
0269 ~ZeeFilter * ZSCFilter)
0270 WenuSkimFilterSeq = cms.Sequence(preFilterSeq * selectorProducerSeq *
0271 ~ZeeFilter * ~ZSCFilter * WenuFilter)
0272
0273
0274 checkMCZSeq = cms.Sequence(genEleFromZ * combZ * ZFilterMC)
0275 checkMCWSeq = cms.Sequence(genEleFromW * genNuFromW * combW * WFilterMC)
0276
0277