CMS 3D CMS Logo

hgcalBackEndLayer2Producer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
6 
7 from L1Trigger.L1THGCal.egammaIdentification import egamma_identification_drnn_cone, \
8  egamma_identification_drnn_dbscan, \
9  egamma_identification_histomax
10 
11 from Configuration.Eras.Modifier_phase2_hgcalV9_cff import phase2_hgcalV9
12 
13 
14 binSums = cms.vuint32(13, # 0
15  11, 11, 11, # 1 - 3
16  9, 9, 9, # 4 - 6
17  7, 7, 7, 7, 7, 7, # 7 - 12
18  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, # 13 - 27
19  3, 3, 3, 3, 3, 3, 3, 3 # 28 - 35
20  )
21 
22 EE_DR_GROUP = 7
23 FH_DR_GROUP = 6
24 BH_DR_GROUP = 12
25 MAX_LAYERS = 52
26 
27 
28 dr_layerbylayer = ([0] + # no layer 0
29  [0.015]*EE_DR_GROUP + [0.020]*EE_DR_GROUP + [0.030]*EE_DR_GROUP + [0.040]*EE_DR_GROUP + # EM
30  [0.040]*FH_DR_GROUP + [0.050]*FH_DR_GROUP + # FH
31  [0.050]*BH_DR_GROUP) # BH
32 
33 
34 dr_layerbylayer_Bcoefficient = ([0] + # no layer 0
35  [0.020]*EE_DR_GROUP + [0.020]*EE_DR_GROUP + [0.02]*EE_DR_GROUP + [0.020]*EE_DR_GROUP + # EM
36  [0.020]*FH_DR_GROUP + [0.020]*FH_DR_GROUP + # FH
37  [0.020]*BH_DR_GROUP) # BH
38 
39 
40 neighbour_weights_1stOrder = cms.vdouble(0, 0.25, 0,
41  0.25, 0, 0.25,
42  0, 0.25, 0)
43 
44 neighbour_weights_2ndOrder = cms.vdouble(-0.25, 0.5, -0.25,
45  0.5, 0, 0.5,
46  -0.25, 0.5, -0.25)
47 
48 
49 distance_C3d_params = cms.PSet(type_multicluster=cms.string('dRC3d'),
50  dR_multicluster=cms.double(0.01),
51  minPt_multicluster=cms.double(0.5), # minimum pt of the multicluster (GeV)
52  dist_dbscan_multicluster=cms.double(0.),
53  minN_dbscan_multicluster=cms.uint32(0),
54  EGIdentification=egamma_identification_drnn_cone.clone(),
55  )
56 
57 
58 dbscan_C3d_params = cms.PSet(type_multicluster=cms.string('DBSCANC3d'),
59  dR_multicluster=cms.double(0.),
60  minPt_multicluster=cms.double(0.5), # minimum pt of the multicluster (GeV)
61  dist_dbscan_multicluster=cms.double(0.005),
62  minN_dbscan_multicluster=cms.uint32(3),
63  EGIdentification=egamma_identification_drnn_dbscan.clone())
64 
65 
66 histoMax_C3d_params = cms.PSet(type_multicluster=cms.string('HistoMaxC3d'),
67  dR_multicluster=cms.double(0.03),
68  dR_multicluster_byLayer_coefficientA=cms.vdouble(),
69  dR_multicluster_byLayer_coefficientB=cms.vdouble(),
70  minPt_multicluster=cms.double(0.5), # minimum pt of the multicluster (GeV)
71  nBins_R_histo_multicluster=cms.uint32(36),
72  nBins_Phi_histo_multicluster=cms.uint32(216),
73  binSumsHisto=binSums,
74  threshold_histo_multicluster=cms.double(10.),
75  cluster_association=cms.string("NearestNeighbour"),
76  EGIdentification=egamma_identification_histomax.clone(),
77  neighbour_weights=neighbour_weights_1stOrder
78  )
79 # V9 samples have a different defintiion of the dEdx calibrations. To account for it
80 # we reascale the thresholds of the clustering seeds
81 # (see https://indico.cern.ch/event/806845/contributions/3359859/attachments/1815187/2966402/19-03-20_EGPerf_HGCBE.pdf
82 # for more details)
83 phase2_hgcalV9.toModify(histoMax_C3d_params,
84  threshold_histo_multicluster=7.5, # MipT
85  )
86 
87 
88 histoMaxVariableDR_C3d_params = histoMax_C3d_params.clone(
89  dR_multicluster = cms.double(0.),
90  dR_multicluster_byLayer_coefficientA = cms.vdouble(dr_layerbylayer),
91  dR_multicluster_byLayer_coefficientB = cms.vdouble([0]*(MAX_LAYERS+1))
92  )
93 
94 
95 histoSecondaryMax_C3d_params = histoMax_C3d_params.clone(
96  type_multicluster = cms.string('HistoSecondaryMaxC3d')
97  )
98 
99 
100 histoInterpolatedMax_C3d_params = histoMax_C3d_params.clone(
101  type_multicluster = cms.string('HistoInterpolatedMaxC3d')
102  )
103 
104 
105 histoThreshold_C3d_params = histoMax_C3d_params.clone(
106  type_multicluster = cms.string('HistoThresholdC3d')
107  )
108 
109 
110 be_proc = cms.PSet(ProcessorName = cms.string('HGCalBackendLayer2Processor3DClustering'),
111  C3d_parameters = histoMaxVariableDR_C3d_params.clone()
112  )
113 
114 hgcalBackEndLayer2Producer = cms.EDProducer(
115  "HGCalBackendLayer2Producer",
116  InputCluster = cms.InputTag('hgcalBackEndLayer1Producer:HGCalBackendLayer1Processor2DClustering'),
117  ProcessorParameters = be_proc.clone()
118  )