File indexing completed on 2024-04-06 12:23:29
0001
0002
0003
0004
0005
0006 from __future__ import print_function
0007 import ROOT
0008 import PhysicsTools.HeppyCore.framework.config as cfg
0009
0010 cfg.Analyzer.nosubdir=True
0011
0012
0013
0014
0015 from PhysicsTools.Heppy.analyzers.core.AutoFillTreeProducer import *
0016 treeProducer= cfg.Analyzer(
0017 class_object=AutoFillTreeProducer,
0018 verbose=False,
0019 vectorTree = True,
0020
0021 globalVariables = [
0022 NTupleVariable("rho", lambda ev: ev.rho, float, help="jets rho"),
0023 ],
0024
0025 globalObjects = {
0026 "met" : NTupleObject("met", metType, help="PF E_{T}^{miss}, after default type 1 corrections"),
0027 },
0028 collections = {
0029
0030
0031
0032
0033
0034
0035
0036
0037 "selectedLeptons" : NTupleCollection("leptons", leptonType, 8, help="Leptons after the preselection"),
0038 "selectedTaus" : NTupleCollection("TauGood", tauType, 3, help="Taus after the preselection"),
0039 "cleanJets" : NTupleCollection("Jet", jetType, 8, help="Cental jets after full selection and cleaning, sorted by b-tag"),
0040
0041 "gentopquarks" : NTupleCollection("GenTop", genParticleType, 2, help="Generated top quarks from hard scattering"),
0042 "genbquarks" : NTupleCollection("GenBQuark", genParticleType, 2, help="Generated bottom quarks from top quark decays"),
0043 "genwzquarks" : NTupleCollection("GenQuark", genParticleType, 6, help="Generated quarks from W/Z decays"),
0044 "genleps" : NTupleCollection("GenLep", genParticleType, 6, help="Generated leptons from W/Z decays"),
0045 "gentauleps" : NTupleCollection("GenLepFromTau", genParticleType, 6, help="Generated leptons from decays of taus from W/Z/h decays"),
0046
0047 }
0048 )
0049
0050
0051 treeProducer2= cfg.Analyzer(
0052 treename="genonly",
0053 ignoreAnalyzerBookings=True,
0054 class_object=AutoFillTreeProducer,
0055 verbose=False,
0056 vectorTree = True,
0057 collections = {
0058
0059 "gentopquarks" : NTupleCollection("GenTop", genParticleType, 2, help="Generated top quarks from hard scattering"),
0060 "genbquarks" : NTupleCollection("GenBQuark", genParticleType, 2, help="Generated bottom quarks from top quark decays"),
0061 "genwzquarks" : NTupleCollection("GenQuark", genParticleType, 6, help="Generated quarks from W/Z decays"),
0062 "genleps" : NTupleCollection("GenLep", genParticleType, 6, help="Generated leptons from W/Z decays"),
0063 "gentauleps" : NTupleCollection("GenLepFromTau", genParticleType, 6, help="Generated leptons from decays of taus from W/Z/h decays"),
0064
0065 }
0066 )
0067
0068
0069 from copy import deepcopy
0070 treeProducer3 = deepcopy(treeProducer2)
0071 treeProducer3.filter = lambda ev : len(getattr(ev,"genbquarks",[])) > 0
0072 treeProducer3.outservicename="genonlyfile"
0073
0074
0075
0076
0077 from PhysicsTools.Heppy.analyzers.objects.LeptonAnalyzer import LeptonAnalyzer
0078 LepAna = LeptonAnalyzer.defaultConfig
0079 from PhysicsTools.Heppy.analyzers.objects.VertexAnalyzer import VertexAnalyzer
0080 VertexAna = VertexAnalyzer.defaultConfig
0081 from PhysicsTools.Heppy.analyzers.objects.PhotonAnalyzer import PhotonAnalyzer
0082 PhoAna = PhotonAnalyzer.defaultConfig
0083 from PhysicsTools.Heppy.analyzers.objects.TauAnalyzer import TauAnalyzer
0084 TauAna = TauAnalyzer.defaultConfig
0085 from PhysicsTools.Heppy.analyzers.objects.JetAnalyzer import JetAnalyzer
0086 JetAna = JetAnalyzer.defaultConfig
0087 from PhysicsTools.Heppy.analyzers.gen.LHEAnalyzer import LHEAnalyzer
0088 LHEAna = LHEAnalyzer.defaultConfig
0089 from PhysicsTools.Heppy.analyzers.gen.GeneratorAnalyzer import GeneratorAnalyzer
0090 GenAna = GeneratorAnalyzer.defaultConfig
0091 from PhysicsTools.Heppy.analyzers.objects.METAnalyzer import METAnalyzer
0092 METAna = METAnalyzer.defaultConfig
0093 from PhysicsTools.Heppy.analyzers.core.PileUpAnalyzer import PileUpAnalyzer
0094 PUAna = PileUpAnalyzer.defaultConfig
0095 from PhysicsTools.Heppy.analyzers.core.TriggerBitAnalyzer import TriggerBitAnalyzer
0096 FlagsAna = TriggerBitAnalyzer.defaultEventFlagsConfig
0097
0098
0099 from PhysicsTools.Heppy.analyzers.core.TriggerBitAnalyzer import TriggerBitAnalyzer
0100 TrigAna= cfg.Analyzer(
0101 verbose=False,
0102 class_object=TriggerBitAnalyzer,
0103
0104
0105 triggerBits={
0106 'ELE':["HLT_Ele23_Ele12_CaloId_TrackId_Iso_v*","HLT_Ele32_eta2p1_WP85_Gsf_v*","HLT_Ele32_eta2p1_WP85_Gsf_v*"],
0107 'MU': ["HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v*","HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v*","HLT_IsoTkMu24_eta2p1_IterTrk02_v*","HLT_IsoTkMu24_IterTrk02_v*"],
0108 },
0109
0110
0111
0112
0113 unrollbits=True
0114 )
0115
0116
0117
0118
0119 LepAna.loose_muon_pt = 10
0120
0121 sequence = [LHEAna,FlagsAna, GenAna, PUAna,TrigAna,VertexAna,LepAna,TauAna,PhoAna,JetAna,METAna,treeProducer,treeProducer2,treeProducer3]
0122
0123
0124
0125
0126 from PhysicsTools.HeppyCore.framework.services.tfile import TFileService
0127 output_service = cfg.Service(
0128 TFileService,
0129 'outputfile',
0130 name="outputfile",
0131 fname='tree.root',
0132 option='recreate'
0133 )
0134 output_service2= cfg.Service(
0135 TFileService,
0136 'genonlyfile',
0137 name="genonlyfile",
0138 fname='treegen.root',
0139 option='recreate'
0140 )
0141
0142
0143
0144
0145 from PhysicsTools.Heppy.utils.miniAodFiles import miniAodFiles
0146 testfiles=miniAodFiles()
0147 print("Running on test file %s" % testfiles)
0148
0149 sample = cfg.MCComponent(
0150
0151
0152 files = testfiles,
0153 name="SingleSample", isMC=True,isEmbed=False
0154 )
0155
0156
0157 from PhysicsTools.HeppyCore.framework.eventsfwlite import Events
0158 selectedComponents = [sample]
0159 config = cfg.Config( components = selectedComponents,
0160 sequence = sequence,
0161 services = [output_service,output_service2],
0162 events_class = Events)
0163
0164
0165 if __name__ == '__main__':
0166 from PhysicsTools.HeppyCore.framework.looper import Looper
0167 looper = Looper( 'Loop', config, nPrint = 5,nEvents=300)
0168 looper.loop()
0169 looper.write()