ATLAS Offline Software
Public Member Functions | List of all members
python.EventCleaningConfig.EventCleaningBlock Class Reference
Inheritance diagram for python.EventCleaningConfig.EventCleaningBlock:
Collaboration diagram for python.EventCleaningConfig.EventCleaningBlock:

Public Member Functions

def __init__ (self)
 
def getDefaultGRLs (self, data_year)
 
def makeAlgs (self, config)
 

Detailed Description

the ConfigBlock for event cleaning

Definition at line 8 of file EventCleaningConfig.py.

Constructor & Destructor Documentation

◆ __init__()

def python.EventCleaningConfig.EventCleaningBlock.__init__ (   self)

Definition at line 11 of file EventCleaningConfig.py.

11  def __init__ (self) :
12  super (EventCleaningBlock, self).__init__ ()
13  self.addOption ('runPrimaryVertexSelection', True, type=bool,
14  info="whether to run primary vertex selection. The default is True.")
15  self.addOption ('runEventCleaning', False, type=bool,
16  info="whether to run event cleaning (sets up an instance of "
17  "CP::EventFlagSelectionAlg). The default is False.")
18  self.addOption ('runGRL', True, type=bool,
19  info="whether to run GRL decoration/selection. The default is True.")
20  self.addOption ('userGRLFiles', [], type=None,
21  info="a list of GRL files (list of strings) to select data from. "
22  "The default is [] (empty list).")
23  self.addOption ('minTracksPerVertex', 2, type=int,
24  info="minimum number (integer) of tracks per vertex. The default is 2.")
25  self.addOption ('selectionFlags', ['DFCommonJets_eventClean_LooseBad'], type=None,
26  info="lags (list of strings) to use for jet cleaning. The default is "
27  "['DFCommonJets_eventClean_LooseBad'].")
28  # This is a vector<bool>, so parsing True/False is not handled
29  # in AnalysisBase, but we can evade this with numerical values
30  self.addOption ('invertFlags', [0], type=None,
31  info="list of booleans determining whether to invert the cut of the "
32  "above selectionFlags. The default is [0].")
33  self.addOption ('GRLDict', {}, type=None)
34  self.addOption ('noFilter', False, type=bool,
35  info="do apply event decoration, but do not filter. The default is False, i.e. 'We decorate events but do not filter' ")
36  self.addOption ('useRandomRunNumber', False, type=bool,
37  info="use RandomRunNumber to compute GRL info. Only supported for MC. The default is False")
38 
39  if self.runGRL and self.userGRLFiles:
40  raise ValueError("No userGRLFiles should be specified if runGRL=False")
41 

Member Function Documentation

◆ getDefaultGRLs()

def python.EventCleaningConfig.EventCleaningBlock.getDefaultGRLs (   self,
  data_year 
)
returns a reasonable set of GRLs that should be suited for most analyses 

Definition at line 42 of file EventCleaningConfig.py.

42  def getDefaultGRLs (self, data_year) :
43  """ returns a reasonable set of GRLs that should be suited for most analyses """
44  from GoodRunsLists.GoodRunsListsDictionary import getGoodRunsLists
45  GRLDict = getGoodRunsLists()
46 
47  if data_year == 2015:
48  return GRLDict['GRL2015']
49  elif data_year == 2016:
50  return GRLDict['GRL2016']
51  elif data_year == 2017:
52  return GRLDict['GRL2017_Triggerno17e33prim']
53  elif data_year == 2018:
54  return GRLDict['GRL2018_Triggerno17e33prim']
55  elif data_year == 2022:
56  return GRLDict['GRL2022']
57  elif data_year == 2023:
58  return GRLDict['GRL2023']
59  else:
60  raise ValueError (f"Data year {data_year} is not recognised for automatic GRL retrieval!")
61 

◆ makeAlgs()

def python.EventCleaningConfig.EventCleaningBlock.makeAlgs (   self,
  config 
)

Definition at line 62 of file EventCleaningConfig.py.

62  def makeAlgs (self, config) :
63 
64  # Apply GRL
65  if self.runGRL and (config.dataType() is DataType.Data or self.useRandomRunNumber):
66  if config.dataType() is DataType.Data and self.useRandomRunNumber:
67  raise ValueError ("UseRandomRunNumber is only supported for MC!")
68 
69  if self.noFilter:
70  # here we only decorate the PHYSLITE events with a boolean and don't do any cleaning
71  # Set up the GRL Decoration
72  for GRLDecoratorName,GRLFile in (self.GRLDict).items():
73  alg = config.createAlgorithm( 'GRLSelectorAlg', GRLDecoratorName )
74  config.addPrivateTool( 'Tool', 'GoodRunsListSelectionTool' )
75  alg.Tool.UseRandomRunNumber = self.useRandomRunNumber
76  alg.Tool.GoodRunsListVec = GRLFile
77  alg.noFilter = True
78  alg.grlKey = "EventInfo." + GRLDecoratorName
79  # Using WriteDecorHandle thus no need for addOutputVar
80  else:
81  # Set up the GRL selection:
82  alg = config.createAlgorithm( 'GRLSelectorAlg', 'GRLSelectorAlg' )
83  config.addPrivateTool( 'Tool', 'GoodRunsListSelectionTool' )
84  alg.Tool.UseRandomRunNumber = self.useRandomRunNumber
85  if self.userGRLFiles:
86  alg.Tool.GoodRunsListVec = self.userGRLFiles
87  else:
88  alg.Tool.GoodRunsListVec = self.getDefaultGRLs( config.dataYear() )
89 
90  # Skip events with no primary vertex:
91  if self.runPrimaryVertexSelection:
92  alg = config.createAlgorithm( 'CP::VertexSelectionAlg',
93  'PrimaryVertexSelectorAlg' )
94  alg.VertexContainer = 'PrimaryVertices'
95  alg.MinVertices = 1
96  alg.MinTracks = self.minTracksPerVertex
97 
98  # Set up the event cleaning selection:
99  if self.runEventCleaning:
100  if config.dataType() is DataType.Data:
101  alg = config.createAlgorithm( 'CP::EventStatusSelectionAlg', 'EventStatusSelectionAlg' )
102  alg.FilterKey = 'EventErrorState'
103  alg.FilterDescription = 'selecting events without any error state set'
104 
105  alg = config.createAlgorithm( 'CP::EventFlagSelectionAlg', 'EventFlagSelectionAlg' )
106  alg.FilterKey = 'JetCleaning'
107  alg.selectionFlags = [f'{sel},as_char' for sel in self.selectionFlags]
108  alg.invertFlags = self.invertFlags
109  alg.FilterDescription = f"selecting events passing: {','.join(alg.selectionFlags)}"
110 
111 
112 
113 

The documentation for this class was generated from the following file:
python.GoodRunsListsDictionary.getGoodRunsLists
def getGoodRunsLists()
Definition: GoodRunsListsDictionary.py:3
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18