Forked from
atlas / athena
137514 commits behind, 11061 commits ahead of the upstream repository.
-
Benjamin Trocme authored
Former-commit-id: 8c9f0d7192e8d6e25ca3b98b6afae6a87ee77c53
Benjamin Trocme authoredFormer-commit-id: 8c9f0d7192e8d6e25ca3b98b6afae6a87ee77c53
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pathExtract.py 6.20 KiB
#!/usr/bin env python
# arguments : list of run
import os, sys
import string
import subprocess as sp
from ROOT import *
# Return the path of the output of tier0 monitoring
def returnEosHistPath(run,stream,amiTag,tag="data16_13TeV"):
prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_','ZeroBias':'physics_','MinBias':'physics_'}
path = '/eos/atlas/atlastier0/rucio/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
listOfFiles = p[0].split('\n')
for iFile in listOfFiles:
if ("HIST.%s"%(amiTag) in iFile):
path = '/eos/atlas/atlastier0/rucio/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
path = '/eos/atlas/atlastier0/rucio/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile+'/'+p[0]
return path
return "FILE NOT FOUND"
# Return the path of the output of tier0 monitoring for a range of single LB (available only a couple of days after processing)
def returnEosHistPathLB(run,lb0,lb1,stream,amiTag,tag="data16_13TeV"):
prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_','ZeroBias':'physics_'}
path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
listOfFiles = p[0].split('\n')
pathList = []
for iFile in listOfFiles:
if ("recon.HIST.%s"%(amiTag) in iFile and "LOG" not in iFile):
path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
listOfFiles2 = p[0].split('\n')
for iFile2 in listOfFiles2:
if ("data" in iFile2):
ilb = int((iFile2.split("_lb")[1]).split("._")[0])
# print iFile2,ilb
if (lb0<=ilb and ilb<=lb1):
path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile+'/'+iFile2
pathList.append(path)
if len(pathList)>0:
return pathList
else:
return "FILE NOT FOUND"
# Return the list of TAGs files on EOS
def returnEosTagPath(run,stream,amiTag="f",tag ="data16_13TeV"):
prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_','ZeroBias':'physics_'}
found = False
listOfFiles = []
path = '/eos/atlas/atlastier0/rucio/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0]
files = files.split('\n')
for f in files:
dotAmiTag=".%s"%(amiTag)
if ('TAG' in f and dotAmiTag in f):
path += f+'/'
found=True
break
if not found:
print 'no TAG directory found in %s'%(path)
return
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0].split('\n')
for iFile in files:
if (len(iFile)>0):
pathFile = path+iFile
listOfFiles.append(pathFile)
return listOfFiles
# Return the list of LArNoise ntuple files on EOS
def returnEosLArNoisePath(run,stream,amiTag="f",tag ="data16_13TeV"):
prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_'}
found = False
listOfFiles = []
path = '/eos/atlas/atlascerngroupdisk/det-larg/Tier0/perm/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0]
files = files.split('\n')
for f in files:
dotAmiTag=".%s"%(amiTag)
if ('LARNOISE' in f and dotAmiTag in f):
path += f+'/'
found=True
break
if not found:
print 'no LARNOISE directory found in %s'%(path)
return
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0].split('\n')
for iFile in files:
if (len(iFile)>0):
pathFile = path+iFile
listOfFiles.append(pathFile)
return listOfFiles
# Return the list of ESDs files on EOS
def returnEosEsdPath(run,stream,amiTag="f",tag ="data16_13TeV"):
prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_'}
found = False
listOfFiles = []
path = '/eos/atlas/atlastier0/rucio/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0]
files = files.split('\n')
for f in files:
dotAmiTag=".%s"%(amiTag)
if ('.ESD' in f and dotAmiTag in f):
path += f+'/'
found=True
break
if not found:
print 'no ESD directory found in %s'%(path)
return
P = sp.Popen(['/usr/bin/eos','ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
if p[1]=='':
files = p[0].split('\n')
for iFile in files:
if (len(iFile)>0):
pathFile = path+iFile
listOfFiles.append(pathFile)
return listOfFiles
# Return the list of all files stored on a local user directory
def returnFilesPath(directory=".",filterName = ""):
listOfFiles = []
path = directory
P = sp.Popen(['ls',path],stdout=sp.PIPE,stderr=sp.PIPE)
p = P.communicate()
found = false
if p[1]=='':
files = p[0]
files = files.split('\n')
for f in files:
if filterName in f:
pathFile = path + f
listOfFiles.append(pathFile)
found = true
if not found:
print 'no file containing %f found in %s'%(filterName,path)
return
return listOfFiles