CMS 3D CMS Logo

particleFlowEGamma_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 particleFlowEGamma = cms.EDProducer("PFEGammaProducer",
4 
5  # PF Blocks label
6  blocks = cms.InputTag("particleFlowBlock"),
7 
8  #EE to PS association
9  EEtoPS_source = cms.InputTag("particleFlowClusterECAL"),
10 
11  #allow building of candidates with no input or output supercluster?
12  produceEGCandsWithNoSuperCluster = cms.bool(False),
13 
14  # reco::muons label and Post Muon cleaning
15  muons = cms.InputTag("muons1stStep"),
16  postMuonCleaning = cms.bool(True),
17 
18  # Vertices label
19  vertexCollection = cms.InputTag("offlinePrimaryVertices"),
20  useVerticesForNeutral = cms.bool(True),
21 
22  # Algorithm type ?
23  algoType = cms.uint32(0),
24 
25  # Verbose and debug flags
26  verbose = cms.untracked.bool(True),
27  debug = cms.untracked.bool(True),
28 
29  # Use HO clusters in PF hadron reconstruction
30  useHO = cms.bool(True),
31 
32  # Use electron identification in PFAlgo
33  usePFElectrons = cms.bool(True),
34  pf_electron_output_col=cms.string('electrons'),
35  pf_electronID_mvaWeightFile = cms.FileInPath('RecoParticleFlow/PFProducer/data/MVAnalysis_BDT.weights_PfElectrons23Jan_IntToFloat.txt'),
36 
37  # Use Photon identification in PFAlgo (for now this has NO impact, algo is swicthed off hard-coded
38  usePFPhotons = cms.bool(True),
39  usePhotonReg=cms.bool(False),
40  useRegressionFromDB=cms.bool(True),
41  pf_convID_mvaWeightFile = cms.FileInPath('RecoParticleFlow/PFProducer/data/MVAnalysis_BDT.weights_pfConversionAug0411.txt'),
42  pf_conv_mvaCut=cms.double(0.0),
43  pf_locC_mvaWeightFile=cms.string('RecoParticleFlow/PFProducer/data/TMVARegression_BDTG_PFClusterLCorr_14Dec2011.root'),
44  pf_GlobC_mvaWeightFile=cms.string('RecoParticleFlow/PFProducer/data/TMVARegression_BDTG_PFGlobalCorr_14Dec2011.root'),
45  pf_Res_mvaWeightFile=cms.string('RecoParticleFlow/PFProducer/data/TMVARegression_BDTG_PFRes_14Dec2011.root'),
46  X0_Map=cms.string('RecoParticleFlow/PFProducer/data/allX0histos.root'),
47  sumPtTrackIsoForPhoton=cms.double(2.0),
48  sumPtTrackIsoSlopeForPhoton=cms.double(0.001),
49 
50 
51  pf_electron_mvaCut = cms.double(-0.1),
52  # apply the crack corrections
53  pf_electronID_crackCorrection = cms.bool(False),
54  usePFSCEleCalib = cms.bool(True),
55  #new corrections #MM /*
56  calibPFSCEle_Fbrem_barrel = cms.vdouble(0.6, 6, #Range of non constant correction
57  -0.0255975, 0.0576727, 0.975442, -0.000546394, 1.26147, #standard parameters
58  25, #pt value for switch to low pt corrections
59  -0.02025, 0.04537, 0.9728, -0.0008962, 1.172), # low pt parameters
60  calibPFSCEle_Fbrem_endcap = cms.vdouble(0.9, 6.5, #Range of non constant correction
61  -0.0692932, 0.101776, 0.995338, -0.00236548, 0.874998, #standard parameters eta < switch value
62  1.653, #eta value for correction switch
63  -0.0750184, 0.147000, 0.923165, 0.000474665, 1.10782), #standard parameters eta > switch value
64  calibPFSCEle_barrel = cms.vdouble(1.004, -1.536, 22.88, -1.467, #standard
65  0.3555, 0.6227, 14.65, 2051, #parameters
66  25, #pt value for switch to low pt corrections
67  0.9932, -0.5444, 0, 0.5438, #low pt
68  0.7109, 7.645, 0.2904, 0), #parameters
69  calibPFSCEle_endcap = cms.vdouble(1.153, -16.5975, 5.668,
70  -0.1772, 16.22, 7.326,
71  0.0483, -4.068, 9.406),
72  #old corrections #MM */
73 # calibPFSCEle_barrel = cms.vdouble(1.0326,-13.71,339.72,0.4862,0.00182,0.36445,1.411,1.0206,0.0059162,-5.14434e-05,1.42516e-07),
74 # calibPFSCEle_endcap = cms.vdouble(0.9995,-12.313,2.8784,-1.057e-04,10.282,3.059,1.3502e-03,-2.2185,3.4206),
75 
76  useEGammaSupercluster = cms.bool(True),
77  sumEtEcalIsoForEgammaSC_barrel = cms.double(1.),
78  sumEtEcalIsoForEgammaSC_endcap = cms.double(2.),
79  coneEcalIsoForEgammaSC = cms.double(0.3),
80  sumPtTrackIsoForEgammaSC_barrel = cms.double(4.),
81  sumPtTrackIsoForEgammaSC_endcap = cms.double(4.),
82  nTrackIsoForEgammaSC = cms.uint32(2),
83  coneTrackIsoForEgammaSC = cms.double(0.3),
84  useEGammaElectrons = cms.bool(True),
85  egammaElectrons = cms.InputTag('mvaElectrons'),
86 
87  # Input displaced vertices
88  # It is strongly adviced to keep usePFNuclearInteractions = bCorrect
89 
90  rejectTracks_Bad = cms.bool(True),
91  rejectTracks_Step45 = cms.bool(True),
92 
93  usePFNuclearInteractions = cms.bool(True),
94  usePFConversions = cms.bool(True),
95  usePFDecays = cms.bool(False),
96 
97  dptRel_DispVtx = cms.double(10.),
98 
99  iCfgCandConnector = cms.PSet(
100 
101  bCorrect = cms.bool(True),
102  bCalibPrimary = cms.bool(True),
103  dptRel_PrimaryTrack = cms.double(10.),
104  dptRel_MergedTrack = cms.double(5.0),
105  ptErrorSecondary = cms.double(1.0),
106  nuclCalibFactors = cms.vdouble(0.8, 0.15, 0.5, 0.5, 0.05)
107  ),
108 
109 
110 
111  # Treatment of muons :
112  # Expected energy in ECAL and HCAL, and RMS
113  muon_HCAL = cms.vdouble(3.0,3.0),
114  muon_ECAL = cms.vdouble(0.5,0.5),
115  muon_HO = cms.vdouble(0.9,0.9),
116 
117  # Muon ID and post cleaning parameters
118  maxDPtOPt = cms.double(1.),
119  minTrackerHits = cms.int32(8),
120  minPixelHits = cms.int32(1),
121  trackQuality = cms.string('highPurity'),
122  dzPV = cms.double(0.2),
123  ptErrorScale = cms.double(8.),
124  minPtForPostCleaning = cms.double(20.),
125  eventFactorForCosmics =cms.double(10.),
126  metSignificanceForCleaning = cms.double(3.),
127  metSignificanceForRejection = cms.double(4.),
128  metFactorForCleaning = cms.double(4.),
129  eventFractionForCleaning =cms.double(0.5),
130  eventFractionForRejection = cms.double(0.8),
131  metFactorForRejection =cms.double(4.),
132  metFactorForHighEta = cms.double(25.),
133  ptFactorForHighEta = cms.double(2.),
134  metFactorForFakes = cms.double(4.),
135  minMomentumForPunchThrough = cms.double(100.),
136  minEnergyForPunchThrough = cms.double(100.),
137  punchThroughFactor = cms.double(3.),
138  punchThroughMETFactor = cms.double(4.),
139  cosmicRejectionDistance = cms.double(1.),
140 
141  # Treatment of potential fake tracks
142  # Number of sigmas for fake track detection
143  nsigma_TRACK = cms.double(1.0),
144  # Absolute pt error to detect fake tracks in the first three iterations
145  # dont forget to modify also ptErrorSecondary if you modify this parameter
146  pt_Error = cms.double(1.0),
147  # Factors to be applied in the four and fifth steps to the pt error
148  factors_45 = cms.vdouble(10.,100.),
149 
150  # Post HF cleaning
151  postHFCleaning = cms.bool(False),
152  # Clean only objects with pt larger than this value
153  minHFCleaningPt = cms.double(5.),
154  # Clean only if the initial MET/sqrt(sumet) is larger than this value
155  maxSignificance = cms.double(2.5),
156  # Clean only if the final MET/sqrt(sumet) is smaller than this value
157  minSignificance = cms.double(2.5),
158  # Clean only if the significance reduction is larger than this value
159  minSignificanceReduction = cms.double(1.4),
160  # Clean only if the MET and the to-be-cleaned object satisfy this DeltaPhi * Pt cut
161  # (the MET angular resoution is in 1/MET)
162  maxDeltaPhiPt = cms.double(7.0),
163  # Clean only if the MET relative reduction from the to-be-cleaned object
164  # is larger than this value
165  minDeltaMet = cms.double(0.4),
166 
167  # Check HF cleaning
168  cleanedHF = cms.VInputTag(
169  cms.InputTag("particleFlowRecHitHCAL","Cleaned"),
170  cms.InputTag("particleFlowClusterHF","Cleaned")
171  ),
172 
173  # number of sigmas for neutral energy detection
174  pf_nsigma_ECAL = cms.double(0.0),
175  pf_nsigma_HCAL = cms.double(1.0),
176 
177  # ECAL/HCAL PF cluster calibration : take it from global tag ?
178  useCalibrationsFromDB = cms.bool(True),
179  calibrationsLabel = cms.string(''),
180 
181  # calibration parameters for HF:
182  calibHF_use = cms.bool(False),
183  calibHF_eta_step = cms.vdouble(0.0,2.90,3.00,3.20,4.20,4.40,4.60,4.80,5.20,5.40),
184 # calibHF_a_EMonly = cms.vdouble(10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00),
185 # calibHF_b_HADonly = cms.vdouble(10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00),
186 # calibHF_a_EMHAD = cms.vdouble(10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00),
187 # calibHF_b_EMHAD = cms.vdouble(10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00)
188  calibHF_a_EMonly = cms.vdouble(0.96945,0.96701,0.76309,0.82268,0.87583,0.89718,0.98674,1.4681,1.4580,1.4580),
189  calibHF_b_HADonly = cms.vdouble(1.27541,0.85361,0.86333,0.89091,0.94348,0.94348,0.94370,1.0034,1.0444,1.0444),
190  calibHF_a_EMHAD = cms.vdouble(1.42215,1.00496,0.68961,0.81656,0.98504,0.98504,1.00802,1.0593,1.4576,1.4576),
191  calibHF_b_EMHAD = cms.vdouble(1.27541,0.85361,0.86333,0.89091,0.94348,0.94348,0.94370,1.0034,1.0444,1.0444)
192 
193 # toRead = cms.untracked.vstring("PFfa_BARREL",
194 # "PFfa_ENDCAP",
195 # "PFfb_BARREL",
196 # "PFfb_ENDCAP",
197 # "PFfc_BARREL",
198 # "PFfc_ENDCAP",
199 # "PFfaEta_BARREL",
200 # "PFfaEta_ENDCAP",
201 # "PFfbEta_BARREL",
202 # "PFfbEta_ENDCAP") # same strings as fType
203 
204 )
205 
206 
207