85 def addArguments(self):
86 """
87 This function allows to add arguments for parser_args() function
88 """
89
90
91 tableMakerProcessSelections = {
92 "Full": "Build full DQ skimmed data model, w/o centrality",
93 "FullWithCov": "Build full DQ skimmed data model, w/ track and fwdtrack covariance tables",
94 "FullWithCent": "Build full DQ skimmed data model, w/ centrality",
95 "BarrelOnly": "Build barrel-only DQ skimmed data model, w/o centrality",
96 "BarrelOnlyWithCov": "Build barrel-only DQ skimmed data model, w/ track cov matrix",
97 "BarrelOnlyWithV0Bits": "Build full DQ skimmed data model, w/o centrality, w/ V0Bits",
98 "BarrelOnlyWithEventFilter": "Build full DQ skimmed data model, w/o centrality, w/ event filter",
99 "BarrelOnlyWithQvector": "Build full DQ skimmed data model, w/ centrality, w/ q vector",
100 "BarrelOnlyWithCent": "Build barrel-only DQ skimmed data model, w/ centrality",
101 "MuonOnly": "Build muon-only DQ skimmed data model",
102 "MuonOnlyWithCov": "Build muon-only DQ skimmed data model, w/ muon cov matrix",
103 "MuonOnlyWithCent": "Build muon-only DQ skimmed data model, w/ centrality",
104 "MuonOnlyWithFilter": "Build muon-only DQ skimmed data model, w/ event filter",
105 "MuonOnlyWithQvector": "Build muon-only DQ skimmed data model, w/ q vector",
106 "OnlyBCs": "Analyze the BCs to store sampled lumi",
107 }
108 tableMakerProcessSelectionsList = []
109 for k, v in tableMakerProcessSelections.items():
110 tableMakerProcessSelectionsList.append(k)
111
112 booleanSelections = ["true", "false"]
113
114
115 allAnalysisCuts, allMCSignals, allSels, allMixing = DQLibGetter.getAnalysisSelections(self)
116
117
118
119
120 groupTableMakerConfigs = self.parserTableMaker.add_argument_group(title = "Data processor options: table-maker")
121 groupTableMakerConfigs.add_argument(
122 "--cfgEventCuts", help = "Space separated list of event cuts", nargs = "*", action = "store", type = str,
123 metavar = "CFGEVENTCUTS", choices = allAnalysisCuts,
124 ).completer = ChoicesCompleterList(allAnalysisCuts)
125 groupTableMakerConfigs.add_argument(
126 "--cfgBarrelTrackCuts", help = " Space separated list of barrel track cuts", nargs = "*", action = "store", type = str,
127 metavar = "CFGBARRELTRACKCUTS", choices = allAnalysisCuts,
128 ).completer = ChoicesCompleterList(allAnalysisCuts)
129 groupTableMakerConfigs.add_argument(
130 "--cfgMuonCuts", help = "Space separated list of muon cuts in table-maker", action = "store", nargs = "*", type = str,
131 metavar = "CFGMUONCUTS", choices = allAnalysisCuts,
132 ).completer = ChoicesCompleterList(allAnalysisCuts)
133 groupTableMakerConfigs.add_argument("--cfgBarrelLowPt", help = "Low pt cut for tracks in the barrel", action = "store", type = str)
134 groupTableMakerConfigs.add_argument("--cfgMuonLowPt", help = "Low pt cut for muons", action = "store", type = str)
135 groupTableMakerConfigs.add_argument(
136 "--cfgNoQA", help = "If true, no QA histograms", action = "store", type = str.lower, choices = booleanSelections,
137 ).completer = ChoicesCompleter(booleanSelections)
138 groupTableMakerConfigs.add_argument(
139 "--cfgDetailedQA", help = "If true, include more QA histograms (BeforeCuts classes and more)", action = "store",
140 type = str.lower, choices = booleanSelections,
141 ).completer = ChoicesCompleter(booleanSelections)
142
143 groupTableMakerConfigs.add_argument("--cfgMinTpcSignal", help = "Minimum TPC signal", action = "store", type = str)
144 groupTableMakerConfigs.add_argument("--cfgMaxTpcSignal", help = "Maximum TPC signal", action = "store", type = str)
145
146 groupProcessTableMaker = self.parserTableMaker.add_argument_group(title = "Data processor options: table-maker")
147 groupProcessTableMaker.add_argument(
148 "--process", help = "Process Selection options for tableMaker/tableMakerMC Data Processing and Skimming", action = "store",
149 type = str, nargs = "*", metavar = "PROCESS", choices = tableMakerProcessSelectionsList,
150 ).completer = ChoicesCompleterList(tableMakerProcessSelectionsList)
151 for key, value in tableMakerProcessSelections.items():
152 groupProcessTableMaker.add_argument(key, help = value, action = "none")
153
154
155 groupDQTrackBarrelTask = self.parserTableMaker.add_argument_group(title = "Data processor options: d-q-track barrel-task")
156 groupDQTrackBarrelTask.add_argument(
157 "--isBarrelSelectionTiny",
158 help = "Run barrel track selection instead of normal(process func. for barrel selection must be true)", action = "store",
159 type = str.lower, choices = booleanSelections,
160 ).completer = ChoicesCompleter(booleanSelections)
161
162
163 groupDQMuonsSelection = self.parserTableMaker.add_argument_group(title = "Data processor options: d-q muons-selection")
164 groupDQMuonsSelection.add_argument(
165 "--cfgMuonsCuts", help = "Space separated list of ADDITIONAL muon track cuts", action = "store", nargs = "*", type = str,
166 metavar = "CFGMUONSCUT", choices = allAnalysisCuts,
167 ).completer = ChoicesCompleterList(allAnalysisCuts)
168
169
170 groupDQFilterPP = self.parserTableMaker.add_argument_group(title = "Data processor options: d-q-filter-p-p-task")
171 groupDQFilterPP.add_argument(
172 "--cfgBarrelSels",
173 help = "Configure Barrel Selection <track-cut>:[<pair-cut>]:<n>,[<track-cut>:[<pair-cut>]:<n>],... | example jpsiO2MCdebugCuts2::1 ",
174 action = "store", type = str, nargs = "*", metavar = "CFGBARRELSELS", choices = allSels,
175 ).completer = ChoicesCompleterList(allSels)
176 groupDQFilterPP.add_argument(
177 "--cfgMuonSels", help = "Configure Muon Selection <muon-cut>:[<pair-cut>]:<n> example muonQualityCuts:pairNoCut:1",
178 action = "store", type = str, nargs = "*", metavar = "CFGMUONSELS", choices = allSels,
179 ).completer = ChoicesCompleterList(allSels)
180 groupDQFilterPP.add_argument(
181 "--isFilterPPTiny", help = "Run filter tiny task instead of normal (processFilterPP must be true) ", action = "store",
182 type = str.lower, choices = booleanSelections,
183 ).completer = ChoicesCompleter(booleanSelections)
184
185
186 groupAnalysisQvector = self.parserTableMaker.add_argument_group(title = "Data processor options: analysis-qvector")
187 groupAnalysisQvector.add_argument(
188 "--cfgCutPtMin", help = "Minimal pT for tracks", action = "store", type = str, metavar = "CFGCUTPTMIN",
189 )
190 groupAnalysisQvector.add_argument(
191 "--cfgCutPtMax", help = "Maximal pT for tracks", action = "store", type = str, metavar = "CFGCUTPTMAX",
192 )
193 groupAnalysisQvector.add_argument(
194 "--cfgCutEta", help = "Eta range for tracks", action = "store", type = str, metavar = "CFGCUTETA",
195 )
196 groupAnalysisQvector.add_argument(
197 "--cfgEtaLimit", help = "Eta gap separation, only if using subEvents", action = "store", type = str, metavar = "CFGETALIMIT",
198 )
199 groupAnalysisQvector.add_argument(
200 "--cfgNPow", help = "Power of weights for Q vector", action = "store", type = str, metavar = "CFGNPOW",
201 )
202 groupAnalysisQvector.add_argument("--cfgEfficiency", help = "CCDB path to efficiency object", action = "store", type = str)
203 groupAnalysisQvector.add_argument("--cfgAcceptance", help = "CCDB path to acceptance object", action = "store", type = str)
204
205
206 groupQASelections = self.parserTableMaker.add_argument_group(
207 title = "Data processor options: d-q-barrel-track-selection-task, d-q-muons-selection, d-q-event-selection-task, d-q-filter-p-p-task, analysis-qvector"
208 )
209 groupQASelections.add_argument(
210 "--cfgWithQA", help = "If true, fill QA histograms", action = "store", type = str.lower, choices = booleanSelections,
211 ).completer = ChoicesCompleter(booleanSelections)
212
213
214 groupCoreSelections = self.parserTableMaker.add_argument_group(title = "Core configurations that must be configured")
215 groupCoreSelections.add_argument("-runData", help = "Run over Data", action = "store_true", default = True)
216