ATLAS Offline Software
PhysDESDM_SmpMs.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2 
3 
4 if len(primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames) == 0:
5  if rec.triggerStream() == "Egamma":
6  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = primRPVLLDESDM.SmpMs_triggerFilterFlags.EgammaTriggerNames
7  elif rec.triggerStream() == "JetTauEtmiss":
8  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = primRPVLLDESDM.SmpMs_triggerFilterFlags.JetTauEtmissTriggerNames
9  elif rec.triggerStream() == "Muons":
10  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = primRPVLLDESDM.SmpMs_triggerFilterFlags.MuonsTriggerNames
11  elif rec.triggerStream() == "": # for MC the string will be empty, but we want to use all of the triggers
12  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = primRPVLLDESDM.SmpMs_triggerFilterFlags.EgammaTriggerNames
13  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames += primRPVLLDESDM.SmpMs_triggerFilterFlags.JetTauEtmissTriggerNames
14  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames += primRPVLLDESDM.SmpMs_triggerFilterFlags.MuonsTriggerNames
15  else:
16  primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = ["dummy"] # back-up, to prevent empty-string failure in test jobs if no triggers used
17 
18 # get rid of potential doubles in the trigger lists, since attempting to add identical algs generates an ERROR
19 primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames = list(set(primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames))
20 
21 triggerFilterNames=[]
22 
23 from PrimaryDPDMaker.TriggerFilter import TriggerFilter
24 for trigName in primRPVLLDESDM.SmpMs_triggerFilterFlags.TriggerNames:
25  TriggerFilterName = "SmpMs_TriggerFilter_"+trigName
26  topSequence += TriggerFilter( TriggerFilterName,
27  trigger = trigName )
28  triggerFilterNames.append( TriggerFilterName )
29 
30 # Create a combined filter by ORing together all the trigger filters
31 combinedTriggerFilterName = "SmpMs_CombinedTriggerFilter"
32 topSequence += LogicalFilterCombiner( combinedTriggerFilterName )
33 triggerFilterCounter = 0
34 cmdstring = ""
35 for triggerFilterName in triggerFilterNames :
36  if triggerFilterCounter > 0 :
37  cmdstring += " or "
38  cmdstring += triggerFilterName
39  triggerFilterCounter += 1
40 topSequence.SmpMs_CombinedTriggerFilter.cmdstring = cmdstring
41 filtersToBookkeep+=["SmpMs_CombinedTriggerFilter"]
42 
43 offlineObjectFilterNames=[]
44 
45 
46 
47 from EventUtils.EventUtilsConf import CutAlg
48 
49 
50 muonFilterName = 'SmpMs_MuonFilter'
51 cutString="count( Muons.pt > "
52 cutString+=str(primRPVLLDESDM.DV_muonFilterFlags.cutEtMin)
53 cutString+=" ) > 1"
54 
55 
56 muonFilter = CutAlg(muonFilterName,
57  Cut=cutString)
58 offlineObjectFilterNames.append( muonFilterName )
59 topSequence+=muonFilter
60 
61 
62 
63 
64 combinedOfflineFilterName = "SmpMs_CombinedOfflineFilter"
65 topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
66 
67 offlineFilterCounter = 0
68 cmdstring = ""
69 for offlineFilterName in offlineObjectFilterNames :
70  if offlineFilterCounter > 0 :
71  cmdstring += " or "
72  cmdstring += offlineFilterName
73  offlineFilterCounter += 1
74 topSequence.SmpMs_CombinedOfflineFilter.cmdstring=cmdstring
75 filtersToBookkeep+=["SmpMs_CombinedOfflineFilter"]
76 
77 
78 
79 SmpMsCombinedFilter=LogicalFilterCombiner("SmpMsCombinedFilter")
80 topSequence+=SmpMsCombinedFilter
81 
82 topSequence.SmpMsCombinedFilter.cmdstring="SmpMs_CombinedTriggerFilter and SmpMs_CombinedOfflineFilter"
83 
84 
85 
86 if topCmdString.__len__() > 0:
87  topCmdString+=" or "
88 topCmdString+="SmpMsCombinedFilter"
89 
90 filtersToBookkeep+=["SmpMsCombinedFilter"]
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
str
Definition: BTagTrackIpAccessor.cxx:11