CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
aging Namespace Reference

Functions

def agedHFNose
 
def agedHGCal
 
def ageEcal
 
def ageHB
 
def ageHcal
 
def ageHE
 
def ageHF
 
def ageSiPM
 
def customise_aging_1000
 
def customise_aging_300
 
def customise_aging_3000
 
def customise_aging_3000_ultimate
 
def customise_aging_4500_ultimate
 
def ecal_complete_aging
 
def getHcalDigitizer
 
def getHGCalDigitizer
 
def hf_complete_aging
 
def realisticHGCalStartup
 
def setScenarioHLLHC
 
def turn_off_HB_aging
 
def turn_off_HE_aging
 
def turn_off_HF_aging
 
def turn_off_SiPM_aging
 
def turn_on_HB_aging
 
def turn_on_HE_aging
 
def turn_on_HF_aging
 

Function Documentation

def aging.agedHFNose (   process,
  algo = 0 
)

Definition at line 64 of file aging.py.

References hgcalDigitizer_cfi.HFNose_setEndOfLifeNoise().

Referenced by customise_aging_3000(), customise_aging_3000_ultimate(), and customise_aging_4500_ultimate().

64 
65 def agedHFNose(process,algo=0):
66  from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import HFNose_setEndOfLifeNoise
67  process = HFNose_setEndOfLifeNoise(process,byDose=True,byDoseAlgo=algo)
68  return process
def agedHFNose
Definition: aging.py:64
def aging.agedHGCal (   process,
  algo = 0 
)

Definition at line 69 of file aging.py.

References hgcalDigitizer_cfi.HGCal_setEndOfLifeNoise().

Referenced by customise_aging_3000(), customise_aging_3000_ultimate(), and customise_aging_4500_ultimate().

69 
70 def agedHGCal(process,algo=0):
71  from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import HGCal_setEndOfLifeNoise
72  process = HGCal_setEndOfLifeNoise(process,byDose=True,byDoseAlgo=algo)
73  return process
def agedHGCal
Definition: aging.py:69
def aging.ageEcal (   process,
  lumi,
  instLumi 
)

Definition at line 185 of file aging.py.

References sistrip::SpyUtilities.range().

Referenced by customise_aging_1000(), customise_aging_300(), customise_aging_3000(), customise_aging_3000_ultimate(), and customise_aging_4500_ultimate().

186 def ageEcal(process,lumi,instLumi):
187  if hasattr(process,'g4SimHits'):
188  #these lines need to be further activiated by tuning on 'complete' aging for ecal
189  process.g4SimHits.ECalSD.InstLuminosity = cms.double(instLumi)
190  process.g4SimHits.ECalSD.DelivLuminosity = cms.double(float(lumi))
191 
192  # available conditions
193  ecal_lumis = [300,1000,3000,4500]
194  ecal_conditions = [
195  ['EcalIntercalibConstantsRcd','EcalIntercalibConstants_TL{:d}_upgrade_8deg_v2_mc'],
196  ['EcalIntercalibConstantsMCRcd','EcalIntercalibConstantsMC_TL{:d}_upgrade_8deg_v2_mc'],
197  ['EcalLaserAPDPNRatiosRcd','EcalLaserAPDPNRatios_TL{:d}_upgrade_8deg_mc'],
198  ['EcalPedestalsRcd','EcalPedestals_TL{:d}_upgradeTIA_8deg_mc'],
199  ['EcalTPGLinearizationConstRcd','EcalTPGLinearizationConst_TL{:d}_upgrade_8deg_mc'],
200  ]
201 
202  # update PF thresholds, based on https://indico.cern.ch/event/653123/contributions/2659235/attachments/1491385/2318364/170711_upsg_ledovskoy.pdf
203  ecal_thresholds = {
204  300 : 0.103,
205  1000 : 0.175,
206  3000 : 0.435,
207  4500 : 0.707,
208  }
209  ecal_seed_multiplier = 2.5
210 
211  # try to get conditions
212  if int(lumi) in ecal_lumis:
213  if not hasattr(process.GlobalTag,'toGet'):
214  process.GlobalTag.toGet=cms.VPSet()
215  for ecal_condition in ecal_conditions:
216  process.GlobalTag.toGet.append(cms.PSet(
217  record = cms.string(ecal_condition[0]),
218  tag = cms.string(ecal_condition[1].format(int(lumi))),
219  connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS")
220  )
221  )
222  if hasattr(process,"particleFlowClusterECALUncorrected"):
223  _seeds = process.particleFlowClusterECALUncorrected.seedFinder.thresholdsByDetector
224  for iseed in range(0,len(_seeds)):
225  if _seeds[iseed].detector.value()=="ECAL_BARREL":
226  _seeds[iseed].seedingThreshold = cms.double(ecal_thresholds[int(lumi)]*ecal_seed_multiplier)
227  _clusters = process.particleFlowClusterECALUncorrected.initialClusteringStep.thresholdsByDetector
228  for icluster in range(0,len(_clusters)):
229  if _clusters[icluster].detector.value()=="ECAL_BARREL":
230  _clusters[icluster].gatheringThreshold = cms.double(ecal_thresholds[int(lumi)])
231 
232  return process
const uint16_t range(const Frame &aFrame)
def ageEcal
Definition: aging.py:185
def aging.ageHB (   process,
  turnon,
  scenarioHLLHC 
)

