Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:44

0001 import FWCore.ParameterSet.Config as cms
0002 from L1Trigger.L1THGCal.l1tHGCalBackEndLayer2Producer_cfi import distance_C3d_params, \
0003                                                               dbscan_C3d_params, \
0004                                                               histoMax_C3d_clustering_params, \
0005                                                               histoMax_C3d_seeding_params, \
0006                                                               histoMaxVariableDR_C3d_params, \
0007                                                               histoMaxXYVariableDR_C3d_params, \
0008                                                               histoSecondaryMax_C3d_params, \
0009                                                               histoInterpolatedMax_C3d_params, \
0010                                                               histoThreshold_C3d_params, \
0011                                                               neighbour_weights_1stOrder, \
0012                                                               neighbour_weights_2ndOrder
0013 
0014 from L1Trigger.L1THGCal.customClustering import set_histomax_clustering_params
0015 from L1Trigger.L1THGCal.customHistoSeeding import set_histomax_seeding_params
0016 
0017 
0018 def create_distance(process, inputs,
0019                     distance=distance_C3d_params.dR_multicluster
0020                     ):
0021     producer = process.l1tHGCalBackEndLayer2Producer.clone(
0022             InputCluster = cms.InputTag(inputs)
0023             )
0024     producer.ProcessorParameters.C3d_parameters = distance_C3d_params.clone(
0025             dR_multicluster = distance
0026             )
0027     return producer
0028 
0029 
0030 def create_dbscan(process, inputs,
0031                   distance=dbscan_C3d_params.dist_dbscan_multicluster,
0032                   min_points=dbscan_C3d_params.minN_dbscan_multicluster
0033                   ):
0034     producer = process.l1tHGCalBackEndLayer2Producer.clone(
0035             InputCluster = cms.InputTag(inputs)
0036             )
0037     producer.ProcessorParameters.C3d_parameters = dbscan_C3d_params.clone(
0038             dist_dbscan_multicluster = distance,
0039             minN_dbscan_multicluster = min_points
0040             )
0041     return producer
0042 
0043 
0044 class CreateHistoMax(object):
0045     def __init__(self,
0046             distance=histoMax_C3d_clustering_params.dR_multicluster,
0047             nBins_X1=histoMax_C3d_seeding_params.nBins_X1_histo_multicluster,
0048             nBins_X2=histoMax_C3d_seeding_params.nBins_X2_histo_multicluster,
0049             binSumsHisto=histoMax_C3d_seeding_params.binSumsHisto,
0050             seed_threshold=histoMax_C3d_seeding_params.threshold_histo_multicluster,
0051             seeds_norm_by_area=histoMax_C3d_seeding_params.seeds_norm_by_area,
0052             shape_threshold=histoMax_C3d_clustering_params.shape_threshold,
0053             shape_distance=histoMax_C3d_clustering_params.shape_distance,
0054             ):
0055         self.clustering_parameters = histoMax_C3d_clustering_params.clone()
0056         self.seeding_parameters = histoMax_C3d_seeding_params.clone(
0057                 seeds_norm_by_area=seeds_norm_by_area
0058                 )
0059         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, binSumsHisto, seed_threshold)
0060         set_histomax_clustering_params(self.clustering_parameters, distance, shape_threshold, shape_distance)
0061 
0062     def __call__(self, process, inputs):
0063         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0064                 InputCluster = cms.InputTag(inputs)
0065                 )
0066         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0067         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0068         return producer
0069 
0070 
0071 class CreateHistoMaxVariableDr(object):
0072     def __init__(self,
0073             distances=histoMaxVariableDR_C3d_params.dR_multicluster_byLayer_coefficientA,
0074             nBins_X1=histoMax_C3d_seeding_params.nBins_X1_histo_multicluster,
0075             nBins_X2=histoMax_C3d_seeding_params.nBins_X2_histo_multicluster,
0076             binSumsHisto=histoMax_C3d_seeding_params.binSumsHisto,
0077             seed_threshold=histoMax_C3d_seeding_params.threshold_histo_multicluster,
0078             seeds_norm_by_area=histoMax_C3d_seeding_params.seeds_norm_by_area,
0079             shape_threshold=histoMaxVariableDR_C3d_params.shape_threshold,
0080             shape_distance=histoMaxVariableDR_C3d_params.shape_distance,
0081             ):
0082         self.clustering_parameters= histoMax_C3d_clustering_params.clone(
0083                 dR_multicluster_byLayer_coefficientA = distances
0084                 )
0085         self.seeding_parameters = histoMax_C3d_seeding_params.clone(
0086                 seeds_norm_by_area=seeds_norm_by_area
0087                 )
0088         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, binSumsHisto, seed_threshold)
0089         set_histomax_clustering_params(self.clustering_parameters, 0, shape_threshold, shape_distance)
0090 
0091     def __call__(self, process, inputs):
0092         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0093                 InputCluster = cms.InputTag(inputs)
0094                 )
0095         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0096         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0097         return producer
0098 
0099 
0100 class CreateHistoMaxXYVariableDr(object):
0101     def __init__(self,
0102             distances=histoMaxVariableDR_C3d_params.dR_multicluster_byLayer_coefficientA,
0103             nBins_X1=histoMaxXYVariableDR_C3d_params.nBins_X1_histo_multicluster,
0104             nBins_X2=histoMaxXYVariableDR_C3d_params.nBins_X2_histo_multicluster,
0105             seed_threshold=histoMaxXYVariableDR_C3d_params.threshold_histo_multicluster,
0106             shape_threshold=histoMaxVariableDR_C3d_params.shape_threshold,
0107             shape_distance=histoMaxVariableDR_C3d_params.shape_distance,
0108             ):
0109         self.clustering_parameters = histoMax_C3d_clustering_params.clone(
0110                 dR_multicluster_byLayer_coefficientA = distances
0111                 )
0112         self.seeding_parameters = histoMaxXYVariableDR_C3d_params.clone()
0113         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, histoMaxXYVariableDR_C3d_params.binSumsHisto, seed_threshold)
0114         set_histomax_clustering_params(self.clustering_parameters, 0, shape_threshold, shape_distance)
0115 
0116     def __call__(self, process, inputs):
0117         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0118                 InputCluster = cms.InputTag(inputs)
0119                 )
0120         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0121         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0122         return producer
0123 
0124 
0125 class CreateHistoInterpolatedMax1stOrder(object):
0126     def __init__(self,
0127             distance=histoMax_C3d_clustering_params.dR_multicluster,
0128             nBins_X1=histoInterpolatedMax_C3d_params.nBins_X1_histo_multicluster,
0129             nBins_X2=histoInterpolatedMax_C3d_params.nBins_X2_histo_multicluster,
0130             binSumsHisto=histoInterpolatedMax_C3d_params.binSumsHisto,
0131             seed_threshold=histoInterpolatedMax_C3d_params.threshold_histo_multicluster,
0132             shape_threshold=histoMax_C3d_clustering_params.shape_threshold,
0133             shape_distance=histoMax_C3d_clustering_params.shape_distance,
0134             ):
0135         self.seeding_parameters = histoInterpolatedMax_C3d_params.clone(
0136                 neighbour_weights = neighbour_weights_1stOrder
0137                 )
0138         self.clustering_parameters = histoMax_C3d_clustering_params.clone()
0139         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, binSumsHisto, seed_threshold)
0140         set_histomax_clustering_params(self.clustering_parameters, distance, shape_threshold, shape_distance)
0141 
0142     def __call__(self, process, inputs):
0143         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0144                 InputCluster = cms.InputTag(inputs)
0145                 )
0146         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0147         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0148         return producer
0149 
0150 
0151 class CreateHistoInterpolatedMax2ndOrder(object):
0152     def __init__(self,
0153             distance=histoMax_C3d_clustering_params.dR_multicluster,
0154             nBins_X1=histoInterpolatedMax_C3d_params.nBins_X1_histo_multicluster,
0155             nBins_X2=histoInterpolatedMax_C3d_params.nBins_X2_histo_multicluster,
0156             binSumsHisto=histoInterpolatedMax_C3d_params.binSumsHisto,
0157             seed_threshold=histoInterpolatedMax_C3d_params.threshold_histo_multicluster,
0158             shape_threshold=histoMax_C3d_clustering_params.shape_threshold,
0159             shape_distance=histoMax_C3d_clustering_params.shape_distance,
0160             ):
0161         self.seeding_parameters = histoInterpolatedMax_C3d_params.clone(
0162                 neighbour_weights = neighbour_weights_2ndOrder
0163                 )
0164         self.clustering_parameters = histoMax_C3d_clustering_params.clone()
0165         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, binSumsHisto, seed_threshold)
0166         set_histomax_clustering_params(self.clustering_parameters, distance, shape_threshold, shape_distance)
0167 
0168     def __call__(self, process, inputs):
0169         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0170                 InputCluster = cms.InputTag(inputs)
0171                 )
0172         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0173         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0174         return producer
0175 
0176 
0177 class CreateHistoThreshold(object):
0178     def __init__(self,
0179             seed_threshold=histoThreshold_C3d_params.threshold_histo_multicluster,
0180             distance=histoMax_C3d_clustering_params.dR_multicluster,
0181             nBins_X1=histoThreshold_C3d_params.nBins_X1_histo_multicluster,
0182             nBins_X2=histoThreshold_C3d_params.nBins_X2_histo_multicluster,
0183             binSumsHisto=histoThreshold_C3d_params.binSumsHisto,
0184             shape_threshold=histoMax_C3d_clustering_params.shape_threshold,
0185             shape_distance=histoMax_C3d_clustering_params.shape_distance,
0186             ):
0187         self.seeding_parameters = histoThreshold_C3d_params.clone()
0188         self.clustering_parameters = histoMax_C3d_clustering_params.clone()
0189         set_histomax_seeding_params(self.seeding_parameters, nBins_X1, nBins_X2, binSumsHisto, seed_threshold)
0190         set_histomax_clustering_params(self.clustering_parameters, distance, shape_threshold, shape_distance)
0191 
0192     def __call__(self, process, inputs):
0193         producer = process.l1tHGCalBackEndLayer2Producer.clone(
0194                 InputCluster = cms.InputTag(inputs)
0195                 )
0196         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_seeding_parameters = self.seeding_parameters
0197         producer.ProcessorParameters.C3d_parameters.histoMax_C3d_clustering_parameters = self.clustering_parameters
0198         return producer