if jetFlags.useTruth: jtm.addJetFinder("Run2AntiKt4TruthJets", "AntiKt", 0.4, "truth", ghostArea=gatruth, ptmin= 5000) jtm.addJetFinder("Run2AntiKt4TruthWZJets", "AntiKt", 0.4, "truthwz", ghostArea=gatruth, ptmin= 5000) jtm.addJetFinder("Run2AntiKt10TruthJets", "AntiKt", 0.4, "truth", ghostArea=gatruth, ptmin=40000) jtm.addJetFinder("Run2AntiKt10TruthWZJets", "AntiKt", 1.0, "truth", ghostArea=gatruth, ptmin=40000) jtm.addJetFinder("Run2CamKt12TruthJets", "CamKt", 1.2, "truth", ghostArea=gatruth, ptmin=40000) jtm.addJetFinder("Run2CamKt12TruthWZJets", "CamKt", 1.2, "truth", ghostArea=gatruth, ptmin=40000) if jetFlags.useTracks: jtm.addJetFinder("Run2AntiKt2PV0TrackJets", "AntiKt", 0.2, "pv0track", ghostArea=gatrack, ptmin= 2000) jtm.addJetFinder("Run2AntiKt3PV0TrackJets", "AntiKt", 0.3, "pv0track", ghostArea=gatrack, ptmin= 2000) jtm.addJetFinder("Run2AntiKt4TrackJets", "AntiKt", 0.4, "track", ghostArea=gatrack, ptmin= 2000) jtm.addJetFinder("Run2AntiKt4ZTrackJets", "AntiKt", 0.4, "ztrack", ghostArea=gatrack, ptmin= 2000) jtm.addJetFinder("Run2AntiKt4PV0TrackJets", "AntiKt", 0.4, "pv0track", ghostArea=gatrack, ptmin= 2000) jtm.addJetFinder( "Run2AntiKt4EMTopoJets", "AntiKt", 0.4, "emtopo", "mycalib", ptmin=2000, ptminFilter= 7000, ghostArea=gatopo, calibOpt="aroj") jtm.addJetFinder( "Run2AntiKt4LCTopoJets", "AntiKt", 0.4, "lctopo", "mycalib", ptmin=2000, ptminFilter= 7000, ghostArea=gatopo, calibOpt="aro") jtm.addJetFinder( "Run2AntiKt10LCTopoJets", "AntiKt", 1.0, "lctopo", "mycalib", ptmin=2000, ptminFilter=50000, ghostArea=gatopo, calibOpt="a") jtm.addJetFinder( "Run2CamKt12LCTopoJets", "CamKt", 1.2, "lctopo", "mycalib", ptmin=2000, ptminFilter=50000, ghostArea=gatopo, calibOpt="a") # Groomers. if runJetGrooming: jtm.addJetSplitter( "Run2Split040CamKt12LCTopoJets", 1.0, 0.04, "Run2CamKt12LCTopoJets") jtm.addJetTrimmer( "Run2TrimR3AntiKt10LCTopoJets", 0.3, 0.05, "Run2AntiKt10LCTopoJets") jtm.addJetPruner( "Run2PruneR30Z10AntiKt10LCTopoJets", 0.30, 0.10, "Run2AntiKt10LCTopoJets") #-------------------------------------------------------------- # Configure the jet algorithm. #-------------------------------------------------------------- from JetRec.JetAlgorithm import addJetRecoToAlgSequence addJetRecoToAlgSequence()
if doLCPFlowJets and findJets: jtm.addJetFinder("MyAntiKt4LCNPFlowJets", "AntiKt", 0.4, [jtm.lcnpflowget], [jtm.width], ghostArea=0.01, ptmin=5000, ptminFilter=7000) #-------------------------------------------------------------- # Add jet reco to the algorithm sequence. # The current configuration of the jet tool manager is used. #-------------------------------------------------------------- from JetRec.JetAlgorithm import addJetRecoToAlgSequence #addJetRecoToAlgSequence(eventShapeTools=["empflow", "emcpflow", "lcpflow"]) if doEMCPFlowJets: addJetRecoToAlgSequence(eventShapeTools=["emcpflow"]) else: addJetRecoToAlgSequence(eventShapeTools=[]) #jtm.setOutputLevel("EMPFlowEventShape", VERBOSE) #-------------------------------------------------------------- # Add tool to dump the new jet container to the log. #-------------------------------------------------------------- from JetRec.JetRecConf import JetDumper from JetRec.JetAlgorithm import jetalg dumps = [] if doEMPFlowJets: dumps += [jtm.empflowget] if doEMCPFlowJets: dumps += [jtm.emcpflowget] if doLCPFlowJets:
ptmin=2000, ptminFilter=7000) # Recluster the new ungroomed jets. parent = "MyAntiKt4LCTopo" algrads = ["AntiKt4", "AntiKt3", "CamKt6"] for ar in algrads: jtm.addJetReclusterer(parent + ar + "Jets", name2alg(ar), name2rad(ar), parent + "Jets", groommods) #-------------------------------------------------------------- # Add jet reco to the algorithm sequence. # The current configuration of the jet tool manager is used. #-------------------------------------------------------------- from JetRec.JetAlgorithm import addJetRecoToAlgSequence addJetRecoToAlgSequence() #-------------------------------------------------------------- # Add tool to dump the new jet container to the log. #-------------------------------------------------------------- from JetRec.JetRecConf import JetDumper from JetRec.JetAlgorithm import jetalg show0 = True # Jets read from file. if show0: ToolSvc += JetDumper("jetdumper0") jd0 = ToolSvc.jetdumper0 jd0.ContainerName = "AntiKt4LCTopoJets" jd0.Detail = 1 jd0.LineDetail = 4 jd0.FourVectorMoments += ["JetEMScaleMomentum"]
################################################################## # Schedule common content for all jet-using derivations ################################################################## jetFlags.eventShapeTools = [] from JetRec.JetRecStandard import jtm from RecExConfig.ObjKeyStore import cfgKeyStore if not cfgKeyStore.isInInput("xAOD::JetContainer", "AntiKt2PV0TrackJets"): jtm.addJetFinder("AntiKt2PV0TrackJets", "AntiKt", 0.2, "pv0track", ptmin=2000) from JetRec.JetAlgorithm import addJetRecoToAlgSequence addJetRecoToAlgSequence(DerivationFrameworkJob, eventShapeTools=None) DFJetAlgs = {} ################################################################## # Definitions of helper functions ################################################################## def defineEDAlg(R=0.4, inputtype="LCTopo"): from EventShapeTools.EventDensityConfig import configEventDensityTool, EventDensityAlg from AthenaCommon.AppMgr import ToolSvc # map a getter to the input argument inputgetter = { "LCTopo": jtm.lcget,
## containers defined in the user's JO fragment ## ## These algorithms must be scheduled *after* event generation and ## any corrections, but *before* the sequence of generator filters # Convert HepMC event record to xAODTruth for use by jet tools print 'bedzie konwersja !!' from xAODTruthCnv.xAODTruthCnvConf import xAODMaker__xAODTruthCnvAlg if not hasattr(prefiltSeq, 'xAODCnv'): prefiltSeq += xAODMaker__xAODTruthCnvAlg('xAODCnv', WriteTruthMetaData=False) prefiltSeq.xAODCnv.AODContainerName = 'GEN_EVENT' # Turn off jet tools specific to detector-level jets print 'bedzie wylaczenie !!' from JetRec.JetRecFlags import jetFlags jetFlags.useTracks = False jetFlags.eventShapeTools = [] jetFlags.useTopo = False jetFlags.useMuonSegments = False if hasattr(jetFlags, 'usePFlow'): jetFlags.usePFlow = False elif hasattr(jetFlags, 'usePflow'): jetFlags.usePflow = False else: raise NameError('jetFlags has no attribute usePflow or usePFlow') jetFlags.useCaloQualityTool = False # Attach jet algorithms print 'podlacz algorytmy jetowe !!' from JetRec.JetAlgorithm import addJetRecoToAlgSequence if not hasattr(prefiltSeq, 'jetalg'): addJetRecoToAlgSequence(prefiltSeq)
from JetRec.JetRecStandardToolManager import filterout #pflow_ungroomed_modifiers=filterout(['width'],jtm.modifiersMap["pflow_ungroomed"]) #width tool causes a problem for some reason jtm.addJetFinder("MyAntiKt4EMPFlowJets2", "AntiKt", 0.4, myGetters, "pflow_ungroomed", ghostArea=0.01, ptmin=5000, ptminFilter=10000, calibOpt="arj:pflow") ############################################################################################ from JetRec.JetAlgorithm import addJetRecoToAlgSequence addJetRecoToAlgSequence(job=topSequence, separateJetAlgs=True) #insert the JetConstituentModSequence before sequence-based PF jet reconstruction if hasattr(topSequence, "jetalgMyAntiKt4EMPFlowJets2"): topSequence.jetalgMyAntiKt4EMPFlowJets2.Tools.insert(0, PFSequence) ############################################################################################ from OutputStreamAthenaPool.MultipleStreamManager import MSMgr xAODStream = MSMgr.NewPoolRootStream("StreamXAOD", "test.Out.pool.root") xAODStream.AddItem("xAOD::JetContainer#*AntiKt4EMPFlowJets*") xAODStream.AddItem("xAOD::JetAuxContainer#*AntiKt4EMPFlowJets*") xAODStream.AddItem("xAOD::PFOContainer#*ParticleFlowObjects*") xAODStream.AddItem("xAOD::PFOAuxContainer#*ParticleFlowObjects*") xAODStream.AddItem("xAOD::ShallowAuxContainer#*ParticleFlowObjects*")
# Add neutral-only pflow jet definition. # Note here we provide an explicit list of getter instead of # the name of such a list in the jtm map. Either is allowed. if doLCPFlowJets and findJets: jtm.addJetFinder("MyAntiKt4LCNPFlowJets", "AntiKt", 0.4, [jtm.lcnpflowget], [jtm.width], ghostArea=0.01 , ptmin=5000, ptminFilter=7000) #-------------------------------------------------------------- # Add jet reco to the algorithm sequence. # The current configuration of the jet tool manager is used. #-------------------------------------------------------------- from JetRec.JetAlgorithm import addJetRecoToAlgSequence #addJetRecoToAlgSequence(eventShapeTools=["empflow", "emcpflow", "lcpflow"]) if doEMCPFlowJets: addJetRecoToAlgSequence(eventShapeTools=["emcpflow"]) else: addJetRecoToAlgSequence(eventShapeTools=[]) #jtm.setOutputLevel("EMPFlowEventShape", VERBOSE) #-------------------------------------------------------------- # Add tool to dump the new jet container to the log. #-------------------------------------------------------------- from JetRec.JetRecConf import JetDumper from JetRec.JetAlgorithm import jetalg dumps = [] if doEMPFlowJets: dumps += [jtm.empflowget] if doEMCPFlowJets: dumps += [jtm.emcpflowget] if doLCPFlowJets:
from JetRec.JetRecFlags import jetFlags from AthenaCommon.GlobalFlags import globalflags ################################################################## # Schedule common content for all jet-using derivations ################################################################## jetFlags.eventShapeTools = [] from JetRec.JetRecStandard import jtm from RecExConfig.ObjKeyStore import cfgKeyStore if not cfgKeyStore.isInInput("xAOD::JetContainer", "AntiKt2PV0TrackJets"): jtm.addJetFinder("AntiKt2PV0TrackJets", "AntiKt", 0.2, "pv0track", ptmin=2000) from JetRec.JetAlgorithm import addJetRecoToAlgSequence addJetRecoToAlgSequence(DerivationFrameworkJob, eventShapeTools=None) DFJetAlgs = {} ################################################################## # Definitions of helper functions ################################################################## def defineEDAlg(R=0.4, inputtype="LCTopo"): from EventShapeTools.EventDensityConfig import configEventDensityTool, EventDensityAlg from AthenaCommon.AppMgr import ToolSvc # map a getter to the input argument inputgetter = {"LCTopo": jtm.lcget, "EMTopo": jtm.emget}[inputtype]