CMS 3D CMS Logo

ticl_iterations.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
5 
6 # patch particle flow clusters for HGC into local reco sequence
7 # (for now until global reco is going with some sort of clustering)
10 from RecoLocalCalo.HGCalRecProducers.hgcalLayerClusters_cff import hgcalLayerClusters
11 from RecoLocalCalo.HGCalRecProducers.hgcalMultiClusters_cfi import hgcalMultiClusters
12 
13 from RecoHGCal.TICL.ticlSeedingRegionProducer_cfi import ticlSeedingRegionProducer
14 from RecoHGCal.TICL.ticlLayerTileProducer_cfi import ticlLayerTileProducer
15 from RecoHGCal.TICL.trackstersProducer_cfi import trackstersProducer
16 from RecoHGCal.TICL.filteredLayerClustersProducer_cfi import filteredLayerClustersProducer
17 from RecoHGCal.TICL.multiClustersFromTrackstersProducer_cfi import multiClustersFromTrackstersProducer
18 from RecoHGCal.TICL.ticlCandidateFromTrackstersProducer_cfi import ticlCandidateFromTrackstersProducer
19 from RecoHGCal.TICL.pfTICLProducer_cfi import pfTICLProducer
20 from Validation.HGCalValidation.ticlPFValidationDefault_cfi import ticlPFValidationDefault as ticlPFValidation
21 
22 
25  process.FEVTDEBUGHLTEventContent.outputCommands.extend(['keep *_multiClustersFromTracksters*_*_*',
26  'keep *_ticlCandidateFromTrackstersProducer*_*_*',
27  'keep *_pfTICLProducer*_*_*'])
28 
29  process.ticlLayerTileProducer = ticlLayerTileProducer.clone()
30 
31  process.ticlSeedingTrk = ticlSeedingRegionProducer.clone(
32  algoId = 1
33  )
34 
35  process.filteredLayerClustersTrk = filteredLayerClustersProducer.clone(
36  clusterFilter = "ClusterFilterByAlgo",
37  algo_number = 8,
38  iteration_label = "Trk"
39  )
40 
41  process.trackstersTrk = trackstersProducer.clone(
42  filtered_mask = "filteredLayerClustersTrk:Trk",
43  seeding_regions = "ticlSeedingTrk",
44  skip_layers = 3,
45  min_layers_per_trackster = 5,
46  min_cos_theta = 0.99, # ~10 degrees
47  min_cos_pointing = 0.9
48  )
49 
50  process.multiClustersFromTrackstersTrk = multiClustersFromTrackstersProducer.clone(
51  label = "TrkMultiClustersFromTracksterByCA",
52  Tracksters = "trackstersTrk"
53  )
54 
55  process.ticlSeedingGlobal = ticlSeedingRegionProducer.clone(
56  algoId = 2
57  )
58 
59  process.filteredLayerClustersMIP = filteredLayerClustersProducer.clone(
60  clusterFilter = "ClusterFilterBySize",
61  algo_number = 8,
62  max_cluster_size = 2, # inclusive
63  iteration_label = "MIP"
64  )
65 
66  process.trackstersMIP = trackstersProducer.clone(
67  filtered_mask = "filteredLayerClustersMIP:MIP",
68  seeding_regions = "ticlSeedingGlobal",
69  skip_layers = 3,
70  min_layers_per_trackster = 15,
71  min_cos_theta = 0.99, # ~10 degrees
72  min_cos_pointing = 0.9,
73  out_in_dfs = False,
74  )
75 
76  process.multiClustersFromTrackstersMIP = multiClustersFromTrackstersProducer.clone(
77  label = "MIPMultiClustersFromTracksterByCA",
78  Tracksters = "trackstersMIP"
79  )
80 
81  process.filteredLayerClusters = filteredLayerClustersProducer.clone(
82  clusterFilter = "ClusterFilterByAlgoAndSize",
83  min_cluster_size = 2,
84  algo_number = 8,
85  iteration_label = "algo8",
86  LayerClustersInputMask = "trackstersMIP"
87  )
88 
89  process.trackstersEM = trackstersProducer.clone(
90  max_out_in_hops = 4,
91  original_mask = "trackstersMIP",
92  filtered_mask = "filteredLayerClusters:algo8",
93  seeding_regions = "ticlSeedingGlobal",
94  skip_layers = 1,
95  min_layers_per_trackster = 10,
96  min_cos_theta = 0.984, # ~10 degrees
97  min_cos_pointing = 0.9 # ~26 degrees
98  )
99 
100  process.multiClustersFromTrackstersEM = multiClustersFromTrackstersProducer.clone(
101  Tracksters = "trackstersEM"
102  )
103 
104 
105  process.trackstersHAD = trackstersProducer.clone(
106  filtered_mask = "filteredLayerClusters:algo8",
107  seeding_regions = "ticlSeedingGlobal",
108  skip_layers = 2,
109  min_layers_per_trackster = 10,
110  min_cos_theta = 0.8,
111  min_cos_pointing = 0.7
112  )
113 
114  process.multiClustersFromTrackstersHAD = multiClustersFromTrackstersProducer.clone(
115  Tracksters = "trackstersHAD"
116  )
117 
118  process.ticlCandidateFromTrackstersProducer = ticlCandidateFromTrackstersProducer.clone()
119 
120  process.pfTICLProducer = pfTICLProducer.clone()
121 
122  process.hgcalMultiClusters = hgcalMultiClusters
123  process.TICL_Task = cms.Task(
124  process.ticlLayerTileProducer,
125  process.ticlSeedingTrk,
126  process.filteredLayerClustersTrk,
127  process.trackstersTrk,
128  process.multiClustersFromTrackstersTrk,
129  process.ticlSeedingGlobal,
130  process.filteredLayerClustersMIP,
131  process.trackstersMIP,
132  process.multiClustersFromTrackstersMIP,
133  process.filteredLayerClusters,
134  process.trackstersEM,
135  process.multiClustersFromTrackstersEM,
136  process.trackstersHAD,
137  process.multiClustersFromTrackstersHAD,
138  process.ticlCandidateFromTrackstersProducer,
139  process.pfTICLProducer)
140 
141  process.schedule.associate(process.TICL_Task)
142 
143  process.ticlPFValidation = ticlPFValidation
144  process.hgcalValidation.insert(-1, process.ticlPFValidation)
145 
146  if getattr(process,'hgcalValidator'):
147  process.hgcalValidator.label_lcl = "hgcalLayerClusters"
148  process.hgcalValidator.label_mcl = ["multiClustersFromTrackstersEM:MultiClustersFromTracksterByCA", "multiClustersFromTrackstersHAD:MultiClustersFromTracksterByCA"]
149 
150  process.hgcalValidator.domulticlustersPlots = True
151 
152  return process
153 
154 
155 
157 def TICL_iterations(process):
158  process.FEVTDEBUGHLTEventContent.outputCommands.extend(['keep *_multiClustersFromTracksters*_*_*'])
159 
160  process.ticlLayerTileProducer = ticlLayerTileProducer.clone()
161 
162  process.ticlSeedingGlobal = ticlSeedingRegionProducer.clone(
163  algoId = 2
164  )
165 
166  process.filteredLayerClustersMIP = filteredLayerClustersProducer.clone(
167  clusterFilter = "ClusterFilterBySize",
168  algo_number = 8,
169  max_cluster_size = 2, # inclusive
170  iteration_label = "MIP"
171  )
172 
173  process.trackstersMIP = trackstersProducer.clone(
174  filtered_mask = "filteredLayerClustersMIP:MIP",
175  seeding_regions = "ticlSeedingGlobal",
176  skip_layers = 3,
177  min_layers_per_trackster = 15,
178  min_cos_theta = 0.99, # ~10 degrees
179  )
180 
181  process.multiClustersFromTrackstersMIP = multiClustersFromTrackstersProducer.clone(
182  label = "MIPMultiClustersFromTracksterByCA",
183  Tracksters = "trackstersMIP"
184  )
185 
186  process.filteredLayerClusters = filteredLayerClustersProducer.clone(
187  clusterFilter = "ClusterFilterByAlgoAndSize",
188  min_cluster_size = 2,
189  algo_number = 8,
190  iteration_label = "algo8"
191  )
192 
193  process.tracksters = trackstersProducer.clone(
194  original_mask = "trackstersMIP",
195  filtered_mask = "filteredLayerClusters:algo8",
196  seeding_regions = "ticlSeedingGlobal",
197  skip_layers = 2,
198  min_layers_per_trackster = 15,
199  min_cos_theta = 0.94, # ~20 degrees
200  min_cos_pointing = 0.7
201  )
202 
203  process.multiClustersFromTracksters = multiClustersFromTrackstersProducer.clone(
204  Tracksters = "tracksters"
205  )
206 
207  process.HGCalUncalibRecHit = HGCalUncalibRecHit
208  process.HGCalRecHit = HGCalRecHit
209  process.hgcalLayerClusters = hgcalLayerClusters
210  process.hgcalMultiClusters = hgcalMultiClusters
211  process.TICL_Task = cms.Task(process.HGCalUncalibRecHit,
212  process.HGCalRecHit,
213  process.hgcalLayerClusters,
214  process.filteredLayerClustersMIP,
215  process.ticlLayerTileProducer,
216  process.ticlSeedingGlobal,
217  process.trackstersMIP,
218  process.multiClustersFromTrackstersMIP,
219  process.filteredLayerClusters,
220  process.tracksters,
221  process.multiClustersFromTracksters,
222  process.hgcalMultiClusters)
223  process.schedule = cms.Schedule(process.raw2digi_step,process.FEVTDEBUGHLToutput_step)
224  process.schedule.associate(process.TICL_Task)
225  return process
226 
particleFlowClusterHGC_cfi
ticl_iterations.TICL_iterations
def TICL_iterations(process)
TICL_iterations: to be run with local HGCAL reco only i.e.
Definition: ticl_iterations.py:157
particleFlowRecHitHGC_cff
HGCalRecHit_cfi
ticl_iterations.TICL_iterations_withReco
def TICL_iterations_withReco(process)
withReco: requires full reco of the event to run this part i.e.
Definition: ticl_iterations.py:24
hgcalMultiClusters_cfi
HGCalUncalibRecHit_cfi