138def getConfigurationFiles(campaign=None, dsid=None, data_type=None, files=None, useDefaultConfig=False):
139
140 default_directory = 'dev/PileupReweighting/share'
141 configuration_files = []
142
143 if files is not None and (campaign is None or dsid is None or data_type is None):
144 if campaign is None:
145 campaign = getMCCampaign(files)
146
147 if dsid is None or data_type is None:
148 from AthenaConfiguration.AutoConfigFlags import GetFileMD
149 metadata = GetFileMD(files)
150 if dsid is None:
151 dsid = str(metadata.get('mc_channel_number', 0))
152 if data_type is None:
153 simulation_flavour = GetFileMD(files).
get(
'Simulator',
'')
154 if not simulation_flavour:
155 simulation_flavour = GetFileMD(files).
get(
'SimulationFlavour',
'')
156 data_type = DataType.FullSim if (not simulation_flavour or 'FullG4' in simulation_flavour) else DataType.FastSim
157
158
159 if data_type is DataType.Data:
160 raise ValueError('Data is not supported')
161
162 if data_type is DataType.FullSim:
163 simulation_type = 'FS'
164 elif data_type is DataType.FastSim:
165 simulation_type = 'AF3'
166 else:
167 raise ValueError(f'Invalid data_type {data_type}')
168
169 configuration_files = actualMuFiles(campaign)
170 if useDefaultConfig:
171 configuration_files += defaultConfigFiles(campaign)
172 return configuration_files
173
174 config = f'{default_directory}/DSID{dsid[:3]}xxx/pileup_{campaign.value}_dsid{dsid}_{simulation_type}.root'
175 from PathResolver import PathResolver
177 return []
178 else:
179 configuration_files.append(config)
180 return configuration_files
static std::string FindCalibFile(const std::string &logical_file_name)
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)