CMS 3D CMS Logo

HcalHitReconstructor_hf_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 import string # use for setting flag masks based on boolean bits
3 
4 hfreco = cms.EDProducer("HcalHitReconstructor",
5  correctForPhaseContainment = cms.bool(False),
6  correctionPhaseNS = cms.double(13.0),
7  digiLabel = cms.InputTag("hcalDigis"),
8  Subdetector = cms.string('HF'),
9  correctForTimeslew = cms.bool(False),
10  dropZSmarkedPassed = cms.bool(True),
11  firstSample = cms.int32(2),
12  samplesToAdd = cms.int32(1),
13  tsFromDB = cms.bool(True),
14  recoParamsFromDB = cms.bool(True),
15  useLeakCorrection = cms.bool(False),
16  dataOOTCorrectionName = cms.string(""),
17  dataOOTCorrectionCategory = cms.string("Data"),
18  mcOOTCorrectionName = cms.string(""),
19  mcOOTCorrectionCategory = cms.string("MC"),
20 
21  correctTiming = cms.bool(True),
22  # Set time slice for first digi to be stored in aux word
23  firstAuxTS = cms.int32(1),
24 
25  # Tags for calculating status flags
26  setNoiseFlags = cms.bool(True),
27  digiTimeFromDB = cms.bool(True), # turn on to read parameters from DB
28  setHSCPFlags = cms.bool( False ),
29  setSaturationFlags = cms.bool(True),
30  setTimingTrustFlags = cms.bool(True),
31  setPulseShapeFlags = cms.bool(False), # not yet defined for HF
32  setNegativeFlags = cms.bool(False), # only in HBHE
33 
34  digistat= cms.PSet(HFdigiflagFirstSample = cms.int32(1), # These may be different from samples used for reconstruction
35  HFdigiflagSamplesToAdd = cms.int32(3), # Use 3 TS for 75-ns running
36  HFdigiflagExpectedPeak = cms.int32(2), # expected TS position of pulse peak
37  HFdigiflagMinEthreshold = cms.double(40), # minimum energy required to be flagged as noisy
38  # Following parameters are used for determining
39  # minimum threshold fC(peak)/sum_fC(HFsamplesToAdd) > [0] - exp([1]+[2]*Energy)
40  HFdigiflagCoef=cms.vdouble([0.93,-0.38275,-0.012667])
41  ),
42 
43  # Window Parameters require that reconstructed time occurs min and max window time
44  # Time Parameters are expressed as coefficients in polynomial expansion in 1/energy: [0]+[1]/E + ...
45  HFInWindowStat = cms.PSet(hflongMinWindowTime=cms.vdouble([-10]),
46  hflongMaxWindowTime=cms.vdouble([10]),
47  hflongEthresh=cms.double(40.),
48  hfshortMinWindowTime=cms.vdouble([-12]),
49  hfshortMaxWindowTime=cms.vdouble([10]),
50  hfshortEthresh=cms.double(40.),
51  ),
52 
53 
54  # Parameters for Using S9S1 Test
55  # optimumSlopes are slopes for each of the |ieta| values 29, 30, .... ,41 (although |ieta|=29 is not used in current S9S1 formulation)
56 
57  # energy and ET params are thresholds for each |ieta|
58  S9S1stat = cms.PSet(
59  # WARNING! ONLY LONG PARAMETERS ARE USED IN DEFAULT RECO; SHORT S9S1 IS NOT USED!
60  short_optimumSlope = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
61  0.041296,0.0513428,0.0622789,0.0741041,
62  0.0868186,0.100422,0.135313,0.136289,
63  0.0589927]),
64 
65  # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
66  shortEnergyParams = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
67  37.3317, 38.4468, 39.7925, 41.3688,
68  43.1757, 45.2132, 47.4813, 49.98,
69  52.7093]),
70  shortETParams = cms.vdouble([0,0,0,0,
71  0,0,0,0,
72  0,0,0,0,0]),
73 
74  long_optimumSlope = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
75  0.041296,0.0513428,0.0622789,0.0741041,
76  0.0868186,0.100422,0.135313,0.136289,
77  0.0589927]),
78 
79  # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
80  longEnergyParams = cms.vdouble([43.5, 45.7, 48.32, 51.36,
81  54.82, 58.7, 63.0, 67.72,
82  72.86, 78.42, 84.4, 90.8,
83  97.62]),
84  longETParams = cms.vdouble([0,0,0,0,
85  0,0,0,0,
86  0,0,0,0,0]),
87 
88  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
89  isS8S1 = cms.bool(False),
90  ),
91 
92 
93  # Parameters for Using S8S1 Test
94  # Sets the HFS8S1Ratio Bit (bit 3)
95 
96  # energy and ET params are coefficients for energy/ET thresholds, parameterized in ieta
97  S8S1stat = cms.PSet(
98  short_optimumSlope = cms.vdouble([0.30, # ieta=29 is a special case
99  0.10, 0.10, 0.10, 0.10,
100  0.10, 0.10, 0.10, 0.10,
101  0.10, 0.10, 0.10, 0.10]),
102 
103  # Short energy cut is 40 for ieta=29, 100 otherwise
104  shortEnergyParams = cms.vdouble([40,
105  100,100,100,100,
106  100,100,100,100,
107  100,100,100,100]),
108  shortETParams = cms.vdouble([0,0,0,0,
109  0,0,0,0,
110  0,0,0,0,0]),
111 
112  long_optimumSlope = cms.vdouble([0.30, # ieta=29 is a special case
113  0.10, 0.10, 0.10, 0.10,
114  0.10, 0.10, 0.10, 0.10,
115  0.10, 0.10, 0.10, 0.10]),
116  # Long energy cut is 40 for ieta=29, 100 otherwise
117  longEnergyParams = cms.vdouble([40,
118  100,100,100,100,
119  100,100,100,100,
120  100,100,100,100]),
121  longETParams = cms.vdouble([0,0,0,0,
122  0,0,0,0,
123  0,0,0,0,0]),
124 
125  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
126  isS8S1 = cms.bool(True),
127  ),
128 
129 
130  # Parameters for Using Parameterized Energy Threshold (PET) test
131  # short_R, long_R are coefficients of R threshold, parameterized in *ENERGY*: R_thresh = [0]+[1]*energy+[2]*energy^2+...
132  # As of March 2010, the R threshold is a simple fixed value: R>0.98, with separate params for |ieta|=29
133  # Energy and ET params are energy and ET cuts for each |ieta| 29 -> 41
134 
135  PETstat = cms.PSet(
136 
137  short_R = cms.vdouble([0.8]), # new default ratio cut: R>0.8
138  # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
139  shortEnergyParams = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
140  37.3317, 38.4468, 39.7925, 41.3688,
141  43.1757, 45.2132, 47.4813, 49.98,
142  52.7093]),
143  shortETParams = cms.vdouble([0,0,0,0,
144  0,0,0,0,
145  0,0,0,0,0]),
146 
147  long_R = cms.vdouble([0.98]), # default ratio cut: R>0.98
148  # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
149  longEnergyParams = cms.vdouble([43.5, 45.7, 48.32, 51.36,
150  54.82, 58.7, 63.0, 67.72,
151  72.86, 78.42, 84.4, 90.8,
152  97.62]),
153  longETParams = cms.vdouble([0,0,0,0,
154  0,0,0,0,
155  0,0,0,0,0]),
156 
157  short_R_29 = cms.vdouble([0.8]),
158  long_R_29 = cms.vdouble([0.8]), # should move from 0.98 to 0.8?
159  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
160  ),
161 
162 
163  # saturation and hfTimingTrust Parameters
164  saturationParameters= cms.PSet(maxADCvalue=cms.int32(127)),
165 
166  hfTimingTrustParameters = cms.PSet(hfTimingTrustLevel1=cms.int32(1), # 1ns timing accuracy
167  hfTimingTrustLevel2=cms.int32(4) # 4ns timing accuracy
168  )
169 
170  ) # cms.EDProducers
171 
172