57 def addArguments(self):
58 """
59 This function allows to add arguments for parser_args() function
60 """
61
62 readerPath = "configs/readerConfiguration_reducedEvent.json"
63 writerPath = "configs/writerConfiguration_dileptons.json"
64
65
66 analysisSelections = {
67 "eventSelection": "Run event selection on DQ skimmed events",
68 "muonSelection": "Run muon selection on DQ skimmed muons",
69 "trackSelection": "Run barrel track selection on DQ skimmed tracks",
70 "eventMixing": "Run mixing on skimmed tracks based muon and track selections",
71 "eventMixingVn": "Run vn mixing on skimmed tracks based muon and track selections",
72 "sameEventPairing": "Run same event pairing selection on DQ skimmed data",
73 "dileptonHadron": "Run dilepton-hadron pairing, using skimmed data",
74 }
75 analysisSelectionsList = []
76 for k, v in analysisSelections.items():
77 analysisSelectionsList.append(k)
78
79 sameEventPairingProcessSelections = {
80 "JpsiToEE": "Run electron-electron pairing, with skimmed tracks",
81 "JpsiToMuMu": "Run muon-muon pairing, with skimmed muons",
82 "JpsiToMuMuVertexing": "Run muon-muon pairing and vertexing, with skimmed muons",
83 "VnJpsiToEE": "Run barrel-barrel vn mixing on skimmed tracks",
84 "VnJpsiToMuMu": "Run muon-muon vn mixing on skimmed tracks",
85 "ElectronMuon": "Run electron-muon pairing, with skimmed tracks/muons",
86 "All": "Run all types of pairing, with skimmed tracks/muons",
87 }
88 sameEventPairingProcessSelectionsList = []
89 for k, v in sameEventPairingProcessSelections.items():
90 sameEventPairingProcessSelectionsList.append(k)
91
92 booleanSelections = ["true", "false"]
93
94 mixingSelections = {
95 "Barrel": "Run barrel-barrel mixing on skimmed tracks",
96 "Muon": "Run muon-muon mixing on skimmed muons",
97 "BarrelMuon": "Run barrel-muon mixing on skimmed tracks/muons",
98 "BarrelVn": "Run barrel-barrel vn mixing on skimmed tracks",
99 "MuonVn": "Run muon-muon vn mixing on skimmed tracks",
100 }
101 mixingSelectionsList = []
102 for k, v in mixingSelections.items():
103 mixingSelectionsList.append(k)
104
105
106 allAnalysisCuts, allMCSignals, allSels, allMixing = DQLibGetter.getAnalysisSelections(self)
107
108
109
110
111 groupAnalysisSelections = self.parserTableReader.add_argument_group(
112 title = "Data processor options: analysis-event-selection, analysis-muon-selection, analysis-track-selection, analysis-event-mixing, analysis-dilepton-hadron"
113 )
114 groupAnalysisSelections.add_argument(
115 "--analysis", help = "Skimmed process selections for Data Analysis", action = "store", nargs = "*", type = str,
116 metavar = "ANALYSIS", choices = analysisSelectionsList,
117 ).completer = ChoicesCompleterList(analysisSelectionsList)
118
119 for key, value in analysisSelections.items():
120 groupAnalysisSelections.add_argument(key, help = value, action = "none")
121
122
123 groupProcessSEPSelections = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-same-event-pairing")
124 groupProcessSEPSelections.add_argument(
125 "--process", help = "Skimmed process selections for analysis-same-event-pairing task", action = "store", nargs = "*",
126 type = str, metavar = "PROCESS", choices = sameEventPairingProcessSelectionsList,
127 ).completer = ChoicesCompleterList(sameEventPairingProcessSelectionsList)
128 groupProcess = self.parserTableReader.add_argument_group(
129 title = "Choice List for analysis-same-event-pairing task Process options (when a value added to parameter, processSkimmed value is converted from false to true)"
130 )
131
132 for key, value in sameEventPairingProcessSelections.items():
133 groupProcess.add_argument(key, help = value, action = "none")
134
135
136 groupAnalysisEventMixing = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-event-mixing")
137 groupAnalysisEventMixing.add_argument(
138 "--mixing", help = "Skimmed process selections for Event Mixing manually", nargs = "*", action = "store", type = str,
139 choices = mixingSelectionsList,
140 ).completer = ChoicesCompleterList(mixingSelectionsList)
141
142
143 groupQASelections = self.parserTableReader.add_argument_group(
144 title = "Data processor options: analysis-event-selection, analysis-muon-selection, analysis-track-selection, analysis-event-mixing"
145 )
146 groupQASelections.add_argument(
147 "--cfgQA", help = "If true, fill QA histograms", action = "store", type = str.lower, choices = booleanSelections,
148 ).completer = ChoicesCompleter(booleanSelections)
149
150
151 groupAnalysisEventSelection = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-event-selection")
152 groupAnalysisEventSelection.add_argument(
153 "--cfgMixingVars", help = "Mixing configs separated by a space", nargs = "*", action = "store", type = str,
154 metavar = "CFGMIXINGVARS", choices = allMixing,
155 ).completer = ChoicesCompleterList(allMixing)
156 groupAnalysisEventSelection.add_argument(
157 "--cfgEventCuts", help = "Space separated list of event cuts", nargs = "*", action = "store", type = str,
158 metavar = "CFGEVENTCUTS", choices = allAnalysisCuts,
159 ).completer = ChoicesCompleterList(allAnalysisCuts)
160
161
162 groupAnalysisMuonSelection = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-muon-selection")
163 groupAnalysisMuonSelection.add_argument(
164 "--cfgMuonCuts", help = "Space separated list of muon cuts", nargs = "*", action = "store", type = str, metavar = "CFGMUONCUTS",
165 choices = allAnalysisCuts,
166 ).completer = ChoicesCompleterList(allAnalysisCuts)
167
168
169 groupAnalysisTrackSelection = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-track-selection")
170 groupAnalysisTrackSelection.add_argument(
171 "--cfgTrackCuts", help = "Space separated list of barrel track cuts", nargs = "*", action = "store", type = str,
172 metavar = "CFGTRACKCUTS", choices = allAnalysisCuts,
173 ).completer = ChoicesCompleterList(allAnalysisCuts)
174
175
176 groupAnalysisDileptonHadron = self.parserTableReader.add_argument_group(title = "Data processor options: analysis-dilepton-hadron")
177 groupAnalysisDileptonHadron.add_argument(
178 "--cfgLeptonCuts", help = "Space separated list of barrel track cuts", nargs = "*", action = "store", type = str,
179 metavar = "CFGLEPTONCUTS", choices = allAnalysisCuts,
180 ).completer = ChoicesCompleterList(allAnalysisCuts)
181
182
183 groupDPLReader = self.parserTableReader.add_argument_group(
184 title = "Data processor options: internal-dpl-aod-reader, internal-dpl-aod-writer"
185 )
186 groupDPLReader.add_argument(
187 "--reader",
188 help = "Reader config JSON with path. For Standart Analysis use as default, for dilepton analysis change to dilepton JSON config file",
189 action = "store", default = readerPath, type = str
190 )
191 groupDPLReader.add_argument(
192 "--writer", help = "Argument for producing dileptonAOD.root. Set false for disable", action = "store", default = writerPath,
193 type = str
194 )
195