11 runPrimaryVertexSelection = True,
12 runEventCleaning = False,
13 minTracksPerVertex = 2,
15 userSelectionFlags = ['DFCommonJets_eventClean_LooseBad'],
16 userInvertFlags = [0]):
17 """Create a basic event selection analysis algorithm sequence
20 dataType -- The data type to run on ("data", "mc" or "afii")
21 runPrimaryVertexSelection -- whether to run primary vertex selection
22 runEventCleaning -- wether to run event cleaning
23 userGRLFiles -- a list of GRL files to select data from
26 if dataType
not in [
"data",
"mc",
"afii"] :
27 raise ValueError (
"invalid data type: " + dataType)
30 seq = AnaAlgSequence(
"EventSelectionAnalysisSequence" )
32 if dataType ==
'data':
33 grlFiles = userGRLFiles[:]
38 alg.Tool.GoodRunsListVec = grlFiles
40 seq.append( alg, inputPropName =
None )
43 if runPrimaryVertexSelection:
45 'PrimaryVertexSelectorAlg' )
46 alg.VertexContainer =
'PrimaryVertices'
48 alg.MinTracks = minTracksPerVertex
50 seq.append( alg, inputPropName =
None )
54 if dataType ==
'data':
55 alg =
createAlgorithm(
'CP::EventStatusSelectionAlg',
'EventStatusSelectionAlg' )
56 alg.FilterKey =
'EventErrorState'
57 alg.FilterDescription =
'selecting events without any error state set'
59 seq.append( alg, inputPropName =
None )
61 alg =
createAlgorithm(
'CP::EventFlagSelectionAlg',
'EventFlagSelectionAlg' )
62 alg.FilterKey =
'JetCleaning'
63 alg.selectionFlags = [f
'{sel},as_char' for sel
in userSelectionFlags]
64 alg.invertFlags = userInvertFlags
65 alg.FilterDescription = f
"selecting events passing: {','.join(alg.selectionFlags)}"
67 seq.append( alg, inputPropName =
None )