New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New backend stage 1 producer/processor #500
New backend stage 1 producer/processor #500
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @portalesHEP
in addition to the comments below, an update will be needed on the trigger chains:
In L1Trigger/L1THGCalUtilities/python/clustering2d.py
there is currently the functor RozBinTruncation
that is used to create a Producer with tuncation. This will require some modification.
This is now (mostly) done in commit e6047a. It is done by adding a new I still need to include some adaptation of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @portalesHEP
In addition to the proposed removals in clustering2d_v2.py
, could you run and apply the changes of code-checks
and code-format
?
def create_distance(process, inputs, | ||
distance=distance_C2d_params.dR_cluster, # cm | ||
seed_threshold=distance_C2d_params.seeding_threshold_silicon, # MipT | ||
cluster_threshold=distance_C2d_params.clustering_threshold_silicon # MipT | ||
): | ||
producer = process.hgcalBackEndStage1Producer.clone( | ||
InputTriggerCells = cms.InputTag(inputs) | ||
) | ||
producer.ProcessorParameters.C2d_parameters = distance_C2d_params.clone( | ||
dR_cluster = distance | ||
) | ||
set_threshold_params(producer.ProcessorParameters.C2d_parameters, seed_threshold, cluster_threshold) | ||
return producer | ||
|
||
|
||
def create_topological(process, inputs, | ||
seed_threshold=topological_C2d_params.seeding_threshold_silicon, # MipT | ||
cluster_threshold=topological_C2d_params.clustering_threshold_silicon # MipT | ||
): | ||
producer = process.hgcalBackEndStage1Producer.clone( | ||
InputTriggerCells = cms.InputTag(inputs) | ||
) | ||
producer.ProcessorParameters.C2d_parameters = topological_C2d_params.clone() | ||
set_threshold_params(producer.ProcessorParameters.C2d_parameters, seed_threshold, cluster_threshold) | ||
return producer | ||
|
||
|
||
def create_constrainedtopological(process, inputs, | ||
distance=constrTopological_C2d_params.dR_cluster, # cm | ||
seed_threshold=constrTopological_C2d_params.seeding_threshold_silicon, # MipT | ||
cluster_threshold=constrTopological_C2d_params.clustering_threshold_silicon # MipT | ||
): | ||
producer = process.hgcalBackEndStage1Producer.clone( | ||
InputTriggerCells = cms.InputTag(inputs) | ||
) | ||
producer.ProcessorParameters.C2d_parameters = constrTopological_C2d_params.clone( | ||
dR_cluster = distance | ||
) | ||
set_threshold_params(producer.ProcessorParameters.C2d_parameters, seed_threshold, cluster_threshold) | ||
return producer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These functions should probably be removed (as well as the related imports) as these clustering algos are not supposed to be used with the new Stage 1 producer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, I removed them
producer = process.hgcalBackEndStage1Producer.clone( | ||
InputTriggerCells = cms.InputTag(inputs) | ||
) | ||
producer.ProcessorParameters.C2d_parameters = dummy_C2d_params.clone() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C2d_parameters
is a parameter of the producer and not of the processor in the case of hgcalBackEndStage1Producer
.
Actually, I'm not sure that we need this CreateDummy
at all, since a "dummy" stage1Producer would be created from RozBinTruncation
with doTruncation=False
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
class CreateTruthDummy(object): | ||
def __call__(self, process, inputs): | ||
producer = process.hgcalBackEndStage1Producer.clone( | ||
InputTriggerCells = cms.InputTag(inputs) | ||
) | ||
producer.ProcessorParameters.C2d_parameters = dummy_C2d_params.clone() | ||
return producer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably be removed. It will probably not work like that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
This is now done too |
Added new stage 1 producer (
HGCalBackendStage1Producer.cc
) and processor (HGCalBackendStage1Processor.cc
) defined so that the processor only handles the information from a single FPGA.The previous producer/processor pair is kept for now, but renamed
HGCalBackendLayer1Producer.cc
/HGCalBackendLayer1Producer.cc
following the older naming convention.