Skip to content
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

[12.5.X] do not drop pixel duplicates for phase-2 IT reconstruction #39443

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ PixelThresholdClusterizer::PixelThresholdClusterizer(edm::ParameterSet const& co
theOffset_L1(conf.getParameter<int>("VCaltoElectronOffset_L1")),
theElectronPerADCGain(conf.getParameter<double>("ElectronPerADCGain")),
doPhase2Calibration(conf.getParameter<bool>("Phase2Calibration")),
dropDuplicates(conf.getParameter<bool>("DropDuplicates")),
thePhase2ReadoutMode(conf.getParameter<int>("Phase2ReadoutMode")),
thePhase2DigiBaseline(conf.getParameter<double>("Phase2DigiBaseline")),
thePhase2KinkADC(conf.getParameter<int>("Phase2KinkADC")),
Expand Down Expand Up @@ -82,6 +83,7 @@ void PixelThresholdClusterizer::fillPSetDescription(edm::ParameterSetDescription
desc.add<int>("ClusterThreshold_L1", 4000);
desc.add<int>("ClusterThreshold", 4000);
desc.add<double>("ElectronPerADCGain", 135.);
desc.add<bool>("DropDuplicates", true);
desc.add<bool>("Phase2Calibration", false);
desc.add<int>("Phase2ReadoutMode", -1);
desc.add<double>("Phase2DigiBaseline", 1200.);
Expand Down Expand Up @@ -296,8 +298,9 @@ void PixelThresholdClusterizer::copy_to_buffer(DigiIterator begin, DigiIterator
of view of the final cluster charge since these are typically >= 20000.
*/

thePixelOccurrence[theBuffer.index(row, col)]++; // increment the occurrence counter
uint8_t occurrence = thePixelOccurrence[theBuffer.index(row, col)]; // get the occurrence counter
thePixelOccurrence[theBuffer.index(row, col)]++; // increment the occurrence counter
uint8_t occurrence =
(!dropDuplicates) ? 1 : thePixelOccurrence[theBuffer.index(row, col)]; // get the occurrence counter

switch (occurrence) {
// the 1st occurrence (standard treatment)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ class dso_hidden PixelThresholdClusterizer : public PixelClusterizerBase {
const double theElectronPerADCGain; // ADC to electrons conversion

const bool doPhase2Calibration; // The ADC --> electrons calibration is for phase-2 tracker
const bool dropDuplicates; // Enabling dropping duplicate pixels
const int thePhase2ReadoutMode; // Readout mode of the phase-2 IT digitizer
const double thePhase2DigiBaseline; // Threshold above which digis are measured in the phase-2 IT
const int thePhase2KinkADC; // ADC count at which the kink in the dual slop kicks in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon
phase2_tracker.toModify(siPixelClusters, # FIXME
src = 'simSiPixelDigis:Pixel',
DropDuplicates = False, # do not drop duplicates for phase-2 until the digitizer can handle them consistently
MissCalibrate = False,
Phase2Calibration = True,
Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # Flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction
Expand Down