Definition at line 35 of file aging.py.

References getHcalDigitizer(), and setScenarioHLLHC().

Referenced by ageHcal(), turn_off_HB_aging(), and turn_on_HB_aging().

35 
36 def ageHB(process,turnon,scenarioHLLHC):
37  if turnon:
38  from CalibCalorimetry.HcalPlugins.HBHEDarkening_cff import HBDarkeningEP
39  process.HBDarkeningEP = HBDarkeningEP
40  process.HBDarkeningEP = setScenarioHLLHC(process.HBDarkeningEP,scenarioHLLHC)
41  hcaldigi = getHcalDigitizer(process)
42  if hcaldigi is not None: hcaldigi.HBDarkening = cms.bool(turnon)
43  if hasattr(process,'es_hardcode'):
44  process.es_hardcode.HBRecalibration = cms.bool(turnon)
45  return process
def getHcalDigitizer
Definition: aging.py:4
def setScenarioHLLHC
Definition: aging.py:24
def ageHB
Definition: aging.py:35
def aging.ageHcal (   process,
  lumi,
  instLumi,
  scenarioHLLHC 
)

Definition at line 129 of file aging.py.

References ageHB(), ageHE(), ageHF(), ageSiPM(), and getHcalDigitizer().

Referenced by customise_aging_1000(), customise_aging_300(), customise_aging_3000(), customise_aging_3000_ultimate(), and customise_aging_4500_ultimate().

130 def ageHcal(process,lumi,instLumi,scenarioHLLHC):
131  hcaldigi = getHcalDigitizer(process)
132  if hcaldigi is not None: hcaldigi.DelivLuminosity = cms.double(float(lumi)) # integrated lumi in fb-1
133 
134  # these lines need to be further activated by turning on 'complete' aging for HF
135  if hasattr(process,'g4SimHits'):
136  process.g4SimHits.HCalSD.InstLuminosity = cms.double(float(instLumi))
137  process.g4SimHits.HCalSD.DelivLuminosity = cms.double(float(lumi))
138 
139  # recalibration and darkening always together
140  if hasattr(process,'es_hardcode'):
141  process.es_hardcode.iLumi = cms.double(float(lumi))
142 
143  # functions to enable individual subdet aging
144  process = ageHB(process,True,scenarioHLLHC)
145  process = ageHE(process,True,scenarioHLLHC)
146  process = ageHF(process,True)
147  process = ageSiPM(process,True,lumi)
148 
149  return process
def ageSiPM
Definition: aging.py:80
def getHcalDigitizer
Definition: aging.py:4
def ageHE
Definition: aging.py:46
def ageHcal
Definition: aging.py:129
def ageHF
Definition: aging.py:57
def ageHB
Definition: aging.py:35
def aging.ageHE (   process,
  turnon,
  scenarioHLLHC 
)

