13 result=ComponentAccumulator()
15 print(
"mergeDBCfg",len(InputSQLiteFiles),
" SQLite files: ",InputSQLiteFiles)
16 print(len(InputKeys),
" InputKeys: ",InputKeys)
19 if not flags.LArCalib.isSC: GroupingType =
"ExtendedSubDetector"
20 else: GroupingType =
"SuperCells"
22 if ( flags.LArCalib.Output.POOLFile ):
23 if os.path.exists(flags.LArCalib.Output.POOLFile):
24 os.remove(flags.LArCalib.Output.POOLFile)
28 print(
"Working for: ",key)
32 if 'Pedestal' == key
or 'PhysWave' == key
or 'MphysOverMcal' == key
or 'Ramp' == key
or 'Params' in key:
34 if 'Pedestal' == key
or 'PhysWave' == key
or 'CaliWave' or 'MphysOverMcal' == key
or 'Ramp' == key
or 'Params' in key:
39 KeyInput=
'LArAutoCorr'
48 ofcphyskeytmp = key.split(
"OFCPhys")[1]
49 if 'Mu' in ofcphyskeytmp:
50 ofcphyskey=ofcphyskeytmp.replace(
"Mu",
"")
52 ofcphyskey=ofcphyskeytmp
57 shapekey = key.split(
"Shape")[1]
63 if [i
for i
in flags._flagdict.keys()
if FlagInput
in i]:
65 Folder = flags._get(
'LArCalib.'+FlagInput+
'.Folder')
66 except Exception
as e:
68 print(flags._flagdict)
71 print(
'No folder in flags for '+FlagInput)
72 print(flags._flagdict.keys())
75 if shapekey
is not None:
76 if Folder.endswith(
"/"):
81 if ofcphyskey
is not None and ofcphyskey !=
"":
82 print(
"Folder: ",Folder,
" ofcphyskey: ",ofcphyskey)
83 if "4samples" in Folder:
84 Folder = Folder.replace(
"4samples", ofcphyskey)
85 elif Folder.endswith(
"/"):
88 Folder+=
"/"+ofcphyskey
90 if "OFCPhys" in FlagInput:
91 print(
"Folder: ",Folder)
93 from PyCool
import cool
94 dbSvc=cool.DatabaseSvcFactory.databaseService()
97 db=dbSvc.openDatabase(db_string)
98 except Exception
as e:
99 print (
'Problem opening database',e)
102 cool_folder=db.getFolder(Folder)
103 tags = [ x
for x
in cool_folder.listTags() ]
105 TagSpec = str(tags[0])
107 if flags.LArCalib.OFC.Ncoll > 0
or 'Mu' in key:
108 TagSpec = [ str(tag)
for tag
in tags
if "-mu-" in str(tag)][0]
110 TagSpec = [ str(tag)
for tag
in tags
if "-mu-" not in str(tag)][0]
112 from LArCalibProcessing.utils
import FolderTagResolver
as FolderTagResover
113 FolderTagResover._globalTag=flags.IOVDb.GlobalTag
117 FolderTag = rs.getFolderTagSuffix(Folder)
120 from LArCalibProcessing.LArCalibConfigFlags
import LArCalibFolderTag
121 TagSpec = LArCalibFolderTag(Folder,FolderTag)
124 if 'Wave' in KeyInput:
125 OutputObjectSpec = KeyInput+
"Container#"+KeyOutput+
"#"+Folder
127 OutputObjectSpec = KeyInput+
"Complete#"+KeyOutput+
"#"+Folder
128 OutputObjectSpecTag = TagSpec
130 print(
"**",KeyInput,FlagInput,
"folder **",Folder)
131 print(
"** TagSpec: ",TagSpec)
132 print(
"** keyOutput: ",KeyOutput)
138 for sqf
in InputSQLiteFiles:
139 thiskey = KeyInput+str(InputSQLiteFiles.index(sqf))
141 if 'PhysAutoCorr' in key: thiskey=
'Phys'+thiskey
143 if 'OFC' in key
and 'Mu' in key:
145 if 'OFC' in key
and 'Cali' in key:
148 inkeys.append(thiskey)
149 if 'Wave' in KeyInput:
150 inobjs.append(KeyInput+
"Container#"+thiskey)
152 inobjs.append(KeyInput+
"Complete#"+thiskey)
154 if 'Wave' in KeyInput
or 'Params' in KeyInput:
155 result.merge(addFolders(flags,Folder,tag=TagSpec,detDb=sqf,modifiers=
"<key>"+thiskey+
"</key>"))
157 result.merge(addFolders(flags,Folder,tag=TagSpec,detDb=sqf,modifiers=
"<key>"+thiskey+
"</key>", className=KeyInput+
"Complete"))
162 if 'Wave' in KeyInput:
163 result.addCondAlgo(CompFactory.getComp(
'ForceLoadCondObj')(KeyOutput,ObjectList=inobjs))
164 result.addCondAlgo(CompFactory.getComp(
'LArConditionsMergerAlg<LArDAC2uAComplete,'+KeyInput+
'Container>')(key+
"Merger",
165 GroupingType = GroupingType, WriteKey = KeyOutput, DetStoreReadKeys = inkeys))
166 elif 'Params' in KeyInput:
167 result.addCondAlgo(CompFactory.getComp(
'ForceLoadCondObj')(KeyOutput,ObjectList=inobjs))
168 result.addCondAlgo(CompFactory.getComp(
'LArConditionsMergerAlg<LArDAC2uAComplete,'+KeyInput+
'Complete>')(key+
"Merger",
169 GroupingType = GroupingType, WriteKey = KeyOutput, DetStoreReadKeys = inkeys))
171 result.addCondAlgo(CompFactory.getComp(
'LArConditionsMergerAlg<'+KeyInput+
'Complete, LArPhysWaveContainer>')(key+
"Merger",
172 GroupingType = GroupingType, WriteKey = KeyOutput, ReadKeys = inkeys))
174 if ( flags.LArCalib.Output.POOLFile ):
176 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
177 result.merge(OutputConditionsAlgCfg(flags,name=
"OutputConditionsAlg"+KeyInput, outputFile=flags.LArCalib.Output.POOLFile,
178 ObjectList=[OutputObjectSpec], IOVTagList=[OutputObjectSpecTag],
179 Run1 = flags.LArCalib.IOVStart, Run2= flags.LArCalib.IOVEnd, WriteIOV=
True))
182 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders =
False))
185 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
186 result.merge(McEventSelectorCfg(flags,
187 RunNumber = flags.LArCalib.Input.RunNumbers[0],
190 InitialTimeStamp = 0,
191 TimeStampInterval = 1))
193 result.printConfig(withDetails=
True, printDefaults=
True)