CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalDeadCellBoundaryEnergyFilter_cfi.py
Go to the documentation of this file.
2 
3 #Originally the Filter was developed to identify two different types of problematic events
4 #- energy deposits near an ECAL gap/crack region
5 #- energy deposit near dead/masked ECAL cells
6 
7 #In this version the EcalAnomalous EventFilter is summing up the boundary energy around dead/masked cells (all amasked cells:single, 1x5, 5x5). The boundary energy above a given threshold (configure:cutBoundEnergyDeadCellsEB/EE) is written into a summary object (DataFormats/AnomalousEcalDataFormats/interface/AnomalousECALVariables.h) together with the information of the size of the dead cell cluster. To identify problematic events the AnomalousECALVariables class 'isEcalNoise()' function returns a flag based on the stored boundary energies. Currently the function returns true if at least 1 dead cell cluster with size>=24 was filtered out in this EcalDeadCellBoundaryEnergyFilter, no additional energy cut is applied to the threshold configured below. Morde details:see AnomalousECALVariables.h.
8 
9 #The EcalDeadCellBoundaryEnergyFilter can be run in different modes, the two needed for dead Ecal studies are:
10 #1. "TuningMode":summary object is written into the event and can be accessed later in the process.
11 #2. "FilterMode":the summary object is not written to the event, the filter returns the value determined in AnomalousECALVariables.isEcalNoise()--->Events affected by energy deposits in dead cells do NOT pass
12 #current default cut: >5 GeV boundary energy
13 #To configure the mode, please adapt FilterAlgo accordingly.
14 #For Filter Mode events are rejected if a dead cluster has a boundary energy of at least 'cutBoundEnergyDeadCellsEB/EE'
15 
16 EcalDeadCellBoundaryEnergyFilter = cms.EDFilter('EcalDeadCellBoundaryEnergyFilter',
17  recHitsEB = cms.InputTag("reducedEcalRecHitsEB"),
18  recHitsEE = cms.InputTag("reducedEcalRecHitsEE"),
19  FilterAlgo= cms.untracked.string("FilterMode"),
20  #### the following parameters skimGap, skimDead are only used in TuningMode
21  #### switch bool to True to turn on filter: only Events with chosen signature pass, otherwise all events pass
22  skimGap = cms.untracked.bool(False),
23  skimDead = cms.untracked.bool(False),
24  #### cuts for finding energy deposit near Gaps
25  ## min. boundary energy (RecHit next to Gap) (abs value)
26  cutBoundEnergyGapEE=cms.untracked.double(100),
27  cutBoundEnergyGapEB=cms.untracked.double(100),
28  #### cuts for finding energy deposit near dead region
29  ## min. boundary energy (RecHits next to Dead Region) (abs value)
30  cutBoundEnergyDeadCellsEB=cms.untracked.double(10),
31  cutBoundEnergyDeadCellsEE=cms.untracked.double(10),
32  #### Limit complete filter processing to EE or EB, if both are 'True' nothing will happen in the filter at all...
33  limitFilterToEB=cms.untracked.bool(False),
34  limitFilterToEE=cms.untracked.bool(False),
35  #### Limit dead cells to channel status, only rec hits around channel with channel status given are
36  #### considered. E.g to sum only energy around dead cells with stati 12 & 14 in EB, but all dead cells
37  #### in EB, do:
38  #### limitDeadCellToChannelStatusEB=cms.vint32(12,14)
39  #### limitDeadCellToChannelStatusEE=cms.vint32()
40  #### for negative values all status>=abs(given value) are used (e.g. limitDeadCellToChannelStatusEE=cms.vint32(-13)--->limitDeadCellToChannelStatusEE=cms.vint32(13,14,15,16,17,...))
41  limitDeadCellToChannelStatusEB=cms.vint32(12, 14),
42  limitDeadCellToChannelStatusEE=cms.vint32(12, 14),
43  #### enable calculation of energy deposits next to cracks/gaps
44  enableGap=cms.untracked.bool(False),
45  taggingMode = cms.bool(False),
46  debug = cms.bool(False),
47 )
48 
49 
50 
51 
52