Definition at line 46 of file aging.py.

References getHcalDigitizer(), and setScenarioHLLHC().

Referenced by ageHcal(), turn_off_HE_aging(), and turn_on_HE_aging().

46 
47 def ageHE(process,turnon,scenarioHLLHC):
48  if turnon:
49  from CalibCalorimetry.HcalPlugins.HBHEDarkening_cff import HEDarkeningEP
50  process.HEDarkeningEP = HEDarkeningEP
51  process.HEDarkeningEP = setScenarioHLLHC(process.HEDarkeningEP,scenarioHLLHC)
52  hcaldigi = getHcalDigitizer(process)
53  if hcaldigi is not None: hcaldigi.HEDarkening = cms.bool(turnon)
54  if hasattr(process,'es_hardcode'):
55  process.es_hardcode.HERecalibration = cms.bool(turnon)
56  return process
def getHcalDigitizer
Definition: aging.py:4
def ageHE
Definition: aging.py:46
def setScenarioHLLHC
Definition: aging.py:24
def aging.ageHF (   process,
  turnon 
)

Definition at line 57 of file aging.py.

References getHcalDigitizer().

Referenced by ageHcal(), turn_off_HF_aging(), and turn_on_HF_aging().

57 
58 def ageHF(process,turnon):
59  hcaldigi = getHcalDigitizer(process)
60  if hcaldigi is not None: hcaldigi.HFDarkening = cms.bool(turnon)
61  if hasattr(process,'es_hardcode'):
62  process.es_hardcode.HFRecalibration = cms.bool(turnon)
63  return process
def getHcalDigitizer
Definition: aging.py:4
def ageHF
Definition: aging.py:57
def aging.ageSiPM (   process,
  turnon,
  lumi 
)

Definition at line 80 of file aging.py.

Referenced by ageHcal(), and turn_off_SiPM_aging().

80 
81 def ageSiPM(process,turnon,lumi):
82  process.es_hardcode.hbUpgrade.doRadiationDamage = turnon
83  process.es_hardcode.heUpgrade.doRadiationDamage = turnon
84 
85  # todo: determine ZS threshold adjustments
86 
87  # adjust PF thresholds for increased noise
88  # based on: https://baylor.box.com/s/w32ja75krcbxcycyifexu28dwlgrj7wg
89  hcal_lumis = [300, 1000, 3000, 4500, 1e10]
90  hcal_thresholds = {
91  300: {
92  "seed": [0.5, 0.625, 0.75, 0.75],
93  "rec": [0.4, 0.5, 0.6, 0.6],
94  },
95  1000: {
96  "seed": [1.0, 1.5, 1.5, 1.5],
97  "rec": [0.8, 1.2, 1.2, 1.2],
98  },
99  3000: {
100  "seed": [1.25, 2.5, 2.5, 2.5],
101  "rec": [1.0, 2.0, 2.0, 2.0],
102  },
103  4500: {
104  "seed": [1.5, 3.0, 3.0, 3.0],
105  "rec": [1.25, 2.5, 2.5, 2.5],
106  },
107  }
108  ctmodules = ['calotowermaker','caloTowerForTrk','caloTowerForTrkPreSplitting','towerMaker','towerMakerWithHO']
109  for ilumi, hcal_lumi in enumerate(hcal_lumis[:-1]):
110  if lumi >= hcal_lumi and lumi < hcal_lumis[ilumi+1]:
111  if hasattr(process,'particleFlowClusterHBHE'):
112  process.particleFlowClusterHBHE.seedFinder.thresholdsByDetector[0].seedingThreshold = hcal_thresholds[hcal_lumi]["seed"]
113  process.particleFlowClusterHBHE.initialClusteringStep.thresholdsByDetector[0].gatheringThreshold = hcal_thresholds[hcal_lumi]["rec"]
114  process.particleFlowClusterHBHE.pfClusterBuilder.recHitEnergyNorms[0].recHitEnergyNorm = hcal_thresholds[hcal_lumi]["rec"]
115  process.particleFlowClusterHBHE.pfClusterBuilder.positionCalc.logWeightDenominatorByDetector[0].logWeightDenominator = hcal_thresholds[hcal_lumi]["rec"]
116  process.particleFlowClusterHBHE.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector[0].logWeightDenominator = hcal_thresholds[hcal_lumi]["rec"]
117  if hasattr(process,'particleFlowClusterHCAL'):
118  process.particleFlowClusterHCAL.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector[0].logWeightDenominator = hcal_thresholds[hcal_lumi]["rec"]
119  if hasattr(process,'particleFlowRecHitHBHE'):
120  process.particleFlowRecHitHBHE.producers[0].qualityTests[0].cuts[0].threshold = hcal_thresholds[hcal_lumi]["rec"]
121  for ctmod in ctmodules:
122  if hasattr(process,ctmod):
123  getattr(process,ctmod).HBThreshold1 = hcal_thresholds[hcal_lumi]["rec"][0]
124  getattr(process,ctmod).HBThreshold2 = hcal_thresholds[hcal_lumi]["rec"][1]
125  getattr(process,ctmod).HBThreshold = hcal_thresholds[hcal_lumi]["rec"][-1]
126  break
127 
128  return process
def ageSiPM
Definition: aging.py:80
def aging.customise_aging_1000 (   process)

Definition at line 245 of file aging.py.

References ageEcal(), ageHcal(), and turn_off_HE_aging().

246 def customise_aging_1000(process):
247  process=ageHcal(process,1000,5.0e34,"nominal")
248  process=turn_off_HE_aging(process) #avoid conflict between HGCal and Hcal in phase2 geom configuration
249  process=ageEcal(process,1000,5.0e34)
250  return process
def turn_off_HE_aging
Definition: aging.py:162
def ageHcal
Definition: aging.py:129
def ageEcal
Definition: aging.py:185
def customise_aging_1000
Definition: aging.py:245
def aging.customise_aging_300 (   process)

Definition at line 240 of file aging.py.

References ageEcal(), and ageHcal().

241 def customise_aging_300(process):
242  process=ageHcal(process,300,5.0e34,"nominal")
243  process=ageEcal(process,300,5.0e34)
244  return process
def ageHcal
Definition: aging.py:129
def customise_aging_300
Definition: aging.py:240
def ageEcal
Definition: aging.py:185
def aging.customise_aging_3000 (   process)

Definition at line 251 of file aging.py.

References agedHFNose(), agedHGCal(), ageEcal(), ageHcal(), and turn_off_HE_aging().

252 def customise_aging_3000(process):
253  process=ageHcal(process,3000,5.0e34,"nominal")
254  process=turn_off_HE_aging(process) #avoid conflict between HGCal and Hcal in phase2 geom configuration
255  process=ageEcal(process,3000,5.0e34)
256  process=agedHGCal(process)
257  process=agedHFNose(process)
258  return process
def customise_aging_3000
Definition: aging.py:251
def turn_off_HE_aging
Definition: aging.py:162
def agedHGCal
Definition: aging.py:69
def ageHcal
Definition: aging.py:129
def agedHFNose
Definition: aging.py:64
def ageEcal
Definition: aging.py:185
def aging.customise_aging_3000_ultimate (   process)

Definition at line 259 of file aging.py.

References agedHFNose(), agedHGCal(), ageEcal(), ageHcal(), and turn_off_HE_aging().

