From 7f4b6f8dac73be30f49279f3b9af665659f45dbc Mon Sep 17 00:00:00 2001 From: Xiaohu Sun <Xiaohu.Sun@cern.ch> Date: Tue, 29 Sep 2015 09:40:12 +0200 Subject: [PATCH] DigiReco_via_fct_trf correct path (FullChainTests-00-01-66) --- Tools/FullChainTests/TODOLIST | 3 + Tools/FullChainTests/cmt/requirements | 18 + Tools/FullChainTests/python/TrfBuilder.py | 93 ++++ Tools/FullChainTests/python/__init__.py | 2 + Tools/FullChainTests/python/readconfig.py | 174 +++++++ .../scripts/BCTTestViaFCT_digi.sh | 7 + .../scripts/BCTTestViaFCT_sim.sh | 9 + Tools/FullChainTests/scripts/fct_digi.py | 208 ++++++++ Tools/FullChainTests/scripts/fct_digireco.py | 188 +++++++ Tools/FullChainTests/scripts/fct_reco.py | 146 ++++++ Tools/FullChainTests/scripts/fct_trf.py | 101 ++++ .../test/FullChainTests_TestConfiguration.xml | 477 ++++++++++++++++++ .../FullChainTests/test/RecoOnly_top_digi.cfg | 11 + .../FullChainTests/test/RecoOnly_top_reco.cfg | 9 + Tools/FullChainTests/test/digireco.cfg | 29 ++ Tools/FullChainTests/test/digireco_MC12.cfg | 30 ++ 16 files changed, 1505 insertions(+) create mode 100644 Tools/FullChainTests/TODOLIST create mode 100644 Tools/FullChainTests/cmt/requirements create mode 100644 Tools/FullChainTests/python/TrfBuilder.py create mode 100644 Tools/FullChainTests/python/__init__.py create mode 100644 Tools/FullChainTests/python/readconfig.py create mode 100755 Tools/FullChainTests/scripts/BCTTestViaFCT_digi.sh create mode 100755 Tools/FullChainTests/scripts/BCTTestViaFCT_sim.sh create mode 100755 Tools/FullChainTests/scripts/fct_digi.py create mode 100755 Tools/FullChainTests/scripts/fct_digireco.py create mode 100755 Tools/FullChainTests/scripts/fct_reco.py create mode 100755 Tools/FullChainTests/scripts/fct_trf.py create mode 100644 Tools/FullChainTests/test/FullChainTests_TestConfiguration.xml create mode 100644 Tools/FullChainTests/test/RecoOnly_top_digi.cfg create mode 100644 Tools/FullChainTests/test/RecoOnly_top_reco.cfg create mode 100644 Tools/FullChainTests/test/digireco.cfg create mode 100644 Tools/FullChainTests/test/digireco_MC12.cfg diff --git a/Tools/FullChainTests/TODOLIST b/Tools/FullChainTests/TODOLIST new file mode 100644 index 00000000000..eab430096f8 --- /dev/null +++ b/Tools/FullChainTests/TODOLIST @@ -0,0 +1,3 @@ +26-11-2011 Serhat Istin + +consider to use GetCommand.py properly diff --git a/Tools/FullChainTests/cmt/requirements b/Tools/FullChainTests/cmt/requirements new file mode 100644 index 00000000000..5a441c257be --- /dev/null +++ b/Tools/FullChainTests/cmt/requirements @@ -0,0 +1,18 @@ +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 diff --git a/Tools/FullChainTests/python/TrfBuilder.py b/Tools/FullChainTests/python/TrfBuilder.py new file mode 100644 index 00000000000..ac5a889609f --- /dev/null +++ b/Tools/FullChainTests/python/TrfBuilder.py @@ -0,0 +1,93 @@ +#!/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 + #pfx += option + '=' \ + 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) + + diff --git a/Tools/FullChainTests/python/__init__.py b/Tools/FullChainTests/python/__init__.py new file mode 100644 index 00000000000..74583d364ec --- /dev/null +++ b/Tools/FullChainTests/python/__init__.py @@ -0,0 +1,2 @@ +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + diff --git a/Tools/FullChainTests/python/readconfig.py b/Tools/FullChainTests/python/readconfig.py new file mode 100644 index 00000000000..f8e40d63625 --- /dev/null +++ b/Tools/FullChainTests/python/readconfig.py @@ -0,0 +1,174 @@ +# 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 + diff --git a/Tools/FullChainTests/scripts/BCTTestViaFCT_digi.sh b/Tools/FullChainTests/scripts/BCTTestViaFCT_digi.sh new file mode 100755 index 00000000000..baf11854865 --- /dev/null +++ b/Tools/FullChainTests/scripts/BCTTestViaFCT_digi.sh @@ -0,0 +1,7 @@ +#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 diff --git a/Tools/FullChainTests/scripts/BCTTestViaFCT_sim.sh b/Tools/FullChainTests/scripts/BCTTestViaFCT_sim.sh new file mode 100755 index 00000000000..757975e3cc2 --- /dev/null +++ b/Tools/FullChainTests/scripts/BCTTestViaFCT_sim.sh @@ -0,0 +1,9 @@ +#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 + diff --git a/Tools/FullChainTests/scripts/fct_digi.py b/Tools/FullChainTests/scripts/fct_digi.py new file mode 100755 index 00000000000..971a8143eae --- /dev/null +++ b/Tools/FullChainTests/scripts/fct_digi.py @@ -0,0 +1,208 @@ +#!/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 diff --git a/Tools/FullChainTests/scripts/fct_digireco.py b/Tools/FullChainTests/scripts/fct_digireco.py new file mode 100755 index 00000000000..036cf875fd0 --- /dev/null +++ b/Tools/FullChainTests/scripts/fct_digireco.py @@ -0,0 +1,188 @@ +#!/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 diff --git a/Tools/FullChainTests/scripts/fct_reco.py b/Tools/FullChainTests/scripts/fct_reco.py new file mode 100755 index 00000000000..2bb22fde54b --- /dev/null +++ b/Tools/FullChainTests/scripts/fct_reco.py @@ -0,0 +1,146 @@ +#!/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 diff --git a/Tools/FullChainTests/scripts/fct_trf.py b/Tools/FullChainTests/scripts/fct_trf.py new file mode 100755 index 00000000000..f2b622bf72f --- /dev/null +++ b/Tools/FullChainTests/scripts/fct_trf.py @@ -0,0 +1,101 @@ +#!/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) diff --git a/Tools/FullChainTests/test/FullChainTests_TestConfiguration.xml b/Tools/FullChainTests/test/FullChainTests_TestConfiguration.xml new file mode 100644 index 00000000000..16bd12a898d --- /dev/null +++ b/Tools/FullChainTests/test/FullChainTests_TestConfiguration.xml @@ -0,0 +1,477 @@ +<?xml version="1.0"?> +<!-- MB: Search for RUNNUMBER to replace the run input collections and setting --> +<!-- MB: xml file validation: http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/onlineValidation/validator.html --> +<!-- <!DOCTYPE unifiedTestConfiguration SYSTEM "https://test-rtt.web.cern.ch/test-rtt/brinick/Results/unifiedTestConfiguration.dtd"> --> <!-- xmltest + --> +<!DOCTYPE unifiedTestConfiguration SYSTEM "http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/unifiedTestConfiguration.dtd"> <!-- official --> + +<unifiedTestConfiguration> + <atn/> + <kv/> + <rtt xmlns="http://www.hep.ucl.ac.uk/atlas/AtlasTesting/rtt"> + <rttContactPerson> + Serhat Istin + </rttContactPerson> + <mailto> + istin@cern.ch + </mailto> + <refRelease> + 18.X.0 + </refRelease> + <jobList> + + <!-- COSMICS CHAIN --> + <chain> + <chainName>CosmicsChainJob</chainName> <!-- Only letters allowed, no white space or punctuation --> + <sequential> + <!-- Run Simulation --> + <chainElement> + <jobTransform userJobId="cosmicsSimul"> + <doc>simul</doc> + <jobTransformJobName>cosmics_sim_trf_s1994_2010</jobTransformJobName> + <jobTransformCmd> + Sim_tf.py --simulator 'MC12G4' --outputHitsFile 'cosmics.HITS.pool.root' --maxEvents '5000' --DataRunNumber '155697' --physicsList 'FTFP_BERT' --geometryVersion 'ATLAS-R1-2010-02-00-00_VALIDATION' --conditionsTag 'OFLCOND-RUN12-SDR-21' --enableLooperKiller 'True' --CosmicFilterVolume 'Calo' --CosmicPtSlice 'slice3' --beamType 'cosmics' --preInclude 'SimulationJobOptions/preInclude.BeamPipeKill.py' --postInclude 'PyJobTransforms/UseFrontier.py' --postExec 'from IOVDbSvc.CondDB import conddb;conddb.addOverride("/EXT/DCS/MAGNETS/SENSORDATA", "ExtDCSMagnetsSensorData-001");conddb.addOverride("/GLOBAL/BField/Map", "BFieldMap-FullAsym-09");' --ignorePatterns=ToolSvc.ISFG4.+ERROR\s+ISF_to_G4Event.+article.conversion.failed+ISF_Particle+PDG+code+=+1000260560 + </jobTransformCmd> + <group>FCTTransform</group> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + + <chainfileout>cosmics.HITS.pool.root</chainfileout> + </chainElement> + + <!-- Run Digitisation --> + <chainElement> + <jobTransform userJobId="cosmicsDigi"> + <doc>digi</doc> + <jobTransformJobName>cosmics_digi_trf</jobTransformJobName> + <jobTransformCmd> + Digi_tf.py --inputHITSFile 'cosmics.HITS.pool.root' --outputRDOFile 'cosmics.RDO.pool.root' --maxEvents 100 --skipEvents 0 --geometryVersion 'ATLAS-R1-2010-02-00-00' --digiSeedOffset1 1232 --digiSeedOffset2 342 --conditionsTag 'OFLCOND-RUN12-SDR-21' --beamType 'cosmics' --DataRunNumber '155697' --postInclude 'PyJobTransforms/UseFrontier.py' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData/> + <chaindatasetName>cosmics.HITS.pool.root</chaindatasetName> + <dataset_info> + <jobTransformData/> + <datasetName>/afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/cosmics.HITS.pool.root</datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout>cosmics.RDO.pool.root</chainfileout> + </chainElement> + + <!-- Run Reconstruction --> + <!-- retired, cosmics trigger menu is not prod rel [ATR-10605] --> + + </sequential> + </chain> + + <!-- LONG RECONSTRUCTION CHAIN with fct_trf.py --> + <chain> + <chainName>digirecoAFSjob</chainName> + <sequential> + <!-- Run Digitisation and reconstruction with fct_trf --> + <chainElement> + <jobTransform userJobId="DigiReco_via_fct_trf"> + <doc>digireco</doc> + <jobTransformJobName>MinBias_digi_Reco_trf</jobTransformJobName> + <jobTransformCmd> + fct_trf.py --config=$AtlasArea/Tools/FullChainTests/test/digireco_MC12.cfg --runDigi --runReco + </jobTransformCmd> + <group>FCTTransform</group> + <queue>long</queue> + <batchWallTime>600</batchWallTime> + </jobTransform> + <chainfileout> + digirecoAfs_mc12a.AOD.pool.root + </chainfileout> + </chainElement> + </sequential> + </chain> + + <!-- Pile up CHAIN --> + <chain> + <chainName>ChainJobwthPileUp</chainName> + <!-- Only letters allowed, no white space or punctuation in Name --> + <sequential> + <parallel> + <sequential> + <!-- Run Event Generation --> + <chainElement> + <!-- <jobTransform> --> + <jobTransform userJobId="ZtautauEvgen"> + <doc>evgen</doc> + <jobTransformJobName>Ztautau_evgen_trf</jobTransformJobName> + <jobTransformCmd> + export JODIR=/cvmfs/atlas.cern.ch/repo/sw/Generators/MC14JobOptions/latest;export JOBOPTSEARCHPATH=$JODIR/share/tests:$JOBOPTSEARCHPATH;Generate_tf.py --ecmEnergy=8000. --runNumber=147818 --firstEvent=1 --maxEvents=5000 --randomSeed=54298752 --jobConfig=MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.py --outputEVNTFile=MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.EVNT.pool.root --postExec='TestHepMC.EffFailThreshold=0.50' + </jobTransformCmd> + <group>FCTTransform</group> + <queue>short</queue> + <batchWallTime>300</batchWallTime> + <keepFilePattern>log.*</keepFilePattern> + </jobTransform> + <chainfileout> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.EVNT.pool.root + </chainfileout> + </chainElement> + <!-- Run Simulation --> + <chainElement> + <jobTransform userJobId="ZtautauSimul"> + <doc>simul</doc> + <jobTransformJobName>ZtautauSimul_Sim_tf_2015_s1967</jobTransformJobName> + <jobTransformCmd> + Sim_tf.py --simulator 'MC12G4' --inputEVNTFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.EVNT.pool.root' --outputHitsFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root' --maxEvents 10 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-01-01-00_VALIDATION' --conditionsTag 'OFLCOND-RUN12-SDR-21' --DataRunNumber '222222' --physicsList 'FTFP_BERT' --randomSeed 54298752 --enableLooperKiller 'True' --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py' --postInclude 'PyJobTransforms/UseFrontier.py' --ignorePatterns 'ToolSvc.ISFG4.+ERROR\s+ISF_to_G4Event.+article.conversion.failed' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.EVNT.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.EVNT.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime> + 300 + </batchWallTime> + </jobTransform> + <chainfileout> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root + </chainfileout> + </chainElement> + <!-- Run Digitisation --> + <chainElement> + <jobTransform userJobId="ZtautauDigi"> + <doc>digi</doc> + <jobTransformJobName>ZtautauDigi_trf</jobTransformJobName> + <jobTransformCmd> + Digi_tf.py --inputHITSFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root' --outputRDOFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.RDO.pool.root' --maxEvents 10 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-01-01-00' --digiSeedOffset1 123456 --digiSeedOffset2 2345678 --conditionsTag 'OFLCOND-RUN12-SDR-21' --postInclude 'PyJobTransforms/UseFrontier.py' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.RDO.pool.root + </chainfileout> + </chainElement> + <!-- Run ALL Reconstruction --> + <chainElement> + <jobTransform userJobId="ZtautauReco"> + <doc> + reco + </doc> + <jobTransformJobName>Ztautau_Reco_trf</jobTransformJobName> + <jobTransformCmd> + Reco_tf.py --inputRDOFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.RDO.pool.root' --outputESDFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.ESD.pool.root' --outputAODFile 'MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.AOD.pool.root' --maxEvents 10 --skipEvents 0 --autoConfiguration 'everything' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.RDO.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.RDO.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.AOD.pool.root + </chainfileout> + </chainElement> + </sequential> + <!-- Stuff needed for pile-up --> + <sequential> + <!-- Run Event Generation --> + <chainElement> + <jobTransform userJobId="8TeVMinBiasEvgen"> + <doc> + evgen + </doc> + <jobTransformJobName>8TeVMinBiasEvgen_trf</jobTransformJobName> + <jobTransformCmd> + 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 + </jobTransformCmd> + <group>FCTTransform</group> + <queue>short</queue> + <batchWallTime>300</batchWallTime> + <keepFilePattern>log.*</keepFilePattern> + </jobTransform> + <chainfileout> + MC14.108351.pythia_minbias.8TeV.EVNT.pool.root + </chainfileout> + </chainElement> + <!-- Run Simulation --> + <chainElement> + <jobTransform userJobId="8TevMinbiasSimul"> + <doc>simul</doc> + <jobTransformJobName>8TevMinbiasSimul_Sim_tf_2015_s1967</jobTransformJobName> + <jobTransformCmd> + 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-01-01-00_VALIDATION' --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' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.108351.pythia_minbias.8TeV.EVNT.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.108351.pythia_minbias.8TeV.EVNT.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.108351.pythia_minbias.8TeV.HITS.pool.root + </chainfileout> + </chainElement> + <!-- Run Digi --> + <chainElement> + <jobTransform userJobId="8TeVMinbiasDigi"> + <doc>reco</doc> + <jobTransformJobName>8TeVMinbiasDigi_trf</jobTransformJobName> + <jobTransformCmd> + 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-01-01-00' --conditionsTag=OFLCOND-RUN12-SDR-21 --digiSeedOffset1 123456 --digiSeedOffset2 2345678 --postInclude 'PyJobTransforms/UseFrontier.py' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.108351.pythia_minbias.8TeV.HITS.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.108351.pythia_minbias.8TeV.HITS.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.108351.pythia_minbias.8TeV.RDO.pool.root + </chainfileout> + </chainElement> + <!-- Run Reco --> + <chainElement> + <jobTransform userJobId="8TeVMinBiasReco"> + <doc>reco</doc> + <jobTransformJobName>8TeVMinBiasReco_trf</jobTransformJobName> + <jobTransformCmd> + 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' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.108351.pythia_minbias.8TeV.RDO.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.108351.pythia_minbias.8TeV.RDO.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.108351.pythia_minbias.8TeV.AOD.pool.root + </chainfileout> + </chainElement> + <chainElement> + <jobTransform userJobId="minbiasEvt2CavernEvt"> + <doc>evgen</doc> + <jobTransformJobName>minbias2Cavern_trf</jobTransformJobName> + <jobTransformCmd> + Sim_tf.py --simulator 'MC12G4' --inputEVNTFile 'MC14.108351.pythia_minbias.8TeV.EVNT.pool.root' --outputHITSFile 'discard.HITS.pool.root' --outputEVNT_CAVERNTRFile 'MC14.cavbg8TeV.EVNT.pool.root' --maxEvents 5 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-01-01-00_VALIDATION' --conditionsTag 'OFLCOND-RUN12-SDR-21' --DataRunNumber='222222' --physicsList 'FTFP_BERT' --randomSeed 5678 --postInclude 'PyJobTransforms/UseFrontier.py' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.108351.pythia_minbias.8TeV.EVNT.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.108351.pythia_minbias.8TeV.EVNT.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.cavbg8TeV.EVNT.pool.root + </chainfileout> + </chainElement> + <!-- Run Simulation --> + <chainElement> + <jobTransform userJobId="cavernSimul"> + <doc>simul</doc> + <jobTransformJobName>cavernSimul_Sim_tf_2015_s1967</jobTransformJobName> + <jobTransformCmd> + Sim_tf.py --simulator 'MC12G4' --inputEVNT_CAVERNFile 'MC14.cavbg8TeV.EVNT.pool.root' --outputHITSFile 'MC14.cavbg8TeV.HITS.pool.root' --maxEvents -1 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-01-01-00_VALIDATION' --conditionsTag 'OFLCOND-RUN12-SDR-21' --DataRunNumber '222222' --physicsList 'FTFP_BERT' --enableLooperKiller 'True' --randomSeed 8765 --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py,SimulationJobOptions/preInclude.G4ReadCavern.py' --postInclude 'PyJobTransforms/UseFrontier.py' --ignorePatterns='ToolSvc.ISFG4.+ERROR\s+ISF_to_G4Event.+article.conversion.failed' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.cavbg8TeV.EVNT.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.cavbg8TeV.EVNT.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.cavbg8TeV.HITS.pool.root + </chainfileout> + </chainElement> + </sequential> + <!-- Beam Gas --> + <!-- NoBeamGas is supplied to us for MC12 so skip it --> + </parallel> + <!-- Pileup part --> + <!-- Run Digitisation --> + <chainElement> + <jobTransform userJobId="pileupDigi"> + <doc>digi</doc> + <jobTransformJobName>pileup_digi_trf</jobTransformJobName> + <jobTransformCmd> + Digi_tf.py --inputHITSFile MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root --outputRDOFile MC14.Pileup.RDO.pool.root --maxEvents 2 --skipEvents 0 --geometryVersion 'ATLAS-R2-2015-01-01-00' --conditionsTag 'OFLCOND-RUN12-SDR-21' --DataRunNumber='222222' --digiSeedOffset1 123456 --digiSeedOffset2 2345678 --LowPtMinbiasHitsFile 'MC14.108351.pythia_minbias.8TeV.HITS.pool.root' --cavernHitsFile 'MC14.cavbg8TeV.HITS.pool.root' --preInclude 'HITtoRDO:SimulationJobOptions/preInclude.Lumi001DigitConfig_450ns.py,Digitization/ForceUseOfPileUpTools.py' --postInclude 'PyJobTransforms/UseFrontier.py' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.147818.Pythia8_AU2CTEQ6L1_Ztautau.8TeV.HITS.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.108351.pythia_minbias.8TeV.HITS.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.108351.pythia_minbias.8TeV.HITS.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.cavbg8TeV.HITS.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.cavbg8TeV.HITS.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.Pileup.RDO.pool.root + </chainfileout> + </chainElement> + <!-- Run Reconstruction --> + <chainElement> + <jobTransform userJobId="pileupReco"> + <doc>reco</doc> + <jobTransformJobName>pileup_Reco_trf</jobTransformJobName> + <jobTransformCmd> + Reco_tf.py --inputRDOFile 'MC14.Pileup.RDO.pool.root' --outputESDFile 'MC14.Pileup.ESD.pool.root' --outputAODFile 'MC14.Pileup.AOD.pool.root' --maxEvents 2 --skipEvents 0 --autoConfiguration 'everything' --preExec 'muonCnvFlags.RpcCablingMode="new"' + </jobTransformCmd> + <group>FCTTransform</group> + <chaindataset_info> + <jobTransformData /> + <chaindatasetName> + MC14.Pileup.RDO.pool.root + </chaindatasetName> + <dataset_info> + <jobTransformData /> + <datasetName> + /afs/cern.ch/atlas/offline/external/FullChainTest/long/rtt.fallback/MC12/MC12.Pileup.RDO.pool.root + </datasetName> + </dataset_info> + </chaindataset_info> + <queue>long</queue> + <batchWallTime>300</batchWallTime> + </jobTransform> + <chainfileout> + MC14.Pileup.ESD.pool.root + </chainfileout> + <chainfileout> + MC14.Pileup.AOD.pool.root + </chainfileout> + </chainElement> + </sequential> + </chain> + </jobList> + <jobGroups> + <jobGroup name="FCTTransform" parent="Transform"> + <keepFilePattern> + *.root + </keepFilePattern> + <keepFilePattern> + *.pdf + </keepFilePattern> + <keepFilePattern> + *.log + </keepFilePattern> + <keepFilePattern> + log.* + </keepFilePattern> + </jobGroup> + </jobGroups> + </rtt> +</unifiedTestConfiguration> diff --git a/Tools/FullChainTests/test/RecoOnly_top_digi.cfg b/Tools/FullChainTests/test/RecoOnly_top_digi.cfg new file mode 100644 index 00000000000..29de9f040b3 --- /dev/null +++ b/Tools/FullChainTests/test/RecoOnly_top_digi.cfg @@ -0,0 +1,11 @@ +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 + diff --git a/Tools/FullChainTests/test/RecoOnly_top_reco.cfg b/Tools/FullChainTests/test/RecoOnly_top_reco.cfg new file mode 100644 index 00000000000..1d2d2cf83c8 --- /dev/null +++ b/Tools/FullChainTests/test/RecoOnly_top_reco.cfg @@ -0,0 +1,9 @@ +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 diff --git a/Tools/FullChainTests/test/digireco.cfg b/Tools/FullChainTests/test/digireco.cfg new file mode 100644 index 00000000000..08c05ab4efb --- /dev/null +++ b/Tools/FullChainTests/test/digireco.cfg @@ -0,0 +1,29 @@ +#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 diff --git a/Tools/FullChainTests/test/digireco_MC12.cfg b/Tools/FullChainTests/test/digireco_MC12.cfg new file mode 100644 index 00000000000..7bcaaac29be --- /dev/null +++ b/Tools/FullChainTests/test/digireco_MC12.cfg @@ -0,0 +1,30 @@ +#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-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 +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 -- GitLab