12def CaloScaleNoiseCfg(flagsIn,absolute=True,mu=60,dt=25,output='cellnoise_data.root'):
13
14
15 flags=flagsIn.clone()
16 flags.Calo.Noise.fixedLumiForNoise=1
17 flags.LAr.doHVCorr = False
18 flags.lock()
19
20 msg = logging.getLogger("CaloScaleNoiseCfg")
21
22
23 if not absolute:
24
25 noisetag="LARNoiseOflCellNoise-RUN2-UPD1-00"
26 msg.info("Noise rescaling using tag %s", noisetag)
27 else:
28 if (dt!=25):
29 raise RuntimeError("At this point (early run 3), only a dt of 25ns is supported")
30
31 if mu==0:
32 noisetag="LARNoiseOflCellNoisenoise-mc16-EposA3-ofc25mu0-25ns"
33 elif mu==60:
34 noisetag="LARNoiseOflCellNoisenoise-mc16-EposA3-ofc25mu60-25ns"
35 else:
36 raise RuntimeError("At this point (early run 3), only mu values of 0 and 60 are supported")
37
38
39 msg.info("Absolute noise scaling using tag %s for mu=%i and dt=%i" , noisetag,mu,dt)
40
41 result=ComponentAccumulator()
42
43 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
44 result.merge(LArGMCfg(flags))
45 from TileGeoModel.TileGMConfig import TileGMCfg
46 result.merge(TileGMCfg(flags))
47
48
49 result.merge(CaloNoiseCondAlgCfg(flags,noisetype="totalNoise"))
50 result.merge(CaloNoiseCondAlgCfg(flags,noisetype="electronicNoise"))
51 result.merge(CaloNoiseCondAlgCfg(flags,noisetype="pileupNoise"))
52
53
54 if absolute:
55 result.merge(addOverride(flags,"/LAR/NoiseOfl/CellNoise",noisetag))
56 else:
57 result.merge(addOverride(flags,"/LAR/NoiseOfl/CellNoise",noisetag))
58
59 result.merge(LArHVScaleCfg(flags))
60
61 result.addEventAlgo(CompFactory.CaloRescaleNoise(absScaling=absolute))
62
63 import os
64 rootfile="cellnoise_data.root"
65 if os.path.exists(rootfile):
66 os.remove(rootfile)
67 result.addService(CompFactory.THistSvc(Output = ["file1 DATAFILE='"+output+"' OPT='RECREATE'"]))
68 result.setAppProperty("HistogramPersistency","ROOT")
69
70 return result
71
72