Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:46

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 _common_BTLparameters = cms.PSet(
0004     bxTime                   = cms.double(25),      # [ns]
0005     LightYield               = cms.double(40000.),  # [photons/MeV]
0006     LightCollectionEff       = cms.double(0.25),
0007     PhotonDetectionEff       = cms.double(0.20),
0008 )
0009 
0010 _barrel_MTDDigitizer = cms.PSet(
0011     digitizerName     = cms.string("BTLDigitizer"),
0012     inputSimHits      = cms.InputTag("g4SimHits:FastTimerHitsBarrel"),
0013     digiCollectionTag = cms.string("FTLBarrel"),
0014     maxSimHitsAccTime = cms.uint32(100),
0015     premixStage1      = cms.bool(False),
0016     premixStage1MinCharge = cms.double(1e-4),
0017     premixStage1MaxCharge = cms.double(1e6),
0018     DeviceSimulation = cms.PSet(
0019         _common_BTLparameters,
0020         LightCollectionSlope     = cms.double(0.075),   # [ns/cm]
0021         LCEpositionSlope         = cms.double(0.071),   # [1/cm] LCE variation vs longitudinal position shift
0022         ),
0023     ElectronicsSimulation = cms.PSet(
0024         _common_BTLparameters,
0025         TestBeamMIPTimeRes         = cms.double(4.293), # This is given by 0.048[ns]*sqrt(8000.), in order to
0026                                                         # rescale the time resolution of 1 MIP = 8000 p.e.
0027         ScintillatorRiseTime       = cms.double(1.1),   # [ns]
0028         ScintillatorDecayTime      = cms.double(40.),   # [ns]
0029         ChannelTimeOffset          = cms.double(0.),    # [ns]
0030         smearChannelTimeOffset     = cms.double(0.),    # [ns]
0031         EnergyThreshold            = cms.double(4.),    # [photo-electrons]
0032         TimeThreshold1             = cms.double(20.),   # [photo-electrons]
0033         TimeThreshold2             = cms.double(50.),   # [photo-electrons]
0034         ReferencePulseNpe          = cms.double(100.),  # [photo-electrons]
0035         DarkCountRate              = cms.double(10.),   # [GHz]
0036         SinglePhotonTimeResolution = cms.double(0.060), # [ns]
0037         SigmaElectronicNoise       = cms.double(1.),    # [p.e.]
0038         SigmaClock                 = cms.double(0.015), # [ns]
0039         CorrelationCoefficient     = cms.double(1.),
0040         SmearTimeForOOTtails       = cms.bool(True),
0041         Npe_to_pC                  = cms.double(0.016), # [pC]
0042         Npe_to_V                   = cms.double(0.0064),# [V]
0043         SigmaRelTOFHIRenergy       = cms.vdouble(0.139,-4.35e-05,3.315e-09,-1.20e-13,1.67e-18), # [%] coefficients of 4th degree Chebyshev polynomial parameterization
0044 
0045         # n bits for the ADC 
0046         adcNbits          = cms.uint32(10),
0047         # n bits for the TDC
0048         tdcNbits          = cms.uint32(10),
0049         # ADC saturation
0050         adcSaturation_MIP = cms.double(600.),           # [pC]
0051         # for different thickness
0052         adcThreshold_MIP   = cms.double(0.064),         # [pC]
0053         # LSB for time of arrival estimate from TDC
0054         toaLSB_ns         = cms.double(0.020),          # [ns]
0055         )
0056 
0057 
0058 )
0059 
0060 _endcap_MTDDigitizer = cms.PSet(
0061     digitizerName     = cms.string("ETLDigitizer"),
0062     inputSimHits      = cms.InputTag("g4SimHits:FastTimerHitsEndcap"),
0063     digiCollectionTag = cms.string("FTLEndcap"),
0064     maxSimHitsAccTime = cms.uint32(100),
0065     premixStage1      = cms.bool(False),
0066     premixStage1MinCharge = cms.double(1e-4),
0067     premixStage1MaxCharge = cms.double(1e6),
0068     DeviceSimulation  = cms.PSet(
0069         bxTime               = cms.double(25),
0070         IntegratedLuminosity = cms.double(1000.0),
0071         FluenceVsRadius      = cms.string("1.937*TMath::Power(x,-1.706)"),
0072         LGADGainVsFluence    = cms.string("TMath::Min(15.,30.-x)"),
0073         LGADGainDegradation  = cms.string("TMath::Max(1.0, TMath::Min(x, x + 0.05/0.01 * (x - 1) + y * (1 - x)/0.01))"),
0074         applyDegradation     = cms.bool(False),
0075         tofDelay             = cms.double(1),
0076         meVPerMIP            = cms.double(0.085), #from HGCAL
0077         MPVMuon             = cms.string("1.21561e-05 + 8.89462e-07 / (x * x)"),
0078         MPVPion             = cms.string("1.24531e-05 + 7.16578e-07 / (x * x)"),
0079         MPVKaon             = cms.string("1.20998e-05 + 2.47192e-06 / (x * x * x)"),
0080         MPVElectron         = cms.string("1.30030e-05 + 1.55166e-07 / (x * x)"),
0081         MPVProton           = cms.string("1.13666e-05 + 1.20093e-05 / (x * x)")
0082         ),
0083     ElectronicsSimulation = cms.PSet(
0084         bxTime               = cms.double(25),
0085         IntegratedLuminosity = cms.double(1000.),      # [1/fb]
0086         # n bits for the ADC 
0087         adcNbits             = cms.uint32(8),
0088         # n bits for the TDC
0089         tdcNbits             = cms.uint32(11),
0090         # ADC saturation
0091         adcSaturation_MIP  = cms.double(25),
0092         # for different thickness
0093         adcThreshold_MIP   = cms.double(0.025),
0094         iThreshold_MIP     = cms.double(0.9525),
0095         # LSB for time of arrival estimate from TDC in ns
0096         toaLSB_ns          = cms.double(0.013),
0097         referenceChargeColl = cms.double(1.0),
0098         noiseLevel          = cms.double(0.3554),
0099         sigmaDistorsion     = cms.double(0.0),
0100         sigmaTDC            = cms.double(0.010),
0101         formulaLandauNoise  = cms.string("TMath::Max(0.020, 0.020 * (0.35 * (x - 1.0) + 1.0))") 
0102         )
0103 )
0104 
0105 from Configuration.Eras.Modifier_phase2_etlV4_cff import phase2_etlV4
0106 phase2_etlV4.toModify(_endcap_MTDDigitizer.DeviceSimulation, meVPerMIP = 0.015 )
0107 
0108 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1
0109 for _m in [_barrel_MTDDigitizer, _endcap_MTDDigitizer]:
0110     premix_stage1.toModify(_m, premixStage1 = True)
0111 
0112 # Fast Timing
0113 mtdDigitizer = cms.PSet( 
0114     accumulatorType   = cms.string("MTDDigiProducer"),
0115     makeDigiSimLinks  = cms.bool(False),
0116     verbosity         = cms.untracked.uint32(0),
0117 
0118     barrelDigitizer = _barrel_MTDDigitizer,
0119     endcapDigitizer = _endcap_MTDDigitizer
0120 )