Skip to content
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
6 changes: 5 additions & 1 deletion Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,8 @@ The offsets currently in use are:
* 0.9001: Sonic Triton
* 0.278: Weighted Vertexing in Blocks
* 0.279: Weighted Vertexing in Blocks and tracking only wf

* 0.111: Activate OuterTracker inefficiency (PS-p: bias rails inefficiency only)
* 0.112: Activate OuterTracker inefficiency (PS-p: bias rails inefficiency; PS-s and SS: 1% bad strips)
* 0.113: Activate OuterTracker inefficiency (PS-p: bias rails inefficiency; PS-s and SS: 5% bad strips)
* 0.114: Activate OuterTracker inefficiency (PS-p: bias rails inefficiency; PS-s and SS: 10% bad strips)
* 0.141: Activate emulation of the signal shape of the InnerTracker FE chip (CROC)
Original file line number Diff line number Diff line change
Expand Up @@ -1876,6 +1876,29 @@ def condition(self, fragment, stepList, key, hasHarvest):
upgradeWFs['OTInefficiency10PC'].offset = 0.114
upgradeWFs['OTInefficiency10PC'].percent = 'Ten'

#
# Simulates CROC signal shape in IT modules
#
class UpgradeWorkflow_ITSignalShape(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
if 'Digi' in step:
stepDict[stepName][k] = merge([{'--customise': 'SimTracker/SiPhase2Digitizer/customizeForPhase2TrackerSignalShape.customizeSiPhase2ITSignalShape'}, stepDict[step][k]])
def condition(self, fragment, stepList, key, hasHarvest):
return '2026' in key
# define several of them
upgradeWFs['ITSignalShape'] = UpgradeWorkflow_ITSignalShape(
steps = [
'Digi',
'DigiTrigger',
],
PU = [
'Digi',
'DigiTrigger',
],
suffix = '_ITSignalShape',
offset = 0.141
)

# Specifying explicitly the --filein is not nice but that was the
# easiest way to "skip" the output of step2 (=premixing stage1) for
# filein (as it goes to pileup_input). It works (a bit accidentally
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,9 @@ PixelDigitizerAlgorithm::~PixelDigitizerAlgorithm() { LogDebug("PixelDigitizerAl
// -- Select the Hit for Digitization
//
bool PixelDigitizerAlgorithm::select_hit(const PSimHit& hit, double tCorr, double& sigScale) const {
double time = hit.tof() - tCorr;
return (time >= theTofLowerCut_ && time < theTofUpperCut_);
// in case of signal-shape emulation do not apply [TofLower,TofUpper] selection
double toa = hit.tof() - tCorr;
return apply_timewalk_ || (toa >= theTofLowerCut_ && toa < theTofUpperCut_);
}

// ======================================================================
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import FWCore.ParameterSet.Config as cms

#
# activate signal shape in IT only
#

def customizeSiPhase2ITSignalShape(process):
## for standard mixing
if hasattr(process,'mix') and hasattr(process.mix,'digitizers') and hasattr(process.mix.digitizers,'pixel'):
if hasattr(process.mix.digitizers.pixel,'PixelDigitizerAlgorithm'):
print("# Activating signal shape emulation in IT pixel (planar)")
process.mix.digitizers.pixel.PixelDigitizerAlgorithm.ApplyTimewalk = True
if hasattr(process.mix.digitizers.pixel,'Pixel3DDigitizerAlgorithm'):
print("# Activating signal shape emulation in IT pixel (3D)")
process.mix.digitizers.pixel.Pixel3DDigitizerAlgorithm.ApplyTimewalk = True


## for pre-mixing
if hasattr(process, "mixData") and hasattr(process.mixData, "workers") and hasattr(process.mixData.workers, "pixel"):
if hasattr(process.mixData.workers.pixel,'PixelDigitizerAlgorithm'):
print("# Activating signal shape emulation in IT pixel (planar)")
process.mixData.workers.pixel.PixelDigitizerAlgorithm.ApplyTimewalk = True
if hasattr(process.mixData.workers.pixel,'Pixel3DDigitizerAlgorithm'):
print("# Activating signal shape emulation in IT pixel (3D)")
process.mixData.workers.pixel.Pixel3DDigitizerAlgorithm.ApplyTimewalk = True

return process
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
NoiseInElectrons = cms.double(0.0),
Phase2ReadoutMode = cms.int32(3), # Flag to decide Readout Mode :Digital(0) or Analog (linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4) with threshold subtraction
AdcFullScale = cms.int32(15),
TofUpperCut = cms.double(12.5),
TofLowerCut = cms.double(-12.5),
TofUpperCut = cms.double(20.),
TofLowerCut = cms.double(-5.),
AddNoisyPixels = cms.bool(False),
Alpha2Order = cms.bool(True), #D.B.: second order effect, does not switch off magnetic field as described
AddNoise = cms.bool(False),
Expand Down