ATLAS Offline Software
PhysDESDM_VH_DV.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.VH_DV_triggerFilterFlags.TriggerNames) == 0:
5  if rec.triggerStream() == "Egamma":
6  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames = primRPVLLDESDM.VH_DV_triggerFilterFlags.EgammaTriggerNames
7  elif rec.triggerStream() == "JetTauEtmiss":
8  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames = primRPVLLDESDM.VH_DV_triggerFilterFlags.JetTauEtmissTriggerNames
9  elif rec.triggerStream() == "Muons":
10  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames = primRPVLLDESDM.VH_DV_triggerFilterFlags.MuonsTriggerNames
11  elif rec.triggerStream() == "": # for MC the string will be empty, but we want to use all of the triggers
12  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames = primRPVLLDESDM.VH_DV_triggerFilterFlags.EgammaTriggerNames
13  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames += primRPVLLDESDM.VH_DV_triggerFilterFlags.JetTauEtmissTriggerNames
14  primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames += primRPVLLDESDM.VH_DV_triggerFilterFlags.MuonsTriggerNames
15  else:
16  primRPVLLDESDM.VH_DV_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.VH_DV_triggerFilterFlags.TriggerNames = list(set(primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames))
20 
21 triggerFilterNames=[]
22 
23 from PrimaryDPDMaker.TriggerFilter import TriggerFilter
24 for trigName in primRPVLLDESDM.VH_DV_triggerFilterFlags.TriggerNames:
25  TriggerFilterName = "VH_DV_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 = "VH_DV_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.VH_DV_CombinedTriggerFilter.cmdstring = cmdstring
41 filtersToBookkeep+=["VH_DV_CombinedTriggerFilter"]
42 
43 
44 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf import FancyJetFilterAlg
45 jetFilterName = "VH_DV_JetFilter"
46 topSequence += FancyJetFilterAlg(jetFilterName)
47 topSequence.VH_DV_JetFilter.cutEtMin=primRPVLLDESDM.VH_DV_jetFilterFlags.jetPtCut
48 topSequence.VH_DV_JetFilter.minNumberPassed=primRPVLLDESDM.VH_DV_jetFilterFlags.nJetPassed
49 topSequence.VH_DV_JetFilter.cutSumPtTrkMax=primRPVLLDESDM.VH_DV_jetFilterFlags.MaxSumPtTrk
50 topSequence.VH_DV_JetFilter.jetCollectionName = "AntiKt4LCTopoJets"
51 filtersToBookkeep+=["VH_DV_JetFilter"]
52 
53 
54 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf import DVMETFilterAlg
55 
56 missingetFilterName = 'VH_DV_MissingEtFilter'
57 topSequence += DVMETFilterAlg(missingetFilterName)
58 topSequence.VH_DV_MissingEtFilter.cutMetMin = primRPVLLDESDM.VH_DV_missingetFilterFlags.cutMetMin
59 
60 filtersToBookkeep+=["VH_DV_MissingEtFilter"]
61 
62 jetMetFilterName = "VH_DV_JetMetFilter"
63 topSequence += LogicalFilterCombiner( jetMetFilterName)
64 topSequence.VH_DV_JetMetFilter.cmdstring = "VH_DV_JetFilter and VH_DV_MissingEtFilter"
65 filtersToBookkeep+=["VH_DV_JetMetFilter"]
66 
67 from EventUtils.EventUtilsConf import CutAlg
68 
69 if rec.triggerStream() == "Muons" or rec.triggerStream() == "":
70  cutString="count( Muons.pt > "
71  cutString+=str(primRPVLLDESDM.VH_DV_muonFilterFlags.cutEtMin)
72  cutString+=" && abs(Muons.eta) < "
73  cutString+=str(primRPVLLDESDM.VH_DV_muonFilterFlags.cutEtaMax)
74  cutString+=" ) > 0"
75  muonFilterName = 'VH_DV_MuonFilter'
76 
77  muonFilter = CutAlg(muonFilterName,
78  Cut=cutString)
79 
80  topSequence+=muonFilter
81 
82 
83  combinedOfflineFilterName = "VH_DV_CombinedMuonsOfflineFilter"
84  topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
85  cmdstring = "VH_DV_MuonFilter and VH_DV_JetMetFilter"
86  topSequence.VH_DV_CombinedMuonsOfflineFilter.cmdstring=cmdstring
87  filtersToBookkeep+=["VH_DV_CombinedMuonsOfflineFilter"]
88 
89 if rec.triggerStream() == "Egamma" or rec.triggerStream() == "":
90 
91  electronFilterName = 'VH_DV_ElectronFilter'
92  cutString="count( "
93  cutString+= primRPVLLDESDM.VH_DV_electronFilterFlags.electronCollectionName
94  cutString+=".pt > "
95  cutString += str(primRPVLLDESDM.VH_DV_electronFilterFlags.cutEtMin)
96  cutString+= " && abs("
97  cutString+= primRPVLLDESDM.VH_DV_electronFilterFlags.electronCollectionName
98  cutString+=".eta) < "
99  cutString+= str(primRPVLLDESDM.VH_DV_electronFilterFlags.cutEtaMax)
100  cutString+=" ) > 0"
101  topSequence += CutAlg(electronFilterName,
102  Cut=cutString)
103  filtersToBookkeep+=["VH_DV_ElectronFilter"]
104 
110 
111 
112  electronFilterName = 'VH_DV_DiElectronFilter'
113  cutString="count( "
114  cutString+= primRPVLLDESDM.VH_DV_DielectronFilterFlags.electronCollectionName
115  cutString+=".pt > "
116  cutString += str(primRPVLLDESDM.VH_DV_DielectronFilterFlags.cutEtMin)
117  cutString+= " && abs("
118  cutString+= primRPVLLDESDM.VH_DV_DielectronFilterFlags.electronCollectionName
119  cutString+=".eta) < "
120  cutString+= str(primRPVLLDESDM.VH_DV_DielectronFilterFlags.cutEtaMax)
121  cutString+=" ) > 1"
122  topSequence += CutAlg(electronFilterName,
123  Cut=cutString)
124  filtersToBookkeep+=["VH_DV_DiElectronFilter"]
125 
126 
133 
134 
135  combinedOfflineFilterName = "VH_DV_CombinedWOfflineFilter"
136  topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
137  cmdstring = "VH_DV_ElectronFilter and VH_DV_JetMetFilter"
138  topSequence.VH_DV_CombinedWOfflineFilter.cmdstring=cmdstring
139  filtersToBookkeep+=[combinedOfflineFilterName]
140 
141  combinedOfflineFilterName = "VH_DV_CombinedZOfflineFilter"
142  topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
143  cmdstring = "VH_DV_DiElectronFilter and VH_DV_JetFilter"
144  topSequence.VH_DV_CombinedZOfflineFilter.cmdstring=cmdstring
145  filtersToBookkeep+=[combinedOfflineFilterName]
146 
147  combinedOfflineFilterName = "VH_DV_CombinedEgammaOfflineFilter"
148  topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
149  cmdstring = "VH_DV_CombinedWOfflineFilter or VH_DV_CombinedZOfflineFilter"
150  topSequence.VH_DV_CombinedEgammaOfflineFilter.cmdstring=cmdstring
151  filtersToBookkeep+=[combinedOfflineFilterName]
152 
153 
154 
155 VH_DVCombinedFilter=LogicalFilterCombiner("VH_DVCombinedFilter")
156 if rec.triggerStream() == "Muons":
157  topSequence+=VH_DVCombinedFilter
158  topSequence.VH_DVCombinedFilter.cmdstring="VH_DV_CombinedTriggerFilter and VH_DV_CombinedMuonsOfflineFilter"
159 elif rec.triggerStream() == "Egamma":
160  topSequence+=VH_DVCombinedFilter
161  topSequence.VH_DVCombinedFilter.cmdstring="VH_DV_CombinedTriggerFilter and VH_DV_CombinedEgammaOfflineFilter"
162 else:
163  combinedOfflineFilterName = "VH_DV_CombinedEgammaMuonsOfflineFilter"
164  topSequence += LogicalFilterCombiner( combinedOfflineFilterName )
165  cmdstring = "VH_DV_CombinedEgammaOfflineFilter or VH_DV_CombinedMuonsOfflineFilter"
166  topSequence.VH_DV_CombinedEgammaMuonsOfflineFilter.cmdstring=cmdstring
167  filtersToBookkeep+=[combinedOfflineFilterName]
168  topSequence+=VH_DVCombinedFilter
169  topSequence.VH_DVCombinedFilter.cmdstring="VH_DV_CombinedTriggerFilter and VH_DV_CombinedEgammaMuonsOfflineFilter"
170 
171 
172 if topCmdString.__len__() > 0:
173  topCmdString+=" or "
174 topCmdString+="VH_DVCombinedFilter"
175 filtersToBookkeep+=["VH_DVCombinedFilter"]
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