260 def customise_aging_3000_ultimate(process):
261  process=ageHcal(process,3000,7.5e34,"ultimate")
262  process=turn_off_HE_aging(process) #avoid conflict between HGCal and Hcal in phase2 geom configuration
263  process=ageEcal(process,3000,7.5e34)
264  process=agedHGCal(process)
265  process=agedHFNose(process)
266  return process
def customise_aging_3000_ultimate
Definition: aging.py:259
def turn_off_HE_aging
Definition: aging.py:162
def agedHGCal
Definition: aging.py:69
def ageHcal
Definition: aging.py:129
def agedHFNose
Definition: aging.py:64
def ageEcal
Definition: aging.py:185
def aging.customise_aging_4500_ultimate (   process)

Definition at line 267 of file aging.py.

References agedHFNose(), agedHGCal(), ageEcal(), ageHcal(), and turn_off_HE_aging().

268 def customise_aging_4500_ultimate(process):
269  process=ageHcal(process,4500,7.5e34,"ultimate")
270  process=turn_off_HE_aging(process) #avoid conflict between HGCal and Hcal in phase2 geom configuration
271  process=ageEcal(process,4500,7.5e34)
272  process=agedHGCal(process)
273  process=agedHFNose(process)
274  return process
def turn_off_HE_aging
Definition: aging.py:162
def agedHGCal
Definition: aging.py:69
def ageHcal
Definition: aging.py:129
def agedHFNose
Definition: aging.py:64
def customise_aging_4500_ultimate
Definition: aging.py:267
def ageEcal
Definition: aging.py:185
def aging.ecal_complete_aging (   process)

Definition at line 233 of file aging.py.

234 def ecal_complete_aging(process):
235  if hasattr(process,'g4SimHits'):
236  process.g4SimHits.ECalSD.AgeingWithSlopeLY = cms.untracked.bool(True)
237  if hasattr(process,'ecal_digi_parameters'):
238  process.ecal_digi_parameters.UseLCcorrection = cms.untracked.bool(False)
239  return process
def ecal_complete_aging
Definition: aging.py:233
def aging.getHcalDigitizer (   process)

Definition at line 4 of file aging.py.

Referenced by ageHB(), ageHcal(), ageHE(), ageHF(), and hf_complete_aging().

4 
5 def getHcalDigitizer(process):
6  if hasattr(process,'mixData'):
7  return process.mixData
8  if hasattr(process,'mix') and hasattr(process.mix,'digitizers') and hasattr(process.mix.digitizers,'hcal'):
9  return process.mix.digitizers.hcal
10  return None
def getHcalDigitizer
Definition: aging.py:4
def aging.getHGCalDigitizer (   process,
  section 
)

Definition at line 11 of file aging.py.

11 
12 def getHGCalDigitizer(process,section):
13  if hasattr(process,'mix') and hasattr(process.mix,'digitizers'):
14  if section == 'EE' and hasattr(process.mix.digitizers,'hgceeDigitizer'):
15  return process.mix.digitizers.hgceeDigitizer
16  elif section == 'FH' and hasattr(process.mix.digitizers,'hgchefrontDigitizer'):
17  return process.mix.digitizers.hgchefrontDigitizer
18  elif section == 'BH' and hasattr(process.mix.digitizers,'hgchebackDigitizer'):
19  return process.mix.digitizers.hgchebackDigitizer
20  elif section == 'HFNose' and hasattr(process.mix.digitizers,'hfnoseDigitizer'):
21  return process.mix.digitizers.hfnoseDigitizer
22  return None
23 
# change assumptions about lumi rate
def getHGCalDigitizer
Definition: aging.py:11
def aging.hf_complete_aging (   process)

Definition at line 178 of file aging.py.

References getHcalDigitizer().

