File indexing completed on 2023-10-25 10:07:13
0001
0002
0003 from __future__ import print_function
0004 import os
0005 import sys
0006 import fileinput
0007 import string
0008
0009 NewVersion='3_6_1_patch3_seedFix'
0010 RefVersion='3_6_1_patch3_orig'
0011
0012
0013 NewRelease='CMSSW_'+NewVersion
0014 RefRelease='CMSSW_'+RefVersion
0015
0016
0017
0018 NewFastSim=False
0019 RefFastSim=False
0020
0021 samples= ['RelValJpsiMM_mc',
0022 'RelValJpsiMM_startup',
0023 'RelValQCD_FlatPt_15_3000_mc',
0024 'RelValQCD_FlatPt_15_3000_startup',
0025 'RelValSingleMuPt1000_mc',
0026 'RelValSingleMuPt1000_startup',
0027 'RelValSingleMuPt100_mc',
0028 'RelValSingleMuPt100_startup',
0029 'RelValSingleMuPt10_mc',
0030 'RelValSingleMuPt10_startup',
0031 'RelValZMM_mc',
0032 'RelValZMM_startup'
0033 ]
0034
0035
0036
0037 Submit=True
0038 Publish=False
0039
0040 GetFilesFromCastor=True
0041 GetRefsFromCastor=True
0042 CastorRepository = '/castor/cern.ch/user/s/slava77/reltest/CMSSW_3_6_1_patch3-seedFix/harvesting'
0043
0044
0045 ValidateHLT=True
0046 ValidateDQM=True
0047 ValidateISO=True
0048
0049 NewTag = ''
0050 RefTag = ''
0051
0052
0053
0054 CastorRefRepository = '/castor/cern.ch/user/s/slava77/reltest/CMSSW_3_6_1_patch3-orig/harvesting'
0055
0056
0057 macro='macro/TrackValHistoPublisher.C'
0058 macroSeed='macro/SeedValHistoPublisher.C'
0059 macroReco='macro/RecoValHistoPublisher.C'
0060 macroIsol='macro/IsoValHistoPublisher.C'
0061
0062 def replace(map, filein, fileout):
0063 replace_items = map.items()
0064 while True:
0065 line = filein.readline()
0066 if not line: break
0067 for old, new in replace_items:
0068 line = string.replace(line, old, new)
0069 fileout.write(line)
0070 fileout.close()
0071 filein.close()
0072
0073
0074 NewRepository = '/afs/cern.ch/cms/Physics/muon/CMSSW/Performance/RecoMuon/Validation/val'
0075 RefRepository = '/afs/cern.ch/cms/Physics/muon/CMSSW/Performance/RecoMuon/Validation/val'
0076
0077 for sample in samples :
0078
0079 newdir=NewRepository+'/'+NewRelease+'/'+sample
0080
0081
0082 if(os.path.exists(NewRelease+'/'+sample)==False):
0083 os.makedirs(NewRelease+'/'+sample)
0084
0085 if(os.path.exists(RefRelease+'/'+sample)==False):
0086 os.makedirs(RefRelease+'/'+sample)
0087
0088 checkFile = NewRelease+'/'+sample+'/general_tpToTkmuAssociation.pdf'
0089 if (RefFastSim):
0090 checkFile = NewRelease+'/'+sample+'/general_tpToTkmuAssociationFS.pdf'
0091 if (os.path.isfile(checkFile)==True):
0092 print("Files of type "+checkFile+' exist alredy: delete them first, if you really want to overwrite them')
0093 else:
0094 newSample=NewRepository+'/'+NewRelease+'/'+sample+'/'+'val.'+sample+'.root'
0095 refSample=RefRepository+'/'+RefRelease+'/'+sample+'/'+'val.'+sample+'.root'
0096
0097 if (os.path.isfile(NewRelease+'/'+sample+'/val'+sample+'.root')==True):
0098
0099 print("New file found at: ",NewRelease+'/'+sample+'/val'+sample+'.root'+' -> Use that one')
0100
0101 elif (GetFilesFromCastor):
0102 print('*** Getting file from '+NewRelease)
0103 os.system('rfcp '+CastorRepository+'/DQM_CMSSW_3_6_1_patch3-seedFix_'+sample+'.list.root '+NewRelease+'/'+sample+'/'+'val.'+sample+'.root')
0104 elif (os.path.isfile(newSample)) :
0105 os.system('cp '+newSample+' '+NewRelease+'/'+sample)
0106
0107
0108 if (os.path.isfile(RefRelease+'/'+sample+'/val'+sample+'.root')!=True and os.path.isfile(refSample)):
0109 print('*** Getting reference file from '+RefRelease)
0110 os.system('cp '+refSample+' '+RefRelease+'/'+sample)
0111 elif (GetRefsFromCastor):
0112 print('*** Getting reference file from castor')
0113 os.system('rfcp '+CastorRefRepository+'/DQM_CMSSW_3_6_1_patch3-orig_'+sample+'.list.root '+RefRelease+'/'+sample+'/'+'val.'+sample+'.root')
0114 else:
0115 print('*** WARNING: no reference file was found')
0116
0117 cfgFileName=sample+'_'+NewRelease+'_'+RefRelease
0118 hltcfgFileName='HLT'+sample+'_'+NewRelease+'_'+RefRelease
0119 seedcfgFileName='SEED'+sample+'_'+NewRelease+'_'+RefRelease
0120 recocfgFileName='RECO'+sample+'_'+NewRelease+'_'+RefRelease
0121 isolcfgFileName='ISOL'+sample+'_'+NewRelease+'_'+RefRelease
0122
0123 if os.path.isfile(RefRelease+'/'+sample+'/val.'+sample+'.root'):
0124 replace_map_RECO = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':RefRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':RefRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':RefTag, 'NEWSELECTION':NewTag, 'TrackValHistoPublisher': cfgFileName}
0125 if (ValidateHLT):
0126 replace_map_HLT = { 'DATATYPE': 'HLT', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':RefRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':RefRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':RefTag, 'NEWSELECTION':NewTag, 'TrackValHistoPublisher': hltcfgFileName}
0127 if (ValidateDQM):
0128 replace_map_DIST = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':RefRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':RefRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':RefTag, 'NEWSELECTION':NewTag, 'RecoValHistoPublisher': recocfgFileName}
0129 replace_map_SEED = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':RefRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':RefRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':RefTag, 'NEWSELECTION':NewTag, 'SeedValHistoPublisher': seedcfgFileName}
0130 if (ValidateISO):
0131 replace_map_ISOL = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':RefRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':RefRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':RefTag, 'NEWSELECTION':NewTag, 'IsoValHistoPublisher': isolcfgFileName}
0132 else:
0133 print("No reference file found at: ", RefRelease+'/'+sample)
0134 replace_map_RECO = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':NewRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':NewTag, 'NEWSELECTION':NewTag, 'TrackValHistoPublisher': cfgFileName}
0135 if (ValidateHLT):
0136 replace_map_HLT = { 'DATATYPE': 'HLT', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':NewRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':NewTag, 'NEWSELECTION':NewTag, 'TrackValHistoPublisher': hltcfgFileName}
0137 if (ValidateDQM):
0138 replace_map_DIST = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':NewRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':NewTag, 'NEWSELECTION':NewTag, 'RecoValHistoPublisher': recocfgFileName}
0139 replace_map_SEED = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':NewRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':NewTag, 'NEWSELECTION':NewTag, 'SeedValHistoPublisher': seedcfgFileName}
0140 if (ValidateISO):
0141 replace_map_ISOL = { 'DATATYPE': 'RECO', 'NEW_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_FILE':NewRelease+'/'+sample+'/val.'+sample+'.root', 'REF_LABEL':sample, 'NEW_LABEL': sample, 'REF_RELEASE':NewRelease, 'NEW_RELEASE':NewRelease, 'REFSELECTION':NewTag, 'NEWSELECTION':NewTag, 'IsoValHistoPublisher': isolcfgFileName}
0142
0143 templatemacroFile = open(macro, 'r')
0144 macroFile = open(cfgFileName+'.C' , 'w' )
0145 replace(replace_map_RECO, templatemacroFile, macroFile)
0146
0147 if (ValidateHLT):
0148 templatemacroFile = open(macro, 'r')
0149 hltmacroFile = open(hltcfgFileName+'.C' , 'w' )
0150 replace(replace_map_HLT, templatemacroFile, hltmacroFile)
0151
0152 if (ValidateDQM):
0153 templatemacroFile = open(macroReco, 'r')
0154 recomacroFile = open(recocfgFileName+'.C' , 'w' )
0155 replace(replace_map_DIST, templatemacroFile, recomacroFile)
0156 templatemacroFile = open(macroSeed, 'r')
0157 seedmacroFile = open(seedcfgFileName+'.C' , 'w' )
0158 replace(replace_map_SEED, templatemacroFile, seedmacroFile)
0159
0160 if (ValidateISO):
0161 templatemacroFile = open(macroIsol, 'r')
0162 isolmacroFile = open(isolcfgFileName+'.C' , 'w' )
0163 replace(replace_map_ISOL, templatemacroFile, isolmacroFile)
0164
0165 if(Submit):
0166 os.system('root -b -q -l '+ cfgFileName+'.C'+ '> macro.'+cfgFileName+'.log')
0167 if (ValidateHLT):
0168 os.system('root -b -q -l '+ hltcfgFileName+'.C'+ '> macro.'+hltcfgFileName+'.log')
0169 if (ValidateDQM):
0170 os.system('root -b -q -l '+ recocfgFileName+'.C'+ '> macro.'+recocfgFileName+'.log')
0171 os.system('root -b -q -l '+ seedcfgFileName+'.C'+ '> macro.'+seedcfgFileName+'.log')
0172 if (ValidateISO):
0173 os.system('root -b -q -l '+ isolcfgFileName+'.C'+ '> macro.'+isolcfgFileName+'.log')
0174
0175 if(Publish):
0176 if(os.path.exists(newdir)==False):
0177 os.makedirs(newdir)
0178 os.system('rm '+NewRelease+'/'+sample+'/val.'+sample+'.root')
0179 os.system('scp -r '+NewRelease+'/'+sample+'/* ' + newdir)