144def CombineConfigFiles(fullFileName,combinedFileName,combinedRootFileName,componentNames):
145 print "Creating reduced config file..."
146
147
148 inputFile = open(fullFileName,"r")
149 outputFile = open(combinedFileName,"w")
150
151
152 reductionString = ""
153 if "GlobalReduction" in combinedFileName:
154 reductionString = "Reduction was applied globally"
155 elif "CategoryReduction" in combinedFileName:
156 reductionString = "Reduction was applied within each category"
157 else:
158 reductionString = "Unknown type of reduction"
159
160
161 now = datetime.datetime.now()
162 outputFile.write("\n#######################################\n#\n")
163 outputFile.write("# JESProvider Input Settings\n")
164 outputFile.write("# Reduced set of nuisance parameters from final 2011 iteration of the in-situ JES\n")
165 outputFile.write("# %s\n"%(reductionString))
166
167 outputFile.write("# %s %d, %d\n#\n"%(calendar.month_name[now.month],now.day,now.year))
168
169 outputFile.write("#\n#######################################\n\n")
170
171
172 outputFile.write("JESUncertaintyRootFile: %s\n"%(combinedRootFileName))
173
174
175 outputFile.write("\n#######################################\n#\n")
176 outputFile.write("# Settings for JES Components\n")
177 outputFile.write("#\n#######################################\n\n")
178
179
180
181 compNamesSanitized = []
182 for aName in componentNames:
183 sanitizedName = sanitizeComponentName(aName)
184 if sanitizedName not in compNamesSanitized:
185 compNamesSanitized.append(sanitizedName)
186
187 i=1
188 for aName in compNamesSanitized:
189 outputFile.write("JESComponent.%d.Desc: %s\n"%(i,getDescFromName(aName)))
190 outputFile.write("JESComponent.%d.Name: %s\n"%(i,aName))
191 outputFile.write("JESComponent.%d.Type: %s\n"%(i,getCategoryFromName(aName)))
192 outputFile.write("\n")
193 i = i + 1
194
195
196
197 outputFile.write("\n#######################################\n\n")
198
199
200
201 inputFile = open(fullFileName,"r")
202 nextLine = readSanitizedLine(inputFile)
203 currLine = ""
204 previousLine = ""
205 while (nextLine != ""):
206 if "Special" not in nextLine and "EtaIntercal" not in currLine:
207
208 previousLine = currLine
209 currLine = nextLine
210 nextLine = readSanitizedLine(inputFile)
211 else:
212
213 outputFile.write(replaceComponentNumber(previousLine,i))
214 outputFile.write(replaceComponentNumber(currLine,i))
215 outputFile.write(replaceComponentNumber(nextLine,i))
216
217
218 previousLine = currLine
219 currLine = nextLine
220 nextLine = readSanitizedLine(inputFile)
221
222
223 if ("SubComponent" in nextLine):
224 outputFile.write(replaceComponentNumber(nextLine,i))
225 previousLine = currLine
226 currLine = nextLine
227 nextLine = readSanitizedLine(inputFile)
228
229 outputFile.write("\n")
230 i = i + 1
231
232
233 outputFile.write("\n#\n#######################################\n")
234
235
236 inputFile.close()
237 outputFile.close()
238 print "Created config file: %s\n"%(combinedFileName)
239
240