179 def hf_complete_aging(process):
180  if hasattr(process,'g4SimHits'):
181  process.g4SimHits.HCalSD.HFDarkening = cms.untracked.bool(True)
182  hcaldigi = getHcalDigitizer(process)
183  if hcaldigi is not None: hcaldigi.HFDarkening = cms.untracked.bool(False)
184  return process
def hf_complete_aging
Definition: aging.py:178
def getHcalDigitizer
Definition: aging.py:4
def aging.realisticHGCalStartup (   process)

Definition at line 74 of file aging.py.

References hgcalDigitizer_cfi.HGCal_setRealisticStartupNoise().

74 
75 def realisticHGCalStartup(process):
76  from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import HGCal_setRealisticStartupNoise
77  process = HGCal_setRealisticStartupNoise(process)
78  return process
79 
# needs lumi to set proper ZS thresholds (tbd)
def realisticHGCalStartup
Definition: aging.py:74
def aging.setScenarioHLLHC (   module,
  scenarioHLLHC 
)

Definition at line 24 of file aging.py.

Referenced by ageHB(), and ageHE().

24 
25 def setScenarioHLLHC(module,scenarioHLLHC):
26  if scenarioHLLHC=="nominal":
27  from CalibCalorimetry.HcalPlugins.HBHEDarkening_cff import _years_LHC, _years_HLLHC_nominal
28  module.years = _years_LHC + _years_HLLHC_nominal
29  elif scenarioHLLHC=="ultimate":
30  from CalibCalorimetry.HcalPlugins.HBHEDarkening_cff import _years_LHC, _years_HLLHC_ultimate
31  module.years = _years_LHC + _years_HLLHC_ultimate
32  return module
33 
34 # turnon = True enables default, False disables
# recalibration and darkening always together
def setScenarioHLLHC
Definition: aging.py:24
def aging.turn_off_HB_aging (   process)

Definition at line 154 of file aging.py.

References ageHB().

155 def turn_off_HB_aging(process):
156  process = ageHB(process,False,"")
157  return process
def turn_off_HB_aging
Definition: aging.py:154
def ageHB
Definition: aging.py:35
def aging.turn_off_HE_aging (   process)

Definition at line 162 of file aging.py.

References ageHE().

Referenced by customise_aging_1000(), customise_aging_3000(), customise_aging_3000_ultimate(), and customise_aging_4500_ultimate().

163 def turn_off_HE_aging(process):
164  process = ageHE(process,False,"")
165  return process
def turn_off_HE_aging
Definition: aging.py:162
def ageHE
Definition: aging.py:46
def aging.turn_off_HF_aging (   process)

Definition at line 170 of file aging.py.

References ageHF().

171 def turn_off_HF_aging(process):
172  process = ageHF(process,False)
173  return process
def turn_off_HF_aging
Definition: aging.py:170
def ageHF
Definition: aging.py:57
def aging.turn_off_SiPM_aging (   process)

Definition at line 174 of file aging.py.

References ageSiPM().

175 def turn_off_SiPM_aging(process):
176  process = ageSiPM(process,False,0.0)
177  return process
def ageSiPM
Definition: aging.py:80
def turn_off_SiPM_aging
Definition: aging.py:174
def aging.turn_on_HB_aging (   process)

Definition at line 150 of file aging.py.

References ageHB().

151 def turn_on_HB_aging(process):
152  process = ageHB(process,True,"")
153  return process
def turn_on_HB_aging
Definition: aging.py:150
def ageHB
Definition: aging.py:35
def aging.turn_on_HE_aging (   process)

Definition at line 158 of file aging.py.

References ageHE().

159 def turn_on_HE_aging(process):
160  process = ageHE(process,True,"")
161  return process
def turn_on_HE_aging
Definition: aging.py:158
def ageHE
Definition: aging.py:46
def aging.turn_on_HF_aging (   process)

Definition at line 166 of file aging.py.

References ageHF().

167 def turn_on_HF_aging(process):
168  process = ageHF(process,True)
169  return process
def turn_on_HF_aging
Definition: aging.py:166
def ageHF
Definition: aging.py:57