/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_forData.py

https://github.com/aivanov-cern/cmssw · Python · 469 lines · 253 code · 90 blank · 126 comment · 3 complexity · ab8aea1c8def169eb6aa4ed75293e93b MD5 · raw file

  1. # Initializations
  2. # ---------------
  3. #
  4. # Get the base name of the Python script and use it to define input/output associated files
  5. #
  6. # N.B: Special variable __file__ is not available within cmsRun, and the following line fails:
  7. #
  8. # pyFile=(__file__).replace('.py','')
  9. #
  10. # As a result, the calling arguments must be scanned to locate the Python script.
  11. #
  12. import sys
  13. for inArg in sys.argv:
  14. if inArg.find('.py') == -1:
  15. continue
  16. else:
  17. pyBaseName=inArg.replace('.py','')
  18. # Define input/output associated files.
  19. #
  20. pyFile = "%s.py" % (pyBaseName) # Name of the Python script itself
  21. lstFile = "%s.list" % (pyBaseName) # Name of the list file (contains a list of files to process)
  22. resFile = "%s.results" % (pyBaseName) # Name of the results file (stdout and stderr messages)
  23. outFile = "%s.root" % (pyBaseName) # Name of the output file (ROOT)
  24. ## Configuration for the production of the ICHEP VBTF ntuple
  25. ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  26. ## MC, spring10
  27. ##
  28. ## Stilianos Kesisoglou - Institute of Nuclear Physics
  29. ## NCSR Demokritos
  30. ## 25 June 2010
  31. import FWCore.ParameterSet.Config as cms
  32. process = cms.Process("PAT")
  33. process.options = cms.untracked.PSet(
  34. Rethrow = cms.untracked.vstring('ProductNotFound')
  35. )
  36. #process.MessageLogger = cms.Service(
  37. # "MessageLogger",
  38. # categories = cms.untracked.vstring('info', 'debug','cout')
  39. # )
  40. process.load("FWCore.MessageService.MessageLogger_cfi")
  41. process.MessageLogger.cerr.threshold = cms.untracked.string("INFO")
  42. process.MessageLogger.cerr.FwkSummary = cms.untracked.PSet(
  43. reportEvery = cms.untracked.int32(1000000),
  44. limit = cms.untracked.int32(10000000)
  45. )
  46. process.MessageLogger.cerr.FwkReport = cms.untracked.PSet(
  47. reportEvery = cms.untracked.int32(100000),
  48. limit = cms.untracked.int32(10000000)
  49. )
  50. process.options = cms.untracked.PSet(
  51. wantSummary = cms.untracked.bool(True)
  52. )
  53. #
  54. # # source
  55. # process.source = cms.Source("PoolSource",
  56. # fileNames = cms.untracked.vstring(
  57. # # SOME DATA FILE TO BE PUT HERE
  58. # #
  59. # # DATA test (local) running on the OneElecPlusSC skim made from the EG DATA samples
  60. # # ----------------------------------------------------------------------------------
  61. # # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_woFakeJSON.root',
  62. # # 'rfio:/tmp/ikesisog/TestFiles/skimDATA/Zee/00000000-0000-0000-0000-000000000000_wiFakeJSON.root',
  63. # #
  64. # # DATA test (local) running directly on the EG DATA samples
  65. # # ----------------------------------------------------------
  66. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/6AD8C6D3-2C92-DF11-AFDE-0030487C90C2.root',
  67. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/34BD6E1C-3892-DF11-BD3F-001D09F27067.root',
  68. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/04D0FF1D-2792-DF11-8B6C-003048F11942.root',
  69. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/74CF44CB-1592-DF11-989E-001617C3B77C.root',
  70. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/66072495-1A92-DF11-9461-0030487BC68E.root',
  71. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/5E06C91D-1E92-DF11-9591-0016177CA778.root',
  72. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/48B8741C-1E92-DF11-ADAD-001617C3B6DC.root',
  73. # 'rfio:/tmp/ikesisog/TestFiles/dSetDATA/Zee/1EC74696-1A92-DF11-B9BB-0030487CD13A.root',
  74. # )
  75. # )
  76. #
  77. # source - Use an input list to bypass the 255 file limit
  78. import FWCore.Utilities.FileUtils as FileUtils
  79. filelist = FileUtils.loadListFromFile(lstFile)
  80. process.source = cms.Source('PoolSource',
  81. fileNames = cms.untracked.vstring(*filelist)
  82. )
  83. #
  84. # # using locally provided JSON
  85. # import PhysicsTools.PythonAnalysis.LumiList as LumiList
  86. # import FWCore.ParameterSet.Types as CfgTypes
  87. # myLumis = LumiList.LumiList(filename = 'Cert_132440-149442_7TeV_StreamExpress_Collisions10_JSON_v2.json').getCMSSWString().split(',')
  88. # process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
  89. # process.source.lumisToProcess.extend(myLumis)
  90. #
  91. process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
  92. ## Load additional processes
  93. #
  94. process.load("Configuration.StandardSequences.Geometry_cff")
  95. process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
  96. ## global tags:
  97. #
  98. process.GlobalTag.globaltag = cms.string('GR_R_39X_V5::All') # GLOBAL TAG FOR DATA
  99. process.load("Configuration.StandardSequences.MagneticField_cff")
  100. ################################################################################################
  101. ### P r e p a r a t i o n o f t h e P A T O b j e c t s f r o m A O D ###
  102. ################################################################################################
  103. ## pat sequences to be loaded:
  104. #process.load("PhysicsTools.PFCandProducer.PF2PAT_cff")
  105. process.load("PhysicsTools.PatAlgos.patSequences_cff")
  106. #process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff")
  107. ##
  108. #
  109. ## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%%
  110. ## specify the names of the MET collections that you need here %%%%
  111. ## #%%
  112. ## if you don't specify anything the default MET is the raw Calo MET #%%
  113. process.caloMET = process.patMETs.clone( #%%
  114. metSource = cms.InputTag("met","","RECO"),
  115. addTrigMatch = cms.bool(False),
  116. addMuonCorrections = cms.bool(False),
  117. addGenMET = cms.bool(False),
  118. )
  119. process.tcMET = process.patMETs.clone( #%%
  120. metSource = cms.InputTag("tcMet","","RECO"),
  121. addTrigMatch = cms.bool(False),
  122. addMuonCorrections = cms.bool(False),
  123. addGenMET = cms.bool(False),
  124. )
  125. process.pfMET = process.patMETs.clone( #%%
  126. metSource = cms.InputTag("pfMet","","RECO"),
  127. addTrigMatch = cms.bool(False),
  128. addMuonCorrections = cms.bool(False),
  129. addGenMET = cms.bool(False),
  130. )
  131. ## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%%
  132. myMetCollection = 'caloMET'
  133. myPfMetCollection = 'pfMET'
  134. myTcMetCollection = 'tcMET'
  135. ## modify the sequence of the MET creation: #%%
  136. process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET)
  137. ## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections)
  138. process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff")
  139. #process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence)
  140. process.patElectrons.isoDeposits = cms.PSet()
  141. process.patElectrons.userIsolation = cms.PSet()
  142. process.patElectrons.addElectronID = cms.bool(True)
  143. process.patElectrons.electronIDSources = cms.PSet(
  144. simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"),
  145. simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"),
  146. simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"),
  147. simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"),
  148. simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"),
  149. simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"),
  150. simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"),
  151. simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"),
  152. simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"),
  153. simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"),
  154. simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"),
  155. simpleEleId60cIso = cms.InputTag("simpleEleId60cIso")
  156. )
  157. ##
  158. process.patElectrons.addGenMatch = cms.bool(False)
  159. process.patElectrons.embedGenMatch = cms.bool(False)
  160. process.patElectrons.usePV = cms.bool(False)
  161. ##
  162. process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff")
  163. # you have to tell the ID that it is data. These are set to False for MC
  164. process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(True)
  165. process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(True)
  166. process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(True)
  167. process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(True)
  168. process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(True)
  169. process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(True)
  170. process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(True)
  171. process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(True)
  172. process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(True)
  173. process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(True)
  174. process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(True)
  175. process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(True)
  176. #
  177. process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence)
  178. process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons)
  179. # process.makePatMuons may be needed depending on how you calculate the MET
  180. process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs)
  181. process.patDefaultSequence = cms.Sequence(process.makePatCandidates)
  182. ## WARNING: you may want to modify this item:
  183. HLT_process_name = "HLT" # REDIGI for the production traditional MC / HLT for the powheg samples or data
  184. # Trigger Path(s)
  185. HLT_path_name = "HLT_Photon10_L1R"
  186. # Label of the last Trigger Filter in the Trigger Path
  187. HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter"
  188. HLT_path_name_extra0 = "HLT_Photon15_Cleaned_L1R"
  189. HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name)
  190. HLT_path_name_extra1 = "HLT_Ele15_SW_CaloEleId_L1R"
  191. HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15CaloEleIdPixelMatchFilter","",HLT_process_name)
  192. HLT_path_name_extra2 = "HLT_Ele17_SW_CaloEleId_L1R"
  193. HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17CaloEleIdPixelMatchFilter","",HLT_process_name)
  194. HLT_path_name_extra3 = "HLT_Ele17_SW_TightEleId_L1R"
  195. HLT_filter_name_extra3 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TightEleIdDphiFilter","",HLT_process_name)
  196. # HLT_path_name_extra4 = "HLT_Ele17_SW_TighterEleIdIsol_L1R_v2"
  197. # HLT_filter_name_extra4 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TighterEleIdIsolTrackIsolFilter","",HLT_process_name)
  198. HLT_path_name_extra5 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v1"
  199. HLT_filter_name_extra5 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name)
  200. HLT_path_name_extra6 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v2"
  201. HLT_filter_name_extra6 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name)
  202. rules_Filter = cms.PSet (
  203. ### the input collections needed:
  204. electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"),
  205. metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"),
  206. pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"),
  207. tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"),
  208. triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name),
  209. triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name),
  210. hltpath = cms.untracked.string(HLT_path_name),
  211. hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name),
  212. ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"),
  213. eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"),
  214. PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"),
  215. ### here the preselection is applied
  216. # fiducial cuts:
  217. BarrelMaxEta = cms.untracked.double(1.4442),
  218. EndCapMinEta = cms.untracked.double(1.5660),
  219. EndCapMaxEta = cms.untracked.double(2.5000),
  220. # demand ecal driven electron:
  221. useEcalDrivenElectrons = cms.untracked.bool(True),
  222. # demand offline spike cleaning with the Swiss Cross criterion:
  223. useSpikeRejection = cms.untracked.bool(False),
  224. spikeCleaningSwissCrossCut = cms.untracked.double(0.95),
  225. # demand geometrically matched to an HLT object with ET>15GeV
  226. useTriggerInfo = cms.untracked.bool(True),
  227. electronMatched2HLT = cms.untracked.bool(True),
  228. electronMatched2HLT_DR = cms.untracked.double(0.1),
  229. useHLTObjectETCut = cms.untracked.bool(True),
  230. hltObjectETCut = cms.untracked.double(15.0),
  231. useExtraTrigger = cms.untracked.bool(True),
  232. # vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra4,HLT_path_name_extra5),
  233. # vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra4,HLT_filter_name_extra5),
  234. vHltpathExtra = cms.untracked.vstring(HLT_path_name_extra0,HLT_path_name_extra1,HLT_path_name_extra2,HLT_path_name_extra3,HLT_path_name_extra5,HLT_path_name_extra6),
  235. vHltpathFilterExtra = cms.untracked.VInputTag(HLT_filter_name_extra0,HLT_filter_name_extra1,HLT_filter_name_extra2,HLT_filter_name_extra3,HLT_filter_name_extra5,HLT_filter_name_extra6),
  236. # ET Cut in the SC
  237. ETCut = cms.untracked.double(25.0),
  238. METCut = cms.untracked.double(0.0),
  239. # For DATA set it to True, for MC set it to False
  240. dataMagneticFieldSetUp = cms.untracked.bool(True),
  241. dcsTag = cms.untracked.InputTag("scalersRawToDigi")
  242. )
  243. rules_Filter_Elec0 = cms.PSet (
  244. # Other parameters of the code - leave them as they are
  245. useValidFirstPXBHit0 = cms.untracked.bool(False),
  246. useConversionRejection0 = cms.untracked.bool(False),
  247. useExpectedMissingHits0 = cms.untracked.bool(True),
  248. maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0),
  249. # calculate some new cuts
  250. calculateValidFirstPXBHit0 = cms.untracked.bool(False),
  251. calculateConversionRejection0 = cms.untracked.bool(False),
  252. calculateExpectedMissingHits0 = cms.untracked.bool(False)
  253. )
  254. rules_Filter_Elec1 = cms.PSet (
  255. # Other parameters of the code - leave them as they are
  256. useValidFirstPXBHit1 = cms.untracked.bool(False),
  257. useConversionRejection1 = cms.untracked.bool(False),
  258. useExpectedMissingHits1 = cms.untracked.bool(True),
  259. maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0),
  260. # calculate some new cuts
  261. calculateValidFirstPXBHit1 = cms.untracked.bool(False),
  262. calculateConversionRejection1 = cms.untracked.bool(False),
  263. calculateExpectedMissingHits1 = cms.untracked.bool(False)
  264. )
  265. rules_Filter_Elec2 = cms.PSet (
  266. # Other parameters of the code - leave them as they are
  267. useValidFirstPXBHit2 = cms.untracked.bool(False),
  268. useConversionRejection2 = cms.untracked.bool(False),
  269. useExpectedMissingHits2 = cms.untracked.bool(True),
  270. maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0),
  271. # calculate some new cuts
  272. calculateValidFirstPXBHit2 = cms.untracked.bool(False),
  273. calculateConversionRejection2 = cms.untracked.bool(False),
  274. calculateExpectedMissingHits2 = cms.untracked.bool(False)
  275. )
  276. process.zeeFilter = cms.EDFilter('ZeeCandidateFilter',
  277. rules_Filter,
  278. rules_Filter_Elec0,
  279. rules_Filter_Elec1,
  280. rules_Filter_Elec2
  281. )
  282. ## the Z selection that you prefer
  283. from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import *
  284. selection_inverse = cms.PSet (
  285. deta_EB_inv = cms.untracked.bool(True),
  286. deta_EE_inv = cms.untracked.bool(True)
  287. )
  288. rules_Plotter = cms.PSet (
  289. # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected
  290. useSameSelectionOnBothElectrons = cms.untracked.bool(True),
  291. # some extra information on the ntuple production:
  292. sihih0_EB = cms.untracked.double(1000.0),
  293. dphi0_EB = cms.untracked.double(1000.0),
  294. deta0_EB = cms.untracked.double(1000.0),
  295. hoe0_EB = cms.untracked.double(1000.0),
  296. sihih0_EE = cms.untracked.double(1000.0),
  297. dphi0_EE = cms.untracked.double(1000.0),
  298. deta0_EE = cms.untracked.double(1000.0),
  299. hoe0_EE = cms.untracked.double(1000.0),
  300. includeJetInformationInNtuples = cms.untracked.bool(True),
  301. caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'),
  302. pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'),
  303. DRJetFromElectron = cms.untracked.double(0.3),
  304. #
  305. zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"),
  306. ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"),
  307. ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"),
  308. DatasetTag = cms.untracked.int32(100),
  309. storeExtraInformation = cms.untracked.bool(True)
  310. )
  311. rules_Plotter_Elec0 = cms.PSet (
  312. # The selection to be used here:
  313. usePrecalcID0 = cms.untracked.bool(True),
  314. usePrecalcIDType0 = cms.untracked.string('simpleEleId80relIso'),
  315. usePrecalcIDSign0 = cms.untracked.string('='),
  316. usePrecalcIDValue0 = cms.untracked.double(7),
  317. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  318. # set them to False if you don't want them
  319. useValidFirstPXBHit0 = cms.untracked.bool(False),
  320. useConversionRejection0 = cms.untracked.bool(False),
  321. useExpectedMissingHits0 = cms.untracked.bool(True),
  322. maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0),
  323. ##
  324. calculateValidFirstPXBHit0 = cms.untracked.bool(False),
  325. calculateConversionRejection0 = cms.untracked.bool(False),
  326. calculateExpectedMissingHits0 = cms.untracked.bool(False)
  327. )
  328. rules_Plotter_Elec1 = cms.PSet (
  329. # The selection to be used here:
  330. usePrecalcID1 = cms.untracked.bool(True),
  331. usePrecalcIDType1 = cms.untracked.string('simpleEleId80relIso'),
  332. usePrecalcIDSign1 = cms.untracked.string('='),
  333. usePrecalcIDValue1 = cms.untracked.double(7),
  334. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  335. # set them to False if you don't want them
  336. useValidFirstPXBHit1 = cms.untracked.bool(False),
  337. useConversionRejection1 = cms.untracked.bool(False),
  338. useExpectedMissingHits1 = cms.untracked.bool(True),
  339. maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0),
  340. ##
  341. calculateValidFirstPXBHit1 = cms.untracked.bool(False),
  342. calculateConversionRejection1 = cms.untracked.bool(False),
  343. calculateExpectedMissingHits1 = cms.untracked.bool(False)
  344. )
  345. rules_Plotter_Elec2 = cms.PSet (
  346. # The selection to be used here:
  347. usePrecalcID2 = cms.untracked.bool(True),
  348. usePrecalcIDType2 = cms.untracked.string('simpleEleId80relIso'),
  349. usePrecalcIDSign2 = cms.untracked.string('='),
  350. usePrecalcIDValue2 = cms.untracked.double(7),
  351. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  352. # set them to False if you don't want them
  353. useValidFirstPXBHit2 = cms.untracked.bool(False),
  354. useConversionRejection2 = cms.untracked.bool(False),
  355. useExpectedMissingHits2 = cms.untracked.bool(True),
  356. maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0),
  357. ##
  358. calculateValidFirstPXBHit2 = cms.untracked.bool(False),
  359. calculateConversionRejection2 = cms.untracked.bool(False),
  360. calculateExpectedMissingHits2 = cms.untracked.bool(False)
  361. )
  362. # we need to store jet information, hence we have to produce the jets:
  363. process.load("JetMETCorrections.Configuration.DefaultJEC_cff")
  364. process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 )
  365. process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 )
  366. process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence )
  367. process.plotter = cms.EDAnalyzer('ZeePlots',
  368. rules_Plotter,
  369. rules_Plotter_Elec0,
  370. rules_Plotter_Elec1,
  371. rules_Plotter_Elec2
  372. )
  373. # For DATA, 361p4 electrons need fixing first (misalignment corrections) *NOT* be used with MC
  374. #process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi")
  375. #process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter)
  376. # For DATA, 397 electrons are fixed (misalignment corrections included)
  377. process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter)
  378. # For MonteCarlo,
  379. #process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter)