CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
particleFlow_cfi.py
Go to the documentation of this file.
2 
3 particleFlow = cms.EDProducer("PFProducer",
4 
5  # PF Blocks label
6  blocks = cms.InputTag("particleFlowBlock"),
7 
8  # reco::muons label and Post Muon cleaning
9  muons = cms.InputTag("muons"),
10  postMuonCleaning = cms.bool(True),
11 
12  # Vertices label
13  vertexCollection = cms.InputTag("offlinePrimaryVertices"),
14  useVerticesForNeutral = cms.bool(True),
15 
16  # Algorithm type ?
17  algoType = cms.uint32(0),
18 
19  # Verbose and debug flags
20  verbose = cms.untracked.bool(False),
21  debug = cms.untracked.bool(False),
22 
23  # Use electron identification in PFAlgo
24  usePFElectrons = cms.bool(True),
25  pf_electron_output_col=cms.string('electrons'),
26  pf_electronID_mvaWeightFile = cms.string('RecoParticleFlow/PFProducer/data/MVAnalysis_BDT.weights_PfElectrons23Jan_IntToFloat.txt'),
27 
28  pf_electron_mvaCut = cms.double(-0.1),
29  # apply the crack corrections
30  pf_electronID_crackCorrection = cms.bool(False),
31  usePFSCEleCalib = cms.bool(True),
32  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),
33  calibPFSCEle_endcap = cms.vdouble(0.9995,-12.313,2.8784,-1.057e-04,10.282,3.059,1.3502e-03,-2.2185,3.4206),
34 
35  useEGammaSupercluster = cms.bool(True),
36  sumEtEcalIsoForEgammaSC_barrel = cms.double(1.),
37  sumEtEcalIsoForEgammaSC_endcap = cms.double(2.),
38  coneEcalIsoForEgammaSC = cms.double(0.3),
39  sumPtTrackIsoForEgammaSC_barrel = cms.double(4.),
40  sumPtTrackIsoForEgammaSC_endcap = cms.double(4.),
41  nTrackIsoForEgammaSC = cms.uint32(2),
42  coneTrackIsoForEgammaSC = cms.double(0.3),
43  useEGammaElectrons = cms.bool(False),
44  egammaElectrons = cms.InputTag(''),
45 
46  # Input displaced vertices
47  # It is strongly adviced to keep usePFNuclearInteractions = bCorrect
48 
49  rejectTracks_Bad = cms.bool(True),
50  rejectTracks_Step45 = cms.bool(True),
51 
52  usePFNuclearInteractions = cms.bool(True),
53  usePFConversions = cms.bool(False),
54  usePFDecays = cms.bool(False),
55 
56  dptRel_DispVtx = cms.double(10.),
57 
58  iCfgCandConnector = cms.PSet(
59 
60  bCorrect = cms.bool(True),
61  bCalibPrimary = cms.bool(True),
62  dptRel_PrimaryTrack = cms.double(10.),
63  dptRel_MergedTrack = cms.double(5.0),
64  ptErrorSecondary = cms.double(1.0),
65  nuclCalibFactors = cms.vdouble(0.8, 0.15, 0.5, 0.5, 0.05)
66  ),
67 
68 
69 
70  # Treatment of muons :
71  # Expected energy in ECAL and HCAL, and RMS
72  muon_HCAL = cms.vdouble(3.0,3.0),
73  muon_ECAL = cms.vdouble(0.5,0.5),
74 
75  # Use PF muon momentum assigment instead of default reco muon one
76  usePFMuonMomAssign = cms.bool(False),
77 
78  # Treatment of potential fake tracks
79  # Number of sigmas for fake track detection
80  nsigma_TRACK = cms.double(1.0),
81  # Absolute pt error to detect fake tracks in the first three iterations
82  # dont forget to modify also ptErrorSecondary if you modify this parameter
83  pt_Error = cms.double(1.0),
84  # Factors to be applied in the four and fifth steps to the pt error
85  factors_45 = cms.vdouble(10.,100.),
86 
87  # Post HF cleaning
88  postHFCleaning = cms.bool(False),
89  # Clean only objects with pt larger than this value
90  minHFCleaningPt = cms.double(5.),
91  # Clean only if the initial MET/sqrt(sumet) is larger than this value
92  maxSignificance = cms.double(2.5),
93  # Clean only if the final MET/sqrt(sumet) is smaller than this value
94  minSignificance = cms.double(2.5),
95  # Clean only if the significance reduction is larger than this value
96  minSignificanceReduction = cms.double(1.4),
97  # Clean only if the MET and the to-be-cleaned object satisfy this DeltaPhi * Pt cut
98  # (the MET angular resoution is in 1/MET)
99  maxDeltaPhiPt = cms.double(7.0),
100  # Clean only if the MET relative reduction from the to-be-cleaned object
101  # is larger than this value
102  minDeltaMet = cms.double(0.4),
103 
104  # Check HF cleaning
105  cleanedHF = cms.VInputTag(
106  cms.InputTag("particleFlowRecHitHCAL","Cleaned"),
107  cms.InputTag("particleFlowClusterHFHAD","Cleaned"),
108  cms.InputTag("particleFlowClusterHFEM","Cleaned")
109  ),
110 
111  # number of sigmas for neutral energy detection
112  pf_nsigma_ECAL = cms.double(0.0),
113  pf_nsigma_HCAL = cms.double(1.0),
114 
115  # Naive cluster calibration
116  # ECAL alone
117  pf_calib_ECAL_offset = cms.double(0.0),
118  pf_calib_ECAL_slope = cms.double(1.0),
119  # HCAL alone
120  pf_calib_HCAL_slope = cms.double(2.17),
121  pf_calib_HCAL_offset = cms.double(1.73),
122  pf_calib_HCAL_damping = cms.double(2.49),
123  # ECAL + HCAL
124  pf_calib_ECAL_HCAL_hslope = cms.double(1.06),
125  pf_calib_ECAL_HCAL_eslope = cms.double(1.05),
126  pf_calib_ECAL_HCAL_offset = cms.double(6.11),
127 
128  # ECAL/HCAL cluster calibration !
129  # Colin = 0; Jamie = 1; Newest = 2.
130  pf_newCalib = cms.uint32(2),
131  # Apply corrections?
132  pfcluster_doCorrection = cms.uint32(1),
133  # Bulk correction parameters
134  pfcluster_globalP0 = cms.double(-2.315),
135  pfcluster_globalP1 = cms.double(1.01),
136  # Low energy correction parameters
137  pfcluster_lowEP0 = cms.double(3.249189e-01),
138  pfcluster_lowEP1 = cms.double(7.907990e-01),
139  pfcluster_allowNegative = cms.uint32(0),
140  pfcluster_doEtaCorrection = cms.uint32(1),
141  pfcluster_barrelEndcapEtaDiv = cms.double(1.4),
142 
143  #Use hand fitted parameters specified below
144  #P1 adjusts the height of the peak
145  ecalHcalEcalBarrel = cms.vdouble(0.67, 3.0, 1.15, 0.90, -0.060, 1.4),
146  ecalHcalEcalEndcap = cms.vdouble(0.46, 3.0, 1.10, 0.40, -0.020, 1.4),
147  ecalHcalHcalBarrel = cms.vdouble(0.46, 3.0, 1.15, 0.30, -0.020, 1.4),
148  ecalHcalHcalEndcap = cms.vdouble(0.460, 3.0, 1.10, 0.30, -0.02, 1.4),
149  pfcluster_etaCorrection = cms.vdouble(1.01, -1.02e-02, 5.17e-02, 0.563, -0.425, 0.110),
150 
151  # calibration parameters for HF:
152  calibHF_use = cms.bool(False),
153  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),
154 # 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),
155 # 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),
156 # 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),
157 # 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)
158  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),
159  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),
160  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),
161  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)
162 )
163 
164 
165