Skip to content
Snippets Groups Projects
Commit a56350c9 authored by Xiaohu Sun's avatar Xiaohu Sun :art:
Browse files

rm FullChainTests

Former-commit-id: aa59201055ab11ee8ca1ddc3f8d614adc03a4548
parent d1cefd80
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1448 deletions
################################################################################
# Package: FullChainTests
################################################################################
# Declare the package name:
atlas_subdir( FullChainTests )
# Declare the package's dependencies:
atlas_depends_on_subdirs( PRIVATE
TestPolicy )
# Install files from the package:
atlas_install_python_modules( python/*.py )
atlas_install_runtime( test/FullChainTests_TestConfiguration.xml test/*.cfg )
atlas_install_scripts( scripts/*.py scripts/*.sh )
26-11-2011 Serhat Istin
consider to use GetCommand.py properly
package FullChainTests
author Simon Owen <simon.owen@shef.ac.uk>
use AtlasPolicy AtlasPolicy-*
private
use TestPolicy TestPolicy-*
public
apply_pattern declare_scripts files="../scripts/*.py ../scripts/*.sh"
apply_pattern declare_python_modules files="../python/*.py"
macro FullChainTests_TestConfiguration "../test/FullChainTests_TestConfiguration.xml"
apply_pattern declare_runtime extras="../test/FullChainTests_TestConfiguration.xml ../test/*.cfg"
#apply_pattern declare_joboptions files="*.py"
private
apply_pattern validate_xml
public
\ No newline at end of file
#!/usr/bin/python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# -*- coding: utf-8 -*-
# A Job Transformation builder class. The class reads a configuration file and builds
# corresponding job transformation commands .
# Supported commands are Generate_tf.py','AtlasG4_trf.py','Digi_trf.py','Reco_trf.py'
# Configuration files have sections and each section has several settings.
# Section names should be 'AtlasG4_trf.py','Digi_trf.py','Reco_trf.py' Not all sections have to be implemented in a cfg file
# To-Do:
# if a section is absent and the command corresponding to this section is tried to be built an error should be thrown
# implement a reverse enginnering method to succesfully build commands from AMI's GetCommand.py (remember GetCommand.py returns some wrong chars such as whitespace etc...)
# author : Serhat Istin
# ....:istin@cern.ch
import ConfigParser
import string
import copy
import os
class TrfBuilder:
# implement a constructor
def __init__(self, cfgFile): # construct with a config file
self.filename = cfgFile
self.trfCommands = ['Generate_tf.py', 'AtlasG4_trf.py',
'Digi_tf.py', 'Reco_tf.py']
self.DigiRecoConfig = ConfigParser.ConfigParser()
self.commandList = []
if not os.path.isfile(cfgFile): # check if file exists first
print 'TrfBuilder: ERROR:: ConfigFile ' + cfgFile \
+ ' Does Not Exist'
os.sys.exit(-1)
self.DigiRecoConfig.optionxform = str # set this flag in order to use upper-lower case distinction
self.DigiRecoConfig.read(cfgFile) # parse the configuration file
# implement a function which reads the corresponding settings block from tyhe cfg file and returns the command
def buildCommand(self, sectionName):
pfx = copy.copy(sectionName) # copy it not to alter sectionName as python uses ref variables
pfx += ' '
sectionCounter = 0
if sectionName in self.trfCommands:
for section in self.DigiRecoConfig.sections(): # loop over all sections in the file
if section == sectionName: # take only our section for sectionName into account
sectionCounter = sectionCounter + 1
for option in self.DigiRecoConfig.options(section): # loop over all settings in specified our section
# to support multiple values --preExec "AAA:aaa" "BBB:bbb"
pfx += ' --' + option + ' ' \
+ self.DigiRecoConfig.get(section, option) \
+ ' '
if sectionCounter == 0:
print 'TrfBuilder: ERROR:: File Error .No such section: ' \
+ sectionName + ' in the file: ' + self.filename
os.sys.exit(-1)
else:
# throw an error if something non-sense is supplied by the user
print 'TrfBuilder: ERROR:: Invalid Command Type: ' \
+ sectionName
os.sys.exit(-1)
self.commandList.append(pfx)
return pfx
# implement a method to dump all sections to the screen
def printSections(self):
for section in self.DigiRecoConfig.sections():
print section
# implement a method to write the command into a file
def write(self, sectionName, filename):
command = self.buildCommand(sectionName)
file = open(filename, 'w')
file.write(command)
def buildAll(self):
for sectionName in self.DigiRecoConfig.sections():
self.buildCommand(sectionName)
def writeAll(self, filename):
file = open(filename, 'w')
self.filename.write(comandList)
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
class readconfig:
def __init__(self,confile):
com=open(confile).readlines()
for i in range(0,com.count('\n')):
com.remove('\n')
self.myDict={}
self.off1=123456
self.off2=2345678
for ll in com:
# split at the first "="
nn=ll.find("=")
if nn != -1:
lft=ll[0:nn].lstrip(' ')
rgt=ll[nn+1:len(ll)].rstrip('<BR>\n')
# Now do the crazy modifications
for i in range(0,len(lft.split(";"))):
lft1=lft.split(";")[i]
rgt1=rgt.split(";")[i]
self.myDict[lft1]=self.pavelConvert(rgt1)
print self.myDict
def pavelConvert(self,cmd):
cmd=cmd.replace(" ",",")
cmd=cmd.replace("%3B",";")
return cmd
def setDigitOffset(self,off1=123456,off2=2345678):
# To set digitization digits offset, untouched in testing
self.off1=off1
self.off2=off2
def setEventNumber(self,evnt):
self.myDict["events per job"]=evnt
def listTrfs(self):
allowedTrfs=['Reco_trf.py','Digi_trf.py','csc_digi_trf.py']
trfs=self.myDict["transfromation"].split(",")
goodTrfs=[]
for trf in trfs:
if trf in allowedTrfs:
goodTrfs.append(trf)
return goodTrfs
def outputFormats(self):
return self.myDict["formats"].split(",")
def DBRelease(self):
return "DBRelease-"+self.myDict["DBRelease"]+".tar.gz"
def eventsPerJob(self):
return int(self.myDict["events per job"])
def readDict(self,tag):
if tag in self.myDict.keys():
return self.myDict[tag]
else:
return None
def digitTrf(self,myInput,myOutput="output.TMP.RDO.pool.root"):
if 'Digi_trf.py' not in self.listTrfs():
return 'ERROR'
myDict=self.myDict
# Here we reverse engineer the trf:
allSet=[]
# input file:
allSet.append(" inputHitsFile="+myInput)
# output file
allSet.append(" outputRDOFile="+myOutput)
# number of events
allSet.append(" maxEvents="+myDict["events per job"])
#Events to skip (set to zero for digi/reco)
allSet.append(" skipEvents=0")
#Geometry version
allSet.append(" geometryVersion="+myDict["geometryVersion"])
print 'appended geometry versin in digitTrf'
# Digit offset
allSet.append(" digiSeedOffset1="+str(self.off1)+" digiSeedOffset2="+str(self.off2))
# MB input (assume no pileup for the time being!)
if myDict["minbiasHits"] != "NONE":
allSet.append(" minbiasHitsFile="+myDict["minbiasHits"])
# job Config
# allSet.append(" JobConfig="+myDict["JobConfig"])
# Trigger config (set to None for digitisation)
allSet.append(" triggerConfig=DEFAULT")
# DB release
allSet.append(" DBRelease=DBRelease-"+myDict["DBRelease"]+".tar.gz")
# Conditions
allSet.append(" conditionsTag="+myDict["conditionsTag"])
# Random service
# allSet.append(" digiRndmSvc="+myDict["DigiRndmSvc"])
# sampling db
# allSet.append(" samplingFractionDbTag="+myDict["SamplingFractionDbTag"])
# Calo Digit setting
# allSet.append(" AddCaloDigi="+myDict["AddCaloDigi"])
# noise setting
# allSet.append(" doAllNoise="+myDict["NoiseControl"])
# athena options and ignore errors, later please
digicmd="Digi_trf.py "
for settg in allSet:
digicmd += settg
return digicmd
def recoTrf(self,myInput,myOutput="output.TMP",myRN="000000"):
if 'Reco_trf.py' not in self.listTrfs():
return 'ERROR'
myDict=self.myDict
# Here we reverse engineer the trf:
allSet=[]
# Pre include
# if myDict["preInclude"] != "NONE":
# allSet.append(" preInclude="+myDict["preInclude"])
# Pre exec
# if myDict["preExec"] != "NONE":
# allSet.append(" preExec='"+myDict["preExec"]+"'")
# Post include
# if myDict["postInclude"] != "NONE":
# allSet.append(" postInclude="+myDict["postInclude"])
# Post Exec
# if myDict["postExec"] != "NONE":
# allSet.append(" postExec='"+myDict["postExec"]+"'")
# input file:
allSet.append(" inputRDOFile="+myInput)
# run number:
allSet.append(" RunNumber="+myRN)
# OutputESD file
if "ESD" in self.outputFormats():
allSet.append(" outputESDFile="+myOutput+".ESD.pool.root")
# OutputAOD file
if "AOD" in self.outputFormats():
allSet.append(" outputAODFile="+myOutput+".AOD.pool.root")
# Output HIST file
if "HIST" in self.outputFormats():
allSet.append(" HIST="+myOutput+".HIST.root")
# Output NTUP_PIXELCALIB file
if "NTUP_PIXELCALIB" in self.outputFormats():
allSet.append(" outputPixelCalibNtup="+myOutput+".NTUP_PIXELCALIB.root")
# Output NTUP_MUONCALIB file
if "NTUP_MUONCALIB" in self.outputFormats():
allSet.append(" outputMuonCalibNtup="+myOutput+".NTUP_MUONCALIB.root")
# Output TAG_COMM file
if "TAG_COMM" in self.outputFormats():
allSet.append(" outputTAGComm="+myOutput+".TAG_COMM.pool.root")
# Output NTUP_TRIG file
if "NTUP_TRIG" in self.outputFormats():
allSet.append(" outputNTUP_TRIG="+myOutput+".NTUP_TRIG.root")
allSet.append(" autoConfiguration='everything'")
# number of events
allSet.append(" maxEvents="+myDict["events per job"])
#Events to skip (set to zero for digi/reco)
allSet.append(" skipEvents=0")
#Geometry version
# allSet.append(" geometryVersion="+myDict["geometryVersion"])
#AMI tag
# allSet.append(" AMITag="+myDict["AMITag"])
# Trigger config
# allSet.append(" triggerConfig='"+myDict["triggerConfig"]+"'")
# DB release
# allSet.append(" DBRelease=DBRelease-"+myDict["DBRelease"]+".tar.gz")
# Conditions
# allSet.append(" conditionsTag="+myDict["conditionsTag"])
#ignore
# allSet.append(" --ignoreerrors="+myDict["--ignoreerrors"])
# autoconfiguration
if "autoConfiguration" in myDict.keys():
allSet.append(" autoConfiguration="+myDict["autoConfiguration"])
recocmd='Reco_trf.py'
for settg in allSet:
recocmd += settg
return recocmd
#avoids ROOT crash
export ROOTENV_NO_HOME=1
nightlyType=`echo $GAUDISVCROOT | sed 's/\// \/ /g' | gawk '{ print $(NF-6) }'`
GetCommand.py AMI=d572 | grep Digi | grep -v INFO | sed 's/LowPtMinbiasHitsFile=mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/LowPtMinbiasHitsFile=root:\/\/eosatlas\/\/eos\/atlas\/atlascerngroupdisk\/proj-sit\/digitization\/RTT\/mc11a\/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1268_s1269_s1259\/HITS.475989._001423.pool.root.1/g' | sed 's/HighPtMinbiasHitsFile=mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HighPtMinbiasHitsFile=root:\/\/eosatlas\/\/eos\/atlas\/atlascerngroupdisk\/proj-sit\/digitization\/RTT\/mc11a\/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303\/HITS.500616._001496.pool.root.1/g' | sed "s/inputHitsFile=root:\/\/castoratlas\/\/castor\/cern.ch\/atlas\/atlascerngroupdisk\/proj-sit\/digitization\/RTT\/mc10\/mc10_7TeV.105200.T1_McAtNlo_Jimmy.simul.HITS.e598_s933_tid168076_00\/HITS.168076._008421.pool.root.1/inputHitsFile=\/afs\/cern.ch\/atlas\/project\/RTT\/prod\/Results\/fct\/chainstore\/$nightlyType\/$CMTCONFIG\/AtlasProduction\/Tools\/FullChainTests\/BCTTestViaFCT\/BCTTestViaFCT_Hits.pool.root/g" | sed "s/preExec="\'"from,Digitization.DigitizationFlags,import,digitizationFlags,digitizationFlags.overrideMetadata%2B=\[\"SimLayout\"\]"\'"/preExec="\'"from Digitization.DigitizationFlags import digitizationFlags; digitizationFlags.overrideMetadata=\[\"SimLayout\"\]"\'"/g" | sed 's/LowPtMinBias=39.95132/LowPtMinBias=15/g' | sed 's/outputRDOFile=myRDO.pool.root/outputRDOFile=BCTTestViaFCT_RDO.pool.root/g' >& marksTESTBCT_Digi_Via_FCTScript.sh
chmod +x marksTESTBCT_Digi_Via_FCTScript.sh
./marksTESTBCT_Digi_Via_FCTScript.sh
rm -rf marksTESTBCT_Digi_Via_FCTScript.sh
\ No newline at end of file
#avoids ROOT crash
export ROOTENV_NO_HOME=1
#generate command we want
nightlyType=`echo $GAUDISVCROOT | sed 's/\// \/ /g' | gawk '{ print $(NF-6) }'`
GetCommand.py AMI=q400 >& marksTESTBCT_Via_FCTScript.sh
chmod +x marksTESTBCT_Via_FCTScript.sh
./marksTESTBCT_Via_FCTScript.sh
rm -rf marksTESTBCT_Via_FCTScript.sh
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
import sys,datetime,time
import os, os.path
import glob,shutil
import getopt
# Usage String
usage='Usage: fct_digi.py <-c config_file> [-l (local), use this if want to use local machine] [-o outputFile][-e events] [-f inputhitsfile] '
print 'Starting fct_digi: ',datetime.datetime.now()
if len(sys.argv) < 2:
print usage
sys.exit(1)
# This section deals with the arguments -c, -e and -l
##########################################
try:
opts, args = getopt.getopt(sys.argv[1:], "hc:e:o:f:l", ["help","config_file=","events=","output=","inputhitsfile=","local"])
except getopt.GetoptError, err:
print 'Error! Incorrect arguments specified.'
print usage
sys.exit(2)
local = None
myInputEvents = None
myDir = None
inputhitsfile = "test"
print "inputhitsfile = " + inputhitsfile
for o, a in opts:
if o in ("-h", "--help"):
print usage
sys.exit()
elif o in ("-c", "--config_file"):
config_file = a
elif o in ("-o", "--output"):
myDir = a
elif o in ("-e", "--events"):
myInputEvents = a
elif o in ("-f", "--inputhitsfile"):
inputhitsfile = a
elif o in ("-l", "--local"):
print "localset"
local = ""
else:
assert False, "unhandled option"
############################################
print "inputhitsfile2 = " + inputhitsfile
# Specify the parent directory.
parentDir='/afs/cern.ch/atlas/offline/external/FullChainTest/rec_input/'
# Print where I am...
workdir=rttdir=os.getcwd()
print 'The script fct_digi.py is working in the directory '+rttdir
# Get the config file into the rtt directory
configcommand = 'get_files -data '+config_file
os.system(configcommand)
# Open config file and read config
config_file=open(config_file)
myinputHitsFile=config_file.readline()
myoutputRDOFile=config_file.readline()
#myoutputRDOFile=myoutputRDOFile[0:len(myoutputRDOFile)-1]
mymaxEvents=config_file.readline()
mymaxEvents=mymaxEvents[0:len(mymaxEvents)-1]
myskipEvents=config_file.readline()
myskipEvents=myskipEvents[0:len(myskipEvents)-1]
mygeometryVersion=config_file.readline()
mygeometryVersion=mygeometryVersion[0:len(mygeometryVersion)-1]
mydigiSeedOffset1=config_file.readline()
mydigiSeedOffset1=mydigiSeedOffset1[0:len(mydigiSeedOffset1)-1]
mydigiSeedOffset2=config_file.readline()
mydigiSeedOffset2=mydigiSeedOffset2[0:len(mydigiSeedOffset2)-1]
myminbiasHitsFile=config_file.readline()
myminbiasHitsFile=myminbiasHitsFile[0:len(myminbiasHitsFile)-1]
myjobConfig=config_file.readline()
myjobConfig=myjobConfig[0:len(myjobConfig)-1]
mytriggerConfig=config_file.readline()
mytriggerConfig=mytriggerConfig[0:len(mytriggerConfig)-1]
myDBRelease=config_file.readline()
myDBRelease=myDBRelease[0:len(myDBRelease)-1]
myconditionsTag=config_file.readline()
myconditionsTag=myconditionsTag[0:len(myconditionsTag)-1]
# Set up maxEvents - either from config or -e input if given
if myInputEvents is not None:
mymaxEvents='maxEvents='+myInputEvents
# Set up indputFile command if there is no -i specified
if myDir is None:
myoutputRDOFile=myoutputRDOFile[0:len(myoutputRDOFile)-1]
# Set up indputRDOFile command if there is -i specified
else:
myoutputRDOFile='outputRDOFile='+myDir
if local is not None:
print "Fetching HITS files starting",datetime.datetime.now()
workdir = os.getcwd()
if "WORKDIR" in os.environ: workdir = os.environ["WORKDIR"]
print "Working directory is",workdir
os.chdir(workdir)
noFiles=(int(mymaxEvents[10:len(mymaxEvents)])-1) / 10 + 1
# noFiles=(int(mymaxEvents[10:len(mymaxEvents)])-1) / 25 + 1
for i in range(1, noFiles+1):
copycmd = ""
if len(str(i))==1:
copycmd = "cp " + inputhitsfile + " HITS.094777._00000"+str(i)+".pool.root.1"
if len(str(i))==2:
copycmd = "cp " + inputhitsfile + " HITS.094777._0000"+str(i)+".pool.root.1"
if len(str(i))==3:
copycmd = "cp " + inputhitsfile + " HITS.094777._000"+str(i)+".pool.root.1"
if len(str(i))==4:
copycmd = "cp " + inputhitsfile + " HITS.094777._00"+str(i)+".pool.root.1"
os.system(copycmd)
print copycmd
# for i in range(1, noFiles+1):
# copycmd = ""
# if len(str(i))==1:
# copycmd = "cp /afs/cern.ch/atlas/project/RTT/prod/Results/fct/chainstore/dev/i686-slc5-gcc43-opt/AtlasProduction/Tools/FullChainTests/TopChainJob/CSC.005200.T1_McAtNlo_Jimmy.HITS.pool.root HITS.094777._00000"+str(i)+".pool.root.1"
# if len(str(i))==2:
# copycmd = "cp /afs/cern.ch/atlas/project/RTT/prod/Results/fct/chainstore/dev/i686-slc5-gcc43-opt/AtlasProduction/Tools/FullChainTests/TopChainJob/CSC.005200.T1_McAtNlo_Jimmy.HITS.pool.root HITS.094777._0000"+str(i)+".pool.root.1"
# if len(str(i))==3:
# copycmd = "cp /afs/cern.ch/atlas/project/RTT/prod/Results/fct/chainstore/dev/i686-slc5-gcc43-opt/AtlasProduction/Tools/FullChainTests/TopChainJob/CSC.005200.T1_McAtNlo_Jimmy.HITS.pool.root HITS.094777._000"+str(i)+".pool.root.1"
# if len(str(i))==4:
# copycmd = "cp /afs/cern.ch/atlas/project/RTT/prod/Results/fct/chainstore/dev/i686-slc5-gcc43-opt/AtlasProduction/Tools/FullChainTests/TopChainJob/CSC.005200.T1_McAtNlo_Jimmy.HITS.pool.root HITS.094777._00"+str(i)+".pool.root.1"
# os.system(copycmd)
# print copycmd
print "Fetching HITS files finished",datetime.datetime.now()
print
# Set up inputFile command if there is no -l specified
if local is None:
myDir=myinputHitsFile.replace('inputHitsFile=','')
myDir=myDir[0:len(myDir)-1]
myFiles=glob.glob(parentDir+myDir+'/*.root.*')
if not myFiles:
print 'Error! No files found in specified directory '+parentDir+myDir
sys.exit(1)
filelist=''
for myFile in myFiles:
filelist+=myFile+','
filelist=filelist[0:len(filelist)-1]
myinputHitsFile='inputHitsFile='+filelist
# Set up inputHitsFile command if there is -l specified
else:
myFiles=glob.glob('HITS*.root.*')
if not myFiles:
print 'Error! No HITS files found in directory'
sys.exit(1)
filelist=''
for myFile in myFiles:
filelist+=myFile+','
filelist=filelist[0:len(filelist)-1]
myinputHitsFile='inputHitsFile='+filelist
# The command
mycommand='Digi_trf.py '+myinputHitsFile+' '+myoutputRDOFile+' '+mymaxEvents+' '+myskipEvents+' '+mygeometryVersion+' '+mydigiSeedOffset1+' '+mydigiSeedOffset2+' '+myminbiasHitsFile+' '+myDBRelease+' '+myconditionsTag
#mycommand='Digi_trf.py '+myinputHitsFile+' '+myoutputRDOFile+' '+mymaxEvents+' '+myskipEvents+' '+mygeometryVersion+' '+mydigiSeedOffset1+' '+mydigiSeedOffset2+' '+myminbiasHitsFile+' '+myjobConfig+' '+mytriggerConfig+' '+myDBRelease+' '+myconditionsTag
# Execute the command
print 'The command I am using is: '
print mycommand
print
os.system(mycommand)
if local is not None:
# Copy files back to RTT directory...
print
print "Copying files back to RTT working directory ",datetime.datetime.now()
print "workdir is "+workdir+", rttdir is "+rttdir
print
for filename in os.listdir(workdir):
test = filename.startswith('HITS')
if not test:
try:
shutil.copyfile(workdir+'/'+filename,rttdir+'/'+filename)
except:
print "Cannot copy file "+filename
print "Finished copy ",datetime.datetime.now()
print
print
print 'Finished fct_digi: ',datetime.datetime.now()
print
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
import sys,datetime,time
import os, os.path
import glob,shutil
import getopt
#setup eos command. eos is an alias so it will not work in os.popen() as a command.
eos="/afs/cern.ch/project/eos/installation/0.1.0-22d/bin/eos.select"
print "We will use eos command from : "+eos
# Usage String
usage='Usage: fct_digireco.py <-c config_file> [-i inputdataset] [-o outputfile] [-f firstfile] [-n neventsperfile] [-r runnumber]'
print 'Starting fct_digi: ',datetime.datetime.now()
if len(sys.argv) < 2:
print usage
sys.exit(1)
# This section deals with the arguments -c, -e, -o, -f, -n, -r
##########################################
try:
opts, args = getopt.getopt(sys.argv[1:], "hc:i:o:f:n:r:e:", ["help","config_file=","events=","local"])
except getopt.GetoptError, err:
print 'Error! Incorrect arguments specified.'
print usage
sys.exit(2)
myInputDataset='105200/valid1.105200.T1_McAtNlo_Jimmy.simul.HITS.e380_s610_tid094777'
myOutputFile = 'TopRecoLong'
myFirstFile=1
myEventsPerFile=2000
config_file=None
event_number=None
for o, a in opts:
if o in ("-h", "--help"):
print usage
sys.exit()
elif o in ("-c", "--config_file"):
config_file = a
elif o in ("-i", "--inputdataset"):
myInputDataset = a
elif o in ("-o", "--output"):
myOutputFile = a
elif o in ("-f", "--firstfile"):
myFirstFile = a
elif o in ("-n", "--neventsperfile"):
myEventsPerFile = int(a)
elif o in ("-r", "--runnumber"):
rn = a
elif o in ("-e", "--events"):
event_number = a
else:
assert False, "unhandled option"
############################################
# Open config file and read config
from FullChainTests.readconfig import readconfig
a=readconfig(config_file)
# Reset event number
if event_number != None:
a.setEventNumber(event_number)
# Specify the parent directory for input files
# castorinputdir="/castor/cern.ch/grid/atlas/atlasgroupdisk/proj-sit/fct/rec_input/"+myInputDataset+"/"
castorinputdir=myInputDataset+"/"
print 'castorinputdir = ' + castorinputdir
if len(os.popen(eos+" ls "+castorinputdir).readlines()) == 0:
print 'Specified dataset does not exist'
sys.exit(1)
print 'DataSet exists'
# use the day of the week
fuid=os.popen("echo $AtlasVersion").readline()
# Change to workernode directory, but keep track of RTT dir
workdir=rttdir=os.getcwd()
print 'The script fct_digireco.py is working in the directory '+rttdir
if "WORKDIR" in os.environ: workdir = os.environ["WORKDIR"]
print "Working directory is",workdir
os.chdir(workdir)
# Specify parent directory for DBRelease and check if the DBRelease is there
# Also look into the unvalidated caches
DBpath='/afs/cern.ch/atlas/www/GROUPS/DATABASE/pacman4/DBRelease/'
DBunvalidpath='/afs/cern.ch/atlas/www/GROUPS/DATABASE/pacman4/DBRelease-unvalidated/'
print a.DBRelease()
if a.DBRelease() in os.listdir(DBpath):
print "linking DB Release to default cache"
os.system('ln -s '+DBpath+a.DBRelease()+' .')
#elif 'DBRelease-'+a.DBRelease()+'.tar.gz' in os.listdir(DBunvalidpath):
elif a.DBRelease() in os.listdir(DBunvalidpath):
print "linking DB Release to unvalidated cache"
os.system('ln -s '+DBunvalidpath+a.DBRelease()+' .')
else:
print 'DBRelease '+a.DBRelease()+' does not exist!'
sys.exit(1)
# Get files from castor
noFiles=(a.eventsPerJob()-1)/myEventsPerFile+1
myFiles=os.popen(eos+" ls "+castorinputdir).readlines()
print "Number of files: " + str(noFiles)
for i in range(int(myFirstFile), int(myFirstFile)+noFiles):
copycmd="xrdcp root://eosatlas/"+castorinputdir+myFiles[i-1].rstrip('\n')+" ."
print "print copycmd: " + copycmd
os.system(copycmd)
print "Fetching input files finished",datetime.datetime.now()
print
myFiles=glob.glob('HITS*.root.*')
if not myFiles:
print 'Error! No HITS files found in directory'
sys.exit(1)
filelist=''
myFiles.sort()
for myFile in myFiles:
filelist+=myFile+','
filelist=filelist[0:len(filelist)-1]
# Handle file outputs
myRDOFile = myOutputFile+'.RDO.pool.root'
myESDFile = myOutputFile+'.ESD.pool.root'
myAODFile = myOutputFile+'.AOD.pool.root'
myHISTFile = myOutputFile+'HIST.root'
mycommand=a.digitTrf(filelist,myRDOFile)
print 'The command I am using for digi is: '
print mycommand
print
os.system(mycommand)
mycommand=a.recoTrf(myRDOFile,myOutputFile,rn)
print 'The command I am using for reco is: '
print mycommand
print
os.system(mycommand)
# Get rid of unwanted files
myDelFiles=['RDO','ESD','HIST','NTUP_PIXELCALIB','NTUP_TRIG']
for delFile in myDelFiles:
print "Removing all files containing ."+delFile+". in their file name"
os.system("rm *."+delFile+".*")
# Direct castor archive
myArchiveCastor=['AOD']
for ff in myArchiveCastor:
ff=ff.rstrip('\n')
castorbase="/eos/atlas/atlascerngroupdisk/proj-sit/fct/rec_output/"+fuid+"/"+ff
print "Copying files of type "+ff+" to castor location "+castorbase
for aa in os.popen("ls *"+ff+"*.root").readlines():
aa=aa.rstrip('\n')
os.system("xrdcp "+aa+" root://eosatlas/"+castorbase)
os.system("rm "+aa)
# Copy files back to RTT directory...
print
print "Copying files back to RTT working directory ",datetime.datetime.now()
print "workdir is "+workdir+", rttdir is "+rttdir
print
for filename in os.listdir(workdir):
test = filename.startswith('HITS')
if not test:
try:
shutil.copyfile(workdir+'/'+filename,rttdir+'/'+filename)
except:
print "Cannot copy file "+filename
print "Finished copy ",datetime.datetime.now()
print
print
print 'Finished fct_digireco: ',datetime.datetime.now()
print
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
import sys,datetime,time
import os, os.path
import glob,shutil
import getopt
# Usage String
usage='Usage: fct_reco.py <-c config_file> [-l (local), use this if want to use local machine] [-i inputFileName] [-o outputFileName] [-e nEvents]'
if len(sys.argv) < 2:
print usage
sys.exit(1)
# This section deals with the arguments -c, -l, -i and -e
##########################################
try:
opts, args = getopt.getopt(sys.argv[1:], "hc:e:i:o:l", ["help","config_file=","events=","input=","output=","local"])
except getopt.GetoptError, err:
print 'Error! Incorrect arguments specified.'
print usage
sys.exit(2)
myDir = None
myDirOut = None
myInputEvents = None
local = None
for o, a in opts:
if o in ("-h", "--help"):
print usage
sys.exit()
elif o in ("-c", "--config_file"):
config_file = a
elif o in ("-l", "--local"):
local = ""
elif o in ("-i", "--input"):
myDir = a
elif o in ("-o", "--output"):
myDirOut = a
elif o in ("-e", "--events"):
myInputEvents = a
else:
assert False, "unhandled option"
############################################
# Specify the parent directory.
parentDir='/afs/cern.ch/atlas/offline/external/FullChainTest/rec_input/'
# Print where I am to check config file opening...
workdir=rttdir=os.getcwd()
print 'The script fct_reco.py is working in the directory '+rttdir
# Get the config file into the working directory
configcommand = 'get_files -data '+config_file
os.system(configcommand)
# Open config file and read config
config_file=open(config_file)
myinputRDOFile=config_file.readline()
myoutputESDFile=config_file.readline()
myoutputESDFile=myoutputESDFile[0:len(myoutputESDFile)-1]
myoutputAODFile=config_file.readline()
#myoutputAODFile=myoutputAODFile[0:len(myoutputAODFile)-1]
myntupleFile=config_file.readline()
myntupleFile=myntupleFile[0:len(myntupleFile)-1]
mymaxEvents=config_file.readline()
mymaxEvents=mymaxEvents[0:len(mymaxEvents)-1]
myskipEvents=config_file.readline()
myskipEvents=myskipEvents[0:len(myskipEvents)-1]
mygeometryVersion=config_file.readline()
mygeometryVersion=mygeometryVersion[0:len(mygeometryVersion)-1]
mytriggerConfig=config_file.readline()
mytriggerConfig=mytriggerConfig[0:len(mytriggerConfig)-1]
myDBRelease=config_file.readline()
myDBRelease=myDBRelease[0:len(myDBRelease)-1]
myconditionsTag=config_file.readline()
myconditionsTag=myconditionsTag[0:len(myconditionsTag)-1]
if local is not None:
if "WORKDIR" in os.environ: workdir = os.environ["WORKDIR"]
print "Working directory is",workdir
os.chdir(workdir)
# Set up outputFile command if there is no -o specified
if myDirOut is None:
myoutputAODFile=myoutputAODFile[0:len(myoutputAODFile)-1]
# Set up outputAODFile command if there is -o specified
else:
myoutputAODFile='outputAODFile='+myDirOut
# Set up indputFile command if there is no -i specified
if myDir is None:
myDir=myinputRDOFile.replace('inputRDOFile=','')
myDir=myDir[0:len(myDir)-1]
myFiles=glob.glob(parentDir+myDir+'/*.root.*')
if not myFiles:
print 'Error! No files found in specified directory '+parentDir+myDir
sys.exit(1)
filelist=''
for myFile in myFiles:
filelist+=myFile+','
filelist=filelist[0:len(filelist)-1]
myinputRDOFile='inputRDOFile='+filelist
# Set up indputRDOFile command if there is -i specified
else:
myinputRDOFile='inputRDOFile='+myDir
# Set up maxEvents - either from config or -e input if given
if myInputEvents is not None:
mymaxEvents='maxEvents='+myInputEvents
# The command
mycommand='Reco_trf.py '+myinputRDOFile+' '+myoutputESDFile+' '+myoutputAODFile+' '+myntupleFile+' '+mymaxEvents+' '+myskipEvents+' '+mygeometryVersion+' '+mytriggerConfig+' '+myDBRelease+' '+myconditionsTag
# Execute the command
print 'The command I am using is: '
print mycommand
os.system(mycommand)
if local is not None:
# Copy files back to RTT directory...
print
print "Copying files back to RTT working directory ",datetime.datetime.now()
print "workdir is "+workdir+", rttdir is "+rttdir
print
for filename in os.listdir(workdir):
test = filename.startswith('HITS')
if not test:
try:
shutil.copyfile(workdir+'/'+filename,rttdir+'/'+filename)
except:
print "Cannot copy file "+filename
print "Finished copy ",datetime.datetime.now()
print
print
print 'Finished fct_reco: ',datetime.datetime.now()
print
#!/usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# A command line utility to executr job transformations from a configuration file
#author : Serhat Istin
#mail : istin@cern.ch
#This code builds a set of job transformation(s) from a configuration file and executes it. Supported trf's are : 'generate_tf.py','AtlasG4_trf.py','Digi_trf.py','Reco_trf.py'
#For an example configuration see : example.cfg
#There are several command line arguments. However only 2 of them are mandatory. (--config and trf type(s) --runDigi --runReco etc ... are mandatories )
# Trfs in a cfg file can be run individually or all of them can be run consecutively. This is a nice feature to implement a custom chain in a single cfg file
#IMPORTANT : Please note that no matter in what order trf-type sections in the cfg file are , they will be executed in the order evgen->simu->digi->reco if more than one type of trf s are supplied from commandline
from FullChainTests.TrfBuilder import TrfBuilder
#from TrfBuilder import TrfBuilder
import optparse
import os
import subprocess
myoptparser = optparse.OptionParser()
myoptparser.add_option('-c', '--config',help="trf configuration file (Mandatory)",dest="c",metavar='FILE')
myoptparser.add_option('-e','--runEvgen',help='Run event generation ',dest='e',metavar='flag',action='store_true')
myoptparser.add_option('-s','--runSimu',help='Run G4 simulation ',dest='s',metavar='flag',action='store_true')
myoptparser.add_option('-d','--runDigi',help='Run digitisation ',dest='d',metavar='flag',action='store_true')
myoptparser.add_option('-r','--runReco',help='Run reconstruction',dest='r',metavar='flag',action='store_true')
myoptparser.add_option('-w','--writeCommand',help='write trf command(s) in a file',dest='w',metavar='FILE')
#parse the command line
(options, args) = myoptparser.parse_args()
#if no input config file is supplied print help and exit
if options.c is None:
print "fct_trf: Command line Error .... No config File is supplied"
myoptparser.print_help()
os.sys.exit(-1)
command=''#trf command to execute
#get cfg file from commandline
cfgfile=options.c
#parse the file
myconfig=TrfBuilder(cfgfile)
#handle command line arguments here
if options.e:
print 'fct_trf: INFO:: Will run evgen...'
command=myconfig.buildCommand("generate_tf.py")
if options.s:
print 'fct_trf: INFO:: Will run simu...'
command=myconfig.buildCommand("AtlasG4_trf.py")
if options.d:
print 'fct_trf: INFO:: Will run digi...'
command=myconfig.buildCommand("Digi_tf.py")
if options.r:
print 'fct_trf: INFO:: Will run reco...'
command=myconfig.buildCommand("Reco_tf.py")
if not (options.s or options.e or options.r or options.d):
print "fct_trf: INFO:: Command Line Error... No trf type is supplied"
myoptparser.print_help()
os.sys.exit(-1)
if options.w:
print 'fct_trf: INFO:: Trf Command will be writen to file: '+options.w
ofile=open(options.w,'w')
for i in range(0,len(myconfig.commandList)):
ofile.write(myconfig.commandList[i]+'\n')
ofile.close()
#execute all commands in commandList. Take care of process exit codes
summarycode=0
for command in myconfig.commandList:
print 'fct_trf: INFO:: Executing Command:'+command
statcode=subprocess.call(command,shell=True)
summarycode=summarycode+statcode
if statcode!=0:
print "fct_trf: ERROR : command failed."
print 'fct_trf: INFO:: Finished executing command:'+command
if summarycode!=0:
print "fct_trf :SUMMARY: fct_trf failed: Exiting with status code: "+str(summarycode)
os.sys.exit(summarycode)
else:
print "fct_trf :SUMMARY: All went OK. Exiting with status code: "+str(statcode)
os.sys.exit(summarycode)
This diff is collapsed.
inputHitsFile=5200/valid1.105200.T1_McAtNlo_Jimmy.simul.HITS.e380_s610_tid094777
outputRDOFile=TopRecoLong.RDO.pool.root
maxEvents=1000
skipEvents=0
geometryVersion=ATLAS-GEO-16-00-00
digiSeedOffset1=123456
digiSeedOffset2=2345678
NDMinbiasHitsFile=NONE
DBRelease=/afs/cern.ch/atlas/www/GROUPS/DATABASE/pacman4/DBRelease/DBRelease-pcache-current.tar.gz
conditionsTag=OFLCOND-SDR-BS7T-02
inputRDOFile=5200/valid1.105200.T1_McAtNlo_Jimmy.digit.RDO.e380_s577_tid078592
outputESDFile=TopRecoLong.ESD.pool.root
outputAODFile=TopRecoLong.AOD.pool.root
outputCBNTFile=TopRecoLong.ntup.root
maxEvents=1000
skipEvents=0
geometryVersion=ATLAS-GEO-16-00-00
DBRelease=/afs/cern.ch/atlas/www/GROUPS/DATABASE/pacman4/DBRelease/DBRelease-pcache-current.tar.gz
conditionsTag=OFLCOND-SDR-BS7T-02
#Digitisation section
[Digi_trf.py]
outputRDOFile=myRDO.pool.root
digiSeedOffset1=1
digiSeedOffset2=2
inputHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.105200.T1_McAtNlo_Jimmy.merge.HITS.e835_s1310_s1300/HITS.508808._000857.pool.root.1
numberOfHighPtMinBias=0.01217
numberOfLowPtMinBias=9.98783
jobNumber=0
conditionsTag=OFLCOND-SDR-BS7T-05-14
skipEvents=0
preInclude=SimulationJobOptions/preInclude.PileUpBunchTrains2011Config6_DigitConfig.py,RunDependentSimData/configLumi_mc11a_v3.py
postExec=ToolSvc.LArAutoCorrTotalToolDefault.NMinBias=0
preExec='from Digitization.DigitizationFlags import digitizationFlags;digitizationFlags.overrideMetadata=["SimLayout","PhysicsList"]'
LowPtMinbiasHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._000382.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001308.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001883.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001944.pool.root.1
HighPtMinbiasHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._001496.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._002374.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._007836.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._009288.pool.root.1
geometryVersion=ATLAS-GEO-18-01-01
DataRunNumber=-1
maxEvents=10
#Reconstruction Section
[Reco_trf.py]
outputESDFile=serhat_ESD.pool.root
autoConfiguration=everything
triggerConfig=MCRECO:DB:TRIGGERDBMC:295,134,239
postExec='RegSelSvc=topSequence.allConfigurables.get("RegSelSvcDefault");RegSelSvc.DeltaZ=225*Units.mm'
outputAODFile=digirecoAfs_mc11a.AOD.pool.root
preExec='TriggerFlags.AODEDMSet="AODSLIM";rec.Commissioning.set_Value_and_Lock(True);jobproperties.Beam.energy.set_Value_and_Lock(3500*Units.GeV);muonRecFlags.writeSDOs=True;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(8.0);jobproperties.Beam.bunchSpacing.set_Value_and_Lock(50);AODFlags.TrackParticleSlimmer=True;from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import L2IDTrackingCuts;L2IDTrackingCuts.setRegSelZmax(225*Units.mm)'
inputRDOFile=myRDO.pool.root
#Digitisation section
[Digi_tf.py]
outputRDOFile=myRDO.pool.root
digiSeedOffset1=1
digiSeedOffset2=2
inputHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.105200.T1_McAtNlo_Jimmy.merge.HITS.e835_s1310_s1300/HITS.508808._000857.pool.root.1
numberOfHighPtMinBias=0.01217
numberOfLowPtMinBias=9.98783
jobNumber=1
conditionsTag=OFLCOND-RUN12-SDR-31
skipEvents=0
preInclude=SimulationJobOptions/preInclude.PileUpBunchTrains2011Config6_DigitConfig.py,RunDependentSimData/configLumi_mc11a_v3.py
postExec=ToolSvc.LArAutoCorrTotalToolDefault.NMinBias=0
preExec='from Digitization.DigitizationFlags import digitizationFlags;digitizationFlags.overrideMetadata=["SimLayout","PhysicsList"]'
LowPtMinbiasHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._000382.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001308.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001883.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108118.Pythia8_minbias_Inelastic_low.merge.HITS.e816_s1299_s1303/HITS.500617._001944.pool.root.1
HighPtMinbiasHitsFile=root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._001496.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._002374.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._007836.pool.root.1,root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/digitization/RTT/mc11a/mc11_7TeV.108119.Pythia8_minbias_Inelastic_high.merge.HITS.e848_s1299_s1303/HITS.500616._009288.pool.root.1
geometryVersion=ATLAS-R2-2015-03-01-00
maxEvents=10
#Reconstruction Section
[Reco_tf.py]
outputESDFile=serhat_ESD.pool.root
autoConfiguration=everything
#triggerConfig=MCRECO:MC_pp_v3_tight_mc_prescale
# there is no more pre-scale menus
triggerConfig=MCRECO:MC_pp_v5
postExec='RegSelSvc=topSequence.allConfigurables.get("RegSelSvcDefault");RegSelSvc.DeltaZ=225*Units.mm'
outputAODFile=digirecoAfs_mc12a.AOD.pool.root
preExec='TriggerFlags.AODEDMSet="AODSLIM";rec.Commissioning.set_Value_and_Lock(True);jobproperties.Beam.energy.set_Value_and_Lock(3500*Units.GeV);muonRecFlags.writeSDOs=True;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(8.0);jobproperties.Beam.bunchSpacing.set_Value_and_Lock(50);AODFlags.TrackParticleSlimmer=True;from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import L2IDTrackingCuts;L2IDTrackingCuts.setRegSelZmax(225*Units.mm)'
inputRDOFile=myRDO.pool.root
# based on r7725
# do sequentially HITS-RDO and RDO-ESD/AOD
#Digitisation section
[Digi_tf.py]
outputRDOFile=myRDO.pool.root
digiSeedOffset1=1
digiSeedOffset2=2
#inputHitsFile=/tmp/xiaohu/mc15_13TeV.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.merge.HITS.e3698_s2608_s2183/HITS.05271163._002032.pool.root.1
inputHitsFile=/afs/cern.ch/atlas/project/rig/referencefiles/mc15/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s2887_tid08170896_00/HITS.08170896._001944.pool.root.1
numberOfHighPtMinBias=0.12268057
numberOfLowPtMinBias=39.8773194
jobNumber=1
conditionsTag=default:OFLCOND-MC15c-SDR-09
skipEvents=0
preInclude="HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInclude.PileUpBunchTrainsMC15_2015_25ns_Config1.py,RunDependentSimData/configLumi_run284500_v2.py"
preExec="all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)"
postExec="all:CfgMgr.MessageSvc().setError+=[\"HepMcParticleLink\"]"
LowPtMinbiasHitsFile=/afs/cern.ch/atlas/project/rig/referencefiles/mc15_minBias/mc15_13TeV.361034.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_low.merge.HITS.e3581_s2578_s2195/HITS.05608147._000125.pool.root.1
HighPtMinbiasHitsFile=/afs/cern.ch/atlas/project/rig/referencefiles/mc15_minBias/mc15_13TeV.361035.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_high.merge.HITS.e3581_s2578_s2195/HITS.05608152._002335.pool.root.1
geometryVersion=ATLAS-R2-2015-03-01-00
maxEvents=10
#Reconstruction Section
[Reco_tf.py]
inputRDOFile=myRDO.pool.root
outputESDFile=serhat_ESD.pool.root
autoConfiguration=everything
triggerConfig=RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2046,20,48
preExec="RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False" "ESDtoAOD:TriggerFlags.AODEDMSet=\"AODSLIM\""
preInclude="RDOtoRDOTrigger:RecExPers/RecoOutputMetadataList_jobOptions.py"
postExec="ESDtoAOD:fixedAttrib=[s if \"CONTAINER_SPLITLEVEL = \'99\'\" not in s else \"\" for s in svcMgr.AthenaPoolCnvSvc.PoolAttributes];svcMgr.AthenaPoolCnvSvc.PoolAttributes=fixedAttrib"
outputAODFile=digirecoAfs_mc15c.AOD.pool.root
#!/bin/sh
#
# art-description: evgen
# art-type: grid
export JODIR=/cvmfs/atlas.cern.ch/repo/sw/Generators/MC14JobOptions/latest;export JOBOPTSEARCHPATH=$JODIR/share/tests:$JOBOPTSEARCHPATH;Generate_tf.py --ecmEnergy=8000. --runNumber=108351 --firstEvent=1 --maxEvents=5000 --randomSeed=54298752 --jobConfig=MC14.108351.Pythia8_A2CTEQ6L1_minbias_inelastic.py --outputEVNTFile=MC14.108351.pythia_minbias.8TeV.EVNT.pool.root
#
Sim_tf.py --simulator 'MC12G4' --inputEVNTFile 'MC14.108351.pythia_minbias.8TeV.EVNT.pool.root' --outputHitsFile 'MC14.108351.pythia_minbias.8TeV.HITS.pool.root' --maxEvents 10 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-03-01-00' --conditionsTag 'OFLCOND-RUN12-SDR-21' --DataRunNumber '222222' --physicsList 'FTFP_BERT' --enableLooperKiller 'True' --randomSeed 54298752 --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py' --postInclude 'PyJobTransforms/UseFrontier.py' --ignorePatterns='ToolSvc.ISFG4.+ERROR\s+ISF_to_G4Event.+article.conversion.failed'
#
Digi_tf.py --inputHITSFile 'MC14.108351.pythia_minbias.8TeV.HITS.pool.root' --outputRDOFile 'MC14.108351.pythia_minbias.8TeV.RDO.pool.root' --maxEvents '10' --skipEvents '0' --geometryVersion 'ATLAS-R2-2015-03-01-00' --conditionsTag=OFLCOND-RUN12-SDR-31 --digiSeedOffset1 123456 --digiSeedOffset2 2345678 --postInclude 'PyJobTransforms/UseFrontier.py'
#
Reco_tf.py --inputRDOFile 'MC14.108351.pythia_minbias.8TeV.RDO.pool.root' --outputESDFile 'MC14.108351.pythia_minbias.8TeV.ESD.pool.root' --outputAODFile 'MC14.108351.pythia_minbias.8TeV.AOD.pool.root' --maxEvents 10 --skipEvents 0 --autoConfiguration 'everything' --postInclude 'PyJobTransforms/UseFrontier.py'
#!/bin/sh
#
# art-description: digireco
# art-type: grid
fct_trf.py --config=$(echo $CMAKE_PREFIX_PATH | tr ":" "\n" | head -n 1)/src/Tools/FullChainTests/test/digireco_MC12.cfg --runDigi --runReco
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment