chains.register_concentrator("Supertriggercell", concentrator.create_supertriggercell) chains.register_concentrator("Threshold", concentrator.create_threshold) ## BE1 chains.register_backend1("Ref2d", clustering2d.create_constrainedtopological) chains.register_backend1("Dummy", clustering2d.create_dummy) ## BE2 chains.register_backend2("Ref3d", clustering3d.create_distance) chains.register_backend2("Histomax", clustering3d.create_histoMax) chains.register_backend2("Histomaxvardrth0", lambda p,i : clustering3d.create_histoMax_variableDr(p,i,seed_threshold=0.)) chains.register_backend2("Histomaxvardrth10", lambda p,i : clustering3d.create_histoMax_variableDr(p,i,seed_threshold=10.)) chains.register_backend2("Histomaxvardrth20", lambda p,i : clustering3d.create_histoMax_variableDr(p,i,seed_threshold=20.)) # Register ntuples # Store gen info only in the reference ntuple ntuple_list_ref = ['event', 'gen', 'multiclusters'] ntuple_list = ['event', 'multiclusters'] chains.register_ntuple("Genclustersntuple", lambda p,i : ntuple.create_ntuple(p,i, ntuple_list_ref)) chains.register_ntuple("Clustersntuple", lambda p,i : ntuple.create_ntuple(p,i, ntuple_list)) # Register trigger chains ## Reference chain chains.register_chain('Floatingpoint8', "Threshold", 'Ref2d', 'Ref3d', 'Genclustersntuple') concentrator_algos = ['Supertriggercell', 'Threshold'] backend_algos = ['Histomax', 'Histomaxvardrth0', 'Histomaxvardrth10', 'Histomaxvardrth20'] ## Make cross product fo ECON and BE algos import itertools for cc,be in itertools.product(concentrator_algos,backend_algos): chains.register_chain('Floatingpoint8', cc, 'Dummy', be, 'Clustersntuple') process = chains.create_sequences(process) # Remove towers from sequence
chains.register_backend2( "Histomaxvardrth0", lambda p, i: clustering3d.create_histoMax_variableDr( p, i, seed_threshold=0.)) chains.register_backend2( "Histomaxvardrth10", lambda p, i: clustering3d.create_histoMax_variableDr( p, i, seed_threshold=10.)) chains.register_backend2( "Histomaxvardrth20", lambda p, i: clustering3d.create_histoMax_variableDr( p, i, seed_threshold=20.)) # Register ntuples # Store gen info only in the reference ntuple ntuple_list_ref = ['event', 'gen', 'multiclusters'] ntuple_list = ['event', 'multiclusters'] chains.register_ntuple( "Genclustersntuple", lambda p, i: ntuple.create_ntuple(p, i, ntuple_list_ref)) chains.register_ntuple("Clustersntuple", lambda p, i: ntuple.create_ntuple(p, i, ntuple_list)) # Register trigger chains ## Reference chain chains.register_chain('Floatingpoint8', "Threshold", 'Ref2d', 'Ref3d', 'Genclustersntuple') concentrator_algos = ['Supertriggercell', 'Threshold'] backend_algos = [ 'Histomax', 'Histomaxvardrth0', 'Histomaxvardrth10', 'Histomaxvardrth20' ] ## Make cross product fo ECON and BE algos import itertools for cc, be in itertools.product(concentrator_algos, backend_algos): chains.register_chain('Floatingpoint8', cc, 'Dummy', be, 'Clustersntuple')
### Varies clustering distance from L1Trigger.L1THGCal.customClustering import dr_layerbylayer dr_layerbylayer_50 = [dr*0.5 for dr in dr_layerbylayer] dr_layerbylayer_200 = [dr*2. for dr in dr_layerbylayer] chains.register_backend2("Histomaxdr50", lambda p,i : clustering3d.create_histoMaxXY_variableDr(p,i, distances=dr_layerbylayer_50)) chains.register_backend2("Histomaxdr200", lambda p,i : clustering3d.create_histoMaxXY_variableDr(p,i, distances=dr_layerbylayer_200)) # Register selector chains.register_selector("Genmatch", selectors.create_genmatch) # Register ntuples # Store gen info only in the reference ntuple ntuple_list = ['event', 'gen', 'multiclusters'] chains.register_ntuple("Genclustersntuple", lambda p,i : ntuple.create_ntuple(p,i, ntuple_list)) # Register trigger chains concentrator_algos = ['Threshold0', 'Threshold1', 'Threshold', 'Bestchoice'] backend_algos = ['Histomax', 'Histomaxdr50', 'Histomaxdr200'] ## Make cross product fo ECON and BE algos import itertools for cc,be in itertools.product(concentrator_algos,backend_algos): chains.register_chain('Floatingpoint8', cc, 'Dummy', be, 'Genmatch', 'Genclustersntuple') process = chains.create_sequences(process) # Remove towers from sequence process.hgcalTriggerPrimitives.remove(process.hgcalTowerMap) process.hgcalTriggerPrimitives.remove(process.hgcalTower)