CMS 3D CMS Logo

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