Skip to content

Instantly share code, notes, and snippets.

@mmusich
Created May 10, 2019 08:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmusich/f3fbeb7feb08337c31470830a478d755 to your computer and use it in GitHub Desktop.
Save mmusich/f3fbeb7feb08337c31470830a478d755 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
#G.Benelli and Arun Mittal
#Oct 3 2015
#Quick script to split a large sqlite file (holding all of our Noise payloads (Run1+Run2) into a set of smaller ones.
#Trying to keep the size below 100MB to avoid dropbox issues, we decided after a few test to go for 5 IOVs, the reason being that
#a single recent noise payload seem to weight 20MB, and at most one will have 5 payloads for 5 IOVs.
import subprocess
#Input IOVs:
#Reference for the use of subprocess Popen to execute a command:
#subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT).stdout.read()
#Let's prepare a container for the list of IOVs:
IOVs=[]
for line in subprocess.Popen("conddb --noLimit --db SiPixelQualityFromDbRcd_prompt_Ultralegacy2017_v0_mc.db list SiPixelQualityFromDbRcd_prompt_Ultralegacy2017_v0_mc",shell=True,stdout=subprocess.PIPE,st\
derr=subprocess.STDOUT).stdout.readlines():
if "SiPixelQuality " in line:
#print line.split()
if "2019" in line:
IOVs.append((line.split()[3].strip(')')).strip('('))
#print line
print IOVs
print "There are %s IOVs!"%len(IOVs)
RelevantIOVs=[(IOV,IOVs[IOVs.index(IOV)+199],IOVs[IOVs.index(IOV)+200]) for IOV in IOVs if IOVs.index(IOV)==0 or ((IOVs.index(IOV))%200==0 and (IOVs.index(IOV)+200)<len(IOVs))]
RelevantIOVs.append((RelevantIOVs[-1][2],IOVs[-1],IOVs[-1]))
print RelevantIOVs
for i,splitIOVs in enumerate(RelevantIOVs):
begin=splitIOVs[0]
end=splitIOVs[1]
upperLimit=splitIOVs[1]
print i,begin,end,upperLimit
command="conddb_import -f sqlite:SiPixelQualityFromDbRcd_prompt_Ultralegacy2017_v0_mc.db -c sqlite:SiPixelQualityFromDbRcd_prompt_"+begin+"_"+end+".db -i SiPixelQualityFromDbRcd_prompt_Ultralegacy201\
7_v0_mc -t SiPixelQualityFromDbRcd_prompt_Ultralegacy2017_v0_mc.db -b "+begin+" -e "+end
print command
#Now if we want to execute it inside Python uncomment the following two lines:
STDOUT=subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT).stdout.read()
print STDOUT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment