ATLAS Offline Software
MuonAnalysisAlgorithmsTest.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
2 #
3 # @author Nils Krumnack
4 
5 from AnaAlgorithm.AlgSequence import AlgSequence
6 from AnaAlgorithm.DualUseConfig import createAlgorithm, createService
7 from AsgAnalysisAlgorithms.AsgAnalysisAlgorithmsTest import pileupConfigFiles
8 
9 def makeSequence (dataType) :
10 
11  algSeq = AlgSequence()
12 
13  # Set up the systematics loader/handler service:
14  sysService = createService( 'CP::SystematicsSvc', 'SystematicsSvc', sequence = algSeq )
15  sysService.sigmaRecommended = 1
16  createService( 'CP::SelectionNameSvc', 'SelectionNameSvc', sequence = algSeq )
17 
18  # Include, and then set up the pileup analysis sequence:
19  prwfiles, lumicalcfiles = pileupConfigFiles(dataType)
20 
21  from AsgAnalysisAlgorithms.PileupAnalysisSequence import \
22  makePileupAnalysisSequence
23  pileupSequence = makePileupAnalysisSequence(
24  dataType,
25  userPileupConfigs=prwfiles,
26  userLumicalcFiles=lumicalcfiles,
27  )
28  pileupSequence.configure( inputName = {}, outputName = {} )
29 
30  # Add the pileup sequence to the job:
31  algSeq += pileupSequence
32 
33  # Include, and then set up the muon analysis algorithm sequence:
34  from MuonAnalysisAlgorithms.MuonAnalysisSequence import makeMuonAnalysisSequence
35  muonSequenceMedium = makeMuonAnalysisSequence( dataType, deepCopyOutput = True, shallowViewOutput = False,
36  workingPoint = 'Medium.Loose_VarRad', postfix = 'medium',
37  enableCutflow=True, enableKinematicHistograms=True )
38  muonSequenceMedium.configure( inputName = 'Muons',
39  outputName = 'AnalysisMuonsMedium_%SYS%' )
40 
41  # Add the sequence to the job:
42  algSeq += muonSequenceMedium
43 
44  muonSequenceTight = makeMuonAnalysisSequence( dataType, deepCopyOutput = True, shallowViewOutput = False,
45  workingPoint = 'Tight.Loose_VarRad', postfix = 'tight',
46  enableCutflow=True, enableKinematicHistograms=True )
47  muonSequenceTight.removeStage ("calibration")
48  muonSequenceTight.configure( inputName = 'AnalysisMuonsMedium_%SYS%',
49  outputName = 'AnalysisMuons_%SYS%')
50 
51  # Add the sequence to the job:
52  algSeq += muonSequenceTight
53 
54  # Add an ntuple dumper algorithm:
55  treeMaker = createAlgorithm( 'CP::TreeMakerAlg', 'TreeMaker' )
56  treeMaker.TreeName = 'muons'
57  algSeq += treeMaker
58  ntupleMaker = createAlgorithm( 'CP::AsgxAODNTupleMakerAlg', 'NTupleMakerEventInfo' )
59  ntupleMaker.TreeName = 'muons'
60  ntupleMaker.Branches = [ 'EventInfo.runNumber -> runNumber',
61  'EventInfo.eventNumber -> eventNumber', ]
62  algSeq += ntupleMaker
63  ntupleMaker = createAlgorithm( 'CP::AsgxAODNTupleMakerAlg', 'NTupleMakerMuons' )
64  ntupleMaker.TreeName = 'muons'
65  ntupleMaker.Branches = [ 'AnalysisMuons_NOSYS.eta -> mu_eta',
66  'AnalysisMuons_NOSYS.phi -> mu_phi',
67  'AnalysisMuons_%SYS%.pt -> mu_%SYS%_pt', ]
68  if dataType != 'data':
69  ntupleMaker.Branches += [ 'AnalysisMuons_%SYS%.muon_effSF_tight_%SYS% -> mu_%SYS%_effSF' ]
70  ntupleMaker.OutputLevel = 2 # For output validation
71  algSeq += ntupleMaker
72  treeFiller = createAlgorithm( 'CP::TreeFillerAlg', 'TreeFiller' )
73  treeFiller.TreeName = 'muons'
74  algSeq += treeFiller
75 
76  return algSeq
python.AlgSequence.AlgSequence
AlgSequence
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py:7
python.MuonAnalysisAlgorithmsTest.makeSequence
def makeSequence(dataType)
Definition: MuonAnalysisAlgorithmsTest.py:9
python.DualUseConfig.createService
def createService(typeName, serviceName, sequence=None)
Definition: DualUseConfig.py:127
python.DualUseConfig.createAlgorithm
def createAlgorithm(typeName, instanceName)
Definition: DualUseConfig.py:56
python.AsgAnalysisAlgorithmsTest.pileupConfigFiles
def pileupConfigFiles(dataType)
Definition: AsgAnalysisAlgorithmsTest.py:238
python.MuonAnalysisSequence.makeMuonAnalysisSequence
def makeMuonAnalysisSequence(dataType, workingPoint, deepCopyOutput=False, shallowViewOutput=True, postfix='', ptSelectionOutput=False, trackSelection=True, maxEta=2.7, qualitySelectionOutput=True, enableCutflow=False, enableKinematicHistograms=False, isRun3Geo=False, defineSystObjectLinks=False)
Definition: MuonAnalysisSequence.py:8
python.PileupAnalysisSequence.makePileupAnalysisSequence
def makePileupAnalysisSequence(dataType, campaign=None, files=None, useDefaultConfig=False, userLumicalcFiles=None, userPileupConfigs=None)
Definition: PileupAnalysisSequence.py:12