41 |
|
self.eleID = 'mvaTrigV0' |
42 |
|
self.minEleID = 0. |
43 |
|
self.isoEA = 'elPFIsoValueEA03' |
44 |
< |
self.doElectronEA = True |
45 |
< |
self.dBFactorEl = -1.0 if self.doElectronEA else -0.5 |
44 |
> |
self.dBFactorEl = -1.0 if options.doElectronEA else -0.5 |
45 |
|
self.dBFactorMu = -0.5 |
46 |
|
self.cuts = {'el': ['abs(eta)<2.5', |
47 |
|
'pt>20.', |
48 |
|
'gsfTrackRef.isNonnull', |
49 |
|
'gsfTrackRef.trackerExpectedHitsInner.numberOfLostHits<2', |
50 |
< |
'(chargedHadronIso+max(0.,neutralHadronIso+photonIso%+.1f*%s))/pt < %.2f'%(self.dBFactorEl, 'userIsolation("User1Iso")' if self.doElectronEA else 'puChargedHadronIso',self.isoValues['el']), |
50 |
> |
'(chargedHadronIso+max(0.,neutralHadronIso+photonIso%+.1f*%s))/pt < %.2f'%(self.dBFactorEl, 'userIsolation("User1Iso")' if options.doElectronEA else 'puChargedHadronIso',self.isoValues['el']), |
51 |
|
'electronID("%s") > %.2f'%(self.eleID,self.minEleID), |
52 |
|
], |
53 |
|
'mu' :['abs(eta)<2.5', |
54 |
|
'pt>10.', |
55 |
< |
'(chargedHadronIso+neutralHadronIso+photonIso%+.2f*puChargedHadronIso)/pt < %.2f'%(self.dBFactorMu, self.isoValues['mu']), |
55 |
> |
'(chargedHadronIso+max(0.,neutralHadronIso+photonIso%+.2f*puChargedHadronIso))/pt < %.2f'%(self.dBFactorMu, self.isoValues['mu']), |
56 |
|
'(isPFMuon && (isGlobalMuon || isTrackerMuon) )', |
57 |
|
], |
58 |
< |
'jet' : ['abs(eta)<2.5', # Careful! these jet cuts affect the typeI met corrections |
58 |
> |
'jet' : ['abs(eta)<2.5', |
59 |
|
'pt > 15.', |
60 |
|
# PF jet ID: |
61 |
|
'numberOfDaughters > 1', |
114 |
|
setattr(self.process, idName, id ) |
115 |
|
self.patSeq.replace( sel, id*sel*isoEA) |
116 |
|
sel.src = idName |
117 |
+ |
isoEA.pfElectrons = 'pfSelectedElectrons'+self.fix |
118 |
|
if not iso3 : isoEA.EffectiveAreaType = "kEleGammaAndNeutralHadronIso04" |
119 |
|
self.show(idName) |
120 |
|
|
132 |
|
val.pfPhotons = tags( lep+'PFIsoValueGamma03' + pf ) |
133 |
|
val.pfChargedHadrons = tags( lep+'PFIsoValueCharged03' + pf ) |
134 |
|
|
135 |
< |
if lep == 'el' and self.doElectronEA : |
135 |
> |
if lep == 'el' and self.options.doElectronEA : |
136 |
|
self.attr( 'pfIsolated' + full).deltaBetaIsolationValueMap = self.isoEA |
137 |
|
|
138 |
|
self.show('pfSelected'+full) |
158 |
|
return |
159 |
|
|
160 |
|
def configPatJets(self) : |
161 |
+ |
sel = self.attr('selectedPatJets'+self.fix) |
162 |
+ |
self.process.selectedPatJetsForAnalysis = sel.clone( cut = ' && '.join(self.cuts['jet'])) |
163 |
+ |
self.patSeq.replace(sel,sel+self.process.selectedPatJetsForAnalysis) |
164 |
|
for mod,attr,val in [('patJets','discriminatorSources',[tags(tag+'BJetTagsAOD'+self.fix) for tag in self.btags]), |
165 |
|
('patJets','tagInfoSources',[tags(tag+'TagInfosAOD'+self.fix) for tag in self.taginfos]), |
166 |
|
('patJets','addTagInfos',True), |
167 |
< |
('selectedPatJets','cut', ' && '.join(self.cuts['jet'])), |
167 |
> |
('selectedPatJets','cut', ' pt > 10'), |
168 |
|
] : setattr( self.attr(mod+self.fix), attr, val ) |
169 |
|
self.show('selectedPatJets'+self.fix) |
170 |
+ |
self.show('selectedPatJetsForAnalysis') |
171 |
|
return |
172 |
|
|
173 |
|
def configLeptonFilter(self) : |
194 |
|
|
195 |
|
def removeCruft(self) : |
196 |
|
nothanks = [mod for mod in set(str(self.patSeq).split('+')) |
197 |
< |
if ( any( keyword in mod for keyword in ['count','Legacy','pfJetsPiZeros','ak7','soft','iterativeCone', |
197 |
> |
if ( any( keyword in mod for keyword in ['count','Legacy','pfJetsPiZeros','ak7','soft','iterativeCone','pfNoJet', |
198 |
|
'tauIsoDeposit','tauGenJet','hpsPFTau','tauMatch','pfTau','hpsSelection', |
199 |
|
'photonMatch','phPFIso','pfIsolatedPhotons','pfCandsNotInJet','pfCandMETcorr', |
200 |
|
'Negative','ToVertex','particleFlowDisplacedVertex', |