CMS 3D CMS Logo

HFPhase1Reconstructor_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 hfreco = cms.EDProducer("HFPhase1Reconstructor",
4  # Label for the input HFPreRecHitCollection
5  inputLabel = cms.InputTag("hfprereco"),
6 
7  # Change the following to True in order to use the channel
8  # status from the DB
9  useChannelQualityFromDB = cms.bool(True),
10 
11  # Change the following to True when the status becomes
12  # available in the DB for both anodes. If this parameter
13  # is set to False then it is assumed that the status of
14  # both anodes is given by the channel at depth 1 and 2.
15  checkChannelQualityForDepth3and4 = cms.bool(True),
16 
17  # Configure the reconstruction algorithm
18  algorithm = cms.PSet(
19  Class = cms.string("HFFlexibleTimeCheck"),
20 
21  # Timing cuts: pass everything for now
22  tlimits = cms.vdouble(-1000.0, 1000.0,
23  -1000.0, 1000.0),
24 
25  # Linear mapping of the array with dimensions [13][2].
26  # The first dimension is 2*HFAnodeStatus::N_POSSIBLE_STATES - 1.
27  energyWeights = cms.vdouble(
28  1.0, 1.0, # {OK, OK} anode status
29  1.0, 0.0, # {OK, NOT_DUAL}
30  1.0, 0.0, # {OK, NOT_READ_OUT}
31  2.0, 0.0, # {OK, HARDWARE_ERROR}
32  2.0, 0.0, # {OK, FLAGGED_BAD}
33  2.0, 0.0, # {OK, FAILED_TIMING}
34  1.0, 0.0, # {OK, FAILED_OTHER}
35  0.0, 1.0, # {NOT_DUAL, OK}
36  0.0, 1.0, # {NOT_READ_OUT, OK}
37  0.0, 2.0, # {HARDWARE_ERROR, OK}
38  0.0, 2.0, # {FLAGGED_BAD, OK}
39  0.0, 2.0, # {FAILED_TIMING, OK}
40  0.0, 1.0 # {FAILED_OTHER, OK}
41  ),
42 
43  # Into which byte (0, 1, or 2) of the aux word the sample
44  # of interest ADC will be placed?
45  soiPhase = cms.uint32(1),
46 
47  # Time shift added to all "normal" QIE10 TDC time measurements
48  timeShift = cms.double(0.0),
49 
50  # Rise and fall time of the rechit will be set to these values
51  # if neither anode has valid TDC info
52  triseIfNoTDC = cms.double(-100.0),
53  tfallIfNoTDC = cms.double(-101.0),
54 
55  # Charge limits for special TDC values. If the anode charge is
56  # below such a limit, the anode will participate in the energy
57  # reconstruction even if its TDC undershoots/overshoots. These
58  # global limits are in addition to those per channel limits in
59  # the database (effectively, the larger limit is used).
60  minChargeForUndershoot = cms.double(1.0e10),
61  minChargeForOvershoot = cms.double(1.0e10),
62 
63  # Do not construct rechits with problems
64  rejectAllFailures = cms.bool(True)
65  ),
66 
67  # Reconstruction algorithm data to fetch from DB, if any
68  algoConfigClass = cms.string("HFPhase1PMTParams"),
69 
70  # Turn on/off the noise cleanup algorithms
71  setNoiseFlags = cms.bool(True),
72 
73  # Parameters for the S9S1 test.
74  #
75  # optimumSlopes are slopes for each of the |ieta| values
76  # 29, 30, .... ,41 (although |ieta|=29 is not used in
77  # current S9S1 formulation)
78  #
79  # energy and ET params are thresholds for each |ieta|
80  #
81  S9S1stat = cms.PSet(
82  # WARNING! ONLY LONG PARAMETERS ARE USED IN DEFAULT RECO; SHORT S9S1 IS NOT USED!
83  short_optimumSlope = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
84  0.041296,0.0513428,0.0622789,0.0741041,
85  0.0868186,0.100422,0.135313,0.136289,
86  0.0589927]),
87 
88  # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
89  shortEnergyParams = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
90  37.3317, 38.4468, 39.7925, 41.3688,
91  43.1757, 45.2132, 47.4813, 49.98,
92  52.7093]),
93  shortETParams = cms.vdouble([0,0,0,0,
94  0,0,0,0,
95  0,0,0,0,0]),
96 
97  long_optimumSlope = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
98  0.041296,0.0513428,0.0622789,0.0741041,
99  0.0868186,0.100422,0.135313,0.136289,
100  0.0589927]),
101 
102  # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
103  longEnergyParams = cms.vdouble([43.5, 45.7, 48.32, 51.36,
104  54.82, 58.7, 63.0, 67.72,
105  72.86, 78.42, 84.4, 90.8,
106  97.62]),
107  longETParams = cms.vdouble([0,0,0,0,
108  0,0,0,0,
109  0,0,0,0,0]),
110 
111  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
112  isS8S1 = cms.bool(False),
113  ),
114 
115  # Parameters for the S8S1 test. Sets the HFS8S1Ratio Bit (bit 3).
116  #
117  # energy and ET params are coefficients for
118  # energy/ET thresholds, parameterized in ieta
119  #
120  S8S1stat = cms.PSet(
121  short_optimumSlope = cms.vdouble([0.30, # ieta=29 is a special case
122  0.10, 0.10, 0.10, 0.10,
123  0.10, 0.10, 0.10, 0.10,
124  0.10, 0.10, 0.10, 0.10]),
125 
126  # Short energy cut is 40 for ieta=29, 100 otherwise
127  shortEnergyParams = cms.vdouble([40,
128  100,100,100,100,
129  100,100,100,100,
130  100,100,100,100]),
131  shortETParams = cms.vdouble([0,0,0,0,
132  0,0,0,0,
133  0,0,0,0,0]),
134 
135  long_optimumSlope = cms.vdouble([0.30, # ieta=29 is a special case
136  0.10, 0.10, 0.10, 0.10,
137  0.10, 0.10, 0.10, 0.10,
138  0.10, 0.10, 0.10, 0.10]),
139 
140  # Long energy cut is 40 for ieta=29, 100 otherwise
141  longEnergyParams = cms.vdouble([40,
142  100,100,100,100,
143  100,100,100,100,
144  100,100,100,100]),
145  longETParams = cms.vdouble([0,0,0,0,
146  0,0,0,0,
147  0,0,0,0,0]),
148 
149  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
150  isS8S1 = cms.bool(True),
151  ),
152 
153  # Parameters for the Parameterized Energy Threshold (PET) test.
154  #
155  # short_R, long_R are coefficients of R threshold,
156  # parameterized in *ENERGY*: R_thresh = [0]+[1]*energy+[2]*energy^2+...
157  #
158  # As of March 2010, the R threshold is a simple fixed value:
159  # R>0.98, with separate params for |ieta|=29
160  #
161  # Energy and ET params are energy and ET cuts for each |ieta| 29 -> 41
162  #
163  PETstat = cms.PSet(
164  short_R = cms.vdouble([0.8]), # new default ratio cut: R>0.8
165 
166  # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
167  shortEnergyParams = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
168  37.3317, 38.4468, 39.7925, 41.3688,
169  43.1757, 45.2132, 47.4813, 49.98,
170  52.7093]),
171  shortETParams = cms.vdouble([0,0,0,0,
172  0,0,0,0,
173  0,0,0,0,0]),
174 
175  long_R = cms.vdouble([0.98]), # default ratio cut: R>0.98
176 
177  # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
178  longEnergyParams = cms.vdouble([43.5, 45.7, 48.32, 51.36,
179  54.82, 58.7, 63.0, 67.72,
180  72.86, 78.42, 84.4, 90.8,
181  97.62]),
182  longETParams = cms.vdouble([0,0,0,0,
183  0,0,0,0,
184  0,0,0,0,0]),
185 
186  short_R_29 = cms.vdouble([0.8]),
187  long_R_29 = cms.vdouble([0.8]), # should move from 0.98 to 0.8?
188  HcalAcceptSeverityLevel = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
189  )
190 )