127def getConfigurationFiles(campaign=None, dsid=None, data_type=None, files=None, useDefaultConfig=False):
128
129 default_directory = 'dev/PileupReweighting/share'
130 configuration_files = []
131
132 if files is not None and (campaign is None or dsid is None or data_type is None):
133 if campaign is None:
134 campaign = getMCCampaign(files)
135
136 if dsid is None or data_type is None:
137 from AthenaConfiguration.AutoConfigFlags import GetFileMD
138 metadata = GetFileMD(files)
139 if dsid is None:
140 dsid = str(metadata.get('mc_channel_number', 0))
141 if data_type is None:
142 simulation_flavour = GetFileMD(files).
get(
'Simulator',
'')
143 if not simulation_flavour:
144 simulation_flavour = GetFileMD(files).
get(
'SimulationFlavour',
'')
145 data_type = DataType.FullSim if (not simulation_flavour or 'FullG4' in simulation_flavour) else DataType.FastSim
146
147
148 if data_type is DataType.Data:
149 raise ValueError('Data is not supported')
150
151 if data_type is DataType.FullSim:
152 simulation_type = 'FS'
153 elif data_type is DataType.FastSim:
154 simulation_type = 'AF3'
155 else:
156 raise ValueError(f'Invalid data_type {data_type}')
157
158 configuration_files = actualMuFiles(campaign)
159 if useDefaultConfig:
160 configuration_files += defaultConfigFiles(campaign)
161 return configuration_files
162
163 config = f'{default_directory}/DSID{dsid[:3]}xxx/pileup_{campaign.value}_dsid{dsid}_{simulation_type}.root'
164 from PathResolver import PathResolver
166 return []
167 else:
168 configuration_files.append(config)
169 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?)