Functions | |
def | addCorrToBranch |
def | addHLTRunDataToBranch |
def | addLumiRunDataToBranch |
def | addNormToBranch |
def | addTrgRunDataToBranch |
def | allfillschemes |
def | beamInfoById |
def | bulkInsertHltLSData |
def | bulkInsertLumiLSSummary |
def | bulkInsertTrgLSData |
def | correctionByName |
def | dataentryIdByRun |
def | fillInRange |
def | fillrunMap |
def | fillschemeByRun |
def | fillschemePatternMap |
def | guesscorrIdByName |
LumiDB DML API # # Author: Zhen Xie #. | |
def | guessDataIdByRun |
def | guessDataIdForRange |
def | guessHltDataIdByRunInBranch |
def | guessLumiDataIdByRunInBranch |
def | guessnormIdByContext |
def | guessnormIdByName |
def | guessTrgDataIdByRunInBranch |
def | hltLSById |
def | hltRunById |
def | hlttrgMappingByrun |
def | insertRunSummaryData |
def | insertTrgHltMap |
def | intglumiForRange |
def | latestdataIdByEntry |
def | lumiBXByAlgo |
def | lumicorrById |
def | lumiLSById |
def | luminormById |
def | lumiRunById |
def | lumiRunByIds |
def | mostRecentLumicorrs |
def | mostRecentLuminorms |
def | runList |
def | runsummary |
def | trgLSById |
def | trgRunById |
Variables | |
tuple | branchinfo = (branchid,'DATA') |
tuple | datainfo = revisionDML.createBranch(schema,'DATA','TRUNK',comment='hold data') |
tuple | hltdata = generateDummyData.hlt(schema,20) |
list | hltlsdata = hltdata[2] |
list | hltrundata = [hltdata[0],hltdata[1]] |
tuple | hlttrgmap = generateDummyData.hlttrgmap(schema) |
tuple | latestNorms = revisionDML.latestDataRevisionOfEntry(schema,nameDealer.luminormTableName(),luminormentry_id,normrevlist) |
tuple | latestrevision = revisionDML.latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist) |
tuple | lumidummydata = generateDummyData.lumiSummary(schema,20) |
tuple | lumientry_id = revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),'1211','DATA') |
list | lumilsdata = lumidummydata[1] |
tuple | luminormentry_id = revisionDML.entryInBranch(schema,nameDealer.luminormTableName(),'pp7TeV','NORM') |
list | lumirundata = [lumidummydata[0]] |
string | myconstr = 'oracle://devdb10/cms_xiezhen_dev' |
tuple | normbranchinfo = (normbranchid,'NORM') |
tuple | norminfo = revisionDML.createBranch(schema,'NORM','TRUNK',comment='hold normalization factor') |
tuple | normrevlist = revisionDML.revisionsInBranchName(schema,'NORM') |
tuple | revlist = revisionDML.revisionsInBranchName(schema,'DATA') |
tuple | runsummarydata = generateDummyData.runsummary(schema,'PROTPHYS',3500) |
tuple | schema = session.nominalSchema() |
tuple | session = svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')]) |
tuple | svc = sessionManager.sessionManager(myconstr,authpath='/afs/cern.ch/user/x/xiezhen',debugON=False) |
tuple | tables = lumidbDDL.createTables(schema) |
tuple | trgdata = generateDummyData.trg(schema,20) |
tuple | trgentry_id = revisionDML.entryInBranch(schema,nameDealer.trgdataTableName(),'1222','DATA') |
list | trglsdata = trgdata[3] |
list | trgrundata = [trgdata[0],trgdata[1],trgdata[2]] |
tuple | trunkinfo = revisionDML.createBranch(schema,'TRUNK',None,comment='main') |
def dataDML::addCorrToBranch | ( | schema, | |
corrname, | |||
a1, | |||
optionalcorrdata, | |||
branchinfo | |||
) |
input: branchinfo(corrrevisionid,branchname) optionalcorrdata {'a2':a2,'drift':drif} output: (revision_id,entry_id,data_id)
Definition at line 1782 of file dataDML.py.
01783 : 01784 ''' 01785 input: 01786 branchinfo(corrrevisionid,branchname) 01787 optionalcorrdata {'a2':a2,'drift':drif} 01788 output: 01789 (revision_id,entry_id,data_id) 01790 ''' 01791 a2=1.0 01792 if optionalcorrdata.has_key('a2'): 01793 a2=optionalcorrdata['a2'] 01794 drift=1.0 01795 if optionalcorrdata.has_key('drift'): 01796 drift=optionalcorrdata['drift'] 01797 try: 01798 entry_id=revisionDML.entryInBranch(schema,nameDealer.lumicorrectionsTableName(),corrname,branchinfo[1]) 01799 if entry_id is None: 01800 (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.lumicorrectionsTableName()) 01801 entryinfo=(revision_id,entry_id,corrname,data_id) 01802 revisionDML.addEntry(schema,nameDealer.lumicorrectionsTableName(),entryinfo,branchinfo) 01803 else: 01804 (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.lumicorrectionsTableName() ) 01805 revisionDML.addRevision(schema,nameDealer.lumicorrectionsTableName(),(revision_id,data_id),branchinfo) 01806 tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','A1':'float','A2':'float','DRIFT':'float'} 01807 tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':corrname,'A1':a1,'A2':a2,'DRIFT':drift} 01808 db=dbUtil.dbUtil(schema) 01809 db.insertOneRow(nameDealer.lumicorrectionsTableName(),tabrowDefDict,tabrowValueDict) 01810 return (revision_id,entry_id,data_id) 01811 except : 01812 raise
def dataDML::addHLTRunDataToBranch | ( | schema, | |
runnumber, | |||
hltrundata, | |||
branchinfo | |||
) |
input: hltrundata [pathnameclob(0),datasource(1)] output: (revision_id,entry_id,data_id)
Definition at line 1871 of file dataDML.py.
01872 : 01873 ''' 01874 input: 01875 hltrundata [pathnameclob(0),datasource(1)] 01876 output: 01877 (revision_id,entry_id,data_id) 01878 ''' 01879 try: 01880 pathnames=hltrundata[0] 01881 datasource=hltrundata[1] 01882 npath=len(pathnames.split(',')) 01883 entry_id=revisionDML.entryInBranch(schema,nameDealer.hltdataTableName(),str(runnumber),branchinfo[1]) 01884 if entry_id is None: 01885 (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.hltdataTableName()) 01886 entryinfo=(revision_id,entry_id,str(runnumber),data_id) 01887 revisionDML.addEntry(schema,nameDealer.hltdataTableName(),entryinfo,branchinfo) 01888 else: 01889 (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.hltdataTableName() ) 01890 revisionDML.addRevision(schema,nameDealer.hltdataTableName(),(revision_id,data_id),branchinfo) 01891 tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','RUNNUM':'unsigned int','SOURCE':'string','NPATH':'unsigned int','PATHNAMECLOB':'string'} 01892 tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'RUNNUM':int(runnumber),'SOURCE':datasource,'NPATH':npath,'PATHNAMECLOB':pathnames} 01893 db=dbUtil.dbUtil(schema) 01894 db.insertOneRow(nameDealer.hltdataTableName(),tabrowDefDict,tabrowValueDict) 01895 return (revision_id,entry_id,data_id) 01896 except : 01897 raise
def dataDML::addLumiRunDataToBranch | ( | schema, | |
runnumber, | |||
lumirundata, | |||
branchinfo, | |||
tableName | |||
) |
input: lumirundata [datasource,nominalenergy] branchinfo (branch_id,branch_name) tableName lumiruntablename output: (revision_id,entry_id,data_id)
Definition at line 1813 of file dataDML.py.
01814 : 01815 ''' 01816 input: 01817 lumirundata [datasource,nominalenergy] 01818 branchinfo (branch_id,branch_name) 01819 tableName lumiruntablename 01820 output: 01821 (revision_id,entry_id,data_id) 01822 ''' 01823 try: 01824 datasource=lumirundata[0] 01825 nominalegev=3500.0 01826 if len(lumirundata)>1: 01827 nominalenergy=lumirundata[1] 01828 entry_id=revisionDML.entryInBranch(schema,tableName,str(runnumber),branchinfo[1]) 01829 if entry_id is None: 01830 (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,tableName) 01831 entryinfo=(revision_id,entry_id,str(runnumber),data_id) 01832 revisionDML.addEntry(schema,tableName,entryinfo,branchinfo) 01833 else: 01834 (revision_id,data_id)=revisionDML.bookNewRevision(schema,tableName) 01835 #print 'revision_id,data_id ',revision_id,data_id 01836 revisionDML.addRevision(schema,tableName,(revision_id,data_id),branchinfo) 01837 tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','RUNNUM':'unsigned int','SOURCE':'string','NOMINALEGEV':'float'} 01838 tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'RUNNUM':int(runnumber),'SOURCE':datasource,'NOMINALEGEV':nominalegev} 01839 db=dbUtil.dbUtil(schema) 01840 db.insertOneRow(tableName,tabrowDefDict,tabrowValueDict) 01841 return (revision_id,entry_id,data_id) 01842 except : 01843 raise
def dataDML::addNormToBranch | ( | schema, | |
normname, | |||
amodetag, | |||
norm1, | |||
egev1, | |||
optionalnormdata, | |||
branchinfo | |||
) |
input: branchinfo(normrevisionid,branchname) optionalnormdata {'norm_occ2':norm_occ2,'norm_et':norm_et,'norm_pu':norm_pu,'constfactor':constfactor} output: (revision_id,entry_id,data_id)
Definition at line 1744 of file dataDML.py.
01745 : 01746 ''' 01747 input: 01748 branchinfo(normrevisionid,branchname) 01749 optionalnormdata {'norm_occ2':norm_occ2,'norm_et':norm_et,'norm_pu':norm_pu,'constfactor':constfactor} 01750 output: 01751 (revision_id,entry_id,data_id) 01752 ''' 01753 #print 'branchinfo ',branchinfo 01754 norm_occ2=1.0 01755 if optionalnormdata.has_key('normOcc2'): 01756 norm_occ2=optionalnormdata['norm_occ2'] 01757 norm_et=1.0 01758 if optionalnormdata.has_key('norm_et'): 01759 norm_et=optionalnormdata['norm_et'] 01760 norm_pu=1.0 01761 if optionalnormdata.has_key('norm_pu'): 01762 norm_pu=optionalnormdata['norm_pu'] 01763 constfactor=1.0 01764 if optionalnormdata.has_key('constfactor'): 01765 constfactor=optionalnormdata['constfactor'] 01766 try: 01767 entry_id=revisionDML.entryInBranch(schema,nameDealer.luminormTableName(),normname,branchinfo[1]) 01768 if entry_id is None: 01769 (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.luminormTableName()) 01770 entryinfo=(revision_id,entry_id,normname,data_id) 01771 revisionDML.addEntry(schema,nameDealer.luminormTableName(),entryinfo,branchinfo) 01772 else: 01773 (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.luminormTableName() ) 01774 revisionDML.addRevision(schema,nameDealer.luminormTableName(),(revision_id,data_id),branchinfo) 01775 tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','AMODETAG':'string','NORM_1':'float','EGEV_1':'unsigned int','NORM_OCC2':'float','NORM_ET':'float','NORM_PU':'float','CONSTFACTOR':'float'} 01776 tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':normname,'AMODETAG':amodetag,'NORM_1':norm1,'EGEV_1':egev1,'NORM_OCC2':norm_occ2,'NORM_ET':norm_et,'NORM_PU':norm_pu,'CONSTFACTOR':constfactor} 01777 db=dbUtil.dbUtil(schema) 01778 db.insertOneRow(nameDealer.luminormTableName(),tabrowDefDict,tabrowValueDict) 01779 return (revision_id,entry_id,data_id) 01780 except : 01781 raise
def dataDML::addTrgRunDataToBranch | ( | schema, | |
runnumber, | |||
trgrundata, | |||
branchinfo | |||
) |
input: trgrundata [datasource(0),bitzeroname(1),bitnameclob(2)] bitnames clob, bitnames separated by ',' output: (revision_id,entry_id,data_id)
Definition at line 1844 of file dataDML.py.
01845 : 01846 ''' 01847 input: 01848 trgrundata [datasource(0),bitzeroname(1),bitnameclob(2)] 01849 bitnames clob, bitnames separated by ',' 01850 output: 01851 (revision_id,entry_id,data_id) 01852 ''' 01853 try: #fixme: need to consider revision only case 01854 datasource=trgrundata[0] 01855 bitzeroname=trgrundata[1] 01856 bitnames=trgrundata[2] 01857 entry_id=revisionDML.entryInBranch(schema,nameDealer.trgdataTableName(),str(runnumber),branchinfo[1]) 01858 if entry_id is None: 01859 (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.trgdataTableName()) 01860 entryinfo=(revision_id,entry_id,str(runnumber),data_id) 01861 revisionDML.addEntry(schema,nameDealer.trgdataTableName(),entryinfo,branchinfo) 01862 else: 01863 (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.trgdataTableName() ) 01864 revisionDML.addRevision(schema,nameDealer.trgdataTableName(),(revision_id,data_id),branchinfo) 01865 tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','SOURCE':'string','RUNNUM':'unsigned int','BITZERONAME':'string','BITNAMECLOB':'string'} 01866 tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'SOURCE':datasource,'RUNNUM':int(runnumber),'BITZERONAME':bitzeroname,'BITNAMECLOB':bitnames} 01867 db=dbUtil.dbUtil(schema) 01868 db.insertOneRow(nameDealer.trgdataTableName(),tabrowDefDict,tabrowValueDict) 01869 return (revision_id,entry_id,data_id) 01870 except : raise
def dataDML::allfillschemes | ( | schema | ) |
Definition at line 914 of file dataDML.py.
00915 : 00916 afterglows=[] 00917 s=nameDealer.fillschemeTableName() 00918 try: 00919 qHandle.addToTableList(s) 00920 qResult=coral.AttributeList() 00921 qResult.extend('FILLSCHEMEPATTERN','string') 00922 qResult.extend('CORRECTIONFACTOR','float') 00923 qHandle.defineOutput(qResult) 00924 qHandle.addToOutputList('FILLSCHEMEPATTERN') 00925 qHandle.addToOutputList('CORRECTIONFACTOR') 00926 cursor=qHandle.execute() 00927 while cursor.next(): 00928 fillschemePattern=cursor.currentRow()['FILLSCHEMEPATTERN'].data() 00929 afterglowfac=cursor.currentRow()['CORRECTIONFACTOR'].data() 00930 afterglows.append((fillschemePattern,afterglowfac)) 00931 except : 00932 del qHandle 00933 raise 00934 del qHandle 00935 return afterglows
def dataDML::beamInfoById | ( | schema, | |
dataid, | |||
withBeamIntensity = False , |
|||
minIntensity = 0.1 |
|||
) |
result (runnum,[(lumilsnum(0),cmslsnum(1),beamstatus(2),beamenergy(3),ncollidingbunches(4),beaminfolist(5),..]) beaminfolist=[(bxidx,beam1intensity,beam2intensity)]
Definition at line 1043 of file dataDML.py.
01044 : 01045 ''' 01046 result (runnum,[(lumilsnum(0),cmslsnum(1),beamstatus(2),beamenergy(3),ncollidingbunches(4),beaminfolist(5),..]) 01047 beaminfolist=[(bxidx,beam1intensity,beam2intensity)] 01048 ''' 01049 runnum=0 01050 result=[] 01051 ncollidingbunches=0 01052 qHandle=schema.newQuery() 01053 try: 01054 qHandle.addToTableList(nameDealer.lumidataTableName()) 01055 qHandle.addToOutputList('NCOLLIDINGBUNCHES') 01056 qConditionStr='DATA_ID=:dataid' 01057 qCondition=coral.AttributeList() 01058 qCondition.extend('dataid','unsigned long long') 01059 qCondition['dataid'].setData(dataid) 01060 qResult=coral.AttributeList() 01061 qResult.extend('NCOLLIDINGBUNCHES','unsigned int') 01062 qHandle.defineOutput(qResult) 01063 qHandle.setCondition(qConditionStr,qCondition) 01064 cursor=qHandle.execute() 01065 while cursor.next(): 01066 ncollidingbunches=cursor.currentRow()['NCOLLIDINGBUNCHES'].data() 01067 except : 01068 del qHandle 01069 raise 01070 del qHandle 01071 qHandle=schema.newQuery() 01072 try: 01073 qHandle.addToTableList(nameDealer.lumisummaryv2TableName()) 01074 qHandle.addToOutputList('RUNNUM') 01075 qHandle.addToOutputList('CMSLSNUM') 01076 qHandle.addToOutputList('LUMILSNUM') 01077 qHandle.addToOutputList('BEAMSTATUS') 01078 qHandle.addToOutputList('BEAMENERGY') 01079 if withBeamIntensity: 01080 qHandle.addToOutputList('CMSBXINDEXBLOB') 01081 qHandle.addToOutputList('BEAMINTENSITYBLOB_1') 01082 qHandle.addToOutputList('BEAMINTENSITYBLOB_2') 01083 qConditionStr='DATA_ID=:dataid' 01084 qCondition=coral.AttributeList() 01085 qCondition.extend('dataid','unsigned long long') 01086 qCondition['dataid'].setData(dataid) 01087 qResult=coral.AttributeList() 01088 qResult.extend('RUNNUM','unsigned int') 01089 qResult.extend('CMSLSNUM','unsigned int') 01090 qResult.extend('LUMILSNUM','unsigned int') 01091 qResult.extend('BEAMSTATUS','string') 01092 qResult.extend('BEAMENERGY','float') 01093 if withBeamIntensity: 01094 qResult.extend('BXINDEXBLOB','blob') 01095 qResult.extend('BEAM1INTENSITY','blob') 01096 qResult.extend('BEAM2INTENSITY','blob') 01097 qHandle.defineOutput(qResult) 01098 qHandle.setCondition(qConditionStr,qCondition) 01099 cursor=qHandle.execute() 01100 while cursor.next(): 01101 runnum=cursor.currentRow()['RUNNUM'].data() 01102 cmslsnum=cursor.currentRow()['CMSLSNUM'].data() 01103 lumilsnum=cursor.currentRow()['LUMILSNUM'].data() 01104 beamstatus=cursor.currentRow()['BEAMSTATUS'].data() 01105 beamenergy=cursor.currentRow()['BEAMENERGY'].data() 01106 bxindexblob=None 01107 beaminfotupleList=[] 01108 if withBeamIntensity: 01109 bxindexblob=cursor.currentRow()['BXINDEXBLOB'].data() 01110 beam1intensityblob=cursor.currentRow()['BEAM1INTENSITY'].data() 01111 beam2intensityblob=cursor.currentRow()['BEAM2INTENSITY'].data() 01112 bxindexArray=None 01113 beam1intensityArray=None 01114 beam2intensityArray=None 01115 if bxindexblob: 01116 bxindexArray=CommonUtil.unpackBlobtoArray(bxindexblob,'h') 01117 if beam1intensityblob: 01118 beam1intensityArray=CommonUtil.unpackBlobtoArray(beam1intensityblob,'f') 01119 if beam2intensityblob: 01120 beam2intensityArray=CommonUtil.unpackBlobtoArray(beam2intensityblob,'f') 01121 if bxindexArray and beam1intensityArray and beam2intensityArray: 01122 for idx,bxindex in enumerate(bxindexArray): 01123 if (beam1intensityArray[idx] and beam1intensityArray[idx]>minIntensity) or (beam2intensityArray[idx] and beam2intensityArray[idx]>minIntensity): 01124 beaminfotuple=(bxindex,beam1intensityArray[idx],beam2intensityArray[idx]) 01125 beaminfotupleList.append(beaminfotuple) 01126 del bxindexArray[:] 01127 del beam1intensityArray[:] 01128 del beam2intensityArray[:] 01129 result.append((lumilsnum,cmslsnum,beamstatus,beamenergy,ncollidingbunches,beaminfotupleList)) 01130 except: 01131 del qHandle 01132 raise 01133 del qHandle return (runnum,result)
def dataDML::bulkInsertHltLSData | ( | session, | |
runnumber, | |||
data_id, | |||
hltlsdata, | |||
bulksize = 500 |
|||
) |
input: hltlsdata {cmslsnum:[inputcountBlob,acceptcountBlob,prescaleBlob]}
Definition at line 2010 of file dataDML.py.
02011 : 02012 ''' 02013 input: 02014 hltlsdata {cmslsnum:[inputcountBlob,acceptcountBlob,prescaleBlob]} 02015 ''' 02016 print 'total number of hlt rows ',len(hltlsdata) 02017 lshltDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('CMSLSNUM','unsigned int'),('PRESCALEBLOB','blob'),('HLTCOUNTBLOB','blob'),('HLTACCEPTBLOB','blob')] 02018 committedrows=0 02019 nrows=0 02020 bulkvalues=[] 02021 try: 02022 for cmslsnum,perlshlt in hltlsdata.items(): 02023 inputcountblob=perlshlt[0] 02024 acceptcountblob=perlshlt[1] 02025 prescaleblob=perlshlt[2] 02026 bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('CMSLSNUM',cmslsnum),('PRESCALEBLOB',prescaleblob),('HLTCOUNTBLOB',inputcountblob),('HLTACCEPTBLOB',acceptcountblob)]) 02027 02028 nrows+=1 02029 committedrows+=1 02030 if nrows==bulksize: 02031 print 'committing hlt in LS chunck ',nrows 02032 db=dbUtil.dbUtil(session.nominalSchema()) 02033 session.transaction().start(False) 02034 db.bulkInsert(nameDealer.lshltTableName(),lshltDefDict,bulkvalues) 02035 session.transaction().commit() 02036 nrows=0 02037 bulkvalues=[] 02038 elif committedrows==len(hltlsdata): 02039 print 'committing hlt at the end ' 02040 db=dbUtil.dbUtil(session.nominalSchema()) 02041 session.transaction().start(False) 02042 db.bulkInsert(nameDealer.lshltTableName(),lshltDefDict,bulkvalues) 02043 session.transaction().commit() 02044 except : 02045 print 'error in bulkInsertHltLSData' 02046 raise
def dataDML::bulkInsertLumiLSSummary | ( | session, | |
runnumber, | |||
data_id, | |||
lumilsdata, | |||
tableName, | |||
bulksize = 500 , |
|||
withDetails = True |
|||
) |
input: lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensity,beam2intensity,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
Definition at line 2047 of file dataDML.py.
02048 : 02049 ''' 02050 input: 02051 lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensity,beam2intensity,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]} 02052 ''' 02053 lslumiDefDict=[] 02054 if withDetails: 02055 lslumiDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('LUMILSNUM','unsigned int'),('CMSLSNUM','unsigned int'),('INSTLUMI','float'),('INSTLUMIERROR','float'),('INSTLUMIQUALITY','short'),('BEAMSTATUS','string'),('BEAMENERGY','float'),('NUMORBIT','unsigned int'),('STARTORBIT','unsigned int'),('CMSBXINDEXBLOB','blob'),('BEAMINTENSITYBLOB_1','blob'),('BEAMINTENSITYBLOB_2','blob'),('BXLUMIVALUE_OCC1','blob'),('BXLUMIERROR_OCC1','blob'),('BXLUMIQUALITY_OCC1','blob'),('BXLUMIVALUE_OCC2','blob'),('BXLUMIERROR_OCC2','blob'),('BXLUMIQUALITY_OCC2','blob'),('BXLUMIVALUE_ET','blob'),('BXLUMIERROR_ET','blob'),('BXLUMIQUALITY_ET','blob')] 02056 else: 02057 lslumiDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('LUMILSNUM','unsigned int'),('CMSLSNUM','unsigned int'),('INSTLUMI','float'),('INSTLUMIERROR','float'),('INSTLUMIQUALITY','short'),('BEAMSTATUS','string'),('BEAMENERGY','float'),('NUMORBIT','unsigned int'),('STARTORBIT','unsigned int')] 02058 print 'total number of lumi rows ',len(lumilsdata) 02059 try: 02060 committedrows=0 02061 nrows=0 02062 bulkvalues=[] 02063 for lumilsnum,perlslumi in lumilsdata.items(): 02064 cmslsnum=perlslumi[0] 02065 instlumi=perlslumi[1] 02066 instlumierror=perlslumi[2] 02067 instlumiquality=perlslumi[3] 02068 beamstatus=perlslumi[4] 02069 beamenergy=perlslumi[5] 02070 numorbit=perlslumi[6] 02071 startorbit=perlslumi[7] 02072 if withDetails: 02073 cmsbxindexindexblob=perlslumi[8] 02074 beam1intensity=perlslumi[9] 02075 beam2intensity=perlslumi[10] 02076 bxlumivalue_occ1=perlslumi[11] 02077 bxlumierror_occ1=perlslumi[12] 02078 bxlumiquality_occ1=perlslumi[13] 02079 bxlumivalue_occ2=perlslumi[14] 02080 bxlumierror_occ2=perlslumi[15] 02081 bxlumiquality_occ2=perlslumi[16] 02082 bxlumivalue_et=perlslumi[17] 02083 bxlumierror_et=perlslumi[18] 02084 bxlumiquality_et=perlslumi[19] 02085 bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('LUMILSNUM',lumilsnum),('CMSLSNUM',cmslsnum),('INSTLUMI',instlumi),('INSTLUMIERROR',instlumierror),('INSTLUMIQUALITY',instlumiquality),('BEAMSTATUS',beamstatus),('BEAMENERGY',beamenergy),('NUMORBIT',numorbit),('STARTORBIT',startorbit),('CMSBXINDEXBLOB',cmsbxindexindexblob),('BEAMINTENSITYBLOB_1',beam1intensity),('BEAMINTENSITYBLOB_2',beam2intensity),('BXLUMIVALUE_OCC1',bxlumivalue_occ1),('BXLUMIERROR_OCC1',bxlumierror_occ1),('BXLUMIQUALITY_OCC1',bxlumiquality_occ1),('BXLUMIVALUE_OCC2',bxlumivalue_occ2),('BXLUMIERROR_OCC2',bxlumierror_occ2),('BXLUMIQUALITY_OCC2',bxlumiquality_occ2),('BXLUMIVALUE_ET',bxlumivalue_et),('BXLUMIERROR_ET',bxlumierror_et),('BXLUMIQUALITY_ET',bxlumiquality_et)]) 02086 else: 02087 bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('LUMILSNUM',lumilsnum),('CMSLSNUM',cmslsnum),('INSTLUMI',instlumi),('INSTLUMIERROR',instlumierror),('INSTLUMIQUALITY',instlumiquality),('BEAMSTATUS',beamstatus),('BEAMENERGY',beamenergy),('NUMORBIT',numorbit),('STARTORBIT',startorbit)]) 02088 nrows+=1 02089 committedrows+=1 02090 if nrows==bulksize: 02091 print 'committing lumi in LS chunck ',nrows 02092 db=dbUtil.dbUtil(session.nominalSchema()) 02093 session.transaction().start(False) 02094 db.bulkInsert(tableName,lslumiDefDict,bulkvalues) 02095 session.transaction().commit() 02096 nrows=0 02097 bulkvalues=[] 02098 elif committedrows==len(lumilsdata): 02099 print 'committing lumi at the end ' 02100 db=dbUtil.dbUtil(session.nominalSchema()) 02101 session.transaction().start(False) 02102 db.bulkInsert(tableName,lslumiDefDict,bulkvalues) 02103 session.transaction().commit() 02104 except : 02105 raise 02106 02107 #def insertLumiLSDetail(schema,runnumber,data_id,lumibxdata): 02108 # ''' 02109 # input: 02110 # lumibxdata [(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]}),(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]}),(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]})] 02111 # output: 02112 # nrows 02113 # ''' 02114 # try: 02115 # nrow=0 02116 # bulkvalues=[] 02117 # lslumiDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('LUMILSNUM','unsigned int'),('CMSLSNUM','unsigned int'),('ALGONAME','string'),('BXLUMIVALUE','blob'),('BXLUMIERROR','blob'),('BXLUMIQUALITY','blob')] 02118 # for (algoname,peralgobxdata) in lumibxdata: 02119 # for lumilsnum,bxdata in peralgobxdata.items(): 02120 # cmslsnum=bxdata[0] 02121 # bxlumivalue=bxdata[1] 02122 # bxlumierror=bxdata[2] 02123 # bxlumiquality=bxdata[3] 02124 # bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('LUMILSNUM',lumilsnum),('CMSLSNUM',cmslsnum),('ALGONAME',algoname),('BXLUMIVALUE',bxlumivalue),('BXLUMIERROR',bxlumierror),('BXLUMIQUALITY',bxlumiquality)]) 02125 # db=dbUtil.dbUtil(schema) 02126 # db.bulkInsert(nameDealer.lumidetailTableName(),lslumiDefDict,bulkvalues) 02127 # return len(bulkvalues) 02128 # except: 02129 # raise 02130 02131 #def completeOldLumiData(schema,runnumber,lsdata,data_id): 02132 # ''' 02133 # input: 02134 # lsdata [[lumisummary_id,lumilsnum,cmslsnum]] 02135 # ''' 02136 # try: 02137 # #update in lumisummary table 02138 # #print 'insert in lumisummary table' 02139 # setClause='DATA_ID=:data_id' 02140 # updateCondition='RUNNUM=:runnum AND DATA_ID is NULL' 02141 # updateData=coral.AttributeList() 02142 # updateData.extend('data_id','unsigned long long') 02143 # updateData.extend('runnum','unsigned int') 02144 # updateData['data_id'].setData(data_id) 02145 # updateData['runnum'].setData(int(runnumber)) 02146 # db=dbUtil.dbUtil(schema) 02147 # db.singleUpdate(nameDealer.lumisummaryTableName(),setClause,updateCondition,updateData) 02148 # #updates in lumidetail table 02149 # updateAction='DATA_ID=:data_id,RUNNUM=:runnum,CMSLSNUM=:cmslsnum,LUMILSNUM=:lumilsnum' 02150 # updateCondition='LUMISUMMARY_ID=:lumisummary_id' 02151 # bindvarDef=[] 02152 # bindvarDef.append(('data_id','unsigned long long')) 02153 # bindvarDef.append(('runnum','unsigned int')) 02154 # bindvarDef.append(('cmslsnum','unsigned int')) 02155 # bindvarDef.append(('lumilsnum','unsigned int')) 02156 # inputData=[] 02157 # for [lumisummary_id,lumilsnum,cmslsnum] in lsdata: 02158 # inputData.append([('data_id',data_id),('runnum',int(runnumber)),('cmslsnum',cmslsnum),('lumilsnum',lumilsnum)]) 02159 # db.updateRows(nameDealer.lumidetailTableName(),updateAction,updateCondition,bindvarDef,inputData) 02160 # except: 02161 # raise 02162 02163 #======================================================= 02164 # DELETE 02165 #======================================================= 02166 02167 02168 #======================================================= 02169 # Unit Test #=======================================================
def dataDML::bulkInsertTrgLSData | ( | session, | |
runnumber, | |||
data_id, | |||
trglsdata, | |||
bulksize = 500 |
|||
) |
insert trg per-LS data for given run and data_id, this operation can be split in transaction chuncks input: trglsdata {cmslsnum:[deadtime,bitzerocount,bitzeroprescale,trgcountBlob,trgprescaleBlob]} result nrows inserted if nrows==0, then this insertion failed
Definition at line 1970 of file dataDML.py.
01971 : 01972 ''' 01973 insert trg per-LS data for given run and data_id, this operation can be split in transaction chuncks 01974 input: 01975 trglsdata {cmslsnum:[deadtime,bitzerocount,bitzeroprescale,trgcountBlob,trgprescaleBlob]} 01976 result nrows inserted 01977 if nrows==0, then this insertion failed 01978 ''' 01979 print 'total number of trg rows ',len(trglsdata) 01980 lstrgDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('CMSLSNUM','unsigned int'),('DEADTIMECOUNT','unsigned long long'),('BITZEROCOUNT','unsigned int'),('BITZEROPRESCALE','unsigned int'),('PRESCALEBLOB','blob'),('TRGCOUNTBLOB','blob')] 01981 committedrows=0 01982 nrows=0 01983 bulkvalues=[] 01984 try: 01985 for cmslsnum,perlstrg in trglsdata.items(): 01986 deadtimecount=perlstrg[0] 01987 bitzerocount=perlstrg[1] 01988 bitzeroprescale=perlstrg[2] 01989 trgcountblob=perlstrg[3] 01990 trgprescaleblob=perlstrg[4] 01991 bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('CMSLSNUM',cmslsnum),('DEADTIMECOUNT',deadtimecount),('BITZEROCOUNT',bitzerocount),('BITZEROPRESCALE',bitzeroprescale),('PRESCALEBLOB',trgprescaleblob),('TRGCOUNTBLOB',trgcountblob)]) 01992 nrows+=1 01993 committedrows+=1 01994 if nrows==bulksize: 01995 print 'committing trg in LS chunck ',nrows 01996 db=dbUtil.dbUtil(session.nominalSchema()) 01997 session.transaction().start(False) 01998 db.bulkInsert(nameDealer.lstrgTableName(),lstrgDefDict,bulkvalues) 01999 session.transaction().commit() 02000 nrows=0 02001 bulkvalues=[] 02002 elif committedrows==len(trglsdata): 02003 print 'committing trg at the end ' 02004 db=dbUtil.dbUtil(session.nominalSchema()) 02005 session.transaction().start(False) 02006 db.bulkInsert(nameDealer.lstrgTableName(),lstrgDefDict,bulkvalues) 02007 session.transaction().commit() 02008 except : 02009 print 'error in bulkInsertTrgLSData' raise
def dataDML::correctionByName | ( | schema, | |
correctiontagname = None |
|||
) |
get correction coefficients by name input: correctiontagname if None,get current default output: [tagname,a1,a2,drift] if not correctiontagname select entry_name,data_id,a1,a2,drift from lumicorrections where else: select entry_name,data_id,a1,a2,drift from lumicorrections where entry_name=:correctiontagname
Definition at line 873 of file dataDML.py.
00874 : 00875 ''' 00876 get correction coefficients by name 00877 input: correctiontagname if None,get current default 00878 output: [tagname,a1,a2,drift] 00879 if not correctiontagname 00880 select entry_name,data_id,a1,a2,drift from lumicorrections where 00881 else: 00882 select entry_name,data_id,a1,a2,drift from lumicorrections where entry_name=:correctiontagname 00883 ''' 00884
def dataDML::dataentryIdByRun | ( | schema, | |
runnum, | |||
branchfilter | |||
) |
select el.entry_id,et.entry_id,eh.entry_id,el.revision_id,et.revision_id,eh.revision_id from lumidataentiries el,trgdataentries et,hltdataentries eh where el.name=et.name and et.name=eh.name and el.name=:entryname; check on entryrev return [lumientryid,trgentryid,hltentryid]
Definition at line 1657 of file dataDML.py.
01658 : 01659 ''' 01660 select el.entry_id,et.entry_id,eh.entry_id,el.revision_id,et.revision_id,eh.revision_id from lumidataentiries el,trgdataentries et,hltdataentries eh where el.name=et.name and et.name=eh.name and el.name=:entryname; 01661 check on entryrev 01662 01663 return [lumientryid,trgentryid,hltentryid] 01664 ''' 01665 result=[] 01666 qHandle=schema.newQuery() 01667 try: 01668 qHandle.addToTableList(nameDealer.entryTableName( lumidataTableName() )) 01669 qHandle.addToTableList(nameDealer.entryTableName( trgdataTableName() )) 01670 qHandle.addToTableList(nameDealer.entryTableName( hltdataTableName() )) 01671 qHandle.addToOutputList(lumidataTableName()+'.ENTRY_ID','lumientryid') 01672 qHandle.addToOutputList(trgdataTableName()+'.ENTRY_ID','trgentryid') 01673 qHandle.addToOutputList(hltdataTableName()+'.ENTRY_ID','hltentryid') 01674 qConditionStr=lumidataTableName()+'.NAME='+trgdataTableName()+'.NAME AND '+trgdataTableName()+'.NAME='+hltdataTableName()+'.NAME AND '+lumidataTableName()+'.NAME=:runnumstr' 01675 qCondition=coral.AttributeList() 01676 qCondition.extend('runnumstr','string') 01677 qCondition['runnumstr'].setData(str(runnum)) 01678 qResult=coral.AttributeList() 01679 qResult.extend('lumientryid','unsigned long long') 01680 qResult.extend('trgentryid','unsigned long long') 01681 qResult.extend('hltentryid','unsigned long long') 01682 qHandle.defineOutput(qResult) 01683 qHandle.setCondition(qConditionStr,qCondition) 01684 cursor=qHandle.execute() 01685 while cursor.next(): 01686 lumientryid=cursor.currentRow()['lumientryid'].data() 01687 trgentryid=cursor.currentRow()['trgentryid'].data() 01688 hltentryid=cursor.currentRow()['hltentryid'].data() 01689 if lumientryid in branchfilter and trgentryid in branchfilter and hltentryid in branchfilter: 01690 result.extend([lumientryid,trgentryid,hltentryid]) 01691 except: 01692 del qHandle 01693 raise 01694 del qHandle 01695 return result
def dataDML::fillInRange | ( | schema, | |
fillmin, | |||
fillmax, | |||
amodetag, | |||
startT, | |||
stopT | |||
) |
select fillnum,runnum,starttime from cmsrunsummary where [where fillnum>=:fillmin and fillnum<=:fillmax and amodetag=:amodetag] output: [fill]
Definition at line 87 of file dataDML.py.
00088 : 00089 ''' 00090 select fillnum,runnum,starttime from cmsrunsummary where [where fillnum>=:fillmin and fillnum<=:fillmax and amodetag=:amodetag] 00091 output: [fill] 00092 ''' 00093 result=[] 00094 tmpresult={} 00095 qHandle=schema.newQuery() 00096 r=nameDealer.cmsrunsummaryTableName() 00097 lute=lumiTime.lumiTime() 00098 try: 00099 qHandle.addToTableList(r) 00100 qConditionPieces=[] 00101 qConditionStr='' 00102 qCondition=coral.AttributeList() 00103 if fillmin: 00104 qConditionPieces.append('FILLNUM>=:fillmin') 00105 qCondition.extend('fillmin','unsigned int') 00106 qCondition['fillmin'].setData(int(fillmin)) 00107 if fillmax: 00108 qConditionPieces.append('FILLNUM<=:fillmax') 00109 qCondition.extend('fillmax','unsigned int') 00110 qCondition['fillmax'].setData(int(fillmax)) 00111 if amodetag: 00112 qConditionPieces.append('AMODETAG=:amodetag') 00113 qCondition.extend('amodetag','string') 00114 qCondition['amodetag'].setData(amodetag) 00115 if len(qConditionPieces)!=0: 00116 qConditionStr=(' AND ').join(qConditionPieces) 00117 qResult=coral.AttributeList() 00118 qResult.extend('fillnum','unsigned int') 00119 qResult.extend('runnum','unsigned int') 00120 qResult.extend('starttime','string') 00121 qHandle.defineOutput(qResult) 00122 if len(qConditionStr)!=0: 00123 qHandle.setCondition(qConditionStr,qCondition) 00124 qHandle.addToOutputList('FILLNUM','fillnum') 00125 qHandle.addToOutputList('RUNNUM','runnum') 00126 qHandle.addToOutputList('TO_CHAR('+r+'.STARTTIME,\'MM/DD/YY HH24:MI:SS\')','starttime') 00127 cursor=qHandle.execute() 00128 while cursor.next(): 00129 currentfill=cursor.currentRow()['fillnum'].data() 00130 runnum=cursor.currentRow()['runnum'].data() 00131 starttimeStr=cursor.currentRow()['starttime'].data() 00132 runTime=lute.StrToDatetime(starttimeStr,customfm='%m/%d/%y %H:%M:%S') 00133 minTime=None 00134 maxTime=None 00135 if startT and stopT: 00136 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00137 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00138 if runTime>=minTime and runTime<=maxTime: 00139 tmpresult.setdefault(currentfill,[]).append(runnum) 00140 elif startT is not None: 00141 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00142 if runTime>=minTime: 00143 tmpresult.setdefault(currentfill,[]).append(runnum) 00144 elif stopT is not None: 00145 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00146 if runTime<=maxTime: 00147 tmpresult.setdefault(currentfill,[]).append(runnum) 00148 else: 00149 tmpresult.setdefault(currentfill,[]).append(runnum) 00150 #print tmpresult 00151 for f in sorted(tmpresult): 00152 if tmpresult[f]: 00153 result.append(f) 00154 except : 00155 del qHandle 00156 raise 00157 del qHandle return result
def dataDML::fillrunMap | ( | schema, | |
fillnum = None , |
|||
runmin = None , |
|||
runmax = None , |
|||
startT = None , |
|||
stopT = None , |
|||
l1keyPattern = None , |
|||
hltkeyPattern = None , |
|||
amodetag = None |
|||
) |
select fillnum,runnum,starttime from cmsrunsummary [where fillnum=:fillnum and runnum>=runmin and runnum<=runmax and amodetag=:amodetag ] output: {fill:[runnum,...]}
Definition at line 158 of file dataDML.py.
00159 : 00160 ''' 00161 select fillnum,runnum,starttime from cmsrunsummary [where fillnum=:fillnum and runnum>=runmin and runnum<=runmax and amodetag=:amodetag ] 00162 output: {fill:[runnum,...]} 00163 ''' 00164 result={} 00165 timelesslist=[] 00166 qHandle=schema.newQuery() 00167 r=nameDealer.cmsrunsummaryTableName() 00168 lute=lumiTime.lumiTime() 00169 try: 00170 qHandle.addToTableList(r) 00171 qConditionPieces=[] 00172 qConditionStr='' 00173 qCondition=coral.AttributeList() 00174 if fillnum: 00175 qConditionPieces.append('FILLNUM=:fillnum') 00176 qCondition.extend('fillnum','unsigned int') 00177 qCondition['fillnum'].setData(int(fillnum)) 00178 if runmin: 00179 qConditionPieces.append('RUNNUM>=:runmin') 00180 qCondition.extend('runmin','unsigned int') 00181 qCondition['runmin'].setData(runmin) 00182 if runmax: 00183 qConditionPieces.append('RUNNUM<=:runmax') 00184 qCondition.extend('runmax','unsigned int') 00185 qCondition['runmax'].setData(runmax) 00186 if amodetag: 00187 qConditionPieces.append('AMODETAG=:amodetag') 00188 qCondition.extend('amodetag','string') 00189 qCondition['amodetag'].setData(amodetag) 00190 if l1keyPattern: 00191 qConditionPieces.append('regexp_like(L1KEY,:l1keypattern)') 00192 qCondition.extend('l1keypattern','string') 00193 qCondition['l1keypattern'].setData(l1keyPattern) 00194 if hltkeyPattern: 00195 qConditionPieces.append('regexp_like(HLTKEY,:hltkeypattern)') 00196 qCondition.extend('hltkeypattern','string') 00197 qCondition['hltkeypattern'].setData(hltkeyPattern) 00198 if len(qConditionPieces)!=0: 00199 qConditionStr=(' AND ').join(qConditionPieces) 00200 qResult=coral.AttributeList() 00201 qResult.extend('fillnum','unsigned int') 00202 qResult.extend('runnum','unsigned int') 00203 qResult.extend('starttime','string') 00204 qHandle.defineOutput(qResult) 00205 if len(qConditionStr) !=0: 00206 qHandle.setCondition(qConditionStr,qCondition) 00207 qHandle.addToOutputList('FILLNUM','fillnum') 00208 qHandle.addToOutputList('RUNNUM','runnum') 00209 qHandle.addToOutputList('TO_CHAR('+r+'.STARTTIME,\'MM/DD/YY HH24:MI:SS\')','starttime') 00210 cursor=qHandle.execute() 00211 while cursor.next(): 00212 currentfill=cursor.currentRow()['fillnum'].data() 00213 starttimeStr=cursor.currentRow()['starttime'].data() 00214 runnum=cursor.currentRow()['runnum'].data() 00215 runTime=lute.StrToDatetime(starttimeStr,customfm='%m/%d/%y %H:%M:%S') 00216 minTime=None 00217 maxTime=None 00218 if startT and stopT: 00219 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00220 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00221 if runTime>=minTime and runTime<=maxTime: 00222 result.setdefault(currentfill,[]).append(runnum) 00223 elif startT is not None: 00224 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00225 if runTime>=minTime: 00226 result.setdefault(currentfill,[]).append(runnum) 00227 elif stopT is not None: 00228 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00229 if runTime<=maxTime: 00230 result.setdefault(currentfill,[]).append(runnum) 00231 else: 00232 result.setdefault(currentfill,[]).append(runnum) 00233 except : 00234 del qHandle 00235 raise 00236 del qHandle 00237 return result
def dataDML::fillschemeByRun | ( | schema, | |
runnum | |||
) |
Definition at line 885 of file dataDML.py.
00886 : 00887 fillscheme='' 00888 ncollidingbunches=0 00889 r=nameDealer.cmsrunsummaryTableName() 00890 qHandle=schema.newQuery() 00891 try: 00892 qHandle.addToTableList(r) 00893 qHandle.addToOutputList('FILLSCHEME') 00894 qHandle.addToOutputList('NCOLLIDINGBUNCHES') 00895 qResult=coral.AttributeList() 00896 qResult.extend('FILLSCHEME','string') 00897 qResult.extend('NCOLLIDINGBUNCHES','unsigned int') 00898 qConditionStr='RUNNUM=:runnum' 00899 qCondition=coral.AttributeList() 00900 qCondition.extend('runnum','unsigned int') 00901 qCondition['runnum'].setData(int(runnum)) 00902 qHandle.defineOutput(qResult) 00903 qHandle.setCondition(qConditionStr,qCondition) 00904 cursor=qHandle.execute() 00905 while cursor.next(): 00906 if not cursor.currentRow()['NCOLLIDINGBUNCHES'].isNull(): 00907 ncollidingbunches=cursor.currentRow()['NCOLLIDINGBUNCHES'].data() 00908 if not cursor.currentRow()['FILLSCHEME'].isNull(): 00909 fillscheme=cursor.currentRow()['FILLSCHEME'].data() 00910 except : 00911 del qHandle 00912 raise 00913 del qHandle return (fillscheme,ncollidingbunches)
def dataDML::fillschemePatternMap | ( | schema, | |
lumitype | |||
) |
output:(patternStr:correctionFac)
Definition at line 1423 of file dataDML.py.
01424 : 01425 ''' 01426 output:(patternStr:correctionFac) 01427 ''' 01428 if lumitype not in ['PIXEL','HF']: 01429 raise ValueError('[ERROR] unsupported lumitype '+lumitype) 01430 correctorField='CORRECTIONFACTOR' 01431 if lumitype=='PIXEL': 01432 correctorField='PIXELCORRECTIONFACTOR' 01433 result={} 01434 qHandle=schema.newQuery() 01435 try: 01436 qHandle.addToTableList(nameDealer.fillschemeTableName()) 01437 qResult=coral.AttributeList() 01438 qResult.extend('FILLSCHEMEPATTERN','string') 01439 qResult.extend('CORRECTIONFACTOR','float') 01440 qHandle.defineOutput(qResult) 01441 qHandle.addToOutputList('FILLSCHEMEPATTERN') 01442 qHandle.addToOutputList(correctorField) 01443 cursor=qHandle.execute() 01444 while cursor.next(): 01445 fillschemePattern=cursor.currentRow()['FILLSCHEMEPATTERN'].data() 01446 afterglowfac=cursor.currentRow()['CORRECTIONFACTOR'].data() 01447 result[fillschemePattern]=afterglowfac 01448 except : 01449 del qHandle 01450 raise 01451 del qHandle 01452 return result
def dataDML::guesscorrIdByName | ( | schema, | |
tagname = None |
|||
) |
LumiDB DML API # # Author: Zhen Xie #.
select data_id from lumicorrectionss [where entry_name=:tagname] result lumicorrectionsdataid
Definition at line 14 of file dataDML.py.
00015 : 00016 ''' 00017 select data_id from lumicorrectionss [where entry_name=:tagname] 00018 result lumicorrectionsdataid 00019 00020 ''' 00021 lumicorrectionids=[] 00022 result=None 00023 qHandle=schema.newQuery() 00024 try: 00025 qHandle.addToTableList( nameDealer.lumicorrectionsTableName() ) 00026 qHandle.addToOutputList('DATA_ID') 00027 if tagname: 00028 qConditionStr='ENTRY_NAME=:tagname ' 00029 qCondition=coral.AttributeList() 00030 qCondition.extend('tagname','string') 00031 qCondition['tagname'].setData(tagname) 00032 qResult=coral.AttributeList() 00033 qResult.extend('DATA_ID','unsigned long long') 00034 qHandle.defineOutput(qResult) 00035 if tagname: 00036 qHandle.setCondition(qConditionStr,qCondition) 00037 cursor=qHandle.execute() 00038 while cursor.next(): 00039 dataid=cursor.currentRow()['DATA_ID'].data() 00040 lumicorrectionids.append(dataid) 00041 except : 00042 del qHandle 00043 raise 00044 del qHandle 00045 if len(lumicorrectionids) !=0:return max(lumicorrectionids) 00046 return result
def dataDML::guessDataIdByRun | ( | schema, | |
runnum, | |||
tablename, | |||
revfilter = None |
|||
) |
select max data_id of the given run. In current design, it's the most recent data of the run
Definition at line 1471 of file dataDML.py.
01472 : 01473 ''' 01474 select max data_id of the given run. In current design, it's the most recent data of the run 01475 ''' 01476 result=None 01477 ids=[] 01478 qHandle=schema.newQuery() 01479 try: 01480 qHandle.addToTableList(tablename) 01481 qHandle.addToOutputList('DATA_ID') 01482 qConditionStr='RUNNUM=:runnum ' 01483 qCondition=coral.AttributeList() 01484 qCondition.extend('runnum','unsigned int') 01485 qCondition['runnum'].setData(runnum) 01486 qResult=coral.AttributeList() 01487 qResult.extend('DATA_ID','unsigned long long') 01488 qHandle.defineOutput(qResult) 01489 qHandle.setCondition(qConditionStr,qCondition) 01490 cursor=qHandle.execute() 01491 while cursor.next(): 01492 dataid=cursor.currentRow()['DATA_ID'].data() 01493 ids.append(dataid) 01494 except : 01495 del qHandle 01496 raise 01497 del qHandle 01498 if len(ids)>0 : 01499 return max(ids) 01500 else: 01501 return result
def dataDML::guessDataIdForRange | ( | schema, | |
inputRange, | |||
tablename | |||
) |
input: inputRange [run] output: {run:lumiid} select data_id,runnum from hltdata where runnum<=runmax and runnum>=:runmin
Definition at line 1502 of file dataDML.py.
01503 : 01504 ''' 01505 input: inputRange [run] 01506 output: {run:lumiid} 01507 select data_id,runnum from hltdata where runnum<=runmax and runnum>=:runmin 01508 ''' 01509 result={} 01510 if not inputRange : return result 01511 if len(inputRange)==1: 01512 trgid=guessDataIdByRun(schema,inputRange[0],tablename) 01513 result[inputRange[0]]=trgid 01514 return result 01515 rmin=min(inputRange) 01516 rmax=max(inputRange) 01517 result=dict.fromkeys(inputRange,None) 01518 qHandle=schema.newQuery() 01519 try: 01520 qHandle.addToTableList(tablename) 01521 qHandle.addToOutputList('DATA_ID') 01522 qHandle.addToOutputList('RUNNUM') 01523 qConditionStr='RUNNUM>=:rmin' 01524 qCondition=coral.AttributeList() 01525 qCondition.extend('rmin','unsigned int') 01526 qCondition['rmin'].setData(rmin) 01527 if rmin!=rmax: 01528 qConditionStr+=' AND RUNNUM<=:rmax' 01529 qCondition.extend('rmax','unsigned int') 01530 qCondition['rmax'].setData(rmax) 01531 qResult=coral.AttributeList() 01532 qResult.extend('DATA_ID','unsigned long long') 01533 qResult.extend('RUNNUM','unsigned int') 01534 qHandle.defineOutput(qResult) 01535 qHandle.setCondition(qConditionStr,qCondition) 01536 cursor=qHandle.execute() 01537 while cursor.next(): 01538 dataid=cursor.currentRow()['DATA_ID'].data() 01539 runnum=cursor.currentRow()['RUNNUM'].data() 01540 if result.has_key(runnum): 01541 if dataid>result[runnum]: 01542 result[runnum]=dataid 01543 except : 01544 del qHandle 01545 raise 01546 del qHandle 01547 return result 01548 #def guessAllDataIdByRun(schema,runnum): 01549 # ''' 01550 # get dataids by runnumber, if there are duplicates, pick max(dataid).Bypass full version lookups 01551 # result (lumidataid(0),trgdataid(1),hltdataid(2)) 01552 # ''' 01553 # lumiids=[] 01554 # trgids=[] 01555 # hltids=[] 01556 # qHandle=schema.newQuery() 01557 # try: 01558 # qHandle.addToTableList(nameDealer.lumidataTableName(),'l') 01559 # qHandle.addToTableList(nameDealer.trgdataTableName(),'t') 01560 # qHandle.addToTableList(nameDealer.hltdataTableName(),'h') 01561 # qHandle.addToOutputList('l.DATA_ID','lumidataid') 01562 # qHandle.addToOutputList('t.DATA_ID','trgdataid') 01563 # qHandle.addToOutputList('h.DATA_ID','hltdataid') 01564 # qConditionStr='l.RUNNUM=t.RUNNUM and t.RUNNUM=h.RUNNUM and l.RUNNUM=:runnum ' 01565 # qCondition=coral.AttributeList() 01566 # qCondition.extend('runnum','unsigned int') 01567 # qCondition['runnum'].setData(runnum) 01568 # qResult=coral.AttributeList() 01569 # qResult.extend('lumidataid','unsigned long long') 01570 # qResult.extend('trgdataid','unsigned long long') 01571 # qResult.extend('hltdataid','unsigned long long') 01572 # qHandle.defineOutput(qResult) 01573 # qHandle.setCondition(qConditionStr,qCondition) 01574 # cursor=qHandle.execute() 01575 # while cursor.next(): 01576 # lumidataid=cursor.currentRow()['lumidataid'].data() 01577 # trgdataid=cursor.currentRow()['trgdataid'].data() 01578 # hltdataid=cursor.currentRow()['hltdataid'].data() 01579 # lumiids.append(lumidataid) 01580 # trgids.append(trgdataid) 01581 # hltids.append(hltdataid) 01582 # except : 01583 # del qHandle 01584 # raise 01585 # del qHandle 01586 # if len(lumiids)>0 and len(trgids)>0 and len(hltids)>0: 01587 # return (max(lumiids),max(trgids),max(hltids)) 01588 # else: 01589 # return (None,None,None)
def dataDML::guessHltDataIdByRunInBranch | ( | schema, | |
runnum, | |||
tablename, | |||
branchName | |||
) |
Definition at line 1465 of file dataDML.py.
01465 : 01466 revlist=revisionDML.revisionsInBranchName(schema,branchName) 01467 hltentry_id=revisionDML.entryInBranch(schema,tablename,str(runnum),branchName) 01468 latestrevision=revisionDML.latestDataRevisionOfEntry(schema,tablename,hltentry_id,revlist) 01469 return latestrevision 01470
def dataDML::guessLumiDataIdByRunInBranch | ( | schema, | |
runnum, | |||
tablename, | |||
branchName | |||
) |
Definition at line 1453 of file dataDML.py.
def dataDML::guessnormIdByContext | ( | schema, | |
amodetag, | |||
egev1 | |||
) |
get norm dataids by amodetag, egev if there are duplicates, pick max(dataid).Bypass full version lookups select data_id from luminorm where amodetag=:amodetag and egev_1=:egev1
Definition at line 1590 of file dataDML.py.
01591 : 01592 ''' 01593 get norm dataids by amodetag, egev if there are duplicates, pick max(dataid).Bypass full version lookups 01594 select data_id from luminorm where amodetag=:amodetag and egev_1=:egev1 01595 ''' 01596 luminormids=[] 01597 qHandle=schema.newQuery() 01598 egevmin=egev1*0.95 01599 egevmax=egev1*1.05 01600 try: 01601 qHandle.addToTableList( nameDealer.luminormTableName() ) 01602 qHandle.addToOutputList('DATA_ID','normdataid') 01603 qConditionStr='AMODETAG=:amodetag AND EGEV_1>=:egevmin AND EGEV_1<=:egevmax' 01604 qCondition=coral.AttributeList() 01605 qCondition.extend('amodetag','string') 01606 qCondition.extend('egevmin','unsigned int') 01607 qCondition.extend('egevmax','unsigned int') 01608 qCondition['amodetag'].setData(amodetag) 01609 qCondition['egevmin'].setData(int(egevmin)) 01610 qCondition['egevmax'].setData(int(egevmax)) 01611 qResult=coral.AttributeList() 01612 qResult.extend('normdataid','unsigned long long') 01613 qHandle.defineOutput(qResult) 01614 qHandle.setCondition(qConditionStr,qCondition) 01615 cursor=qHandle.execute() 01616 while cursor.next(): 01617 normdataid=cursor.currentRow()['normdataid'].data() 01618 luminormids.append(normdataid) 01619 except : 01620 del qHandle 01621 raise 01622 del qHandle 01623 if len(luminormids) !=0:return max(luminormids) 01624 return None
def dataDML::guessnormIdByName | ( | schema, | |
normname | |||
) |
get norm dataids by name, if there are duplicates, pick max(dataid).Bypass full version lookups select data_id from luminorms where entry_name=:normname result luminormdataid
Definition at line 1625 of file dataDML.py.
01626 : 01627 ''' 01628 get norm dataids by name, if there are duplicates, pick max(dataid).Bypass full version lookups 01629 select data_id from luminorms where entry_name=:normname 01630 result luminormdataid 01631 ''' 01632 luminormids=[] 01633 qHandle=schema.newQuery() 01634 try: 01635 qHandle.addToTableList( nameDealer.luminormTableName() ) 01636 qHandle.addToOutputList('DATA_ID','normdataid') 01637 qConditionStr='ENTRY_NAME=:normname ' 01638 qCondition=coral.AttributeList() 01639 qCondition.extend('normname','string') 01640 qCondition['normname'].setData(normname) 01641 qResult=coral.AttributeList() 01642 qResult.extend('normdataid','unsigned long long') 01643 qHandle.defineOutput(qResult) 01644 qHandle.setCondition(qConditionStr,qCondition) 01645 cursor=qHandle.execute() 01646 while cursor.next(): 01647 normdataid=cursor.currentRow()['normdataid'].data() 01648 luminormids.append(normdataid) 01649 except : 01650 del qHandle 01651 raise 01652 del qHandle 01653 if len(luminormids) !=0:return max(luminormids) 01654 return None
def dataDML::guessTrgDataIdByRunInBranch | ( | schema, | |
runnum, | |||
tablename, | |||
branchName | |||
) |
Definition at line 1459 of file dataDML.py.
01459 : 01460 revlist=revisionDML.revisionsInBranchName(schema,branchName) 01461 trgentry_id=revisionDML.entryInBranch(schema,tablename,str(runnum),branchName) 01462 latestrevision=revisionDML.latestDataRevisionOfEntry(schema,tablename,trgentry_id,revlist) 01463 return latestrevision 01464
def dataDML::hltLSById | ( | schema, | |
dataid, | |||
hltpathname = None , |
|||
hltpathpattern = None , |
|||
withL1Pass = False , |
|||
withHLTAccept = False |
|||
) |
result (runnum, {cmslsnum:[(pathname,prescale,1lpass,hltaccept)](0)]}
Definition at line 1288 of file dataDML.py.
01289 : 01290 ''' 01291 result (runnum, {cmslsnum:[(pathname,prescale,1lpass,hltaccept)](0)]} 01292 ''' 01293 #print 'entering hltLSById ' 01294 #t0=time.time() 01295 result={} 01296 hltrundata=hltRunById(schema,dataid,hltpathname=hltpathname,hltpathpattern=hltpathpattern) 01297 if not hltrundata: 01298 return result 01299 hltnamedict=hltrundata[3] 01300 if not hltnamedict: 01301 return (hltrundata[0],{}) 01302 #tt1=time.time() 01303 #print '\thltrunbyid time ',tt1-t0 01304 #tt0=time.time() 01305 qHandle=schema.newQuery() 01306 try: 01307 qHandle.addToTableList(nameDealer.lshltTableName()) 01308 qHandle.addToOutputList('RUNNUM','runnum') 01309 qHandle.addToOutputList('CMSLSNUM','cmslsnum') 01310 if len(hltnamedict)!=0: 01311 qHandle.addToOutputList('PRESCALEBLOB','prescaleblob') 01312 if withL1Pass: 01313 qHandle.addToOutputList('HLTCOUNTBLOB','hltcountblob') 01314 if withHLTAccept: 01315 qHandle.addToOutputList('HLTACCEPTBLOB','hltacceptblob') 01316 qConditionStr='DATA_ID=:dataid' 01317 qCondition=coral.AttributeList() 01318 qCondition.extend('dataid','unsigned long long') 01319 qCondition['dataid'].setData(dataid) 01320 qResult=coral.AttributeList() 01321 qResult.extend('runnum','unsigned int') 01322 qResult.extend('cmslsnum','unsigned int') 01323 if len(hltnamedict)!=0: 01324 qResult.extend('prescaleblob','blob') 01325 if withL1Pass: 01326 qResult.extend('hltcountblob','blob') 01327 if withHLTAccept: 01328 qResult.extend('hltacceptblob','blob') 01329 qHandle.defineOutput(qResult) 01330 qHandle.setCondition(qConditionStr,qCondition) 01331 cursor=qHandle.execute() 01332 while cursor.next(): 01333 runnum=cursor.currentRow()['runnum'].data() 01334 cmslsnum=cursor.currentRow()['cmslsnum'].data() 01335 prescaleblob=None 01336 hltcountblob=None 01337 hltacceptblob=None 01338 if len(hltnamedict)!=0: 01339 prescaleblob=cursor.currentRow()['prescaleblob'].data() 01340 if withL1Pass: 01341 hltcountblob=cursor.currentRow()['hltcountblob'].data() 01342 if withHLTAccept: 01343 hltacceptblob=cursor.currentRow()['hltacceptblob'].data() 01344 if not result.has_key(cmslsnum): 01345 result[cmslsnum]=[] 01346 pathinfo=[] 01347 prescales=None 01348 hltcounts=None 01349 hltaccepts=None 01350 if prescaleblob: 01351 if runnum <150008: ###WORKAROUND PATCH!! because the 2010 blobs were packed as type l ### 01352 prescales=CommonUtil.unpackBlobtoArray(prescaleblob,'l') 01353 else: 01354 prescales=CommonUtil.unpackBlobtoArray(prescaleblob,'I') 01355 if hltcountblob: 01356 if runnum <150008: ###WORKAROUND PATCH!! because the 2010 blobs were packed as type l ### 01357 hltcounts=CommonUtil.unpackBlobtoArray(hltcountblob,'l') 01358 else: 01359 hltcounts=CommonUtil.unpackBlobtoArray(hltcountblob,'I') 01360 if hltacceptblob: 01361 if runnum <150008: ###WORKAROUND PATCH!! because the 2010 blobs were packed as type l ### 01362 hltaccepts=CommonUtil.unpackBlobtoArray(hltacceptblob,'l') 01363 else: 01364 hltaccepts=CommonUtil.unpackBlobtoArray(hltacceptblob,'I') 01365 for (hltpathidx,thispathname) in hltnamedict:#loop over selected paths 01366 thispresc=0 01367 thishltcount=0 01368 thisaccept=0 01369 if prescales: 01370 thispresc=prescales[hltpathidx] 01371 if hltcounts: 01372 thishltcount=hltcounts[hltpathidx] 01373 if hltaccepts: 01374 thisaccept=hltaccepts[hltpathidx] 01375 thispathinfo=(thispathname,thispresc,thishltcount,thisaccept) 01376 pathinfo.append(thispathinfo) 01377 result[cmslsnum]=pathinfo 01378 except : 01379 del qHandle 01380 raise 01381 del qHandle 01382 #tt1=time.time() 01383 #print '\tdb stuff time ',tt1-tt0 01384 #t1=time.time() 01385 #print 'tot hltLSById time ',t1-t0 01386 return (runnum,result)
def dataDML::hltRunById | ( | schema, | |
dataid, | |||
hltpathname = None , |
|||
hltpathpattern = None |
|||
) |
result [runnum(0),datasource(1),npath(2),hltnamedict(3)] output : npath : total number of hltpath in DB hltnamedict : list of all selected paths [(hltpathidx,hltname),(hltpathidx,hltname)]
Definition at line 1184 of file dataDML.py.
01185 : 01186 ''' 01187 result [runnum(0),datasource(1),npath(2),hltnamedict(3)] 01188 output : 01189 npath : total number of hltpath in DB 01190 hltnamedict : list of all selected paths [(hltpathidx,hltname),(hltpathidx,hltname)] 01191 ''' 01192 result=[] 01193 qHandle=schema.newQuery() 01194 runnum=None 01195 datasource=None 01196 npath=None 01197 hltnamedict=[] 01198 try: 01199 qHandle.addToTableList(nameDealer.hltdataTableName()) 01200 qHandle.addToOutputList('RUNNUM','runnum') 01201 qHandle.addToOutputList('SOURCE','datasource') 01202 qHandle.addToOutputList('NPATH','npath') 01203 qHandle.addToOutputList('PATHNAMECLOB','pathnameclob') 01204 qConditionStr='DATA_ID=:dataid' 01205 qCondition=coral.AttributeList() 01206 qCondition.extend('dataid','unsigned long long') 01207 qCondition['dataid'].setData(dataid) 01208 qResult=coral.AttributeList() 01209 qResult.extend('runnum','unsigned int') 01210 qResult.extend('datasource','string') 01211 qResult.extend('npath','unsigned int') 01212 qResult.extend('pathnameclob','string') 01213 qHandle.defineOutput(qResult) 01214 qHandle.setCondition(qConditionStr,qCondition) 01215 cursor=qHandle.execute() 01216 pathnameclob=None 01217 pathnames=[] 01218 while cursor.next(): 01219 runnum=cursor.currentRow()['runnum'].data() 01220 datasource=cursor.currentRow()['datasource'].data() 01221 npath=cursor.currentRow()['npath'].data() 01222 pathnameclob=cursor.currentRow()['pathnameclob'].data() 01223 if pathnameclob: 01224 pathnames=pathnameclob.split(',') 01225 for pathnameidx,hltname in enumerate(pathnames): 01226 if hltpathname: 01227 if hltpathname==hltname: 01228 hltnamedict.append((pathnameidx,hltname)) 01229 break 01230 elif hltpathpattern: 01231 if fnmatch.fnmatch(hltname,hltpathpattern): 01232 hltnamedict.append((pathnameidx,hltname)) 01233 #else: 01234 #hltnamedict.append((pathnameidx,hltname)) 01235 result=[runnum,datasource,npath,hltnamedict] 01236 except : 01237 del qHandle 01238 raise 01239 del qHandle 01240 return result
def dataDML::hlttrgMappingByrun | ( | schema, | |
runnum, | |||
hltpathname = None , |
|||
hltpathpattern = None |
|||
) |
select m.hltpathname,m.l1seed from cmsrunsummary r,trghltmap m where r.runnum=:runnum and m.hltkey=r.hltkey and [m.hltpathname=:hltpathname] output: {hltpath:l1seed}
Definition at line 1241 of file dataDML.py.
01242 : 01243 ''' 01244 select m.hltpathname,m.l1seed from cmsrunsummary r,trghltmap m where r.runnum=:runnum and m.hltkey=r.hltkey and [m.hltpathname=:hltpathname] 01245 output: {hltpath:l1seed} 01246 ''' 01247 result={} 01248 queryHandle=schema.newQuery() 01249 r=nameDealer.cmsrunsummaryTableName() 01250 m=nameDealer.trghltMapTableName() 01251 if hltpathpattern and hltpathpattern in ['*','all','All','ALL']: 01252 hltpathpattern=None 01253 try: 01254 queryHandle.addToTableList(r) 01255 queryHandle.addToTableList(m) 01256 queryCondition=coral.AttributeList() 01257 queryCondition.extend('runnum','unsigned int') 01258 queryCondition['runnum'].setData(int(runnum)) 01259 #queryHandle.addToOutputList(m+'.HLTKEY','hltkey') 01260 queryHandle.addToOutputList(m+'.HLTPATHNAME','hltpathname') 01261 queryHandle.addToOutputList(m+'.L1SEED','l1seed') 01262 conditionStr=r+'.RUNNUM=:runnum and '+m+'.HLTKEY='+r+'.HLTKEY' 01263 if hltpathname: 01264 hltpathpattern=None 01265 conditionStr+=' AND '+m+'.HLTPATHNAME=:hltpathname' 01266 queryCondition.extend('hltpathname','string') 01267 queryCondition['hltpathname'].setData(hltpathname) 01268 queryHandle.setCondition(conditionStr,queryCondition) 01269 queryResult=coral.AttributeList() 01270 queryResult.extend('pname','string') 01271 queryResult.extend('l1seed','string') 01272 queryHandle.defineOutput(queryResult) 01273 cursor=queryHandle.execute() 01274 while cursor.next(): 01275 pname=cursor.currentRow()['pname'].data() 01276 l1seed=cursor.currentRow()['l1seed'].data() 01277 if not result.has_key(hltpathname): 01278 if hltpathpattern: 01279 if fnmatch.fnmatch(pname,hltpathpattern): 01280 result[pname]=l1seed 01281 else: 01282 result[pname]=l1seed 01283 except : 01284 del queryHandle 01285 raise 01286 del queryHandle 01287 return result
def dataDML::insertRunSummaryData | ( | schema, | |
runnumber, | |||
runsummarydata, | |||
complementalOnly = False |
|||
) |
input: runsummarydata [l1key,amodetag,egev,sequence,hltkey,fillnum,starttime,stoptime] output:
Definition at line 1898 of file dataDML.py.
01899 : 01900 ''' 01901 input: 01902 runsummarydata [l1key,amodetag,egev,sequence,hltkey,fillnum,starttime,stoptime] 01903 output: 01904 ''' 01905 l1key=runsummarydata[0] 01906 amodetag=runsummarydata[1] 01907 egev=runsummarydata[2] 01908 hltkey='' 01909 fillnum=0 01910 sequence='' 01911 starttime='' 01912 stoptime='' 01913 if not complementalOnly: 01914 sequence=runsummarydata[3] 01915 hltkey=runsummarydata[4] 01916 fillnum=runsummarydata[5] 01917 starttime=runsummarydata[6] 01918 stoptime=runsummarydata[7] 01919 try: 01920 if not complementalOnly: 01921 tabrowDefDict={'RUNNUM':'unsigned int','L1KEY':'string','AMODETAG':'string','EGEV':'unsigned int','SEQUENCE':'string','HLTKEY':'string','FILLNUM':'unsigned int','STARTTIME':'time stamp','STOPTIME':'time stamp'} 01922 tabrowValueDict={'RUNNUM':int(runnumber),'L1KEY':l1key,'AMODETAG':amodetag,'EGEV':int(egev),'SEQUENCE':sequence,'HLTKEY':hltkey,'FILLNUM':int(fillnum),'STARTTIME':starttime,'STOPTIME':stoptime} 01923 db=dbUtil.dbUtil(schema) 01924 db.insertOneRow(nameDealer.cmsrunsummaryTableName(),tabrowDefDict,tabrowValueDict) 01925 else: 01926 setClause='L1KEY=:l1key,AMODETAG=:amodetag,EGEV=:egev' 01927 updateCondition='RUNNUM=:runnum' 01928 inputData=coral.AttributeList() 01929 inputData.extend('l1key','string') 01930 inputData.extend('amodetag','string') 01931 inputData.extend('egev','unsigned int') 01932 inputData.extend('runnum','unsigned int') 01933 inputData['l1key'].setData(l1key) 01934 inputData['amodetag'].setData(amodetag) 01935 inputData['egev'].setData(int(egev)) 01936 inputData['runnum'].setData(int(runnumber)) 01937 db=dbUtil.dbUtil(schema) 01938 db.singleUpdate(nameDealer.cmsrunsummaryTableName(),setClause,updateCondition,inputData) 01939 except : raise
def dataDML::insertTrgHltMap | ( | schema, | |
hltkey, | |||
trghltmap | |||
) |
input: trghltmap {hltpath:l1seed} output:
Definition at line 1940 of file dataDML.py.
01941 : 01942 ''' 01943 input: 01944 trghltmap {hltpath:l1seed} 01945 output: 01946 ''' 01947 hltkeyExists=False 01948 nrows=0 01949 try: 01950 kQueryBindList=coral.AttributeList() 01951 kQueryBindList.extend('hltkey','string') 01952 kQuery=schema.newQuery() 01953 kQuery.addToTableList(nameDealer.trghltMapTableName()) 01954 kQuery.setCondition('HLTKEY=:hltkey',kQueryBindList) 01955 kQueryBindList['hltkey'].setData(hltkey) 01956 kResult=kQuery.execute() 01957 while kResult.next(): 01958 hltkeyExists=True 01959 if not hltkeyExists: 01960 bulkvalues=[] 01961 trghltDefDict=[('HLTKEY','string'),('HLTPATHNAME','string'),('L1SEED','string')] 01962 for hltpath,l1seed in trghltmap.items(): 01963 bulkvalues.append([('HLTKEY',hltkey),('HLTPATHNAME',hltpath),('L1SEED',l1seed)]) 01964 db=dbUtil.dbUtil(schema) 01965 db.bulkInsert(nameDealer.trghltMapTableName(),trghltDefDict,bulkvalues) 01966 nrows=len(bulkvalues) 01967 return nrows 01968 except : 01969 print 'error in insertTrgHltMap ' raise
def dataDML::intglumiForRange | ( | schema, | |
runlist | |||
) |
output: {run:intglumi_in_fb}
Definition at line 1387 of file dataDML.py.
01388 : 01389 ''' 01390 output: {run:intglumi_in_fb} 01391 ''' 01392 result={} 01393 if not runlist: 01394 return result 01395 minrun=min(runlist) 01396 maxrun=max(runlist) 01397 qHandle=schema.newQuery() 01398 try: 01399 qHandle.addToTableList(nameDealer.intglumiv2TableName()) 01400 qResult=coral.AttributeList() 01401 qResult.extend('RUNNUM','unsigned int') 01402 qResult.extend('INTGLUMI','float') 01403 qConditionStr='RUNNUM>=:minrun AND RUNNUM<=:maxrun' 01404 qCondition=coral.AttributeList() 01405 qCondition.extend('minrun','unsigned int') 01406 qCondition.extend('maxrun','unsigned int') 01407 qCondition['minrun'].setData(minrun) 01408 qCondition['maxrun'].setData(maxrun) 01409 qHandle.addToOutputList('RUNNUM') 01410 qHandle.addToOutputList('INTGLUMI') 01411 qHandle.setCondition(qConditionStr,qCondition) 01412 qHandle.defineOutput(qResult) 01413 cursor=qHandle.execute() 01414 while cursor.next(): 01415 runnum=cursor.currentRow()['RUNNUM'].data() 01416 intglumi=cursor.currentRow()['INTGLUMI'].data() 01417 result[runnum]=intglumi 01418 except : 01419 del qHandle 01420 raise 01421 del qHandle 01422 return result
def dataDML::latestdataIdByEntry | ( | schema, | |
entryid, | |||
datatype, | |||
branchfilter | |||
) |
select l.data_id,rl.revision_id from lumidatatable l,lumirevisions rl where l.data_id=rl.data_id and l.entry_id=:entryid check revision_id is in branch
Definition at line 1696 of file dataDML.py.
01697 : 01698 ''' 01699 select l.data_id,rl.revision_id from lumidatatable l,lumirevisions rl where l.data_id=rl.data_id and l.entry_id=:entryid 01700 check revision_id is in branch 01701 ''' 01702 dataids=[] 01703 datatablename='' 01704 revmaptablename='' 01705 if datatype=='lumi': 01706 datatablename=nameDealer.lumidataTableName() 01707 elif datatype=='trg': 01708 datatablename=nameDealer.trgdataTableName() 01709 elif dataytpe=='hlt': 01710 tablename=nameDealer.hltdataTableName() 01711 else: 01712 raise RunTimeError('datatype '+datatype+' is not supported') 01713 revmaptablename=nameDealer.revmapTableName(datatablename) 01714 qHandle=schema.newQuery() 01715 try: 01716 qHandle.addToTableList(revmaptablename) 01717 qHandle.addToTableList(datatablename) 01718 qHandle.addToOutputList('l.DATA_ID','dataid') 01719 qHandle.addToOutputList(revmaptablename+'.REVISION_ID','revisionid') 01720 qConditionStr=datatablename+'.DATA_ID='+revmaptablename+'.DATA_ID AND '+datatablename+'.ENTRY_ID=:entryid' 01721 qCondition=coral.AttributeList() 01722 qCondition.extend('entryid','unsigned long long') 01723 qResult=coral.AttributeList() 01724 qResult.extend('dataid','unsigned long long') 01725 qResult.extend('revisionid','unsigned long long') 01726 qHandle.defineOutput(qResult) 01727 qHandle.setCondition(qConditionStr,qCondition) 01728 cursor=qHandle.execute() 01729 while cursor.next(): 01730 dataid=cursor.currentRow()['dataid'].data() 01731 revisionid=cursor.currentRow()['revisionid'].data() 01732 if revisionid in branchfilter: 01733 dataids.append(dataid) 01734 except: 01735 del qHandle 01736 raise 01737 del qHandle 01738 if len(dataids)!=0:return max(dataids) 01739 return None 01740 01741 01742 #======================================================= 01743 # INSERT requires in update transaction #=======================================================
def dataDML::lumiBXByAlgo | ( | schema, | |
dataid, | |||
algoname | |||
) |
result {lumilsnum:[cmslsnum,numorbit,startorbit,bxlumivalue,bxlumierr,bxlumiqlty]}
Definition at line 1134 of file dataDML.py.
01135 : 01136 ''' 01137 result {lumilsnum:[cmslsnum,numorbit,startorbit,bxlumivalue,bxlumierr,bxlumiqlty]} 01138 ''' 01139 result={} 01140 qHandle=schema.newQuery() 01141 try: 01142 qHandle.addToTableList(nameDealer.lumisummaryv2TableName()) 01143 qHandle.addToOutputList('CMSLSNUM','cmslsnum') 01144 qHandle.addToOutputList('LUMILSNUM','lumilsnum') 01145 #qHandle.addToOutputList('ALGONAME','algoname') 01146 qHandle.addToOutputList('NUMORBIT','numorbit') 01147 qHandle.addToOutputList('STARTORBIT','startorbit') 01148 qHandle.addToOutputList('BXLUMIVALUE_'+algoname,'bxlumivalue') 01149 qHandle.addToOutputList('BXLUMIERROR_'+algoname,'bxlumierr') 01150 qHandle.addToOutputList('BXLUMIQUALITY_'+algoname,'bxlumiqlty') 01151 qConditionStr='DATA_ID=:dataid' 01152 qCondition=coral.AttributeList() 01153 qCondition.extend('dataid','unsigned long long') 01154 qCondition['dataid'].setData(dataid) 01155 qResult=coral.AttributeList() 01156 qResult.extend('cmslsnum','unsigned int') 01157 qResult.extend('lumilsnum','unsigned int') 01158 qResult.extend('numorbit','unsigned int') 01159 qResult.extend('startorbit','unsigned int') 01160 qResult.extend('bxlumivalue','blob') 01161 qResult.extend('bxlumierr','blob') 01162 qResult.extend('bxlumiqlty','blob') 01163 qHandle.defineOutput(qResult) 01164 qHandle.setCondition(qConditionStr,qCondition) 01165 cursor=qHandle.execute() 01166 while cursor.next(): 01167 cmslsnum=cursor.currentRow()['cmslsnum'].data() 01168 lumilsnum=cursor.currentRow()['lumilsnum'].data() 01169 numorbit=cursor.currentRow()['numorbit'].data() 01170 startorbit=cursor.currentRow()['startorbit'].data() 01171 bxlumivalue=cursor.currentRow()['bxlumivalue'].data() 01172 bxlumierr=cursor.currentRow()['bxlumierr'].data() 01173 bxlumiqlty=cursor.currentRow()['bxlumiqlty'].data() 01174 if not result.has_key(algoname): 01175 result[algoname]={} 01176 if not result[algoname].has_key(lumilsnum): 01177 result[algoname][lumilsnum]=[] 01178 result[algoname][lumilsnum].extend([cmslsnum,numorbit,startorbit,bxlumivalue,bxlumierr,bxlumiqlty]) 01179 except : 01180 del qHandle 01181 raise RuntimeError(' dataDML.lumiBXById: '+str(e)) 01182 del qHandle 01183 return result
def dataDML::lumicorrById | ( | schema, | |
correctiondataid | |||
) |
select entry_name,a1,a2,drift from lumicorrections where DATA_ID=:dataid output: {tagname:(data_id(0),a1(1),a2(2),driftcoeff(3))}
Definition at line 47 of file dataDML.py.
00048 : 00049 ''' 00050 select entry_name,a1,a2,drift from lumicorrections where DATA_ID=:dataid 00051 output: {tagname:(data_id(0),a1(1),a2(2),driftcoeff(3))} 00052 ''' 00053 result=None 00054 qHandle=schema.newQuery() 00055 try: 00056 qHandle.addToTableList(nameDealer.lumicorrectionsTableName()) 00057 qHandle.addToOutputList('ENTRY_NAME') 00058 qHandle.addToOutputList('A1') 00059 qHandle.addToOutputList('A2') 00060 qHandle.addToOutputList('DRIFT') 00061 qCondition=coral.AttributeList() 00062 qCondition.extend('dataid','unsigned long long') 00063 qCondition['dataid'].setData(correctiondataid) 00064 qResult=coral.AttributeList() 00065 qResult.extend('ENTRY_NAME','string') 00066 qResult.extend('A1','float') 00067 qResult.extend('A2','float') 00068 qResult.extend('DRIFT','float') 00069 qHandle.defineOutput(qResult) 00070 qHandle.setCondition('DATA_ID=:dataid',qCondition) 00071 cursor=qHandle.execute() 00072 while cursor.next(): 00073 tagname=cursor.currentRow()['ENTRY_NAME'].data() 00074 a1=cursor.currentRow()['A1'].data() 00075 a2=0.0 00076 if cursor.currentRow()['A2'].data(): 00077 a2=cursor.currentRow()['A2'].data() 00078 drift=0.0 00079 if cursor.currentRow()['DRIFT'].data(): 00080 drift=cursor.currentRow()['DRIFT'].data() 00081 result={tagname:(correctiondataid,a1,a2,drift)} 00082 except : 00083 del qHandle 00084 raise 00085 del qHandle 00086 return result
def dataDML::lumiLSById | ( | schema, | |
dataid, | |||
beamstatus = None , |
|||
withBXInfo = False , |
|||
bxAlgo = 'OCC1' , |
|||
withBeamIntensity = False , |
|||
tableName = None |
|||
) |
input: beamstatus: filter on beam status flag output: result (runnum,{lumilsnum,[cmslsnum(0),instlumi(1),instlumierr(2),instlumiqlty(3),beamstatus(4),beamenergy(5),numorbit(6),startorbit(7),(bxvalueArray,bxerrArray)(8),(bxindexArray,beam1intensityArray,beam2intensityArray)(9)]})
Definition at line 936 of file dataDML.py.
00937 : 00938 ''' 00939 input: 00940 beamstatus: filter on beam status flag 00941 output: 00942 result (runnum,{lumilsnum,[cmslsnum(0),instlumi(1),instlumierr(2),instlumiqlty(3),beamstatus(4),beamenergy(5),numorbit(6),startorbit(7),(bxvalueArray,bxerrArray)(8),(bxindexArray,beam1intensityArray,beam2intensityArray)(9)]}) 00943 ''' 00944 runnum=0 00945 result={} 00946 qHandle=schema.newQuery() 00947 if withBXInfo and bxAlgo not in ['OCC1','OCC2','ET']: 00948 raise ValueError('unknown lumi algo '+bxAlgo) 00949 if beamstatus and beamstatus not in ['STABLE BEAMS',]: 00950 raise ValueError('unknown beam status '+beamstatus) 00951 try: 00952 if tableName is None: 00953 lls=nameDealer.lumisummaryv2TableName() 00954 else: 00955 lls=tableName 00956 qHandle.addToTableList(lls) 00957 qHandle.addToOutputList('RUNNUM','runnum') 00958 qHandle.addToOutputList('LUMILSNUM','lumilsnum') 00959 qHandle.addToOutputList('CMSLSNUM','cmslsnum') 00960 qHandle.addToOutputList('INSTLUMI','instlumi') 00961 qHandle.addToOutputList('INSTLUMIERROR','instlumierr') 00962 qHandle.addToOutputList('INSTLUMIQUALITY','instlumiqlty') 00963 qHandle.addToOutputList('BEAMSTATUS','beamstatus') 00964 qHandle.addToOutputList('BEAMENERGY','beamenergy') 00965 qHandle.addToOutputList('NUMORBIT','numorbit') 00966 qHandle.addToOutputList('STARTORBIT','startorbit') 00967 if withBXInfo: 00968 qHandle.addToOutputList('BXLUMIVALUE_'+bxAlgo,'bxvalue') 00969 qHandle.addToOutputList('BXLUMIERROR_'+bxAlgo,'bxerror') 00970 if withBeamIntensity: 00971 qHandle.addToOutputList('CMSBXINDEXBLOB','bxindexblob') 00972 qHandle.addToOutputList('BEAMINTENSITYBLOB_1','beam1intensity') 00973 qHandle.addToOutputList('BEAMINTENSITYBLOB_2','beam2intensity') 00974 00975 qConditionStr='DATA_ID=:dataid' 00976 qCondition=coral.AttributeList() 00977 qCondition.extend('dataid','unsigned long long') 00978 qCondition['dataid'].setData(int(dataid)) 00979 if beamstatus: 00980 qConditionStr+=' and BEAMSTATUS=:beamstatus' 00981 qCondition.extend('beamstatus','string') 00982 qCondition['beamstatus'].setData(beamstatus) 00983 qResult=coral.AttributeList() 00984 qResult.extend('runnum','unsigned int') 00985 qResult.extend('lumilsnum','unsigned int') 00986 qResult.extend('cmslsnum','unsigned int') 00987 qResult.extend('instlumi','float') 00988 qResult.extend('instlumierr','float') 00989 qResult.extend('instlumiqlty','short') 00990 qResult.extend('beamstatus','string') 00991 qResult.extend('beamenergy','float') 00992 qResult.extend('numorbit','unsigned int') 00993 qResult.extend('startorbit','unsigned int') 00994 if withBXInfo: 00995 qResult.extend('bxvalue','blob') 00996 qResult.extend('bxerror','blob') 00997 if withBeamIntensity: 00998 qResult.extend('bxindexblob','blob') 00999 qResult.extend('beam1intensity','blob') 01000 qResult.extend('beam2intensity','blob') 01001 qHandle.defineOutput(qResult) 01002 qHandle.setCondition(qConditionStr,qCondition) 01003 cursor=qHandle.execute() 01004 while cursor.next(): 01005 runnum=cursor.currentRow()['runnum'].data() 01006 lumilsnum=cursor.currentRow()['lumilsnum'].data() 01007 cmslsnum=cursor.currentRow()['cmslsnum'].data() 01008 instlumi=cursor.currentRow()['instlumi'].data() 01009 instlumierr=cursor.currentRow()['instlumierr'].data() 01010 instlumiqlty=cursor.currentRow()['instlumiqlty'].data() 01011 bs=cursor.currentRow()['beamstatus'].data() 01012 begev=cursor.currentRow()['beamenergy'].data() 01013 numorbit=cursor.currentRow()['numorbit'].data() 01014 startorbit=cursor.currentRow()['startorbit'].data() 01015 bxinfo=None 01016 bxvalueblob=None 01017 bxerrblob=None 01018 if withBXInfo: 01019 bxvalueblob=cursor.currentRow()['bxvalue'].data() 01020 bxerrblob=cursor.currentRow()['bxerror'].data() 01021 if bxvalueblob and bxerrblob: 01022 bxvaluesArray=CommonUtil.unpackBlobtoArray(bxvalueblob,'f') 01023 bxerrArray=CommonUtil.unpackBlobtoArray(bxerrblob,'f') 01024 bxinfo=(bxvaluesArray,bxerrArray) 01025 bxindexblob=None 01026 beam1intensity=None 01027 beam2intensity=None 01028 beaminfo=None 01029 if withBeamIntensity: 01030 bxindexblob=cursor.currentRow()['bxindexblob'].data() 01031 beam1intensity=cursor.currentRow()['beam1intensity'].data() 01032 beam2intensity=cursor.currentRow()['beam2intensity'].data() 01033 if bxindexblob : 01034 bxindexArray=CommonUtil.unpackBlobtoArray(bxindexblob,'h') 01035 beam1intensityArray=CommonUtil.unpackBlobtoArray(beam1intensity,'f') 01036 beam2intensityArray=CommonUtil.unpackBlobtoArray(beam2intensity,'f') 01037 beaminfo=(bxindexArray,beam1intensityArray,beam2intensityArray) 01038 result[lumilsnum]=[cmslsnum,instlumi,instlumierr,instlumiqlty,bs,begev,numorbit,startorbit,bxinfo,beaminfo] 01039 except : 01040 del qHandle 01041 raise 01042 del qHandle return (runnum,result)
def dataDML::luminormById | ( | schema, | |
dataid | |||
) |
select entry_name,amodetag,norm_1,egev_1,norm_2,egev_2 from luminorms where DATA_ID=:dataid output: {norm_name:(amodetag(0),norm_1(1),egev_1(2),norm_occ2(3),norm_et(4),norm_pu(5),constfactor(6))}
select entry_name,amodetag,norm_1,egev_1,norm_2,egev_2 from luminorms where DATA_ID=:dataid result (normname(0),amodetag(1),egev(2),norm(3),norm_occ2(4),norm_et(5),norm_pu(6),constfactor(7))
Definition at line 482 of file dataDML.py.
00483 : 00484 ''' 00485 select entry_name,amodetag,norm_1,egev_1,norm_2,egev_2 from luminorms where DATA_ID=:dataid 00486 output: {norm_name:(amodetag(0),norm_1(1),egev_1(2),norm_occ2(3),norm_et(4),norm_pu(5),constfactor(6))} 00487 ''' 00488 result=None 00489 qHandle=schema.newQuery() 00490 try: 00491 qHandle.addToTableList(nameDealer.luminormTableName()) 00492 qHandle.addToOutputList('ENTRY_NAME','normname') 00493 qHandle.addToOutputList('AMODETAG','amodetag') 00494 qHandle.addToOutputList('NORM_1','norm_1') 00495 qHandle.addToOutputList('EGEV_1','energy_1') 00496 qHandle.addToOutputList('NORM_OCC2','norm_occ2') 00497 qHandle.addToOutputList('NORM_ET','norm_et') 00498 qHandle.addToOutputList('NORM_PU','norm_pu') 00499 qHandle.addToOutputList('CONSTFACTOR','constfactor') 00500 qCondition=coral.AttributeList() 00501 qCondition.extend('dataid','unsigned long long') 00502 qCondition['dataid'].setData(dataid) 00503 qResult=coral.AttributeList() 00504 qResult.extend('normname','string') 00505 qResult.extend('amodetag','string') 00506 qResult.extend('norm_1','float') 00507 qResult.extend('energy_1','unsigned int') 00508 qResult.extend('norm_occ2','float') 00509 qResult.extend('norm_et','float') 00510 qResult.extend('norm_pu','float') 00511 qResult.extend('constfactor','float') 00512 qHandle.defineOutput(qResult) 00513 qHandle.setCondition('DATA_ID=:dataid',qCondition) 00514 cursor=qHandle.execute() 00515 while cursor.next(): 00516 normname=cursor.currentRow()['normname'].data() 00517 amodetag=cursor.currentRow()['amodetag'].data() 00518 norm_1=cursor.currentRow()['norm_1'].data() 00519 energy_1=cursor.currentRow()['energy_1'].data() 00520 norm_occ2=1.0 00521 if cursor.currentRow()['norm_occ2'].data(): 00522 norm_occ2=cursor.currentRow()['norm_occ2'].data() 00523 norm_et=1.0 00524 if cursor.currentRow()['norm_et'].data(): 00525 norm_et=cursor.currentRow()['norm_et'].data() 00526 norm_pu=1.0 00527 if cursor.currentRow()['norm_pu'].data(): 00528 norm_pu=cursor.currentRow()['norm_pu'].data() 00529 constfactor=1.0 00530 if cursor.currentRow()['constfactor'].data(): 00531 constfactor=cursor.currentRow()['constfactor'].data() 00532 result={normname:(amodetag,norm_1,energy_1,norm_occ2,norm_et,norm_pu,constfactor)} 00533 except : 00534 del qHandle 00535 raise 00536 del qHandle 00537 return result
def dataDML::lumiRunById | ( | schema, | |
lumidataid, | |||
lumitype = 'HF' |
|||
) |
input: lumidataid output: (runnum(0),datasource(1),nominalegev(2),ncollidingbunches(3))
Definition at line 826 of file dataDML.py.
00827 : 00828 ''' 00829 input: lumidataid 00830 output: (runnum(0),datasource(1),nominalegev(2),ncollidingbunches(3)) 00831 ''' 00832 if lumitype not in ['HF','PIXEL']: 00833 raise ValueError('unknown lumitype '+lumitype) 00834 lumitableName='' 00835 if lumitype=='HF': 00836 lumitableName = nameDealer.lumidataTableName() 00837 else: 00838 lumitableName = nameDealer.pixellumidataTableName() 00839 qHandle=schema.newQuery() 00840 try: 00841 qHandle.addToTableList(lumitableName) 00842 qHandle.addToOutputList('RUNNUM') 00843 qHandle.addToOutputList('SOURCE') 00844 qHandle.addToOutputList('NOMINALEGEV') 00845 qHandle.addToOutputList('NCOLLIDINGBUNCHES') 00846 qConditionStr='DATA_ID=:dataid' 00847 qCondition=coral.AttributeList() 00848 qCondition.extend('dataid','unsigned long long') 00849 qCondition['dataid'].setData(lumidataid) 00850 qResult=coral.AttributeList() 00851 qResult.extend('RUNNUM','unsigned int') 00852 qResult.extend('SOURCE','string') 00853 qResult.extend('NOMINALEGEV','float') 00854 qResult.extend('NCOLLIDINGBUNCHES','unsigned int') 00855 qHandle.defineOutput(qResult) 00856 qHandle.setCondition(qConditionStr,qCondition) 00857 cursor=qHandle.execute() 00858 while cursor.next(): 00859 runnum=cursor.currentRow()['RUNNUM'].data() 00860 datasource=cursor.currentRow()['SOURCE'].data() 00861 nominalegev=0 00862 if not cursor.currentRow()['NOMINALEGEV'].isNull(): 00863 nominalegev=cursor.currentRow()['NOMINALEGEV'].data() 00864 ncollidingbunches=0 00865 if not cursor.currentRow()['NCOLLIDINGBUNCHES'].isNull(): 00866 ncollidingbunches=cursor.currentRow()['NCOLLIDINGBUNCHES'].data() 00867 result=(runnum,datasource,nominalegev,ncollidingbunches) 00868 except : 00869 del qHandle 00870 raise 00871 del qHandle 00872 return result
def dataDML::lumiRunByIds | ( | schema, | |
dataidMap, | |||
lumitype = 'HF' |
|||
) |
input dataidMap : {run:lumidataid} result {runnum: (datasource(0),nominalegev(1),ncollidingbunches(2)}
Definition at line 810 of file dataDML.py.
00811 : 00812 ''' 00813 input dataidMap : {run:lumidataid} 00814 result {runnum: (datasource(0),nominalegev(1),ncollidingbunches(2)} 00815 ''' 00816 result={} 00817 if not dataidMap: 00818 return result 00819 inputRange=dataidMap.keys() 00820 for r in inputRange: 00821 lumidataid=dataidMap[r][0] 00822 if lumidataid: 00823 perrundata=lumiRunById(schema,lumidataid,lumitype=lumitype) 00824 result[r]=(perrundata[1],perrundata[2],perrundata[3]) 00825 return result
def dataDML::mostRecentLumicorrs | ( | schema, | |
branchfilter | |||
) |
this overview query should be only for corr select e.name,n.data_id,r.revision_id , n.a1,n.a2,n.drift from lumicorrections_entries e,lumicorrections_rev r,lumicorrections n where n.entry_id=e.entry_id and n.data_id=r.data_id and r.revision_id>=min(branchfilter) and r.revision_id<=max(branchfilter) group by e.entry_name,r.revision_id,n.a1,n.a2,n.drift; output {corrname:(data_id,a1,a2,drift)}
Definition at line 538 of file dataDML.py.
00539 : 00540 ''' 00541 this overview query should be only for corr 00542 select e.name,n.data_id,r.revision_id , n.a1,n.a2,n.drift from lumicorrections_entries e,lumicorrections_rev r,lumicorrections n where n.entry_id=e.entry_id and n.data_id=r.data_id and r.revision_id>=min(branchfilter) and r.revision_id<=max(branchfilter) group by e.entry_name,r.revision_id,n.a1,n.a2,n.drift; 00543 output {corrname:(data_id,a1,a2,drift)} 00544 ''' 00545 #print branchfilter 00546 result={} 00547 entry2datamap={} 00548 branchmin=0 00549 branchmax=0 00550 if branchfilter and len(branchfilter)!=0: 00551 branchmin=min(branchfilter) 00552 branchmax=max(branchfilter) 00553 else: 00554 return result 00555 qHandle=schema.newQuery() 00556 corrdict={} 00557 try: 00558 qHandle.addToTableList(nameDealer.entryTableName(nameDealer.lumicorrectionsTableName()),'e') 00559 qHandle.addToTableList(nameDealer.lumicorrectionsTableName(),'n') 00560 qHandle.addToTableList(nameDealer.revmapTableName(nameDealer.lumicorrectionsTableName()),'r') 00561 qHandle.addToOutputList('e.NAME','corrname') 00562 qHandle.addToOutputList('r.DATA_ID','data_id') 00563 qHandle.addToOutputList('r.REVISION_ID','revision_id') 00564 qHandle.addToOutputList('n.A1','a1') 00565 qHandle.addToOutputList('n.A2','a2') 00566 qHandle.addToOutputList('n.DRIFT','drift') 00567 qCondition=coral.AttributeList() 00568 qCondition.extend('branchmin','unsigned long long') 00569 qCondition.extend('branchmax','unsigned long long') 00570 qCondition['branchmin'].setData(branchmin) 00571 qCondition['branchmax'].setData(branchmax) 00572 qResult=coral.AttributeList() 00573 qResult.extend('corrname','string') 00574 qResult.extend('data_id','unsigned long long') 00575 qResult.extend('revision_id','unsigned long long') 00576 qResult.extend('a1','float') 00577 qResult.extend('a2','float') 00578 qResult.extend('drift','float') 00579 qHandle.defineOutput(qResult) 00580 qHandle.setCondition('n.ENTRY_ID=e.ENTRY_ID and n.DATA_ID=r.DATA_ID AND n.DATA_ID=r.DATA_ID AND r.REVISION_ID>=:branchmin AND r.REVISION_ID<=:branchmax',qCondition) 00581 cursor=qHandle.execute() 00582 while cursor.next(): 00583 corrname=cursor.currentRow()['corrname'].data() 00584 data_id=cursor.currentRow()['data_id'].data() 00585 if not corrdict.has_key(corrname): 00586 corrdict[corrname]=0 00587 if data_id>corrdict[corrname]: 00588 corrdict[corrname]=data_id 00589 a1=cursor.currentRow()['a1'].data() #required 00590 a2=0.0 00591 if not cursor.currentRow()['a2'].isNull(): 00592 a2=cursor.currentRow()['a2'].data() 00593 drift=0.0 00594 if not cursor.currentRow()['drift'].isNull(): 00595 drift=cursor.currentRow()['drift'].data() 00596 result[corrname]=(data_id,a1,a2,drift) 00597 except: 00598 raise 00599 return result
def dataDML::mostRecentLuminorms | ( | schema, | |
branchfilter | |||
) |
this overview query should be only for norm select e.name,n.data_id,r.revision_id,n.amodetag,n.norm_1,n.egev_1,n.norm_occ2,n.norm_et,n.norm_pu,n.constfactor from luminorms_entries e,luminorms_rev r,luminorms n where n.entry_id=e.entry_id and n.data_id=r.data_id and r.revision_id>=min(branchfilter) and r.revision_id<=max(branchfilter); output {norm_name:(amodetag(0),norm_1(1),egev_1(2),norm_occ2(3),norm_et(4),norm_pu(5),constfactor(6))}
Definition at line 404 of file dataDML.py.
00405 : 00406 ''' 00407 this overview query should be only for norm 00408 select e.name,n.data_id,r.revision_id,n.amodetag,n.norm_1,n.egev_1,n.norm_occ2,n.norm_et,n.norm_pu,n.constfactor from luminorms_entries e,luminorms_rev r,luminorms n where n.entry_id=e.entry_id and n.data_id=r.data_id and r.revision_id>=min(branchfilter) and r.revision_id<=max(branchfilter); 00409 output {norm_name:(amodetag(0),norm_1(1),egev_1(2),norm_occ2(3),norm_et(4),norm_pu(5),constfactor(6))} 00410 ''' 00411 #print branchfilter 00412 result={} 00413 entry2datamap={} 00414 branchmin=0 00415 branchmax=0 00416 if branchfilter and len(branchfilter)!=0: 00417 branchmin=min(branchfilter) 00418 branchmax=max(branchfilter) 00419 else: 00420 return result 00421 #print branchmin,branchmax 00422 qHandle=schema.newQuery() 00423 normdict={} 00424 try: 00425 qHandle.addToTableList(nameDealer.entryTableName(nameDealer.luminormTableName()),'e') 00426 qHandle.addToTableList(nameDealer.luminormTableName(),'n') 00427 qHandle.addToTableList(nameDealer.revmapTableName(nameDealer.luminormTableName()),'r') 00428 qHandle.addToOutputList('e.NAME','normname') 00429 qHandle.addToOutputList('r.DATA_ID','data_id') 00430 qHandle.addToOutputList('r.REVISION_ID','revision_id') 00431 qHandle.addToOutputList('n.AMODETAG','amodetag') 00432 qHandle.addToOutputList('n.NORM_1','norm_1') 00433 qHandle.addToOutputList('n.EGEV_1','energy_1') 00434 qHandle.addToOutputList('n.NORM_OCC2','norm_occ2') 00435 qHandle.addToOutputList('n.NORM_ET','norm_et') 00436 qHandle.addToOutputList('n.NORM_PU','norm_pu') 00437 qHandle.addToOutputList('n.CONSTFACTOR','constfactor') 00438 qCondition=coral.AttributeList() 00439 qCondition.extend('branchmin','unsigned long long') 00440 qCondition.extend('branchmax','unsigned long long') 00441 qCondition['branchmin'].setData(branchmin) 00442 qCondition['branchmax'].setData(branchmax) 00443 qResult=coral.AttributeList() 00444 qResult.extend('normname','string') 00445 qResult.extend('data_id','unsigned long long') 00446 qResult.extend('revision_id','unsigned long long') 00447 qResult.extend('amodetag','string') 00448 qResult.extend('norm_1','float') 00449 qResult.extend('energy_1','unsigned int') 00450 qResult.extend('norm_occ2','float') 00451 qResult.extend('norm_et','float') 00452 qResult.extend('norm_pu','float') 00453 qResult.extend('constfactor','float') 00454 qHandle.defineOutput(qResult) 00455 qHandle.setCondition('n.ENTRY_ID=e.ENTRY_ID and n.DATA_ID=r.DATA_ID AND n.DATA_ID=r.DATA_ID AND r.REVISION_ID>=:branchmin AND r.REVISION_ID<=:branchmax',qCondition) 00456 cursor=qHandle.execute() 00457 while cursor.next(): 00458 data_id=cursor.currentRow()['data_id'].data() 00459 normname=cursor.currentRow()['normname'].data() 00460 if not normdict.has_key(normname): 00461 normdict[normname]=0 00462 if data_id>normdict[normname]: 00463 normdict[normname]=data_id 00464 amodetag=cursor.currentRow()['amodetag'].data() 00465 norm_1=cursor.currentRow()['norm_1'].data() 00466 energy_1=cursor.currentRow()['energy_1'].data() 00467 norm_occ2=1.0 00468 if not cursor.currentRow()['norm_occ2'].isNull(): 00469 norm_occ2=cursor.currentRow()['norm_occ2'].data() 00470 norm_et=1.0 00471 if not cursor.currentRow()['norm_et'].isNull(): 00472 norm_et=cursor.currentRow()['norm_et'].data() 00473 norm_pu=1.0 00474 if not cursor.currentRow()['norm_pu'].isNull(): 00475 norm_pu=cursor.currentRow()['norm_pu'].data() 00476 constfactor=1.0 00477 if not cursor.currentRow()['constfactor'].isNull(): 00478 constfactor=cursor.currentRow()['constfactor'].data() 00479 result[normname]=(amodetag,norm_1,energy_1,norm_occ2,norm_et,norm_pu,constfactor) 00480 except: 00481 raise return result
def dataDML::runList | ( | schema, | |
fillnum = None , |
|||
runmin = None , |
|||
runmax = None , |
|||
fillmin = None , |
|||
fillmax = None , |
|||
startT = None , |
|||
stopT = None , |
|||
l1keyPattern = None , |
|||
hltkeyPattern = None , |
|||
amodetag = None , |
|||
nominalEnergy = None , |
|||
energyFlut = 0.2 , |
|||
requiretrg = True , |
|||
requirehlt = True , |
|||
lumitype = None |
|||
) |
select runnum,starttime from cmsrunsummary r,lumidata l,trgdata t,hltdata h where r.runnum=l.runnum and l.runnum=t.runnum and t.runnum=h.runnum and r.fillnum=:fillnum and r.runnum>:runmin and r.runnum<:runmax and r.amodetag=:amodetag and regexp_like(r.l1key,:l1keypattern) and regexp_like(hltkey,:hltkeypattern) and l.nominalEnergy>=:nominalEnergy*(1-energyFlut) and l.nominalEnergy<=:nominalEnergy*(1+energyFlut)
Definition at line 238 of file dataDML.py.
00239 : 00240 ''' 00241 select runnum,starttime from cmsrunsummary r,lumidata l,trgdata t,hltdata h where r.runnum=l.runnum and l.runnum=t.runnum and t.runnum=h.runnum and r.fillnum=:fillnum and r.runnum>:runmin and r.runnum<:runmax and r.amodetag=:amodetag and regexp_like(r.l1key,:l1keypattern) and regexp_like(hltkey,:hltkeypattern) and l.nominalEnergy>=:nominalEnergy*(1-energyFlut) and l.nominalEnergy<=:nominalEnergy*(1+energyFlut) 00242 ''' 00243 if lumitype not in ['HF','PIXEL']: 00244 raise ValueError('unknown lumitype '+lumitype) 00245 lumitableName='' 00246 if lumitype=='HF': 00247 lumitableName=nameDealer.lumidataTableName() 00248 elif lumitype == 'PIXEL': 00249 lumitableName = nameDealer.pixellumidataTableName() 00250 else: 00251 assert False, "ERROR Unknown lumitype '%s'" % lumitype 00252 result=[] 00253 timelesslist=[] 00254 qHandle=schema.newQuery() 00255 r=nameDealer.cmsrunsummaryTableName() 00256 l=lumitableName 00257 t=nameDealer.trgdataTableName() 00258 h=nameDealer.hltdataTableName() 00259 lute=lumiTime.lumiTime() 00260 try: 00261 qHandle.addToTableList(r) 00262 qHandle.addToTableList(l) 00263 qConditionStr=r+'.RUNNUM='+l+'.RUNNUM' 00264 if requiretrg: 00265 qHandle.addToTableList(t) 00266 qConditionStr+=' and '+l+'.RUNNUM='+t+'.RUNNUM' 00267 if requirehlt: 00268 qHandle.addToTableList(h) 00269 qConditionStr+=' and '+l+'.RUNNUM='+h+'.RUNNUM' 00270 qCondition=coral.AttributeList() 00271 if fillnum: 00272 qConditionStr+=' and '+r+'.FILLNUM=:fillnum' 00273 qCondition.extend('fillnum','unsigned int') 00274 qCondition['fillnum'].setData(int(fillnum)) 00275 if runmin: 00276 qConditionStr+=' and '+r+'.RUNNUM>=:runmin' 00277 qCondition.extend('runmin','unsigned int') 00278 qCondition['runmin'].setData(runmin) 00279 if runmax: 00280 qConditionStr+=' and '+r+'.RUNNUM<=:runmax' 00281 qCondition.extend('runmax','unsigned int') 00282 qCondition['runmax'].setData(runmax) 00283 if fillmin: 00284 qConditionStr+=' and '+r+'.FILLNUM>=:fillmin' 00285 qCondition.extend('fillmin','unsigned int') 00286 qCondition['fillmin'].setData(fillmin) 00287 if fillmax: 00288 qConditionStr+=' and '+r+'.FILLNUM<=:fillmax' 00289 qCondition.extend('fillmax','unsigned int') 00290 qCondition['fillmax'].setData(fillmax) 00291 if amodetag: 00292 qConditionStr+=' and '+r+'.AMODETAG=:amodetag' 00293 qCondition.extend('amodetag','string') 00294 qCondition['amodetag'].setData(amodetag) 00295 if l1keyPattern: 00296 qConditionStr+=' and regexp_like('+r+'.L1KEY,:l1keypattern)' 00297 qCondition.extend('l1keypattern','string') 00298 qCondition['l1keypattern'].setData(l1keyPattern) 00299 if hltkeyPattern: 00300 qConditionStr+=' and regexp_like('+r+'.HLTKEY,:hltkeypattern)' 00301 qCondition.extend('hltkeypattern','string') 00302 qCondition['hltkeypattern'].setData(hltkeyPattern) 00303 if nominalEnergy: 00304 emin=nominalEnergy*(1.0-energyFlut) 00305 emax=nominalEnergy*(1.0+energyFlut) 00306 qConditionStr+=' and '+l+'.NOMINALEGEV>=:emin and '+l+'.NOMINALEGEV<=:emax' 00307 qCondition.extend('emin','float') 00308 qCondition.extend('emax','float') 00309 qCondition['emin'].setData(emin) 00310 qCondition['emax'].setData(emax) 00311 qResult=coral.AttributeList() 00312 qResult.extend('runnum','unsigned int') 00313 qResult.extend('starttime','string') 00314 qHandle.defineOutput(qResult) 00315 qHandle.setCondition(qConditionStr,qCondition) 00316 qHandle.addToOutputList(r+'.RUNNUM','runnum') 00317 qHandle.addToOutputList('TO_CHAR('+r+'.STARTTIME,\'MM/DD/YY HH24:MI:SS\')','starttime') 00318 cursor=qHandle.execute() 00319 00320 while cursor.next(): 00321 starttimeStr=cursor.currentRow()['starttime'].data() 00322 runnum=cursor.currentRow()['runnum'].data() 00323 minTime=None 00324 maxTime=None 00325 if startT and stopT: 00326 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00327 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00328 runTime=lute.StrToDatetime(starttimeStr,customfm='%m/%d/%y %H:%M:%S') 00329 if runTime>=minTime and runTime<=maxTime and runnum not in result: 00330 result.append(runnum) 00331 elif startT is not None: 00332 minTime=lute.StrToDatetime(startT,customfm='%m/%d/%y %H:%M:%S') 00333 runTime=lute.StrToDatetime(starttimeStr,customfm='%m/%d/%y %H:%M:%S') 00334 if runTime>=minTime and runnum not in result: 00335 result.append(runnum) 00336 elif stopT is not None: 00337 maxTime=lute.StrToDatetime(stopT,customfm='%m/%d/%y %H:%M:%S') 00338 runTime=lute.StrToDatetime(starttimeStr,customfm='%m/%d/%y %H:%M:%S') 00339 if runTime<=maxTime and runnum not in result: 00340 result.append(runnum) 00341 else: 00342 if runnum not in result: 00343 result.append(runnum) 00344 except : 00345 del qHandle 00346 raise 00347 del qHandle 00348 return result
def dataDML::runsummary | ( | schema, | |
runnum, | |||
sessionflavor = '' |
|||
) |
select l1key,amodetag,egev,hltkey,fillnum,fillscheme,to_char(starttime),to_char(stoptime) from cmsrunsummary where runnum=:runnum output: [l1key(0),amodetag(1),egev(2),hltkey(3),fillnum(4),fillscheme(5),starttime(6),stoptime(7)]
Definition at line 349 of file dataDML.py.
Referenced by SiStripFineDelayHit::produce().
00350 : 00351 ''' 00352 select l1key,amodetag,egev,hltkey,fillnum,fillscheme,to_char(starttime),to_char(stoptime) from cmsrunsummary where runnum=:runnum 00353 output: [l1key(0),amodetag(1),egev(2),hltkey(3),fillnum(4),fillscheme(5),starttime(6),stoptime(7)] 00354 ''' 00355 result=[] 00356 qHandle=schema.newQuery() 00357 t=lumiTime.lumiTime() 00358 try: 00359 qHandle.addToTableList(nameDealer.cmsrunsummaryTableName()) 00360 qCondition=coral.AttributeList() 00361 qCondition.extend('runnum','unsigned int') 00362 qCondition['runnum'].setData(int(runnum)) 00363 qHandle.addToOutputList('L1KEY','l1key') 00364 qHandle.addToOutputList('AMODETAG','amodetag') 00365 qHandle.addToOutputList('EGEV','egev') 00366 qHandle.addToOutputList('HLTKEY','hltkey') 00367 qHandle.addToOutputList('FILLNUM','fillnum') 00368 qHandle.addToOutputList('FILLSCHEME','fillscheme') 00369 if sessionflavor=='SQLite': 00370 qHandle.addToOutputList('STARTTIME','starttime') 00371 qHandle.addToOutputList('STOPTIME','stoptime') 00372 else: 00373 qHandle.addToOutputList('to_char(STARTTIME,\''+t.coraltimefm+'\')','starttime') 00374 qHandle.addToOutputList('to_char(STOPTIME,\''+t.coraltimefm+'\')','stoptime') 00375 qHandle.setCondition('RUNNUM=:runnum',qCondition) 00376 qResult=coral.AttributeList() 00377 qResult.extend('l1key','string') 00378 qResult.extend('amodetag','string') 00379 qResult.extend('egev','unsigned int') 00380 qResult.extend('hltkey','string') 00381 qResult.extend('fillnum','unsigned int') 00382 qResult.extend('fillscheme','string') 00383 qResult.extend('starttime','string') 00384 qResult.extend('stoptime','string') 00385 qHandle.defineOutput(qResult) 00386 cursor=qHandle.execute() 00387 while cursor.next(): 00388 result.append(cursor.currentRow()['l1key'].data()) 00389 result.append(cursor.currentRow()['amodetag'].data()) 00390 result.append(cursor.currentRow()['egev'].data()) 00391 result.append(cursor.currentRow()['hltkey'].data()) 00392 result.append(cursor.currentRow()['fillnum'].data()) 00393 fillscheme='' 00394 if not cursor.currentRow()['fillscheme'].isNull(): 00395 fillscheme=cursor.currentRow()['fillscheme'].data() 00396 result.append(fillscheme) 00397 result.append(cursor.currentRow()['starttime'].data()) 00398 result.append(cursor.currentRow()['stoptime'].data()) 00399 except : 00400 del qHandle 00401 raise 00402 del qHandle 00403 return result
def dataDML::trgLSById | ( | schema, | |
dataid, | |||
trgbitname = None , |
|||
trgbitnamepattern = None , |
|||
withL1Count = False , |
|||
withPrescale = False |
|||
) |
output: (runnum,{cmslsnum:[deadtimecount(0),bitzerocount(1),bitzeroprescale(2),deadfrac(3),[(bitname,trgcount,prescale)](4)]})
Definition at line 715 of file dataDML.py.
00716 : 00717 ''' 00718 output: (runnum,{cmslsnum:[deadtimecount(0),bitzerocount(1),bitzeroprescale(2),deadfrac(3),[(bitname,trgcount,prescale)](4)]}) 00719 ''' 00720 runnum=0 00721 result={} 00722 trgnamedict=[] 00723 if trgbitname or trgbitnamepattern or withPrescale or withL1Count: 00724 trgrundata=trgRunById(schema,dataid,trgbitname=trgbitname,trgbitnamepattern=trgbitnamepattern) 00725 trgnamedict=trgrundata[3] 00726 00727 qHandle=schema.newQuery() 00728 try: 00729 qHandle.addToTableList(nameDealer.lstrgTableName()) 00730 qHandle.addToOutputList('RUNNUM','runnum') 00731 qHandle.addToOutputList('CMSLSNUM','cmslsnum') 00732 qHandle.addToOutputList('DEADTIMECOUNT','deadtimecount') 00733 #qHandle.addToOutputList('BITZEROCOUNT','bitzerocount') 00734 #qHandle.addToOutputList('BITZEROPRESCALE','bitzeroprescale') 00735 qHandle.addToOutputList('DEADFRAC','deadfrac') 00736 if withPrescale: 00737 qHandle.addToOutputList('PRESCALEBLOB','prescalesblob') 00738 if withL1Count: 00739 qHandle.addToOutputList('TRGCOUNTBLOB','trgcountblob') 00740 qConditionStr='DATA_ID=:dataid' 00741 qCondition=coral.AttributeList() 00742 qCondition.extend('dataid','unsigned long long') 00743 qCondition['dataid'].setData(dataid) 00744 qResult=coral.AttributeList() 00745 qResult.extend('runnum','unsigned int') 00746 qResult.extend('cmslsnum','unsigned int') 00747 qResult.extend('deadtimecount','unsigned long long') 00748 #qResult.extend('bitzerocount','unsigned int') 00749 #qResult.extend('bitzeroprescale','unsigned int') 00750 qResult.extend('deadfrac','float') 00751 if withPrescale: 00752 qResult.extend('prescalesblob','blob') 00753 if withL1Count: 00754 qResult.extend('trgcountblob','blob') 00755 qHandle.defineOutput(qResult) 00756 qHandle.setCondition(qConditionStr,qCondition) 00757 cursor=qHandle.execute() 00758 while cursor.next(): 00759 runnum=cursor.currentRow()['runnum'].data() 00760 cmslsnum=cursor.currentRow()['cmslsnum'].data() 00761 deadtimecount=cursor.currentRow()['deadtimecount'].data() 00762 #bitzerocount=cursor.currentRow()['bitzerocount'].data() 00763 #bitzeroprescale=cursor.currentRow()['bitzeroprescale'].data() 00764 bitzerocount=0 00765 bitzeroprescale=0 00766 deadfrac=cursor.currentRow()['deadfrac'].data() 00767 if not result.has_key(cmslsnum): 00768 result[cmslsnum]=[] 00769 result[cmslsnum].append(deadtimecount) 00770 result[cmslsnum].append(bitzerocount) 00771 result[cmslsnum].append(bitzeroprescale) 00772 result[cmslsnum].append(deadfrac) 00773 prescalesblob=None 00774 trgcountblob=None 00775 if withPrescale: 00776 prescalesblob=cursor.currentRow()['prescalesblob'].data() 00777 if withL1Count: 00778 trgcountblob=cursor.currentRow()['trgcountblob'].data() 00779 prescales=[] 00780 trgcounts=[] 00781 if prescalesblob: 00782 if runnum <150008: ###WORKAROUND PATCH!! because the 2010 blobs were packed as type l ### 00783 prescales=CommonUtil.unpackBlobtoArray(prescalesblob,'l') 00784 else: 00785 prescales=CommonUtil.unpackBlobtoArray(prescalesblob,'I') 00786 if trgcountblob: 00787 if runnum <150008: ###WORKAROUND PATCH!! because the 2010 blobs were packed as type l ### 00788 trgcounts=CommonUtil.unpackBlobtoArray(trgcountblob,'l') 00789 else: 00790 trgcounts=CommonUtil.unpackBlobtoArray(trgcountblob,'I') 00791 00792 bitinfo=[] 00793 for (bitidx,thisbitname) in trgnamedict: 00794 thispresc=None 00795 thistrgcount=None 00796 if prescales: 00797 thispresc=prescales[bitidx] 00798 if trgcounts: 00799 thistrgcount=trgcounts[bitidx] 00800 thisbitinfo=(thisbitname,thistrgcount,thispresc) 00801 bitinfo.append(thisbitinfo) 00802 result[cmslsnum].append(bitinfo) 00803 except: 00804 del qHandle 00805 raise 00806 del qHandle 00807 # t1=time.time() 00808 # print 'trgLSById time ',t1-t0 00809 return (runnum,result)
def dataDML::trgRunById | ( | schema, | |
dataid, | |||
trgbitname = None , |
|||
trgbitnamepattern = None |
|||
) |
query: select RUNNUM,SOURCE,BITZERONAME,BITNAMECLOB from trgdata where DATA_ID=:dataid output: [runnum(0),datasource(1),bitzeroname(2),bitnamedict(3)] -- runnumber -- original source database name -- deadtime norm bitname -- bitnamedict [(bitidx,bitname),...]
Definition at line 656 of file dataDML.py.
00657 : 00658 ''' 00659 query: select RUNNUM,SOURCE,BITZERONAME,BITNAMECLOB from trgdata where DATA_ID=:dataid 00660 00661 output: [runnum(0),datasource(1),bitzeroname(2),bitnamedict(3)] 00662 -- runnumber 00663 -- original source database name 00664 -- deadtime norm bitname 00665 -- bitnamedict [(bitidx,bitname),...] 00666 ''' 00667 result=[] 00668 qHandle=schema.newQuery() 00669 runnum=None 00670 datasource=None 00671 bitzeroname=None 00672 bitnamedict=[] 00673 try: 00674 qHandle.addToTableList(nameDealer.trgdataTableName()) 00675 qHandle.addToOutputList('RUNNUM','runnum') 00676 qHandle.addToOutputList('SOURCE','source') 00677 qHandle.addToOutputList('BITZERONAME','bitzeroname') 00678 qHandle.addToOutputList('BITNAMECLOB','bitnameclob') 00679 qCondition=coral.AttributeList() 00680 qCondition.extend('dataid','unsigned long long') 00681 qCondition['dataid'].setData(dataid) 00682 qResult=coral.AttributeList() 00683 qResult.extend('runnum','unsigned int') 00684 qResult.extend('source','string') 00685 qResult.extend('bitzeroname','string') 00686 qResult.extend('bitnameclob','string') 00687 qHandle.defineOutput(qResult) 00688 qHandle.setCondition('DATA_ID=:dataid',qCondition) 00689 cursor=qHandle.execute() 00690 bitnameclob=None 00691 bitnames=[] 00692 while cursor.next(): 00693 runnum=cursor.currentRow()['runnum'].data() 00694 source=cursor.currentRow()['source'].data() 00695 bitzeroname=cursor.currentRow()['bitzeroname'].data() 00696 bitnameclob=cursor.currentRow()['bitnameclob'].data() 00697 if bitnameclob: 00698 bitnames=bitnameclob.split(',') 00699 for trgnameidx,trgname in enumerate(bitnames): 00700 if trgbitname : 00701 if trgname==trgbitname: 00702 bitnamedict.append((trgnameidx,trgname)) 00703 break 00704 elif trgbitnamepattern: 00705 if fnmatch.fnmatch(trgname,trgbitnamepattern): 00706 bitnamedict.append((trgnameidx,trgname)) 00707 else: 00708 bitnamedict.append((trgnameidx,trgname)) 00709 result=[runnum,source,bitzeroname,bitnamedict] 00710 except : 00711 del qHandle 00712 raise 00713 del qHandle 00714 return result
tuple dataDML::branchinfo = (branchid,'DATA') |
Definition at line 2198 of file dataDML.py.
Referenced by TrackerMap::TrackerMap().
tuple dataDML::datainfo = revisionDML.createBranch(schema,'DATA','TRUNK',comment='hold data') |
Definition at line 2186 of file dataDML.py.
tuple dataDML::hltdata = generateDummyData.hlt(schema,20) |
Definition at line 2214 of file dataDML.py.
list dataDML::hltlsdata = hltdata[2] |
Definition at line 2216 of file dataDML.py.
list dataDML::hltrundata = [hltdata[0],hltdata[1]] |
Definition at line 2215 of file dataDML.py.
Referenced by lumi::RevisionDML::insertHltRunData(), and lumi::HLTV32DB::writeHltDataToSchema2().
tuple dataDML::hlttrgmap = generateDummyData.hlttrgmap(schema) |
Definition at line 2202 of file dataDML.py.
tuple dataDML::latestNorms = revisionDML.latestDataRevisionOfEntry(schema,nameDealer.luminormTableName(),luminormentry_id,normrevlist) |
Definition at line 2225 of file dataDML.py.
tuple dataDML::latestrevision = revisionDML.latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist) |
Definition at line 2233 of file dataDML.py.
tuple dataDML::lumidummydata = generateDummyData.lumiSummary(schema,20) |
Definition at line 2204 of file dataDML.py.
tuple dataDML::lumientry_id = revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),'1211','DATA') |
Definition at line 2232 of file dataDML.py.
list dataDML::lumilsdata = lumidummydata[1] |
Definition at line 2206 of file dataDML.py.
tuple dataDML::luminormentry_id = revisionDML.entryInBranch(schema,nameDealer.luminormTableName(),'pp7TeV','NORM') |
Definition at line 2224 of file dataDML.py.
list dataDML::lumirundata = [lumidummydata[0]] |
Definition at line 2205 of file dataDML.py.
Referenced by lumi::RevisionDML::insertLumiRunData(), and lumi::Lumi2DB::writeAllLumiDataToSchema2().
string dataDML::myconstr = 'oracle://devdb10/cms_xiezhen_dev' |
Definition at line 2174 of file dataDML.py.
tuple dataDML::normbranchinfo = (normbranchid,'NORM') |
Definition at line 2194 of file dataDML.py.
tuple dataDML::norminfo = revisionDML.createBranch(schema,'NORM','TRUNK',comment='hold normalization factor') |
Definition at line 2188 of file dataDML.py.
tuple dataDML::normrevlist = revisionDML.revisionsInBranchName(schema,'NORM') |
Definition at line 2223 of file dataDML.py.
tuple dataDML::revlist = revisionDML.revisionsInBranchName(schema,'DATA') |
Definition at line 2230 of file dataDML.py.
tuple dataDML::runsummarydata = generateDummyData.runsummary(schema,'PROTPHYS',3500) |
Definition at line 2200 of file dataDML.py.
tuple dataDML::schema = session.nominalSchema() |
Definition at line 2177 of file dataDML.py.
tuple dataDML::session = svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')]) |
Definition at line 2176 of file dataDML.py.
tuple dataDML::svc = sessionManager.sessionManager(myconstr,authpath='/afs/cern.ch/user/x/xiezhen',debugON=False) |
Definition at line 2175 of file dataDML.py.
tuple dataDML::tables = lumidbDDL.createTables(schema) |
Definition at line 2181 of file dataDML.py.
Referenced by ora::SchemaUtils::cleanUp().
tuple dataDML::trgdata = generateDummyData.trg(schema,20) |
Definition at line 2209 of file dataDML.py.
tuple dataDML::trgentry_id = revisionDML.entryInBranch(schema,nameDealer.trgdataTableName(),'1222','DATA') |
Definition at line 2238 of file dataDML.py.
list dataDML::trglsdata = trgdata[3] |
Definition at line 2211 of file dataDML.py.
list dataDML::trgrundata = [trgdata[0],trgdata[1],trgdata[2]] |
Definition at line 2210 of file dataDML.py.
Referenced by lumi::RevisionDML::insertTrgRunData(), and lumi::TRGScalers2DB::writeTrgDataToSchema2().
tuple dataDML::trunkinfo = revisionDML.createBranch(schema,'TRUNK',None,comment='main') |
Definition at line 2184 of file dataDML.py.