Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:16:10

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 ##################### Updated tau collection with MVA-based tau-Ids rerun #######
0004 # Used only in some eras
0005 from RecoTauTag.Configuration.loadRecoTauTagMVAsFromPrepDB_cfi import *
0006 from RecoTauTag.RecoTau.PATTauDiscriminationByMVAIsolationRun2_cff import *
0007 from RecoTauTag.RecoTau.TauDiscriminatorTools import noPrediscriminants
0008 
0009 ### MVAIso 2017v2
0010 ## DBoldDM
0011 # Raw
0012 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw = patDiscriminationByIsolationMVArun2v1raw.clone(
0013    PATTauProducer = cms.InputTag('slimmedTaus'),
0014    Prediscriminants = noPrediscriminants,
0015    loadMVAfromDB = cms.bool(True),
0016    mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT"), # name of the training you want to use
0017    mvaOpt = cms.string("DBoldDMwLTwGJ"), # option you want to use for your training (i.e., which variables are used to compute the BDT score)
0018    verbosity = cms.int32(0)
0019 )
0020 # WPs
0021 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT = patDiscriminationByIsolationMVArun2v1.clone(
0022    PATTauProducer = cms.InputTag('slimmedTaus'),
0023    Prediscriminants = noPrediscriminants,
0024    toMultiplex = cms.InputTag('patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw'),
0025    loadMVAfromDB = cms.bool(True),
0026    mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT_mvaOutput_normalization"), # normalization fo the training you want to use
0027    mapping = cms.VPSet(
0028       cms.PSet(
0029          category = cms.uint32(0),
0030          cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT"), # this is the name of the working point you want to use
0031          variable = cms.string("pt"),
0032       )
0033    ),
0034    workingPoints = cms.vstring(
0035       "_VVLoose",
0036       "_VLoose",
0037       "_Loose",
0038       "_Medium",
0039       "_Tight",
0040       "_VTight",
0041       "_VVTight"
0042    )
0043 )
0044 # MVAIso DBoldDM Seqeunce
0045 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTTask = cms.Task(
0046     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw,
0047     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT
0048 )
0049 ## DBnewDM
0050 # Raw
0051 patTauDiscriminationByIsolationMVArun2v1DBnewDMwLTraw = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw.clone(
0052    mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT"), # name of the training you want to use
0053    mvaOpt = cms.string("DBnewDMwLTwGJ") # option you want to use for your training (i.e., which variables are used to compute the BDT score)
0054 )
0055 # WPs
0056 patTauDiscriminationByIsolationMVArun2v1DBnewDMwLT = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT.clone(
0057    toMultiplex = cms.InputTag('patTauDiscriminationByIsolationMVArun2v1DBnewDMwLTraw'),
0058    mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT_mvaOutput_normalization"), # normalization fo the training you want to use
0059    mapping = cms.VPSet(
0060       cms.PSet(
0061          category = cms.uint32(0),
0062          cut = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT"), # this is the name of the working point you want to use
0063          variable = cms.string("pt"),
0064       )
0065    )
0066 )
0067 # MVAIso DBnewDM Seqeunce
0068 patTauDiscriminationByIsolationMVArun2v1DBnewDMwLTTask = cms.Task(
0069     patTauDiscriminationByIsolationMVArun2v1DBnewDMwLTraw,
0070     patTauDiscriminationByIsolationMVArun2v1DBnewDMwLT
0071 )
0072 ## DBoldDMdR0p3
0073 # Raw
0074 patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLTraw = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw.clone(
0075    mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMdR0p3wLT"), # name of the training you want to use
0076    mvaOpt = cms.string("DBoldDMwLTwGJ"), # option you want to use for your training (i.e., which variables are used to compute the BDT score)
0077    srcChargedIsoPtSum = cms.string('chargedIsoPtSumdR03'),
0078    srcFootprintCorrection = cms.string('footprintCorrectiondR03'),
0079    srcNeutralIsoPtSum = cms.string('neutralIsoPtSumdR03'),
0080    srcPUcorrPtSum = cms.string('puCorrPtSum'),
0081    srcPhotonPtSumOutsideSignalCone = cms.string('photonPtSumOutsideSignalConedR03')
0082 )
0083 # WPs
0084 patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLT = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT.clone(
0085    toMultiplex = cms.InputTag('patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLTraw'),
0086    mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMdR0p3wLT_mvaOutput_normalization"), # normalization fo the training you want to use
0087    mapping = cms.VPSet(
0088       cms.PSet(
0089          category = cms.uint32(0),
0090          cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMdR0p3wLT"), # this is the name of the working point you want to use
0091          variable = cms.string("pt"),
0092       )
0093    )
0094 )
0095 # MVAIso DBoldDMdR0p3 Seqeunce
0096 patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLTTask = cms.Task(
0097     patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLTraw,
0098     patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLT
0099 )
0100 ### MVAIso 2017v1 for Nano on top of MiniAODv1
0101 ## DBoldDM
0102 # Raw
0103 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2017v1 = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw.clone(
0104    mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1"), # name of the training you want to use
0105    mvaOpt = cms.string("DBoldDMwLTwGJ") # option you want to use for your training (i.e., which variables are used to compute the BDT score)
0106 )
0107 # WPs
0108 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2017v1 = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT.clone(
0109    toMultiplex = cms.InputTag('patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2017v1'),
0110    mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_mvaOutput_normalization"), # normalization fo the training you want to use
0111    mapping = cms.VPSet(
0112       cms.PSet(
0113          category = cms.uint32(0),
0114          cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1"), # this is the name of the working point you want to use
0115          variable = cms.string("pt"),
0116       )
0117    ),
0118    workingPoints = cms.vstring(
0119       "_WPEff95",
0120       "_WPEff90",
0121       "_WPEff80",
0122       "_WPEff70",
0123       "_WPEff60",
0124       "_WPEff50",
0125       "_WPEff40"
0126    )
0127 )
0128 # MVAIso DBoldDM Seqeunce
0129 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2017v1Task = cms.Task(
0130     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2017v1,
0131     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2017v1
0132 )
0133 ### MVAIso 2015 for Nano on top of MiniAODv2
0134 ## DBoldDM
0135 # Raw
0136 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2015 = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw.clone(
0137    mvaName = cms.string("RecoTauTag_tauIdMVADBoldDMwLTv1"), # name of the training you want to use
0138    mvaOpt = cms.string("DBoldDMwLT") # option you want to use for your training (i.e., which variables are used to compute the BDT score)
0139 )
0140 # WPs
0141 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2015 = patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT.clone(
0142    toMultiplex = cms.InputTag('patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2015'),
0143    mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVADBoldDMwLTv1_mvaOutput_normalization"), # normalization fo the training you want to use
0144    mapping = cms.VPSet(
0145       cms.PSet(
0146          category = cms.uint32(0),
0147          cut = cms.string("RecoTauTag_tauIdMVADBoldDMwLTv1"), # this is the name of the working point you want to use
0148          variable = cms.string("pt"),
0149       )
0150    ),
0151    workingPoints = cms.vstring(
0152       "_WPEff90",
0153       "_WPEff80",
0154       "_WPEff70",
0155       "_WPEff60",
0156       "_WPEff50",
0157       "_WPEff40"
0158    )
0159 )
0160 # MVAIso DBoldDM Seqeunce
0161 patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2015Task = cms.Task(
0162     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw2015,
0163     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2015
0164 )
0165 
0166 
0167 ### Define new anit-e discriminants (2018)
0168 antiElectronDiscrMVA6_version = "MVA"
0169 ## Raw
0170 from RecoTauTag.RecoTau.patTauDiscriminationAgainstElectronMVA6_cfi import patTauDiscriminationAgainstElectronMVA6
0171 patTauDiscriminationByElectronRejectionMVA62018Raw = patTauDiscriminationAgainstElectronMVA6.clone(
0172     PATTauProducer = 'slimmedTaus',
0173     Prediscriminants = noPrediscriminants, #already selected for MiniAOD
0174     srcElectrons = 'slimmedElectrons',
0175     vetoEcalCracks = False, #keep tau candidates in EB-EE cracks
0176     mvaName_NoEleMatch_wGwoGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_wGwoGSF_BL',
0177     mvaName_NoEleMatch_wGwoGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_wGwoGSF_EC',
0178     mvaName_NoEleMatch_woGwoGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_woGwoGSF_BL',
0179     mvaName_NoEleMatch_woGwoGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_woGwoGSF_EC',
0180     mvaName_wGwGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_wGwGSF_BL',
0181     mvaName_wGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_wGwGSF_EC',
0182     mvaName_woGwGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_woGwGSF_BL',
0183     mvaName_woGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_woGwGSF_EC'
0184 )
0185 ## anti-e 2018 WPs
0186 from RecoTauTag.RecoTau.PATTauDiscriminantCutMultiplexer_cfi import patTauDiscriminantCutMultiplexer
0187 # VLoose
0188 patTauDiscriminationByElectronRejectionMVA62018 = patTauDiscriminantCutMultiplexer.clone(
0189     PATTauProducer = patTauDiscriminationByElectronRejectionMVA62018Raw.PATTauProducer,
0190     Prediscriminants = patTauDiscriminationByElectronRejectionMVA62018Raw.Prediscriminants,
0191     toMultiplex = cms.InputTag("patTauDiscriminationByElectronRejectionMVA62018Raw"),
0192     mapping = cms.VPSet(
0193         cms.PSet(
0194             category = cms.uint32(0),
0195             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_woGwoGSF_BL'),
0196             variable = cms.string('pt')
0197         ),
0198         cms.PSet(
0199             category = cms.uint32(2),
0200             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_wGwoGSF_BL'),
0201             variable = cms.string('pt')
0202         ),
0203         cms.PSet(
0204             category = cms.uint32(5),
0205             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_woGwGSF_BL'),
0206             variable = cms.string('pt')
0207         ),
0208         cms.PSet(
0209             category = cms.uint32(7),
0210             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_wGwGSF_BL'),
0211             variable = cms.string('pt')
0212         ),
0213         cms.PSet(
0214             category = cms.uint32(8),
0215             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_woGwoGSF_EC'),
0216             variable = cms.string('pt')
0217         ),
0218         cms.PSet(
0219             category = cms.uint32(10),
0220             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_NoEleMatch_wGwoGSF_EC'),
0221             variable = cms.string('pt')
0222         ),
0223         cms.PSet(
0224             category = cms.uint32(13),
0225             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_woGwGSF_EC'),
0226             variable = cms.string('pt')
0227         ),
0228         cms.PSet(
0229             category = cms.uint32(15),
0230             cut = cms.string('RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_wGwGSF_EC'),
0231             variable = cms.string('pt')
0232         )
0233     ),
0234     rawValues = cms.vstring(
0235         "discriminator",
0236         "category"
0237     ),
0238     workingPoints = cms.vstring(
0239       "_VLoose",
0240       "_Loose",
0241       "_Medium",
0242       "_Tight",
0243       "_VTight"
0244     )
0245 )
0246 ### Define v1 anit-e discriminants (2015)
0247 antiElectronDiscrMVA6v1_version = "MVA6v1"
0248 ## Raw
0249 patTauDiscriminationByElectronRejectionMVA62015Raw = patTauDiscriminationAgainstElectronMVA6.clone(
0250     PATTauProducer = 'slimmedTaus',
0251     Prediscriminants = noPrediscriminants, #already selected for MiniAOD
0252     srcElectrons = 'slimmedElectrons',
0253     vetoEcalCracks = True, #don't keep tau candidates in EB-EE cracks for v1
0254     mvaName_NoEleMatch_wGwoGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_NoEleMatch_wGwoGSF_BL',
0255     mvaName_NoEleMatch_wGwoGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_NoEleMatch_wGwoGSF_EC',
0256     mvaName_NoEleMatch_woGwoGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_NoEleMatch_woGwoGSF_BL',
0257     mvaName_NoEleMatch_woGwoGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_NoEleMatch_woGwoGSF_EC',
0258     mvaName_wGwGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_wGwGSF_BL',
0259     mvaName_wGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_wGwGSF_EC',
0260     mvaName_woGwGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_woGwGSF_BL',
0261     mvaName_woGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6v1_version+'_gbr_woGwGSF_EC'
0262 )
0263 ## anti-e v1 WPs
0264 patTauDiscriminationByElectronRejectionMVA62015 = patTauDiscriminationByElectronRejectionMVA62018.clone(
0265     PATTauProducer = patTauDiscriminationByElectronRejectionMVA62015Raw.PATTauProducer,
0266     Prediscriminants = patTauDiscriminationByElectronRejectionMVA62015Raw.Prediscriminants,
0267     toMultiplex = cms.InputTag("patTauDiscriminationByElectronRejectionMVA62015Raw"),
0268     rawValues = cms.vstring(
0269         "discriminator",
0270         "category"
0271     ),
0272     workingPoints = cms.vstring(
0273       "_WPEff99",
0274       "_WPEff96",
0275       "_WPEff91",
0276       "_WPEff85",
0277       "_WPEff79"
0278     )
0279 )
0280 for m in patTauDiscriminationByElectronRejectionMVA62015.mapping:
0281     m.cut = m.cut.value().replace(antiElectronDiscrMVA6_version, antiElectronDiscrMVA6v1_version + "_gbr")
0282 
0283 patTauDiscriminationByElectronRejectionTask = cms.Task(
0284     patTauDiscriminationByElectronRejectionMVA62015Raw,
0285     patTauDiscriminationByElectronRejectionMVA62015
0286 )
0287 
0288 
0289 ### put all new MVA tau-Id stuff to one Sequence
0290 patTauMVAIDsTask = cms.Task(
0291     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLTTask,
0292     patTauDiscriminationByIsolationMVArun2v1DBnewDMwLTTask,
0293     patTauDiscriminationByIsolationMVArun2v1DBoldDMdR0p3wLTTask,
0294     patTauDiscriminationByElectronRejectionTask,
0295     patTauDiscriminationByIsolationMVArun2v1DBoldDMwLT2015Task
0296 )
0297 
0298 slimmedTausUpdated = cms.EDProducer("PATTauIDEmbedder",
0299     src = cms.InputTag('slimmedTaus'),
0300     tauIDSources = cms.PSet() # PSet defined below in era dependent way
0301 )
0302 
0303 patTauMVAIDsTask.add(slimmedTausUpdated)