-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPFCandidateRun.py
81 lines (58 loc) · 2.66 KB
/
PFCandidateRun.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import sys
import os
from subprocess import call
import FWCore.ParameterSet.Config as cms
import FWCore.Utilities.FileUtils as FileUtils
import FWCore.PythonUtilities.LumiList as LumiList
from RecoJets.JetProducers.PFJetParameters_cfi import *
from RecoJets.JetProducers.AnomalousCellParameters_cfi import *
from RecoJets.JetProducers.ak5PFJets_cfi import ak5PFJets
from RecoJets.JetProducers.kt4PFJets_cfi import kt4PFJets
input_dir = sys.argv[2]
output_dir = sys.argv[3]
map_file_path = sys.argv[4]
completed_log_filename = sys.argv[5]
dir_to_create = output_dir
if not os.path.exists(dir_to_create):
os.makedirs(dir_to_create)
files_to_process = []
if os.path.isdir(input_dir):
for file in os.listdir(input_dir):
if file.endswith("root"):
output_file = output_dir + "/" + file[:-5] + ".mod"
if not os.path.exists(output_file):
files_to_process.append("file://" + input_dir + "/" + file)
else:
#print "{} is already in the directory so skipping.".format(output_file)
pass
files_to_process.append("file://" + input_dir + "/" + file)
is_input_directory = True
else:
files_to_process.append("file://" + input_dir)
files_to_process.sort()
print "Total number of files processing = ", len(files_to_process)
readFiles = cms.untracked.vstring()
readFiles.extend(files_to_process)
process = cms.Process("MITCMSOpenData")
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
process.GlobalTag.globaltag = 'GR_R_42_V25::All'
process.source = cms.Source("PoolSource", fileNames=readFiles)
process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(-1))
goodJSON = "file_paths/Cert_136033-149442_7TeV_Apr21ReReco_Collisions10_JSON_v2.txt"
myLumis = LumiList.LumiList(filename = goodJSON).getCMSSWString().split(',')
process.source.lumisToProcess = cms.untracked.VLuminosityBlockRange()
process.source.lumisToProcess.extend(myLumis)
process.ak5PFJets = ak5PFJets.clone(doAreaFastjet = cms.bool(True))
process.kt6PFJetsForIsolation = kt4PFJets.clone(rParam = 0.6, doRhoFastjet = True)
process.PFCandidateProducer = cms.EDProducer("PFCandidateProducer",
rho = cms.InputTag("kt6PFJets","rho"),
PFCandidateInputTag = cms.InputTag("particleFlow"),
AK5PFInputTag = cms.InputTag("ak5PFJets"),
mapFilename = cms.string(map_file_path),
outputDir = cms.string(output_dir),
primaryVertices = cms.InputTag("offlinePrimaryVertices"),
dataVersion = cms.string("5"),
completedLogFilename = cms.string(completed_log_filename)
)
process.producer = cms.Path( process.ak5PFJets * process.kt6PFJetsForIsolation * process.PFCandidateProducer)
process.schedule = cms.Schedule( process.producer )