CMS 3D CMS Logo

hcalnoiseinfoproducer_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 HcalNoiseParameterSet = cms.PSet(
4  # define hit energy thesholds
5  minRecHitE = cms.double(1.5),
6  minLowHitE = cms.double(10.0),
7  minHighHitE = cms.double(25.0),
8  minR45HitE = cms.double(5.0),
9 
10  # define energy threshold for "problematic" cuts
11  pMinERatio = cms.double(25.0),
12  pMinEZeros = cms.double(5.0),
13  pMinEEMF = cms.double(10.0),
14 
15  # define energy threshold for loose/tight/high level cuts
16  minERatio = cms.double(50.0),
17  minEZeros = cms.double(10.0),
18  minEEMF = cms.double(50.0),
19 
20  # define problematic RBX
21  pMinE = cms.double(40.0),
22  pMinRatio = cms.double(0.75),
23  pMaxRatio = cms.double(0.85),
24  pMinHPDHits = cms.int32(10),
25  pMinRBXHits = cms.int32(20),
26  pMinHPDNoOtherHits = cms.int32(7),
27  pMinZeros = cms.int32(4),
28  pMinLowEHitTime = cms.double(-6.0),
29  pMaxLowEHitTime = cms.double(6.0),
30  pMinHighEHitTime = cms.double(-4.0),
31  pMaxHighEHitTime = cms.double(5.0),
32  pMaxHPDEMF = cms.double(-0.02),
33  pMaxRBXEMF = cms.double(0.02),
34  pMinRBXRechitR45Count = cms.int32(1),
35  pMinRBXRechitR45Fraction = cms.double(0.1),
36  pMinRBXRechitR45EnergyFraction = cms.double(0.1),
37 
38  # define loose noise cuts
39  lMinRatio = cms.double(-999.),
40  lMaxRatio = cms.double(999.),
41  lMinHPDHits = cms.int32(17),
42  lMinRBXHits = cms.int32(999),
43  lMinHPDNoOtherHits = cms.int32(10),
44  lMinZeros = cms.int32(10),
45  lMinLowEHitTime = cms.double(-9999.0),
46  lMaxLowEHitTime = cms.double(9999.0),
47  lMinHighEHitTime = cms.double(-9999.0),
48  lMaxHighEHitTime = cms.double(9999.0),
49 
50  # define tight noise cuts
51  tMinRatio = cms.double(-999.),
52  tMaxRatio = cms.double(999.),
53  tMinHPDHits = cms.int32(16),
54  tMinRBXHits = cms.int32(50),
55  tMinHPDNoOtherHits = cms.int32(9),
56  tMinZeros = cms.int32(8),
57  tMinLowEHitTime = cms.double(-9999.0),
58  tMaxLowEHitTime = cms.double(9999.0),
59  tMinHighEHitTime = cms.double(-7.0),
60  tMaxHighEHitTime = cms.double(6.0),
61 
62  # define high level noise cuts
63  hlMaxHPDEMF = cms.double(-9999.0),
64  hlMaxRBXEMF = cms.double(0.01),
65 
66  # Calibration digi noise variables (used for finding laser noise events)
67  calibdigiHBHEthreshold = cms.double(15), # minimum threshold in fC of any HBHE calib digi to be counted in summary
68  calibdigiHBHEtimeslices=cms.vint32(3,4,5,6), # time slices to use when determining charge of HBHE calib digis
69  calibdigiHFthreshold = cms.double(-999), # minimum threshold in fC of any HF calib digi to be counted in summary
70  calibdigiHFtimeslices=cms.vint32(0,1,2,3,4,5,6,7,8,9), # time slices to use when determining charge of HF calib digis
71 
72  # RBX-wide TS4TS5 variable
73  TS4TS5EnergyThreshold = cms.double(50),
74  TS4TS5UpperThreshold = cms.vdouble(70, 90, 100, 400, 4000),
75  TS4TS5UpperCut = cms.vdouble(1, 0.8, 0.75, 0.72, 0.72),
76  TS4TS5LowerThreshold = cms.vdouble(100, 120, 150, 200, 300, 400, 500),
77  TS4TS5LowerCut = cms.vdouble(-1, -0.7, -0.4, -0.2, -0.08, 0, 0.1),
78 
79  # rechit R45 population filter variables
80  # this comes in groups of four: (a_Count, a_Fraction, a_EnergyFraction, const)
81  # flag as noise if (count * a_count + fraction * a_fraction + energyfraction * a_energyfraction + const) > 0
82  lRBXRecHitR45Cuts = cms.vdouble(0.0, 1.0, 0.0, -0.5, # equivalent to "fraction > 0.5"
83  0.0, 0.0, 1.0, -0.5), # equivalent to "energy fraction > 0.5"
84  tRBXRecHitR45Cuts = cms.vdouble(0.0, 1.0, 0.0, -0.2, # equivalent to "fraction > 0.2"
85  0.0, 0.0, 1.0, -0.2) # equivalent to "energy fraction > 0.2"
86  )
87 
88 
89 hcalnoise = cms.EDProducer(
90  'HcalNoiseInfoProducer',
91 
92  # general noise parameters
93  HcalNoiseParameterSet,
94 
95  # what to fill
96  fillDigis = cms.bool(True),
97  fillRecHits = cms.bool(True),
98  fillCaloTowers = cms.bool(True),
99  fillTracks = cms.bool(True),
100 
101  # maximum number of RBXs to fill
102  # if you want to record all RBXs above some energy threshold,
103  # change maxProblemRBXs to 999 and pMinE (above) to the threshold you want
104  maxProblemRBXs = cms.int32(72),
105 
106  # parameters for calculating summary variables
107  maxCaloTowerIEta = cms.int32(20),
108  maxTrackEta = cms.double(2.0),
109  minTrackPt = cms.double(1.0),
110  maxNHF = cms.double(0.9),
111  maxjetindex = cms.int32(0),
112 
113  # collection names
114  digiCollName = cms.string('hcalDigis'),
115  recHitCollName = cms.string('hbhereco'),
116  caloTowerCollName = cms.string('towerMaker'),
117  trackCollName = cms.string('generalTracks'),
118  jetCollName = cms.string('ak4PFJets'),
119 
120  # severity level
121  HcalAcceptSeverityLevel = cms.uint32(9),
122 
123  # which hcal calo flags to mask (HBHEIsolatedNoise=11, HBHEFlatNoise=12, HBHESpikeNoise=13, HBHETriangleNoise=14, HBHETS4TS5Noise=15, HBHENegativeNoise=27)
124  HcalRecHitFlagsToBeExcluded = cms.vint32(11, 12, 13, 14, 15, 27)
125 )