CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HI_PhotonSkim_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # HLT photon trigger
5 hltPhotonHI = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone()
6 hltPhotonHI.HLTPaths = ["HLT_HIPhoton20"]
7 hltPhotonHI.throw = False
8 hltPhotonHI.andOr = True
9 
10 # photon selection
11 goodPhotons = cms.EDFilter("PhotonSelector",
12  src = cms.InputTag("photons"),
13  cut = cms.string('et > 20 && hadronicOverEm < 0.1 && r9 > 0.8 && sigmaIetaIeta > 0.002')
14 )
15 
16 goodPhotonsForZEE = goodPhotons.clone(
17  cut=cms.string('et > 20 && hadronicOverEm < 0.2 && r9 > 0.5 && sigmaIetaIeta > 0.002')
18 )
19 
20 # leading photon E_T filter
21 photonFilter = cms.EDFilter("EtMinPhotonCountFilter",
22  src = cms.InputTag("goodPhotons"),
23  etMin = cms.double(40.0),
24  minNumber = cms.uint32(1)
25 )
26 
27 # supercluster cleaning sequence (output = cleanPhotons)
29 
30 # photon selection of spike-cleaned collection
31 goodCleanPhotons = goodPhotons.clone(src=cms.InputTag("cleanPhotons"))
32 goodCleanPhotonsForZEE = goodPhotonsForZEE.clone(src=cms.InputTag("cleanPhotons"))
33 
34 
35 # leading E_T filter on cleaned collection
36 cleanPhotonFilter = photonFilter.clone(src=cms.InputTag("goodCleanPhotons"))
37 
38 # photon skim sequence
39 photonSkimSequence = cms.Sequence(hltPhotonHI
40  * goodPhotons
41  * photonFilter
42  * hiPhotonCleaningSequence
43  * goodCleanPhotons
44  * cleanPhotonFilter
45  )
46 
47 # selection of valid vertex
48 primaryVertexFilterForZEE = cms.EDFilter("VertexSelector",
49  src = cms.InputTag("hiSelectedVertex"),
50  cut = cms.string("!isFake && abs(z) <= 25 && position.Rho <= 2"),
51  filter = cms.bool(True), # otherwise it won't filter the events
52  )
53 
54 # two-photon E_T filter
55 twoPhotonFilter = cms.EDFilter("EtMinPhotonCountFilter",
56  src = cms.InputTag("goodPhotonsForZEE"),
57  etMin = cms.double(20.0),
58  minNumber = cms.uint32(2)
59 )
60 
61 # select pairs around Z mass
62 photonCombiner = cms.EDProducer("CandViewShallowCloneCombiner",
63  checkCharge = cms.bool(False),
64  cut = cms.string('60 < mass < 120'),
65  decay = cms.string('goodCleanPhotonsForZEE goodCleanPhotonsForZEE')
66 )
67 
68 photonPairCounter = cms.EDFilter("CandViewCountFilter",
69  src = cms.InputTag("photonCombiner"),
70  minNumber = cms.uint32(1)
71 )
72 
73 # run electron sequence (after remaking pixel seeds)
76 rechits = cms.Sequence(siPixelRecHits*siStripMatchedRecHits)
77 electrons = cms.Sequence(rechits*hiPrimSeeds*hiElectronSequence)
78 
79 # Z->ee skim sequence
80 zEESkimSequence = cms.Sequence(hltPhotonHI
81  * primaryVertexFilterForZEE
82  * goodPhotonsForZEE
83  * twoPhotonFilter
84  * hiPhotonCleaningSequence
85  * goodCleanPhotonsForZEE
86  * photonCombiner
87  * photonPairCounter
88  * electrons
89  )
90