/ElectroWeakAnalysis/ZEE/test/pat_ZeeVBTF_ntuple_woCertJSON_for__MC.py

https://github.com/aivanov-cern/cmssw · Python · 465 lines · 253 code · 90 blank · 122 comment · 3 complexity · 7574fb868ef09f3f520c90006ded9068 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. # # MC test (local) running on the OneElecPlusSC skim made from the Zee MC samples
  60. # # ------------------------------------------------------------------------------
  61. # # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_1Files.root',
  62. # # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_2Files.root',
  63. # # 'rfio:/tmp/ikesisog/TestFiles/skimMC/OneElecPlusSC_3Files.root',
  64. # #
  65. # # MC test (local) running directly on the Zee MC samples
  66. # # ------------------------------------------------------
  67. # 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/8EA9211C-7476-DF11-BC31-00304867C136.root',
  68. # 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/B0737652-7076-DF11-83F8-002618943831.root',
  69. # 'rfio:/tmp/ikesisog/TestFiles/dSetMC/Zee/14B213B3-7576-DF11-8763-003048678FA6.root',
  70. # )
  71. # )
  72. #
  73. # source - Use an input list to bypass the 255 file limit
  74. import FWCore.Utilities.FileUtils as FileUtils
  75. filelist = FileUtils.loadListFromFile(lstFile)
  76. process.source = cms.Source('PoolSource',
  77. fileNames = cms.untracked.vstring(*filelist)
  78. )
  79. #
  80. # # using locally provided JSON
  81. # import PhysicsTools.PythonAnalysis.LumiList as LumiList
  82. # import FWCore.ParameterSet.Types as CfgTypes
  83. # myLumis = LumiList.LumiList(filename = 'Cert_132440-149442_7TeV_StreamExpress_Collisions10_JSON_v2.json').getCMSSWString().split(',')
  84. # process.source.lumisToProcess = CfgTypes.untracked(CfgTypes.VLuminosityBlockRange())
  85. # process.source.lumisToProcess.extend(myLumis)
  86. #
  87. process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
  88. ## Load additional processes
  89. #
  90. process.load("Configuration.StandardSequences.Geometry_cff")
  91. process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
  92. ## global tags:
  93. #
  94. process.GlobalTag.globaltag = cms.string('START36_V9::All') # GLOBAL TAG FOR MC
  95. process.load("Configuration.StandardSequences.MagneticField_cff")
  96. ################################################################################################
  97. ### 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 ###
  98. ################################################################################################
  99. ## pat sequences to be loaded:
  100. #process.load("PhysicsTools.PFCandProducer.PF2PAT_cff")
  101. process.load("PhysicsTools.PatAlgos.patSequences_cff")
  102. #process.load("PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cff")
  103. ##
  104. #
  105. ## MET creation <=== WARNING: YOU MAY WANT TO MODIFY THIS PART OF THE CODE %%%%%%%%%%%%%
  106. ## specify the names of the MET collections that you need here %%%%
  107. ## #%%
  108. ## if you don't specify anything the default MET is the raw Calo MET #%%
  109. process.caloMET = process.patMETs.clone( #%%
  110. metSource = cms.InputTag("met","","RECO"),
  111. addTrigMatch = cms.bool(False),
  112. addMuonCorrections = cms.bool(False),
  113. addGenMET = cms.bool(False),
  114. )
  115. process.tcMET = process.patMETs.clone( #%%
  116. metSource = cms.InputTag("tcMet","","RECO"),
  117. addTrigMatch = cms.bool(False),
  118. addMuonCorrections = cms.bool(False),
  119. addGenMET = cms.bool(False),
  120. )
  121. process.pfMET = process.patMETs.clone( #%%
  122. metSource = cms.InputTag("pfMet","","RECO"),
  123. addTrigMatch = cms.bool(False),
  124. addMuonCorrections = cms.bool(False),
  125. addGenMET = cms.bool(False),
  126. )
  127. ## specify here what you want to have on the plots! <===== MET THAT YOU WANT ON THE PLOTS %%%%%%%
  128. myMetCollection = 'caloMET'
  129. myPfMetCollection = 'pfMET'
  130. myTcMetCollection = 'tcMET'
  131. ## modify the sequence of the MET creation: #%%
  132. process.makePatMETs = cms.Sequence(process.caloMET*process.tcMET*process.pfMET)
  133. ## modify the final pat sequence: keep only electrons + METS (muons are needed for met corrections)
  134. process.load("RecoEgamma.EgammaIsolationAlgos.egammaIsolationSequence_cff")
  135. #process.patElectronIsolation = cms.Sequence(process.egammaIsolationSequence)
  136. process.patElectrons.isoDeposits = cms.PSet()
  137. process.patElectrons.userIsolation = cms.PSet()
  138. process.patElectrons.addElectronID = cms.bool(True)
  139. process.patElectrons.electronIDSources = cms.PSet(
  140. simpleEleId95relIso = cms.InputTag("simpleEleId95relIso"),
  141. simpleEleId90relIso = cms.InputTag("simpleEleId90relIso"),
  142. simpleEleId85relIso = cms.InputTag("simpleEleId85relIso"),
  143. simpleEleId80relIso = cms.InputTag("simpleEleId80relIso"),
  144. simpleEleId70relIso = cms.InputTag("simpleEleId70relIso"),
  145. simpleEleId60relIso = cms.InputTag("simpleEleId60relIso"),
  146. simpleEleId95cIso = cms.InputTag("simpleEleId95cIso"),
  147. simpleEleId90cIso = cms.InputTag("simpleEleId90cIso"),
  148. simpleEleId85cIso = cms.InputTag("simpleEleId85cIso"),
  149. simpleEleId80cIso = cms.InputTag("simpleEleId80cIso"),
  150. simpleEleId70cIso = cms.InputTag("simpleEleId70cIso"),
  151. simpleEleId60cIso = cms.InputTag("simpleEleId60cIso")
  152. )
  153. ##
  154. process.patElectrons.addGenMatch = cms.bool(False)
  155. process.patElectrons.embedGenMatch = cms.bool(False)
  156. process.patElectrons.usePV = cms.bool(False)
  157. ##
  158. process.load("ElectroWeakAnalysis.ZEE.simpleEleIdSequence_cff")
  159. # you have to tell the ID that it is data. These are set to False for MC
  160. process.simpleEleId95relIso.dataMagneticFieldSetUp = cms.bool(False)
  161. process.simpleEleId90relIso.dataMagneticFieldSetUp = cms.bool(False)
  162. process.simpleEleId85relIso.dataMagneticFieldSetUp = cms.bool(False)
  163. process.simpleEleId80relIso.dataMagneticFieldSetUp = cms.bool(False)
  164. process.simpleEleId70relIso.dataMagneticFieldSetUp = cms.bool(False)
  165. process.simpleEleId60relIso.dataMagneticFieldSetUp = cms.bool(False)
  166. process.simpleEleId95cIso.dataMagneticFieldSetUp = cms.bool(False)
  167. process.simpleEleId90cIso.dataMagneticFieldSetUp = cms.bool(False)
  168. process.simpleEleId85cIso.dataMagneticFieldSetUp = cms.bool(False)
  169. process.simpleEleId80cIso.dataMagneticFieldSetUp = cms.bool(False)
  170. process.simpleEleId70cIso.dataMagneticFieldSetUp = cms.bool(False)
  171. process.simpleEleId60cIso.dataMagneticFieldSetUp = cms.bool(False)
  172. #
  173. process.patElectronIDs = cms.Sequence(process.simpleEleIdSequence)
  174. process.makePatElectrons = cms.Sequence(process.patElectronIDs*process.patElectrons)
  175. # process.makePatMuons may be needed depending on how you calculate the MET
  176. process.makePatCandidates = cms.Sequence(process.makePatElectrons+process.makePatMETs)
  177. process.patDefaultSequence = cms.Sequence(process.makePatCandidates)
  178. ## WARNING: you may want to modify this item:
  179. HLT_process_name = "REDIGI39X" # REDIGI for the production traditional MC / HLT for the powheg samples or data
  180. # Trigger Path(s)
  181. HLT_path_name = "HLT_Photon10_L1R"
  182. # Label of the last Trigger Filter in the Trigger Path
  183. HLT_filter_name = "hltL1NonIsoHLTNonIsoSinglePhotonEt10HcalIsolFilter"
  184. HLT_path_name_extra0 = "HLT_Photon15_Cleaned_L1R"
  185. HLT_filter_name_extra0 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSinglePhotonEt15CleanedHcalIsolFilter","",HLT_process_name)
  186. HLT_path_name_extra1 = "HLT_Ele15_SW_CaloEleId_L1R"
  187. HLT_filter_name_extra1 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt15CaloEleIdPixelMatchFilter","",HLT_process_name)
  188. HLT_path_name_extra2 = "HLT_Ele17_SW_CaloEleId_L1R"
  189. HLT_filter_name_extra2 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17CaloEleIdPixelMatchFilter","",HLT_process_name)
  190. HLT_path_name_extra3 = "HLT_Ele17_SW_TightEleId_L1R"
  191. HLT_filter_name_extra3 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TightEleIdDphiFilter","",HLT_process_name)
  192. # HLT_path_name_extra4 = "HLT_Ele17_SW_TighterEleIdIsol_L1R_v2"
  193. # HLT_filter_name_extra4 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt17TighterEleIdIsolTrackIsolFilter","",HLT_process_name)
  194. HLT_path_name_extra5 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v1"
  195. HLT_filter_name_extra5 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name)
  196. HLT_path_name_extra6 = "HLT_Ele22_SW_TighterCaloIdIsol_L1R_v2"
  197. HLT_filter_name_extra6 = cms.untracked.InputTag("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterCaloIdIsolTrackIsolFilter","",HLT_process_name)
  198. rules_Filter = cms.PSet (
  199. ### the input collections needed:
  200. electronCollectionTag = cms.untracked.InputTag("patElectrons","","PAT"),
  201. metCollectionTag = cms.untracked.InputTag(myMetCollection,"","PAT"),
  202. pfMetCollectionTag = cms.untracked.InputTag(myPfMetCollection,"","PAT"),
  203. tcMetCollectionTag = cms.untracked.InputTag(myTcMetCollection,"","PAT"),
  204. triggerCollectionTag = cms.untracked.InputTag("TriggerResults","",HLT_process_name),
  205. triggerEventTag = cms.untracked.InputTag("hltTriggerSummaryAOD","",HLT_process_name),
  206. hltpath = cms.untracked.string(HLT_path_name),
  207. hltpathFilter = cms.untracked.InputTag(HLT_filter_name,"",HLT_process_name),
  208. ebRecHits = cms.untracked.InputTag("reducedEcalRecHitsEB"),
  209. eeRecHits = cms.untracked.InputTag("reducedEcalRecHitsEE"),
  210. PrimaryVerticesCollection = cms.untracked.InputTag("offlinePrimaryVertices"),
  211. ### here the preselection is applied
  212. # fiducial cuts:
  213. BarrelMaxEta = cms.untracked.double(1.4442),
  214. EndCapMinEta = cms.untracked.double(1.5660),
  215. EndCapMaxEta = cms.untracked.double(2.5000),
  216. # demand ecal driven electron:
  217. useEcalDrivenElectrons = cms.untracked.bool(True),
  218. # demand offline spike cleaning with the Swiss Cross criterion:
  219. useSpikeRejection = cms.untracked.bool(False),
  220. spikeCleaningSwissCrossCut = cms.untracked.double(0.95),
  221. # demand geometrically matched to an HLT object with ET>15GeV
  222. useTriggerInfo = cms.untracked.bool(True),
  223. electronMatched2HLT = cms.untracked.bool(True),
  224. electronMatched2HLT_DR = cms.untracked.double(0.1),
  225. useHLTObjectETCut = cms.untracked.bool(True),
  226. hltObjectETCut = cms.untracked.double(15.0),
  227. useExtraTrigger = cms.untracked.bool(True),
  228. # 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),
  229. # 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),
  230. 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),
  231. 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),
  232. # ET Cut in the SC
  233. ETCut = cms.untracked.double(25.0),
  234. METCut = cms.untracked.double(0.0),
  235. # For DATA set it to True, for MC set it to False
  236. dataMagneticFieldSetUp = cms.untracked.bool(True),
  237. dcsTag = cms.untracked.InputTag("scalersRawToDigi")
  238. )
  239. rules_Filter_Elec0 = cms.PSet (
  240. # Other parameters of the code - leave them as they are
  241. useValidFirstPXBHit0 = cms.untracked.bool(False),
  242. useConversionRejection0 = cms.untracked.bool(False),
  243. useExpectedMissingHits0 = cms.untracked.bool(True),
  244. maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0),
  245. # calculate some new cuts
  246. calculateValidFirstPXBHit0 = cms.untracked.bool(False),
  247. calculateConversionRejection0 = cms.untracked.bool(False),
  248. calculateExpectedMissingHits0 = cms.untracked.bool(False)
  249. )
  250. rules_Filter_Elec1 = cms.PSet (
  251. # Other parameters of the code - leave them as they are
  252. useValidFirstPXBHit1 = cms.untracked.bool(False),
  253. useConversionRejection1 = cms.untracked.bool(False),
  254. useExpectedMissingHits1 = cms.untracked.bool(True),
  255. maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0),
  256. # calculate some new cuts
  257. calculateValidFirstPXBHit1 = cms.untracked.bool(False),
  258. calculateConversionRejection1 = cms.untracked.bool(False),
  259. calculateExpectedMissingHits1 = cms.untracked.bool(False)
  260. )
  261. rules_Filter_Elec2 = cms.PSet (
  262. # Other parameters of the code - leave them as they are
  263. useValidFirstPXBHit2 = cms.untracked.bool(False),
  264. useConversionRejection2 = cms.untracked.bool(False),
  265. useExpectedMissingHits2 = cms.untracked.bool(True),
  266. maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0),
  267. # calculate some new cuts
  268. calculateValidFirstPXBHit2 = cms.untracked.bool(False),
  269. calculateConversionRejection2 = cms.untracked.bool(False),
  270. calculateExpectedMissingHits2 = cms.untracked.bool(False)
  271. )
  272. process.zeeFilter = cms.EDFilter('ZeeCandidateFilter',
  273. rules_Filter,
  274. rules_Filter_Elec0,
  275. rules_Filter_Elec1,
  276. rules_Filter_Elec2
  277. )
  278. ## the Z selection that you prefer
  279. from ElectroWeakAnalysis.ZEE.simpleCutBasedSpring10SelectionBlocks_cfi import *
  280. selection_inverse = cms.PSet (
  281. deta_EB_inv = cms.untracked.bool(True),
  282. deta_EE_inv = cms.untracked.bool(True)
  283. )
  284. rules_Plotter = cms.PSet (
  285. # treat or not the elecrons with same criteria. if yes then rules_Plotter_Elec1/2 are neglected
  286. useSameSelectionOnBothElectrons = cms.untracked.bool(True),
  287. # some extra information on the ntuple production:
  288. sihih0_EB = cms.untracked.double(1000.0),
  289. dphi0_EB = cms.untracked.double(1000.0),
  290. deta0_EB = cms.untracked.double(1000.0),
  291. hoe0_EB = cms.untracked.double(1000.0),
  292. sihih0_EE = cms.untracked.double(1000.0),
  293. dphi0_EE = cms.untracked.double(1000.0),
  294. deta0_EE = cms.untracked.double(1000.0),
  295. hoe0_EE = cms.untracked.double(1000.0),
  296. includeJetInformationInNtuples = cms.untracked.bool(True),
  297. caloJetCollectionTag = cms.untracked.InputTag('ak5CaloJetsL2L3'),
  298. pfJetCollectionTag = cms.untracked.InputTag('ak5PFJetsL2L3'),
  299. DRJetFromElectron = cms.untracked.double(0.3),
  300. #
  301. zeeCollectionTag = cms.untracked.InputTag("zeeFilter","selectedZeeCandidates","PAT"),
  302. ZEE_VBTFselectionFileName = cms.untracked.string("ZEE_VBTFselection.root"),
  303. ZEE_VBTFpreseleFileName = cms.untracked.string("ZEE_VBTFpreselection.root"),
  304. DatasetTag = cms.untracked.int32(100),
  305. storeExtraInformation = cms.untracked.bool(True)
  306. )
  307. rules_Plotter_Elec0 = cms.PSet (
  308. # The selection to be used here:
  309. usePrecalcID0 = cms.untracked.bool(True),
  310. usePrecalcIDType0 = cms.untracked.string('simpleEleId80relIso'),
  311. usePrecalcIDSign0 = cms.untracked.string('='),
  312. usePrecalcIDValue0 = cms.untracked.double(7),
  313. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  314. # set them to False if you don't want them
  315. useValidFirstPXBHit0 = cms.untracked.bool(False),
  316. useConversionRejection0 = cms.untracked.bool(False),
  317. useExpectedMissingHits0 = cms.untracked.bool(True),
  318. maxNumberOfExpectedMissingHits0 = cms.untracked.int32(0),
  319. ##
  320. calculateValidFirstPXBHit0 = cms.untracked.bool(False),
  321. calculateConversionRejection0 = cms.untracked.bool(False),
  322. calculateExpectedMissingHits0 = cms.untracked.bool(False)
  323. )
  324. rules_Plotter_Elec1 = cms.PSet (
  325. # The selection to be used here:
  326. usePrecalcID1 = cms.untracked.bool(True),
  327. usePrecalcIDType1 = cms.untracked.string('simpleEleId80relIso'),
  328. usePrecalcIDSign1 = cms.untracked.string('='),
  329. usePrecalcIDValue1 = cms.untracked.double(7),
  330. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  331. # set them to False if you don't want them
  332. useValidFirstPXBHit1 = cms.untracked.bool(False),
  333. useConversionRejection1 = cms.untracked.bool(False),
  334. useExpectedMissingHits1 = cms.untracked.bool(True),
  335. maxNumberOfExpectedMissingHits1 = cms.untracked.int32(0),
  336. ##
  337. calculateValidFirstPXBHit1 = cms.untracked.bool(False),
  338. calculateConversionRejection1 = cms.untracked.bool(False),
  339. calculateExpectedMissingHits1 = cms.untracked.bool(False)
  340. )
  341. rules_Plotter_Elec2 = cms.PSet (
  342. # The selection to be used here:
  343. usePrecalcID2 = cms.untracked.bool(True),
  344. usePrecalcIDType2 = cms.untracked.string('simpleEleId80relIso'),
  345. usePrecalcIDSign2 = cms.untracked.string('='),
  346. usePrecalcIDValue2 = cms.untracked.double(7),
  347. ## preselection criteria are independent of useSameSelectionOnBothElectrons
  348. # set them to False if you don't want them
  349. useValidFirstPXBHit2 = cms.untracked.bool(False),
  350. useConversionRejection2 = cms.untracked.bool(False),
  351. useExpectedMissingHits2 = cms.untracked.bool(True),
  352. maxNumberOfExpectedMissingHits2 = cms.untracked.int32(0),
  353. ##
  354. calculateValidFirstPXBHit2 = cms.untracked.bool(False),
  355. calculateConversionRejection2 = cms.untracked.bool(False),
  356. calculateExpectedMissingHits2 = cms.untracked.bool(False)
  357. )
  358. # we need to store jet information, hence we have to produce the jets:
  359. process.load("JetMETCorrections.Configuration.DefaultJEC_cff")
  360. process.jetSequence = cms.Sequence( process.ak5CaloJetsL2L3 )
  361. process.pfjetAK5Sequence = cms.Sequence( process.ak5PFJetsL2L3 )
  362. process.ourJetSequence = cms.Sequence( process.jetSequence * process.pfjetAK5Sequence )
  363. process.plotter = cms.EDAnalyzer('ZeePlots',
  364. rules_Plotter,
  365. rules_Plotter_Elec0,
  366. rules_Plotter_Elec1,
  367. rules_Plotter_Elec2
  368. )
  369. # For DATA, 361p4 electrons need fixing first (misalignment corrections) *NOT* be used with MC
  370. #process.load("RecoEgamma.EgammaTools.correctedElectronsProducer_cfi")
  371. #process.p = cms.Path( process.gsfElectrons*process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter)
  372. # For DATA, 397 electrons are fixed (misalignment corrections included)
  373. #process.p = cms.Path( process.ourJetSequence*process.patDefaultSequence*process.zeeFilter*process.plotter)
  374. # For MonteCarlo,
  375. process.p = cms.Path( process.ourJetSequence * process.patDefaultSequence +process.zeeFilter + process.plotter)