def build_config(self, nickname, *args, **kwargs): #Maybe change this the arguments to process/year and DATA/MC #Change this json config files as well? """ if hasattr(self, "include") == False: self["include"] = [] self["include"] += ["$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseElectronID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseMuonID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsElectronID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMuonID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJEC.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJECUncertaintySplit.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJetID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsBTaggedJetID.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsSvfit.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMinimalPlotlevelFilter_tt.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Includes/settingsMVATestMethods.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauES.json", #Done "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2CPStudies/Includes/settingsTauPolarisationMva.json"] #Done """ ElectronID_config = sEID.Electron_ID(nickname) ElectronID_config.looseElectron_ID(nickname) #append the config for loose electron ID because it is used self.update(ElectronID_config) MuonID_config = sMID.Muon_ID(nickname) MuonID_config.looseMuon_ID(nickname) #append the config for loose Muon ID because it is used self.update(MuonID_config) TauID_config = sTID.Tau_ID(nickname) #here loose is not appended since loose tau ID is not used self.update(TauID_config) JEC_config = sJEC.JEC(nickname) #Is allready in baseconfig, for now leave it in; possibly remove it self.update(JEC_config) JECUncertaintySplit_config = sJECUS.JECUncertaintySplit(nickname) self.update(JECUncertaintySplit_config) JetID_config = sJID.Jet_ID(nickname) self.update(JetID_config) BTaggedJet_config = sBTJID.BTaggedJet_ID(nickname) self.update(BTaggedJet_config) Svfit_config = sSvfit.Svfit(nickname) self.update(Svfit_config) MinimalPlotlevelFilter_config = sMPlF.MinimalPlotlevelFilter() MinimalPlotlevelFilter_config.tt() self.update(MinimalPlotlevelFilter_config) MVATestMethods_config = sMVATM.MVATestMethods() self.update(MVATestMethods_config) TauES_config = sTES.TauES(nickname) self.update(TauES_config) TauPolarisationMva_config = sTPMVA.TauPolarisationMva() self.update(TauPolarisationMva_config) self["TauPolarisationTmvaWeights"] = ["/afs/cern.ch/user/m/mfackeld/public/weights_tmva/training.weights.xml", "/afs/cern.ch/user/m/mfackeld/public/weights_sklearn/training_tt.weights.xml"] self["Channel"] = "TT" self["MinNTaus"] = 2 self["TauID"] = "TauIDRecommendation13TeV" self["TauUseOldDMs"] = True self["TauLowerPtCuts"] = ["40.0"] #in json with default self["TauUpperAbsEtaCuts"] = ["2.1"] #in json with default self["DiTauPairMinDeltaRCut"] = 0.5 self["DiTauPairIsTauIsoMVA"] = True self["EventWeight"] = "eventWeight" self["RooWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["TauTauTriggerWeightWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["TauTauTriggerWeightWorkspaceWeightNames"] = ["0:triggerWeight", "1:triggerWeight"] self["TauTauTriggerWeightWorkspaceObjectNames"] = ["0:t_genuine_TightIso_tt_ratio,t_fake_TightIso_tt_ratio", "1:t_genuine_TightIso_tt_ratio,t_fake_TightIso_tt_ratio"] self["TauTauTriggerWeightWorkspaceObjectArguments"] = ["0:t_pt,t_dm","1:t_pt,t_dm"] self["EleTauFakeRateWeightFile"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/antiElectronDiscrMVA6FakeRateWeights.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/antiElectronDiscrMVA6FakeRateWeights.root" ] if re.search("Run2016|Spring16|Summer16", nickname): #settings for jetstotaufakesproducer self["FakeFaktorFile"] = "root://grid-vo-cms.physik.rwth-aachen.de:1094//store/user/jdegens/higgs-kit/ff/2016/tt/fakeFactors_tt_inclusive.root" self["FakeFactorMethod"] = "cp2016" self["FakeFactorRooWorkspaceFunction"] = [ "w_fracs_1:w_tt_fracs_1", "qcd_fracs_1:qcd_tt_fracs_1", "ttbar_fracs_1:ttbar_tt_fracs_1", "dy_fracs_1:dy_tt_fracs_1", "w_fracs_2:w_tt_fracs_2", "qcd_fracs_2:qcd_tt_fracs_2", "ttbar_fracs_2:ttbar_tt_fracs_2", "dy_fracs_2:dy_tt_fracs_2" ] self["FakeFactorFractionsRooWorkspaceFile"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/fakeFactorWeights/rooworkspacefractions/ff_fracs_new_2016.root" self["TauTauRestFrameReco"] = "collinear_approximation" self["TriggerObjectLowerPtCut"] = 28.0 self["InvalidateNonMatchingElectrons"] = False self["InvalidateNonMatchingMuons"] = False self["InvalidateNonMatchingTaus"] = True self["InvalidateNonMatchingJets"] = False self["UseUWGenMatching"] = "true" #TODO change this to boolean? or change the rest to string? self["DirectIso"] = True self["TopPtReweightingStrategy"] = "Run2" #FIXME this looks more right self["OSChargeLeptons"] = True self["SvfitKappaParameter"] = 5.0 self["AddGenMatchedTaus"] = True self["AddGenMatchedTauJets"] = True self["BranchGenMatchedTaus"] = True self["Consumers"] = ["KappaLambdaNtupleConsumer", "cutflow_histogram", "SvfitCacheConsumer"]#, #"CutFlowTreeConsumer", #"KappaTausConsumer", #"KappaTaggedJetsConsumer", #"RunTimeConsumer", #"PrintEventsConsumer", #"PrintGenParticleDecayTreeConsumer"] if re.search("Embedding", nickname): self["NoHltFiltering"]= True self["DiTauPairNoHLT"]= True else: self["NoHltFiltering"]=False self["DiTauPairNoHLT"]= False #set it here and if it is something else then change it in the ifs below self["HltPaths"] = ["HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg", "HLT_DoubleMediumCombinedIsoPFTau35_Trk1_eta2p1_Reg"] self["TauTriggerFilterNames"] = [ "HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v:hltDoublePFTau35TrackPt1MediumIsolationDz02Reg", #here are : in string "HLT_DoubleMediumCombinedIsoPFTau35_Trk1_eta2p1_Reg_v:hltDoublePFTau35TrackPt1MediumCombinedIsolationDz02Reg" ] if "Run2016" in nickname and not "Run2016H" in nickname: self["HltPaths"] = ["HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg"] self["TauTriggerFilterNames"]=["HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v:hltDoublePFTau35TrackPt1MediumIsolationDz02Reg"] elif "Run2016H" in nickname: self["HltPaths"] = ["HLT_DoubleMediumCombinedIsoPFTau35_Trk1_eta2p1_Reg"] self["TauTriggerFilterNames"] = ["HLT_DoubleMediumCombinedIsoPFTau35_Trk1_eta2p1_Reg_v:hltDoublePFTau35TrackPt1MediumCombinedIsolationDz02Reg"] elif "Fall15MiniAODv2" in nickname or "Run2015D" in nickname or "Embedding2015" in nickname: self["HltPaths"] = ["HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg"] self["TauTriggerFilterNames"] = ["HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v:hltDoublePFTau35TrackPt1MediumIsolationDz02Reg"] elif "Embedding2016" in nickname or "EmbeddingMC" in nickname: #TODO Ask thomas what it should be line 40 in json self["HltPaths"] = [""] #Quantities, this looks for tt em mt et very similar, check if it is the same and if so put it in baseconfig for all channels quantities_dict = quantities.quantities() quantities_dict.build_quantities(nickname, channel = self["Channel"]) #put rest of quantities in CPQuantities.py? quantities_dict["Quantities"] += [ "nLooseElectrons", "nLooseMuons", "nDiTauPairCandidates", "nAllDiTauPairCandidates" ] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): quantities_dict["Quantities"] += quantities_dict.genMatchedCPQuantities() elif re.search("Embedding2016", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] self.update(copy.deepcopy(quantities_dict)) #Producers and filters, TODO filter everything which is the same and use this as the startint list, then just add the other variables per sample self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", ################## special for each channel in et mt tt em. "producer:ValidTausProducer", "filter:ValidTausFilter", "producer:TauTriggerMatchingProducer", "filter:MinTausCountFilter", "producer:ValidElectronsProducer", "producer:ValidMuonsProducer", "producer:ValidTTPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", ################## "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", ] if re.search("(Spring16|Summer16|Run2016)", nickname): self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] self["Processors"] += ["producer:TaggedJetUncertaintyShiftProducer"] if re.search("Run2016", nickname): #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:JetToTauFakesProducer"] #TODO check if only needed in data #self["Processors"] += ["producer:TauPolarisationTmvaReader"] else: self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += ["producer:TauTauTriggerWeightProducer"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += [ "producer:SimpleEleTauFakeRateWeightProducer", "producer:SimpleMuTauFakeRateWeightProducer" ] if re.search("(LFV).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:ZPtReweightProducer" #"filter:MinimalPlotlevelFilter" ] self["Processors"] += ["producer:GenMatchedTauCPProducer"] else: self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16))", nickname): self["Processors"] += ["producer:JetToTauFakesProducer"] #TODO also needed for mc to - self["Processors"] += ["producer:ZPtReweightProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:TopPtReweightingProducer" ] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] #self["Processors"] += ["producer:MadGraphReweightingProducer"] else: self["Processors"] += ["producer:JetToTauFakesProducer"] #TODO Also needed for MC to - self["Processors"] += [ "producer:TopPtReweightingProducer"] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(Fall15|Run2015)", nickname): #self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:MvaMetSelector"] if re.search("Run2015", nickname): #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:SvfitProducer"] #self["Processors"] += ["producer:SvfitM91Producer"] #self["Processors"] += ["producer:SvfitM125Producer"] #self["Processors"] += ["producer:MELAProducer"] #self["Processors"] += ["producer:MELAM125Producer"] else: self["Processors"] += ["producer:MvaMetCorrector"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += [ "producer:EleTauFakeRateWeightProducer" ] if re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=Fall15)",nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] elif re.search("^((?!(DY.?JetsToLL|HToTauTau|H2JetsToTauTau|Higgs)).)*Fall15", nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:EventWeightProducer"] self["Processors"] = list(set(self["Processors"])) processorOrderingkey = processorOrdering.processors_ordered(channel = self["Channel"]) ordered_processors = processorOrderingkey.order_processors(self["Processors"]) self["Processors"] = copy.deepcopy(ordered_processors)
def build_config(self, nickname, *args, **kwargs): #Maybe change this the arguments to process/year and DATA/MC """ "include" : [ "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsVetoMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJEC.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJECUncertaintySplit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsBTaggedJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsSvfit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMinimalPlotlevelFilter_mt.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Includes/settingsMVATestMethods.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauES.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2CPStudies/Includes/settingsTauPolarisationMva.json" ], """ datasetsHelper = datasetsHelperTwopz.datasetsHelperTwopz(os.path.expandvars("$CMSSW_BASE/src/Kappa/Skimming/data/datasets.json")) # define frequently used conditions isEmbedded = datasetsHelper.isEmbedded(nickname) isData = datasetsHelper.isData(nickname) and (not isEmbedded) ElectronID_config = sEID.Electron_ID(nickname) ElectronID_config.looseElectron_ID(nickname) #append the config for loose electron ID because it is used self.update(ElectronID_config) MuonID_config = sMID.Muon_ID(nickname) MuonID_config.looseMuon_ID(nickname) #append the config for loose Muon ID because it is used MuonID_config.vetoMuon_ID(nickname) self.update(MuonID_config) TauID_config = sTID.Tau_ID(nickname) #here loose is not appended since loose tau ID is not used self.update(TauID_config) JEC_config = sJEC.JEC(nickname) #Is allready in baseconfig, for now leave it in; possibly remove it self.update(JEC_config) JECUncertaintySplit_config = sJECUS.JECUncertaintySplit(nickname) self.update(JECUncertaintySplit_config) JetID_config = sJID.Jet_ID(nickname) self.update(JetID_config) BTaggedJet_config = sBTJID.BTaggedJet_ID(nickname) self.update(BTaggedJet_config) Svfit_config = sSvfit.Svfit(nickname) self.update(Svfit_config) MinimalPlotlevelFilter_config = sMPlF.MinimalPlotlevelFilter() MinimalPlotlevelFilter_config.mt() self.update(MinimalPlotlevelFilter_config) MVATestMethods_config = sMVATM.MVATestMethods() self.update(MVATestMethods_config) TauES_config = sTES.TauES(nickname) self.update(TauES_config) TauPolarisationMva_config = sTPMVA.TauPolarisationMva() self.update(TauPolarisationMva_config) self["TauPolarisationTmvaWeights"] = [ "/afs/cern.ch/user/m/mfackeld/public/weights_tmva/training.weights.xml", "/afs/cern.ch/user/m/mfackeld/public/weights_sklearn/training_mt.weights.xml" ] self["Channel"] = "MT" self["MinNMuons"] = 1 self["MinNTaus"] = 1 self["HltPaths_comment"] = "The first path must be the single lepton trigger. A corresponding Pt cut is implemented in the Run2DecayChannelProducer." if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["HltPaths"] = ["HLT_IsoMu18"] self["NoHltFiltering"] = False self["DiTauPairNoHLT"] = False elif re.search("Run2016|Spring16|Summer16|Embedding(2016|MC)", nickname): self["HltPaths"] = [ "HLT_IsoMu22", "HLT_IsoTkMu22", "HLT_IsoMu22_eta2p1", "HLT_IsoTkMu22_eta2p1", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1" ] self["NoHltFiltering"] = True if isEmbedded else False self["DiTauPairNoHLT"] = False # elif re.search("Embedding(2016|MC)", nickname): # self["HltPaths"] = [] # self["NoHltFiltering"] = True # self["DiTauPairNoHLT"] = True self["TauID"] = "TauIDRecommendation13TeV" self["TauUseOldDMs"] = True if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["MuonLowerPtCuts"] = ["19.0"] else: self["MuonLowerPtCuts"] = ["20.0"] self["MuonUpperAbsEtaCuts"] = ["2.1"] self["TauLowerPtCuts"] = ["20.0"] self["TauUpperAbsEtaCuts"] = ["2.3"] self["TriggerObjectLowerPtCut"] = -1.0 self["DiTauPairMinDeltaRCut"] = 0.5 self["DiTauPairIsTauIsoMVA"] = True if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_IsoMu18_v:19.0" ] self["DiTauPairHltPathsWithoutCommonMatchRequired"] = [ "HLT_IsoMu18_v" ] elif re.search("Run2016|Spring16|Summer16|Embedding(2016|MC)", nickname): self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_IsoMu24_v:25.0", "HLT_IsoTkMu24_v:25.0" ] self["DiTauPairHltPathsWithoutCommonMatchRequired"] = [ "HLT_IsoMu22_v", "HLT_IsoTkMu22_v", "HLT_IsoMu22_eta2p1_v", "HLT_IsoTkMu22_eta2p1_v", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v" ] else: #I believe "Run2016|Spring16|Summer16|Embedding(2016|MC)" is everything else but for safety i did it here, 2017 not included yet self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_IsoMu24_v:25.0", "HLT_IsoTkMu24_v:25.0" ] if re.search("Run2016|Spring16|Summer16|Embedding(2016|MC)", nickname): self["DiTauPairHLTLast"] = True self["HLTBranchNames"] = [ "trg_singlemuon:HLT_IsoMu22_v", "trg_singlemuon:HLT_IsoTkMu22_v", "trg_singlemuon:HLT_IsoMu22_eta2p1_v", "trg_singlemuon:HLT_IsoTkMu22_eta2p1_v", "trg_mutaucross:HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v", "trg_mutaucross:HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v" ] self["MuonTriggerFilterNames"] = [ "HLT_IsoMu22_v:hltL3crIsoL1sMu20L1f0L2f10QL3f22QL3trkIsoFiltered0p09", "HLT_IsoTkMu22_v:hltL3fL1sMu20L1f0Tkf22QL3trkIsoFiltered0p09", "HLT_IsoMu22_eta2p1_v:hltL3crIsoL1sSingleMu20erL1f0L2f10QL3f22QL3trkIsoFiltered0p09", "HLT_IsoTkMu22_eta2p1_v:hltL3fL1sMu20erL1f0Tkf22QL3trkIsoFiltered0p09", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v:hltL3crIsoL1sMu18erTauJet20erL1f0L2f10QL3f19QL3trkIsoFiltered0p09", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v:hltOverlapFilterIsoMu19LooseIsoPFTau20", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v:hltL3crIsoL1sSingleMu18erIorSingleMu20erL1f0L2f10QL3f19QL3trkIsoFiltered0p09", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v:hltOverlapFilterSingleIsoMu19LooseIsoPFTau20" ] self["TauTriggerFilterNames"] = [ "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v:hltL1sMu18erTau20er", #"HLT_IsoMu19_eta2p1_LooseIsoPFTau20_v:hltOverlapFilterIsoMu19LooseIsoPFTau20", "HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v:hltL1sSingleMu18erIorSingleMu20er", #"HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v:hltPFTau20TrackLooseIsoAgainstMuon", #"HLT_IsoMu19_eta2p1_LooseIsoPFTau20_SingleL1_v:hltOverlapFilterSingleIsoMu19LooseIsoPFTau20" ] elif re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["MuonTriggerFilterNames"] = [ "HLT_IsoMu18_v:hltL3crIsoL1sMu16L1f0L2f10QL3f18QL3trkIsoFiltered0p09" ] self["DiTauPairHLTLast"] = False else: self["DiTauPairHLTLast"] = False self["EventWeight"] = "eventWeight" self["SaveRooWorkspaceTriggerWeightAsOptionalOnly"] = "true" if isEmbedded: self["EmbeddingWeightWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_v16_11_embedded.root" self["EmbeddingWeightWorkspaceWeightNames"] = [ "0:triggerWeight_doublemu", "0:isoweight", "0:idweight", "0:triggerWeight_singleMu", "1:MuTau_TauLeg_EmbeddedEfficiencyWeight", "1:MuTau_TauLeg_DataEfficiencyWeight" ] self["EmbeddingWeightWorkspaceObjectNames"] = [ "0:m_sel_trg_ratio", "0:m_iso_ratio", "0:m_id_ratio", "0:m_trg_ratio", "1:t_TightIso_mt_emb", "1:t_genuine_TightIso_mt_data,t_fake_TightIso_mt_data" ] self["EmbeddingWeightWorkspaceObjectArguments"] = [ "0:gt1_pt,gt1_eta,gt2_pt,gt2_eta", "0:m_pt,m_eta", "0:m_pt,m_eta", "0:m_pt,m_eta", "1:t_pt,t_eta", "1:t_pt,t_eta" ] else: self["RooWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["RooWorkspaceWeightNames"] = [ "0:triggerWeight_singleMu", "0:idIsoWeight" ] self["RooWorkspaceObjectNames"] = [ "0:m_trgMu22OR_eta2p1_desy_ratio", "0:m_idiso0p15_desy_ratio" ] self["RooWorkspaceObjectArguments"] = [ "0:m_pt,m_eta", "0:m_pt,m_eta" ] self["SaveMuTauTriggerWeightAsOptionalOnly"] = "true" self["MuTauTriggerWeightWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["MuTauTriggerWeightWorkspaceWeightNames"] = [ "0:triggerWeight_muTauCross", "1:triggerWeight_muTauCross" ] self["MuTauTriggerWeightWorkspaceObjectNames"] = [ "0:m_trgMu19leg_eta2p1_desy_ratio", "1:t_genuine_TightIso_mt_ratio,t_fake_TightIso_mt_ratio" ] self["MuTauTriggerWeightWorkspaceObjectArguments"] = [ "0:m_pt,m_eta", "1:t_pt,t_eta" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["TriggerEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_IsoMu18_fall15.root"] self["TriggerEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_IsoMu18_fall15.root"] self["IdentificationEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2015_Muon_IdIso0p1_fall15.root"] self["IdentificationEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso0p1_fall15.root"] else: self["TriggerEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Muon_Mu22OR_eta2p1_eff.root"] self["TriggerEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu22OR_eta2p1_eff.root"] self["IdentificationEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root"] self["IdentificationEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root"] self["TriggerEfficiencyMode"] = "multiply_weights" self["IdentificationEfficiencyMode"] = "multiply_weights" self["EleTauFakeRateWeightFile"] = [ "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/antiElectronDiscrMVA6FakeRateWeights.root" ] self["TauTauRestFrameReco"] = "collinear_approximation" self["InvalidateNonMatchingElectrons"] = False self["InvalidateNonMatchingMuons"] = True self["InvalidateNonMatchingTaus"] = True self["InvalidateNonMatchingJets"] = False self["UseUWGenMatching"] = "true" self["DirectIso"] = True self["OSChargeLeptons"] = True self["SvfitKappaParameter"] = 4.0 self["AddGenMatchedParticles"] = True self["AddGenMatchedTaus"] = True self["AddGenMatchedTauJets"] = True self["BranchGenMatchedMuons"] = True self["BranchGenMatchedTaus"] = True if re.search("Run2016|Spring16|Summer16|Embedding2016", nickname): #settings for jetstotaufakesproducer self["FakeFaktorFile"] = "root://grid-vo-cms.physik.rwth-aachen.de:1094//store/user/jdegens/higgs-kit/ff/2016/mt/fakeFactors_20180831_tight.root" self["FakeFactorMethod"] = "cp2016" self["FakeFactorRooWorkspaceFunction"] = [ "w_fracs:w_mt_fracs", "qcd_fracs:qcd_mt_fracs", "ttbar_fracs:ttbar_mt_fracs" ] self["FakeFactorFractionsRooWorkspaceFile"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/fakeFactorWeights/rooworkspacefractions/ff_fracs_new_2016.root" self["Consumers"] = [ "KappaLambdaNtupleConsumer", "cutflow_histogram", "SvfitCacheConsumer", "#CutFlowTreeConsumer", "#KappaMuonsConsumer", "#KappaTausConsumer", "#KappaTaggedJetsConsumer", "#RunTimeConsumer", "#PrintEventsConsumer", "#PrintGenParticleDecayTreeConsumer" ] quantities_dict = quantities.quantities() quantities_dict.build_quantities(nickname, channel = self["Channel"]) quantities_dict["Quantities"] += [ "nVetoMuons", "nLooseElectrons", "nLooseMuons", "nDiTauPairCandidates", "nAllDiTauPairCandidates" ] #Check if they are used everywhere if so make this the start list #put rest of quantities in CPQuantities.py? if re.search("(DY.?JetsTo(LL|TauTau)).*(?=(Spring16|Summer16))", nickname): #the same as tt # quantities_dict["Quantities"] += quantities_dict.lheWeightsDYQuantities() quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", "trg_singlemuon", "trg_mutaucross", "triggerWeight_singleMu_1", "triggerWeight_muTauCross_1", "triggerWeight_muTauCross_2" ] elif re.search("(DY.?JetsTo(LL|TauTau)).*(?=Fall15)", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += [ "trg_singlemuon", "trg_mutaucross", "triggerWeight_singleMu_1", "triggerWeight_muTauCross_1", "triggerWeight_muTauCross_2" ] #commented out: "#tauPolarisationTMVA", "#tauPolarisationSKLEARN", elif re.search("Embedding2016", nickname): quantities_dict["Quantities"] += quantities_dict.genQuantities() quantities_dict["Quantities"] += [ "trg_singlemuon", "triggerWeight_doublemu_1", "isoweight_1", "idweight_1", "triggerWeight_singleMu_1", "trg_mutaucross", "triggerWeight_muTauCross_2", "MuTau_TauLeg_EmbeddedEfficiencyWeight_2", "MuTau_TauLeg_DataEfficiencyWeight_2" ] elif re.search("(LFV).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += [ "triggerWeight_singleMu_1", "triggerWeight_muTauCross_1", "triggerWeight_muTauCross_2", "jetCorrectionWeight" ] elif re.search("Run2016", nickname): quantities_dict["Quantities"] += [ "trg_singlemuon", "trg_mutaucross", "triggerWeight_singleMu_1", "triggerWeight_muTauCross_1", "triggerWeight_muTauCross_2" ] elif re.search("Run2015", nickname): pass elif re.search("^((?!(DY.?JetsTo(LL|TauTau)|HToTauTau|H2JetsToTauTau|Higgs)).)*Fall15", nickname): pass elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=Fall15)", nickname): pass else: quantities_dict["Quantities"] += [ "trg_singlemuon", "trg_mutaucross", "triggerWeight_singleMu_1", "triggerWeight_muTauCross_1", "triggerWeight_muTauCross_2" ] self.update(copy.deepcopy(quantities_dict)) self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", ################## special for each channel in et mt tt em. "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "filter:ValidTausFilter", "producer:TauTriggerMatchingProducer", "filter:MinTausCountFilter", "producer:ValidMTPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidVetoMuonsProducer", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", ################## "producer:Run2DecayChannelProducer", "producer:DiVetoMuonVetoProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", ] if re.search("(Spring16|Summer16|Run2016|Embedding2016)", nickname): self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] self["Processors"] += ["producer:TaggedJetUncertaintyShiftProducer"] if re.search("(Run2016|Embedding2016)", nickname): self["Processors"] += ["producer:JetToTauFakesProducer"] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] #self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] # self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] # self["Processors"] += ["producer:MELAM125Producer"] if re.search("Embedding2016", nickname): self["Processors"] += ["producer:RooWorkspaceWeightProducer"] #do this properly after checking self["Processors"] += ["producer:EmbeddingWeightProducer"] self["Processors"] += ["producer:MuTauTriggerWeightProducer"] self["Processors"] += ["producer:TauCorrectionsProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] else: self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += ["producer:RooWorkspaceWeightProducer"] self["Processors"] += ["producer:MuTauTriggerWeightProducer"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += [ "producer:SimpleEleTauFakeRateWeightProducer", "producer:SimpleMuTauFakeRateWeightProducer" ] if re.search("(LFV).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:ZPtReweightProducer" #"filter:MinimalPlotlevelFilter" ] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:LFVJetCorrection2016Producer"] else: self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] # self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] # self["Processors"] += ["producer:MELAM125Producer"] if re.search("(DY.?JetsTo(LL|TauTau)).*(?=(Spring16|Summer16))", nickname): self["Processors"] += ["producer:JetToTauFakesProducer"] self["Processors"] += ["producer:ZPtReweightProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:TopPtReweightingProducer" ] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] # I put this on in to create the same config as json but i dont think it is needed #self["Processors"] += ["producer:TauPolarisationTmvaReader"] #self["Processors"] += ["producer:MadGraphReweightingProducer"] else: self["Processors"] += ["producer:JetToTauFakesProducer"] self["Processors"] += [ "producer:TopPtReweightingProducer"] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(Fall15|Run2015)", nickname): #self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:MvaMetSelector"] if re.search("Run2015", nickname): #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:SvfitProducer"] #self["Processors"] += ["producer:SvfitM91Producer"] #self["Processors"] += ["producer:SvfitM125Producer"] #self["Processors"] += ["producer:MELAProducer"] #self["Processors"] += ["producer:MELAM125Producer"] else: self["Processors"] += ["producer:MvaMetCorrector"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += ["producer:TriggerWeightProducer", "producer:IdentificationWeightProducer", "producer:EleTauFakeRateWeightProducer" ] if re.search("(DY.?JetsTo(LL|TauTau)).*(?=Fall15)", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=Fall15)",nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] # self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] # self["Processors"] += ["producer:MELAM125Producer"] elif re.search("^((?!(DY.?JetsTo(LL|TauTau)|HToTauTau|H2JetsToTauTau|Higgs)).)*Fall15", nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] # self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] # self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:EventWeightProducer"] self["Processors"] = list(set(self["Processors"])) processorOrderingkey = processorOrdering.processors_ordered(channel = self["Channel"]) ordered_processors = processorOrderingkey.order_processors(self["Processors"]) self["Processors"] = copy.deepcopy(ordered_processors)
def build_config( self, nickname, *args, **kwargs ): #Maybe change this the arguments to process/year and DATA/MC ElectronID_config = sEID.Electron_ID(nickname) ElectronID_config.looseElectron_ID( nickname ) #append the config for loose electron ID because it is used self.update(ElectronID_config) MuonID_config = sMID.Muon_ID(nickname) MuonID_config.looseMuon_ID( nickname) #append the config for loose Muon ID because it is used self.update(MuonID_config) TauID_config = sTID.Tau_ID( nickname ) #here loose is not appended since loose tau ID is not used self.update(TauID_config) JEC_config = sJEC.JEC( nickname ) #Is allready in baseconfig, for now leave it in; possibly remove it self.update(JEC_config) JECUncertaintySplit_config = sJECUS.JECUncertaintySplit(nickname) self.update(JECUncertaintySplit_config) JetID_config = sJID.Jet_ID(nickname) self.update(JetID_config) BTaggedJet_config = sBTJID.BTaggedJet_ID(nickname) self.update(BTaggedJet_config) Svfit_config = sSvfit.Svfit(nickname) self.update(Svfit_config) MinimalPlotlevelFilter_config = sMPlF.MinimalPlotlevelFilter() MinimalPlotlevelFilter_config.em() self.update(MinimalPlotlevelFilter_config) MVATestMethods_config = sMVATM.MVATestMethods() self.update(MVATestMethods_config) self["Channel"] = "EM" self["MinNElectrons"] = 1 self["MinNMuons"] = 1 self[ "HltPaths_comment"] = "The first path must be one with the higher pt cut on the electron. The second and last path must be one with the higher pt cut on the muon. Corresponding Pt cuts are implemented in the Run2DecayChannelProducer." self["NoHltFiltering"] = False #*default self["DiTauPairLepton1LowerPtCuts"] = [ # **default "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:24.0" ] self["DiTauPairLepton2LowerPtCuts"] = [ # ***default "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v:24.0", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:24.0" ] self["DiTauPairNoHLT"] = False if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["HltPaths"] = [ "HLT_Mu8_TrkIsoVVL_Ele17_CaloIdL_TrackIdL_IsoVL", "HLT_Mu17_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL" ] self["DiTauPairLepton1LowerPtCuts"] = [ #** "HLT_Mu17_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:18.0" ] self["DiTauPairLepton2LowerPtCuts"] = [ "HLT_Mu8_TrkIsoVVL_Ele17_CaloIdL_TrackIdL_IsoVL_v:18.0" ] elif re.search("Run2016(B|C|D|E|F)|Spring16|Summer16", nickname): self["HltPaths"] = [ "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL" ] elif re.search("Run2016(G|H)", nickname): self["HltPaths"] = [ "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ" ] self["DiTauPairLepton1LowerPtCuts"] = [ #** "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:24.0" ] elif re.search("Embedding(2016|MC)", nickname): self["HltPaths"] = [] self["NoHltFiltering"] = True #*if "Embedding(2016|MC)" self["DiTauPairLepton1LowerPtCuts"] = [ #** "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:-1.0", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:-1.0" ] self["DiTauPairLepton2LowerPtCuts"] = [ #*** "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v:-1.0", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:-1.0" ] self["DiTauPairNoHLT"] = True self["LowerCutHardLepPt"] = 24.0 self["ElectronLowerPtCuts"] = ["13.0"] self["ElectronUpperAbsEtaCuts"] = ["2.5"] self["MuonLowerPtCuts"] = ["10.0"] self["MuonUpperAbsEtaCuts"] = ["2.4"] self["DeltaRTriggerMatchingElectrons"] = 0.4 self["DeltaRTriggerMatchingMuons"] = 0.4 self["DiTauPairMinDeltaRCut"] = 0.3 self["DiTauPairIsTauIsoMVA"] = True self["EventWeight"] = "eventWeight" self[ "RooWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_v16_5_1.root" self["RooWorkspaceWeightNames"] = [ "0:idIsoWeight", "0:emuQcdOsssWeight", "0:emuQcdOsssRateUpWeight", "0:emuQcdOsssRateDownWeight", "0:emuQcdOsssShapeUpWeight", "0:emuQcdOsssShapeDownWeight", "0:emuQcdExtrapUpWeight", "0:emuQcdExtrapDownWeight", "1:idIsoWeight", "1:emuQcdOsssWeight", "1:emuQcdOsssRateUpWeight", "1:emuQcdOsssRateDownWeight", "1:emuQcdOsssShapeUpWeight", "1:emuQcdOsssShapeDownWeight", "1:emuQcdExtrapUpWeight", "1:emuQcdExtrapDownWeight" ] self["RooWorkspaceObjectNames"] = [ "0:e_idiso0p15_desy_ratio", "0:em_qcd_osss_binned", "0:em_qcd_osss_rateup_binned", "0:em_qcd_osss_ratedown_binned", "0:em_qcd_osss_shapeup_binned", "0:em_qcd_osss_shapedown_binned", "0:em_qcd_extrap_up", "0:em_qcd_extrap_down", "1:m_idiso0p20_desy_ratio", "1:em_qcd_osss_binned", "1:em_qcd_osss_rateup_binned", "1:em_qcd_osss_ratedown_binned", "1:em_qcd_osss_shapeup_binned", "1:em_qcd_osss_shapedown_binned", "1:em_qcd_extrap_up", "1:em_qcd_extrap_down", ] self["RooWorkspaceObjectArguments"] = [ "0:e_pt,e_eta", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "0:njets,dR,e_pt,m_pt", "1:m_pt,m_eta", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt", "1:njets,dR,e_pt,m_pt" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["TriggerEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Electron_Ele12_fall15.root", #2 times 0:... and 1:... "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Electron_Ele17_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu8_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu17_fall15.root" ] self["TriggerEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele12_fall15.root", "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele17_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu8_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu17_fall15.root" ] self["IdentificationEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Electron_IdIso_IsoLt0p15_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Muon_IdIso_IsoLt0p2_2016BtoH_eff.root" ] self["IdentificationEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Electron_IdIso0p15_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso0p15_fall15.root" ] else: self["TriggerEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Electron_Ele12leg_eff.root", #2 times 0:... and 1:... "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Electron_Ele23leg_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Muon_Mu8leg_2016BtoH_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Muon_Mu23leg_2016BtoH_eff.root" ] self["TriggerEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele12leg_eff.root", "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele23leg_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu8leg_2016BtoH_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu23leg_2016BtoH_eff.root" ] self["IdentificationEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Electron_IdIso_IsoLt0p15_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Muon_IdIso_IsoLt0p2_2016BtoH_eff.root" ] self["IdentificationEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Electron_IdIso_IsoLt0p15_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso_IsoLt0p2_2016BtoH_eff.root" ] self["TriggerEfficiencyMode"] = "correlate_triggers" self["IdentificationEfficiencyMode"] = "multiply_weights" self["TauTauRestFrameReco"] = "collinear_approximation" if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["ElectronTriggerFilterNames"] = [ "HLT_Mu17_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:hltMu17TrkIsoVVLEle12CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter", "HLT_Mu8_TrkIsoVVL_Ele17_CaloIdL_TrackIdL_IsoVL_v:hltMu8TrkIsoVVLEle17CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter" ] self["MuonTriggerFilterNames"] = [ "HLT_Mu17_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:hltMu17TrkIsoVVLEle12CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered17", "HLT_Mu8_TrkIsoVVL_Ele17_CaloIdL_TrackIdL_IsoVL_v:hltMu8TrkIsoVVLEle17CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered8" ] elif re.search("Run2016(B|C|D|E|F)|Spring16|Summer16", nickname): self["ElectronTriggerFilterNames"] = [ "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter" ] self["MuonTriggerFilterNames"] = [ "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered23", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered8" ] elif re.search("Run2016(G|H)", nickname): self["ElectronTriggerFilterNames"] = [ "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLDZFilter", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLElectronlegTrackIsoFilter", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLDZFilter" ] self["MuonTriggerFilterNames"] = [ "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered23", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu23TrkIsoVVLEle12CaloIdLTrackIdLIsoVLDZFilter", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLMuonlegL3IsoFiltered8", "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v:hltMu8TrkIsoVVLEle23CaloIdLTrackIdLIsoVLDZFilter" ] self["InvalidateNonMatchingElectrons"] = True self["InvalidateNonMatchingMuons"] = True self["InvalidateNonMatchingTaus"] = False self["InvalidateNonMatchingJets"] = False self["DirectIso"] = True self["OSChargeLeptons"] = True self["SvfitKappaParameter"] = 3.0 self["AddGenMatchedParticles"] = True self["BranchGenMatchedElectrons"] = True self["BranchGenMatchedMuons"] = True self["Consumers"] = [ "KappaLambdaNtupleConsumer", "cutflow_histogram", "SvfitCacheConsumer", "#CutFlowTreeConsumer", "#KappaElectronsConsumer", "#KappaMuonsConsumer", "#KappaTaggedJetsConsumer", "#RunTimeConsumer", "#PrintEventsConsumer", "#PrintGenParticleDecayTreeConsumer" ] quantities_dict = quantities.quantities() quantities_dict.build_quantities(nickname, channel=self["Channel"]) #put rest of quantities in CPQuantities.py? quantities_dict["Quantities"] += [ "nLooseElectrons", "nLooseMuons", "nDiTauPairCandidates", "nAllDiTauPairCandidates" ] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16))", nickname): quantities_dict[ "Quantities"] += quantities_dict.lheWeightsDYQuantities() quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search( "(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16))", nickname): quantities_dict[ "Quantities"] += quantities_dict.svfitSyncQuantities() elif re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("Embedding2016", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(LFV).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += ["jetCorrectionWeight"] self.update(copy.deepcopy(quantities_dict)) self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", ################## special for each channel in et mt tt em. "producer:ValidElectronsProducer", "filter:ValidElectronsFilter", "producer:ElectronTriggerMatchingProducer", "filter:MinElectronsCountFilter", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidTausProducer", "producer:ValidEMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseMuonsProducer", ################## "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "producer:HttValidLooseElectronsProducer" ] if re.search("(Spring16|Summer16|Run2016)", nickname): self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += [ "producer:PolarisationQuantitiesSvfitProducer" ] self["Processors"] += [ "producer:PolarisationQuantitiesSvfitM91Producer" ] self["Processors"] += [ "producer:PolarisationQuantitiesSimpleFitProducer" ] self["Processors"] += [ "producer:TaggedJetUncertaintyShiftProducer" ] if re.search("Run2016", nickname): #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += [ "producer:GenMatchedPolarisationQuantitiesProducer" ] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] else: #self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += ["producer:ElectronCorrectionsProducer" ] #channel dependent self["Processors"] += ["producer:TriggerWeightProducer"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += ["producer:RooWorkspaceWeightProducer"] if re.search("(LFV).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:ZPtReweightProducer" #"filter:MinimalPlotlevelFilter" ] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += [ "producer:LFVJetCorrection2016Producer" ] else: self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16))", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += [ "producer:GenMatchedTauCPProducer" ] self["Processors"] += [ "producer:GenMatchedPolarisationQuantitiesProducer" ] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search( "(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:TopPtReweightingProducer" ] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += [ "producer:GenMatchedTauCPProducer" ] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] #self["Processors"] += ["producer:MadGraphReweightingProducer"] else: self["Processors"] += [ "producer:TopPtReweightingProducer" ] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += [ "producer:GenMatchedPolarisationQuantitiesProducer" ] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(Fall15|Run2015)", nickname): #self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += [ "producer:PolarisationQuantitiesSvfitProducer" ] self["Processors"] += [ "producer:PolarisationQuantitiesSvfitM91Producer" ] self["Processors"] += [ "producer:PolarisationQuantitiesSimpleFitProducer" ] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:MvaMetSelector"] if re.search("Run2015", nickname): pass #self["Processors"] += ["producer:SimpleFitProducer"] #self["Processors"] += ["producer:SvfitProducer"] #self["Processors"] += ["producer:SvfitM91Producer"] #self["Processors"] += ["producer:SvfitM125Producer"] #self["Processors"] += ["producer:MELAProducer"] #self["Processors"] += ["producer:MELAM125Producer"] else: self["Processors"] += ["producer:MvaMetCorrector"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += [ "producer:RecoElectronGenParticleMatchingProducer" ] #if you grep this, it is already in globalprocessors self["Processors"] += [ "producer:RecoMuonGenParticleMatchingProducer" ] self["Processors"] += ["producer:MatchedLeptonsProducer"] #self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += [ "producer:TriggerWeightProducer", "producer:IdentificationWeightProducer", "producer:EleTauFakeRateWeightProducer" ] if re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += [ "producer:GenMatchedPolarisationQuantitiesProducer" ] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=Fall15)", nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] elif re.search( "^((?!(DY.?JetsToLL|HToTauTau|H2JetsToTauTau|Higgs)).)*Fall15", nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:EventWeightProducer"] self["Processors"] = list(set(self["Processors"])) processorOrderingkey = processorOrdering.processors_ordered( channel=self["Channel"]) ordered_processors = processorOrderingkey.order_processors( self["Processors"]) self["Processors"] = copy.deepcopy(ordered_processors)
def build_config(self, nickname, *args, **kwargs): #Maybe change this the arguments to process/year and DATA/MC """ "include" : [ "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsVetoMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJEC.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJECUncertaintySplit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsBTaggedJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsSvfit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMinimalPlotlevelFilter_mm.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Includes/settingsMVATestMethods.json" ], """ ElectronID_config = sEID.Electron_ID(nickname) ElectronID_config.looseElectron_ID(nickname) #append the config for loose electron ID because it is used self.update(ElectronID_config) MuonID_config = sMID.Muon_ID(nickname) MuonID_config.looseMuon_ID(nickname) #append the config for loose Muon ID because it is used MuonID_config.vetoMuon_ID(nickname) self.update(MuonID_config) TauID_config = sTID.Tau_ID(nickname) #here loose is not appended since loose tau ID is not used self.update(TauID_config) JEC_config = sJEC.JEC(nickname) #Is allready in baseconfig, for now leave it in; possibly remove it self.update(JEC_config) JECUncertaintySplit_config = sJECUS.JECUncertaintySplit(nickname) self.update(JECUncertaintySplit_config) JetID_config = sJID.Jet_ID(nickname) self.update(JetID_config) BTaggedJet_config = sBTJID.BTaggedJet_ID(nickname) self.update(BTaggedJet_config) Svfit_config = sSvfit.Svfit(nickname) self.update(Svfit_config) MinimalPlotlevelFilter_config = sMPlF.MinimalPlotlevelFilter() MinimalPlotlevelFilter_config.mm() self.update(MinimalPlotlevelFilter_config) MVATestMethods_config = sMVATM.MVATestMethods() self.update(MVATestMethods_config) self["Channel"] = "MM" self["MinNMuons"] = 2 self["HltPaths_comment"] = "The first path must be the single lepton trigger. A corresponding Pt cut is implemented in the Run2DecayChannelProducer." self["HltPaths"] = [ "HLT_IsoMu24", "HLT_IsoTkMu24" ] self["NoHltFiltering"] = False self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_IsoMu24_v:25.0", "HLT_IsoTkMu24_v:25.0" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["HltPaths"] =[ "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ" ] self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v:20.0", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v:20.0" ] self["DiTauPairLepton2LowerPtCuts"] = [ "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v:10.0", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v:10.0" ] elif re.search("Embedding(2016|MC)", nickname): self["HltPaths"] = [""] self["NoHltFiltering"] = True self["TauID"] = "TauIDRecommendation13TeV" self["TauUseOldDMs"] = False self["MuonLowerPtCuts"] = [ "10.0" ] self["MuonUpperAbsEtaCuts"] = [ "2.4" ] self["DiTauPairMinDeltaRCut"] = 0.3 self["DeltaRTriggerMatchingMuons"] = 0.1 if re.search("Run2016|Spring16|Summer16", nickname): self["DiTauPairHltPathsWithoutCommonMatchRequired"] = [ "HLT_IsoMu24_v", "HLT_IsoTkMu24_v" ] self["DiTauPairNoHLT"] = False self["EventWeight"] = "eventWeight" self["RooWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["RooWorkspaceWeightNames"] = [ "0:idIsoWeight", "1:idIsoWeight" ] self["RooWorkspaceObjectNames"] = [ "0:m_idiso0p15_desy_ratio", "1:m_idiso0p15_desy_ratio" ] self["RooWorkspaceObjectArguments"] = [ "0:m_pt,m_eta", "1:m_pt,m_eta" ] self["MuMuTriggerWeightWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["MuMuTriggerWeightWorkspaceWeightNames"] = [ "0:triggerWeight", "1:triggerWeight" ] self["MuMuTriggerWeightWorkspaceObjectNames"] = [ "0:m_trgIsoMu24orTkIsoMu24_desy_ratio", "1:m_trgIsoMu24orTkIsoMu24_desy_ratio" ] self["MuMuTriggerWeightWorkspaceObjectArguments"] = [ "0:m_pt,m_eta", "1:m_pt,m_eta" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["TriggerEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu8_fall15.root", "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu17_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu8_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Muon_Mu17_fall15.root" ] self["TriggerEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu8_fall15.root", "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu17_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu8_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Muon_Mu17_fall15.root" ] self["IdentificationEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2015_Muon_IdIso0p15_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2015_Muon_IdIso0p15_fall15.root" ] self["IdentificationEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso0p15_fall15.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso0p15_fall15.root" ] else: #self["TriggerEfficiencyData"] = not given self["TriggerEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_dummy.root", "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_dummy.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_dummy.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_dummy.root" ] self["IdentificationEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root" ] self["IdentificationEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root", "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Muon_IdIso_IsoLt0p15_2016BtoH_eff.root" ] self["TriggerEfficiencyMode"] = "correlate_triggers" self["IdentificationEfficiencyMode"] = "multiply_weights" self["TauTauRestFrameReco"] = "collinear_approximation" if re.search("Run2016|Spring16|Summer16", nickname): self["MuonTriggerFilterNames"] = [ "HLT_IsoMu24_v:hltL3crIsoL1sMu22L1f0L2f10QL3f24QL3trkIsoFiltered0p09", "HLT_IsoTkMu24_v:hltL3fL1sMu22L1f0Tkf24QL3trkIsoFiltered0p09" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["MuonTriggerFilterNames"] = [ "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v:hltDiMuonGlb17Glb8RelTrkIsoFiltered0p4DzFiltered0p2", "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v:hltDiMuonGlb17Trk8RelTrkIsoFiltered0p4DzFiltered0p2" ] self["InvalidateNonMatchingElectrons"] = False self["InvalidateNonMatchingMuons"] = True self["InvalidateNonMatchingTaus"] = True self["InvalidateNonMatchingJets"] = False self["DirectIso"] = True self["AddGenMatchedParticles"] = True self["BranchGenMatchedMuons"] = True self["Consumers"] = [ "KappaLambdaNtupleConsumer", "cutflow_histogram", "#PrintHltConsumer", "#SvfitCacheConsumer", "#CutFlowTreeConsumer", "#KappaMuonsConsumer", "#KappaTausConsumer", "#KappaTaggedJetsConsumer", "#RunTimeConsumer", "#PrintEventsConsumer" ] quantities_dict = quantities.quantities() quantities_dict["Quantities"] += quantities_dict.fourVectorQuantities() quantities_dict["Quantities"] += quantities_dict.syncQuantities() quantities_dict["Quantities"] += iq.weightQuantities() quantities_dict["Quantities"] += iq.SingleTauQuantities() quantities_dict["Quantities"] += [ "nLooseElectrons", "nLooseMuons", "nDiTauPairCandidates", "nAllDiTauPairCandidates" ] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += quantities_dict.genMatchedCPQuantities() quantities_dict["Quantities"] += quantities_dict.recoCPQuantities() quantities_dict["Quantities"] += quantities_dict.melaQuantities() quantities_dict["Quantities"] += quantities_dict.melaQuantities() elif re.search("(LFV).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += quantities_dict.genQuantitiesZ() self.update(copy.deepcopy(quantities_dict)) self["OSChargeLeptons"] = True if re.search("(Fall15MiniAODv2|Run2015)", nickname): self["MuonEnergyCorrection"] = "rochcorr2015" self["MuonRochesterCorrectionsFile"] = "$CMSSW_BASE/src/Artus/KappaAnalysis/data/rochcorr/RoccoR_13tev_2015.txt" else: self["MuonEnergyCorrection"] = "rochcorr2016" self["MuonRochesterCorrectionsFile"] = "$CMSSW_BASE/src/Artus/KappaAnalysis/data/rochcorr2016" if re.search("(DY.?JetsToLL|EWKZ2Jets).*(?=(Spring16|Summer16))",nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TaggedJetUncertaintyShiftProducer", "producer:MetCorrector", "producer:DiLeptonQuantitiesProducer", "producer:TauTauRestFrameSelector", "producer:DiJetQuantitiesProducer", "producer:ZPtReweightProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["#producer:TriggerWeightProducer"] self["Processors"] += ["producer:IdentificationWeightProducer"] self["Processors"] += ["#producer:RooWorkspaceWeightProducer"] self["Processors"] += ["producer:MuMuTriggerWeightProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:EventWeightProducer"] elif re.search("^((?!(DY.?JetsToLL|EWKZ2Jets)).)*Fall15", nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:MvaMetSelector", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "#producer:TaggedJetUncertaintyShiftProducer", "producer:MetCorrector", "producer:MvaMetCorrector", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:TriggerWeightProducer"] self["Processors"] += ["producer:IdentificationWeightProducer"] self["Processors"] += ["producer:EventWeightProducer"] elif re.search("(DY.?JetsToLL|EWKZ2Jets).*(?=Fall15)", nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:MvaMetSelector", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "#producer:TaggedJetUncertaintyShiftProducer", "producer:MetCorrector", "producer:MvaMetCorrector", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "producer:ZPtReweightProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:TriggerWeightProducer"] self["Processors"] += ["producer:IdentificationWeightProducer"] self["Processors"] += ["producer:EventWeightProducer"] elif re.search("Run2016", nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TaggedJetUncertaintyShiftProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:EventWeightProducer"] elif re.search("Run2015", nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:MvaMetSelector", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "#producer:TaggedJetUncertaintyShiftProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:EventWeightProducer"] elif re.search("(LFV).*(?=(Spring16|Summer16))", nickname): self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TaggedJetUncertaintyShiftProducer", "producer:MetCorrector", "producer:DiLeptonQuantitiesProducer", "producer:TauTauRestFrameSelector", "producer:DiJetQuantitiesProducer", "producer:ZPtReweightProducer", "#filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["#producer:TriggerWeightProducer"] self["Processors"] += ["producer:IdentificationWeightProducer"] self["Processors"] += ["#producer:RooWorkspaceWeightProducer"] self["Processors"] += ["producer:MuMuTriggerWeightProducer"] self["Processors"] += ["producer:EventWeightProducer"] else: self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", "producer:MuonCorrectionsProducer", "producer:ValidMuonsProducer", "filter:ValidMuonsFilter", "producer:MuonTriggerMatchingProducer", "filter:MinMuonsCountFilter", "producer:ValidElectronsProducer", "producer:ValidTausProducer", "producer:ValidMMPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TaggedJetUncertaintyShiftProducer", "producer:MetCorrector", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", "producer:TopPtReweightingProducer", "filter:MinimalPlotlevelFilter" ] self["Processors"] += ["#producer:MVATestMethodsProducer"] self["Processors"] += ["#producer:SvfitProducer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["#producer:TriggerWeightProducer"] self["Processors"] += ["producer:IdentificationWeightProducer"] self["Processors"] += ["#producer:RooWorkspaceWeightProducer"] self["Processors"] += ["producer:MuMuTriggerWeightProducer"] self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:EventWeightProducer"]
def build_config(self, nickname, *args, **kwargs): #Maybe change this the arguments to process/year and DATA/MC """ "include" : [ "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsLooseMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsVetoElectronID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMuonID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJEC.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJECUncertaintySplit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsBTaggedJetID.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsSvfit.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsMinimalPlotlevelFilter_et.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Includes/settingsMVATestMethods.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2Analysis/Includes/settingsTauES.json", "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/ArtusConfigs/Run2CPStudies/Includes/settingsTauPolarisationMva.json" ], """ ElectronID_config = sEID.Electron_ID(nickname) ElectronID_config.looseElectron_ID(nickname) #append the config for loose electron ID because it is used ElectronID_config.vetoElectron_ID(nickname) self.update(ElectronID_config) MuonID_config = sMID.Muon_ID(nickname) MuonID_config.looseMuon_ID(nickname) #append the config for loose Muon ID because it is used self.update(MuonID_config) TauID_config = sTID.Tau_ID(nickname) #here loose is not appended since loose tau ID is not used self.update(TauID_config) JEC_config = sJEC.JEC(nickname) #Is allready in baseconfig, for now leave it in; possibly remove it self.update(JEC_config) JECUncertaintySplit_config = sJECUS.JECUncertaintySplit(nickname) self.update(JECUncertaintySplit_config) JetID_config = sJID.Jet_ID(nickname) self.update(JetID_config) BTaggedJet_config = sBTJID.BTaggedJet_ID(nickname) self.update(BTaggedJet_config) Svfit_config = sSvfit.Svfit(nickname) self.update(Svfit_config) MinimalPlotlevelFilter_config = sMPlF.MinimalPlotlevelFilter() MinimalPlotlevelFilter_config.et() self.update(MinimalPlotlevelFilter_config) MVATestMethods_config = sMVATM.MVATestMethods() self.update(MVATestMethods_config) TauES_config = sTES.TauES(nickname) self.update(TauES_config) TauPolarisationMva_config = sTPMVA.TauPolarisationMva() self.update(TauPolarisationMva_config) self["TauPolarisationTmvaWeights"] = [ "/afs/cern.ch/user/m/mfackeld/public/weights_tmva/training.weights.xml", "/afs/cern.ch/user/m/mfackeld/public/weights_sklearn/training_et.weights.xml" ] self["Channel"] = "ET" self["MinNElectrons"] = 1 self["MinNTaus"] = 1 self["HltPaths_comment"] = "The first path must be the single lepton trigger. A corresponding Pt cut is implemented in the Run2DecayChannelProducer." self["NoHltFiltering"] = False #else self["DiTauPairNoHLT" ] = False self["ElectronLowerPtCuts"] = ["26.0"] #default: !=2015 self["DiTauPairLepton1LowerPtCuts"] = ["HLT_Ele25_eta2p1_WPTight_Gsf_v:26.0"] #default: !=2015 or !=2017 if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["HltPaths"] = ["HLT_Ele23_WPLoose_Gsf"] self["ElectronLowerPtCuts"] = ["24.0"] #2015 self["DiTauPairLepton1LowerPtCuts"] = ["HLT_Ele23_WPLoose_Gsf_v:24.0"] #2015 self["DiTauPairHltPathsWithoutCommonMatchRequired"] = ["HLT_Ele23_WPLoose_Gsf_v"] elif re.search("Run2016|Spring16|Summer16", nickname): #spring16 self["NoHltFiltering"] = True for cp config False for RUN2 set to false here self["HltPaths"] = ["HLT_Ele25_eta2p1_WPTight_Gsf"] self["DiTauPairHltPathsWithoutCommonMatchRequired"] = ["HLT_Ele25_eta2p1_WPTight_Gsf_v"] elif re.search("Embedding(2016|MC)", nickname): self["HltPaths"] =[""] self["NoHltFiltering"] = True #else: self["NoHltFiltering"] = True self["DiTauPairNoHLT" ] = False self["DiTauPairHltPathsWithoutCommonMatchRequired"] = ["HLT_Ele25_eta2p1_WPTight_Gsf_v"] elif re.search("Run2017|Summer17|Fall17", nickname): self["HltPaths"] = [ "HLT_Ele35_WPTight_Gsf", "HLT_Ele32_WPTight_Gsf" ] self["ElectronLowerPtCuts"] = [ "36.0"] self["DiTauPairLepton1LowerPtCuts"] = [ "HLT_Ele35_WPTight_Gsf_v:36.0", "HLT_Ele32_WPTight_Gsf_v:36.0" ] self["DiTauPairHltPathsWithoutCommonMatchRequired"] = [ "HLT_Ele35_WPTight_Gsf_v", "HLT_Ele32_WPTight_Gsf_v" ] self["TauID"] = "TauIDRecommendation13TeV" self["TauUseOldDMs"] = True self["ElectronUpperAbsEtaCuts"] = ["2.1"] self["TauLowerPtCuts"] = ["20.0"] self["TauUpperAbsEtaCuts"] = ["2.3"] self["TriggerObjectLowerPtCut"] = -1.0 self["DiTauPairMinDeltaRCut"] = 0.5 self["DiTauPairIsTauIsoMVA"] = True self["EventWeight"] = "eventWeight" self["RooWorkspace"] = "$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/htt_scalefactors_sm_moriond_v2.root" self["RooWorkspaceWeightNames"] = [ "0:triggerWeight", "0:idIsoWeight" ] self["RooWorkspaceObjectNames"] = [ "0:e_trgEle25eta2p1WPTight_desy_ratio", "0:e_idiso0p1_desy_ratio" ] self["RooWorkspaceObjectArguments"] = [ "0:e_pt,e_eta", "0:e_pt,e_eta" ] if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["TriggerEfficiencyData"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2015_Electron_Ele23_fall15.root" ] self["TriggerEfficiencyMc"] = [ "0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele23_fall15.root"] self["IdentificationEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2015_Electron_IdIso0p1_fall15.root"] self["IdentificationEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Electron_IdIso0p1_fall15.root"] elif re.search("Run2017|Summer17|Fall17", nickname): self["TriggerEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2017_Electron_Ele32orEle35.root"] self["TriggerEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MCFall2017_Electron_Ele32orEle35.root"] self["IdentificationEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2017_Electron_IdIso_IsoLt0.10_eff_RerecoFall17.root"] self["IdentificationEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MCFall2017_Electron_IdIso_IsoLt0.10_eff_RerecoFall17.root"] else: self["TriggerEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_Run2016_Electron_Ele25WPTight_eff.root" ] self["TriggerEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/triggerWeights/triggerEfficiency_MC_Electron_Ele25WPTight_eff.root" ] self["IdentificationEfficiencyData"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_Run2016_Electron_IdIso_IsoLt0p1_eff.root"] self["IdentificationEfficiencyMc"] = ["0:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/identificationWeights/identificationEfficiency_MC_Electron_IdIso_IsoLt0p1_eff.root"] self["TriggerEfficiencyMode"] = "multiply_weights" self["IdentificationEfficiencyMode"] = "multiply_weights" if re.search("Run2017|Summer17|Fall17", nickname): self["EleTauFakeRateWeightFile"] =[""] else: self["EleTauFakeRateWeightFile"] = [ "1:$CMSSW_BASE/src/HiggsAnalysis/KITHiggsToTauTau/data/root/scaleFactorWeights/antiElectronDiscrMVA6FakeRateWeights.root" ] self["TauTauRestFrameReco"] = "collinear_approximation" if re.search("(Fall15MiniAODv2|Run2015D|Embedding2015)", nickname): self["ElectronTriggerFilterNames"] = ["HLT_Ele23_WPLoose_Gsf_v:hltEle23WPLooseGsfTrackIsoFilter"] elif re.search("Run2016|Spring16|Summer16|Embedding(2016|MC)", nickname): self["ElectronTriggerFilterNames"] = ["HLT_Ele25_eta2p1_WPTight_Gsf_v:hltEle25erWPTightGsfTrackIsoFilter"] elif re.search("Run2017|Summer17|Fall17", nickname): self["ElectronTriggerFilterNames"] = [ "HLT_Ele35_WPTight_Gsf_v:hltEle35noerWPTightGsfTrackIsoFilter", "HLT_Ele32_WPTight_Gsf_v:hltEle32WPTightGsfTrackIsoFilter" ] self["InvalidateNonMatchingElectrons"] = True self["InvalidateNonMatchingMuons"] = False self["InvalidateNonMatchingTaus"] = True self["InvalidateNonMatchingJets"] = False self["UseUWGenMatching"] = "true" self["DirectIso"] = True self["OSChargeLeptons"] = True self["SvfitKappaParameter"] = 4.0 self["AddGenMatchedParticles"] = True self["AddGenMatchedTaus"] = True self["AddGenMatchedTauJets"] = True self["BranchGenMatchedElectrons"] = True self["BranchGenMatchedTaus"] = True self["Consumers"] = [ "KappaLambdaNtupleConsumer", "cutflow_histogram", "SvfitCacheConsumer", "#CutFlowTreeConsumer", "#KappaElectronsConsumer", "#KappaTausConsumer", "#KappaTaggedJetsConsumer", "#RunTimeConsumer", "#PrintEventsConsumer", "#PrintGenParticleDecayTreeConsumer" ] quantities_dict = quantities.quantities() quantities_dict.build_quantities(nickname, channel = self["Channel"]) #put rest of quantities in CPQuantities.py? quantities_dict["Quantities"] += [ "nVetoElectrons", "nLooseElectrons", "nLooseMuons", "nDiTauPairCandidates", "nAllDiTauPairCandidates" ] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16|Summer17|Fall17))", nickname): #the same as tt quantities_dict["Quantities"] += quantities_dict.genQuantities() quantities_dict["Quantities"] += quantities_dict.lheWeightsDYQuantities() quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16|Summer17|Fall17))", nickname): quantities_dict["Quantities"] += [ "#tauPolarisationTMVA", "#tauPolarisationSKLEARN", ] elif re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("Embedding2016", nickname): quantities_dict["Quantities"] += [ "tauSpinnerValidOutputs", "tauSpinnerPolarisation", ] elif re.search("(LFV).*(?=(Spring16|Summer16))", nickname): quantities_dict["Quantities"] += [ "jetCorrectionWeight" ] self.update(copy.deepcopy(quantities_dict)) self["Processors"] = [ "producer:HltProducer", "filter:HltFilter", "producer:MetSelector", ################## special for each channel in et mt tt em. "producer:ValidElectronsProducer", "filter:ValidElectronsFilter", "producer:ElectronTriggerMatchingProducer", "filter:MinElectronsCountFilter", "producer:ValidMuonsProducer", "producer:ValidTausProducer", "filter:ValidTausFilter", "producer:TauTriggerMatchingProducer", "filter:MinTausCountFilter", "producer:ValidETPairCandidatesProducer", "filter:ValidDiTauPairCandidatesFilter", "producer:HttValidVetoElectronsProducer", "producer:HttValidLooseElectronsProducer", "producer:HttValidLooseMuonsProducer", "producer:DiVetoElectronVetoProducer", ################## "producer:Run2DecayChannelProducer", "producer:TaggedJetCorrectionsProducer", "producer:ValidTaggedJetsProducer", "producer:ValidBTaggedJetsProducer", "producer:TauTauRestFrameSelector", "producer:DiLeptonQuantitiesProducer", "producer:DiJetQuantitiesProducer", ] if re.search("(Spring16|Summer16|Run2016|Run2017|Summer17|Fall17)", nickname): self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] if re.search("(Run2017|Summer17|Fall17)", nickname) == None: self["Processors"] += ["producer:TaggedJetUncertaintyShiftProducer"] if re.search("Run2016|Run2017", nickname): #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] else: self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += ["producer:RooWorkspaceWeightProducer"] #changes from file to file self["Processors"] += ["producer:MetCorrector"] self["Processors"] += [ "producer:SimpleEleTauFakeRateWeightProducer", "producer:SimpleMuTauFakeRateWeightProducer" ] if re.search("(LFV).*(?=(Spring16|Summer16))", nickname): self["Processors"] += [ "producer:ZPtReweightProducer" #"filter:MinimalPlotlevelFilter" ] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:LFVJetCorrection2016Producer"] else: self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] if re.search("(DY.?JetsToLL).*(?=(Spring16|Summer16|Summer17|Fall17))", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=(Spring16|Summer16|Summer17|Fall17))", nickname): self["Processors"] += [ "producer:TopPtReweightingProducer" ] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] #self["Processors"] += ["producer:MadGraphReweightingProducer"] else: self["Processors"] += [ "producer:TopPtReweightingProducer"] #self["Processors"] += ["producer:MVATestMethodsProducer"] self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:TauPolarisationTmvaReader"] elif re.search("(Fall15|Run2015)", nickname): #self["Processors"] += ["producer:RefitVertexSelector"] self["Processors"] += ["producer:RecoTauCPProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitProducer"] self["Processors"] += ["producer:PolarisationQuantitiesSvfitM91Producer"] self["Processors"] += ["producer:PolarisationQuantitiesSimpleFitProducer"] self["Processors"] += ["filter:MinimalPlotlevelFilter"] self["Processors"] += ["producer:MvaMetSelector"] if re.search("Run2015", nickname): #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] #self["Processors"] += ["producer:SvfitProducer"] #self["Processors"] += ["producer:SvfitM91Producer"] #self["Processors"] += ["producer:SvfitM125Producer"] #self["Processors"] += ["producer:MELAProducer"] #self["Processors"] += ["producer:MELAM125Producer"] else: self["Processors"] += ["producer:MvaMetCorrector"] self["Processors"] += ["producer:MetCorrector"] self["Processors"] += ["producer:TauCorrectionsProducer"] self["Processors"] += [ "producer:EleTauFakeRateWeightProducer" ] if re.search("(DY.?JetsToLL).*(?=Fall15)", nickname): self["Processors"] += ["producer:ZPtReweightProducer"] #self["Processors"] += ["producer:SimpleFitProducer"] self["Processors"] += ["producer:GenMatchedTauCPProducer"] self["Processors"] += ["producer:GenMatchedPolarisationQuantitiesProducer"] elif re.search("(HToTauTau|H2JetsToTauTau|Higgs).*(?=Fall15)",nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] elif re.search("^((?!(DY.?JetsToLL|HToTauTau|H2JetsToTauTau|Higgs)).)*Fall15", nickname): self["Processors"] += ["producer:SvfitProducer"] self["Processors"] += ["producer:SvfitM91Producer"] self["Processors"] += ["producer:SvfitM125Producer"] self["Processors"] += ["producer:MELAProducer"] self["Processors"] += ["producer:MELAM125Producer"] self["Processors"] += ["producer:EventWeightProducer"] self["Processors"] = list(set(self["Processors"])) processorOrderingkey = processorOrdering.processors_ordered(channel = self["Channel"]) ordered_processors = processorOrderingkey.order_processors(self["Processors"]) self["Processors"] = copy.deepcopy(ordered_processors)