#!/usr/env python
import sys
import os
import cgi
import glob
import re
#import pickle
import string
#sys.path.append('/home/bertram')
sys.path.append('mc_runjob/py_script/')
from Configurator import *
from MCRunjobDefaults import *
from CardReader import CardReplacerWrapper
from MyTools import my_sed1
if __name__=='__main__':
time_stamp = global_Defaults['TimeStamp']
generator=''
inputs = sys.argv[1:]
if len(inputs)==0:
#print 'problem'
command = 'Request.py'
elif len(inputs)==1:
command = inputs[0]
execfile(command)
command = 'Defaults.py'
execfile(command)
try:
keywordDict = dict
except:
keywordDict = keywordDict
#print keywordDict
print_string = '#MiniDB \nStandardD0 0 \nSaveOnMake\n'
print print_string
request_macro = 'Request.macro'
fileout=open(request_macro,'w')
print_string = ''
print_string = 'attach samglobal'
print '%s'%print_string
try:
Global_Values = keywordDict['Global']
except:
Global_Values = keywordDict['global']
tmp_Global= DefaultDict['global']
#print tmp_Global
for item in tmp_Global.keys():
if item not in Global_Values.keys():
Global_Values[item] = tmp_Global[item]
#print Global_Values
#print global_ValidTypes
for item in global_ValidTypes.keys():
#print item
if (string.lower(item) in Global_Values.keys()):
print_string = 'cfg samglobal define %s'%global_ValidTypes[item]+' %s'%item+' %s '%Global_Values[string.lower(item)]
print '%s'%print_string
try:
Generator_Values = keywordDict['Generated']
except:
Generator_Values = keywordDict['generated']
tmp_Generator = DefaultDict['generated']
#print tmp_Generator
for item in tmp_Generator.keys():
if item not in Generator_Values.keys():
Generator_Values[item] = tmp_Generator[item]
#print Generator_Values
item='Generator'
if string.lower(item) in Generator_Values.keys():
generator = Generator_Values[string.lower(item)]
print_string = 'attach %s'%generator
print '\n%s'%print_string
#print d0configurator_ValidTypes.keys()
#print GenConfigurator_ValidTypes.keys()
#print d0messmixin_ValidTypes.keys()
#if generator == 'pythia' : print pythia_ValidTypes.keys()
for item in GenConfigurator_ValidTypes.keys():
if (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%GenConfigurator_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
for item in d0messmixin_ValidTypes.keys():
if item not in GenConfigurator_ValidTypes.keys():
if (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%d0messmixin_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
for item in d0configurator_ValidTypes.keys():
if item not in GenConfigurator_ValidTypes.keys():
if (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%d0configurator_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
if generator == 'pythia' :
for item in pythia_ValidTypes.keys():
if item not in GenConfigurator_ValidTypes.keys():
if item not in d0configurator_ValidTypes.keys():
if ( item == 'PDFLibFunc'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%pythia_ValidTypes[item]+' %s '%item+' %s'%string.upper(Generator_Values[string.lower(item)])
print '%s'%print_string
elif (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%pythia_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
if generator == 'herwig' :
for item in herwig_ValidTypes.keys():
if item not in GenConfigurator_ValidTypes.keys():
if item not in d0configurator_ValidTypes.keys():
if (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%herwig_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
if generator == 'isajet' :
for item in isajet_ValidTypes.keys():
if item not in GenConfigurator_ValidTypes.keys():
if item not in d0configurator_ValidTypes.keys():
if (item != 'Generator'):
print_string = 'cfg %s define '%generator
if (string.lower(item)) in Generator_Values.keys():
print_string = '%s'%print_string+'%s'%isajet_ValidTypes[item]+' %s '%item+' %s'%Generator_Values[string.lower(item)]
print '%s'%print_string
try:
D0gstar_Values = keywordDict['Simulated']
except:
D0gstar_Values = keywordDict['simulated']
tmp_D0gstar = DefaultDict['simulated']
for item in tmp_D0gstar.keys():
if item not in D0gstar_Values.keys():
D0gstar_Values[item] = tmp_D0gstar[item]
#D0gstar_Values = keywordDict['simulated']
print_string = '\n attach d0gstar'
print '%s'%print_string
for item in d0gstar_ValidTypes.keys():
if string.lower(item) in D0gstar_Values.keys():
print_string = 'cfg d0gstar define %s'%d0gstar_ValidTypes[item]+' %s'%item+' %s'%D0gstar_Values[string.lower(item)]
print '%s'%print_string
for item in d0configurator_ValidTypes.keys():
if item not in d0gstar_ValidTypes.keys():
if string.lower(item) in D0gstar_Values.keys():
print_string = 'cfg d0gstar define %s'%d0configurator_ValidTypes[item]+' %s'%item+' %s'%D0gstar_Values[string.lower(item)]
print '%s'%print_string
if keywordDict.has_key('Digitized'):
D0sim_Values = keywordDict['Digitized']
elif keywordDict.has_key('digitized'):
D0sim_Values = keywordDict['digitized']
else:
D0sim_Values = {}
tmp_D0sim = DefaultDict['digitized']
#print tmp_D0sim, D0sim_Values
for item in tmp_D0sim.keys():
if item not in D0sim_Values.keys():
D0sim_Values[item] = tmp_D0sim[item]
#D0sim_Values = keywordDict['digitized']
#print D0sim_Values
#print d0sim_ValidTypes
print_string = '\n attach d0sim'
print '%s'%print_string
for item in d0sim_ValidTypes.keys():
if string.lower(item) in D0sim_Values.keys():
#print item
if string.lower(item) == 'minbiopt' :
#print item, D0sim_Values[string.lower(item)]
if D0sim_Values[string.lower(item)] == 'poisson':
value = 'Poisson'
#print value
elif D0sim_Values[string.lower(item)] == 'fixed':
value = 'Fixed'
print_string = 'cfg d0sim define %s'%d0sim_ValidTypes[item]+' %s'%item+' %s'%value
else:
print_string = 'cfg d0sim define %s'%d0sim_ValidTypes[item]+' %s'%item+' %s'%D0sim_Values[string.lower(item)]
print '%s'%print_string
for item in d0configurator_ValidTypes.keys():
if item not in d0sim_ValidTypes.keys():
if string.lower(item) in D0sim_Values.keys():
print_string = 'cfg d0sim define %s'%d0configurator_ValidTypes[item]+' %s'%item+' %s'%D0sim_Values[string.lower(item)]
print '%s'%print_string
if keywordDict.has_key('Reconstructed'):
D0Reco_Values = keywordDict['Reconstructed']
elif keywordDict.has_key('reconstructed'):
D0Reco_Values = keywordDict['reconstructed']
else:
D0Reco_Values = {}
tmp_D0Reco = DefaultDict['reconstructed']
#print tmp_D0sim
for item in tmp_D0Reco.keys():
if item not in D0Reco_Values.keys():
D0Reco_Values[item] = tmp_D0Reco[item]
print_string = '\n attach d0reco'
print '%s'%print_string
for item in d0reco_ValidTypes.keys():
if string.lower(item) in D0Reco_Values.keys():
print_string = 'cfg d0reco define %s'%d0reco_ValidTypes[item]+' %s'%item+' %s'%D0Reco_Values[string.lower(item)]
print '%s'%print_string
for item in d0configurator_ValidTypes.keys():
if item not in d0reco_ValidTypes.keys():
if string.lower(item) in D0Reco_Values.keys():
print_string = 'cfg d0reco define %s'%d0configurator_ValidTypes[item]+' %s'%item+' %s'%D0Reco_Values[string.lower(item)]
print '%s'%print_string
if keywordDict.has_key ('Root-tuple'):
Recoanalyze_Values = keywordDict['Root-tuple']
else:
Recoanalyze_Values = {}
tmp_Recoanalyze = DefaultDict['root-tuple']
#print tmp_D0sim
for item in tmp_Recoanalyze.keys():
if item not in Recoanalyze_Values.keys():
Recoanalyze_Values[item] = tmp_Recoanalyze[item]
if len(Recoanalyze_Values)>0:
print_string = '\n attach recoanalyze'
print '%s'%print_string
for item in recoanalyze_ValidTypes.keys():
if string.lower(item) in Recoanalyze_Values.keys():
print_string = 'cfg recoanalyze define %s'%recoanalyze_ValidTypes[item]+' %s'%item+' %s'%Recoanalyze_Values[string.lower(item)]
print '%s'%print_string
for item in d0configurator_ValidTypes.keys():
if item not in recoanalyze_ValidTypes.keys():
if string.lower(item) in Recoanalyze_Values.keys():
print_string = 'cfg recoanalyze define %s'%d0configurator_ValidTypes[item]+' %s'%item+' %s'%Recoanalyze_Values[string.lower(item)]
print '%s'%print_string
default_file = 'macro.default'
if os.path.exists(default_file):
file=open(default_file,'r')
linelist=file.readlines()
for line in linelist:
print line
####
"""
fileout.write(print_string)
fileout.write(print_string)
item='Generator'
if item in Generator_Values.keys():
generator = Generator_Values[item]
print_string = 'attach %s \n'%generator
print '
%s
'%print_string
fileout.write(print_string)
print_string = 'attach d0gstar \n'
print '
%s
'%print_string
fileout.write(print_string)
for item in D0gstar_Values.keys():
if item in d0gstar_ValidTypes.keys():
print_string = 'cfg d0gstar define %s'%d0gstar_ValidTypes[item]+' %s'%item+' %s \n'%D0gstar_Values[item]
elif item in d0configurator_ValidTypes.keys():
print_string = 'cfg d0gstar define %s'%d0configurator_ValidTypes[item]+' %s '%item+' %s \n'%D0gstar_Values[item]
print '%s
'%print_string
fileout.write(print_string)
print_string = 'attach d0sim \n'
print '
%s
'%print_string
fileout.write(print_string)
for item in D0sim_Values.keys():
if item in d0sim_ValidTypes.keys():
print_string = 'cfg d0sim define %s'%d0sim_ValidTypes[item]+' %s'%item+' %s \n'%D0sim_Values[item]
elif item in d0configurator_ValidTypes.keys():
print_string = 'cfg d0sim define %s'%d0configurator_ValidTypes[item]+' %s '%item+' %s \n'%D0sim_Values[item]
print '%s
'%print_string
fileout.write(print_string)
print_string = '\n attach d0reco \n'
print '
%s
'%print_string
fileout.write(print_string)
for item in D0reco_Values.keys():
if item in d0reco_ValidTypes.keys():
print_string = 'cfg d0reco define %s'%d0reco_ValidTypes[item]+' %s'%item+' %s \n'%D0reco_Values[item]
elif item in d0configurator_ValidTypes.keys():
print_string = 'cfg d0reco define %s'%d0configurator_ValidTypes[item]+' %s '%item+' %s \n'%D0reco_Values[item]
print '%s
'%print_string
fileout.write(print_string)
print '
attach recoanalyze
'
for item in Recoanalyze_Values.keys():
if item in recoanalyze_ValidTypes.keys():
print 'cfg recoanalyze define %s'%recoanalyze_ValidTypes[item]+' %s'%item+' %s
'%Recoanalyze_Values[item]
elif item in d0configurator_ValidTypes.keys():
print 'cfg recoanalyze define %s'%d0configurator_ValidTypes[item]+' %s '%item+' %s
'%Recoanalyze_Values[item]
fileout.close()
"""