Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:45

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 #Originally the Filter was developed to identify two different types of problematic events
0004 #- energy deposits near an ECAL gap/crack region
0005 #- energy deposit near dead/masked ECAL cells
0006 
0007 #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.
0008 
0009 #The EcalDeadCellBoundaryEnergyFilter can be run in different modes, the two needed for dead Ecal studies are:
0010 #1. "TuningMode":summary object is written into the event and can be accessed later in the process.
0011 #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
0012 #current default cut: >5 GeV boundary energy
0013 #To configure the mode, please adapt FilterAlgo accordingly.
0014 #For Filter Mode events are rejected if a dead cluster has a boundary energy of at least 'cutBoundEnergyDeadCellsEB/EE'
0015 
0016 EcalDeadCellBoundaryEnergyFilter = cms.EDFilter('EcalDeadCellBoundaryEnergyFilter',
0017     recHitsEB = cms.InputTag("reducedEcalRecHitsEB"),
0018     recHitsEE = cms.InputTag("reducedEcalRecHitsEE"),
0019     FilterAlgo= cms.untracked.string("FilterMode"),
0020     #### the following parameters skimGap, skimDead are only used in TuningMode
0021     #### switch bool to True to turn on filter: only Events with chosen signature pass, otherwise all events pass
0022     skimGap = cms.untracked.bool(False),
0023     skimDead  = cms.untracked.bool(False),
0024     #### cuts for finding energy deposit near Gaps
0025     ## min. boundary energy (RecHit next to Gap) (abs value)
0026     cutBoundEnergyGapEE=cms.untracked.double(100),
0027     cutBoundEnergyGapEB=cms.untracked.double(100),
0028     #### cuts for finding energy deposit near dead region
0029     ## min. boundary energy (RecHits next to Dead Region) (abs value)
0030     cutBoundEnergyDeadCellsEB=cms.untracked.double(10),
0031     cutBoundEnergyDeadCellsEE=cms.untracked.double(10),
0032     #### Limit complete filter processing to EE or EB, if both are 'True' nothing will happen in the filter at all...
0033     limitFilterToEB=cms.untracked.bool(False),
0034     limitFilterToEE=cms.untracked.bool(False),
0035     #### Limit dead cells to channel status, only rec hits around channel with channel status given are
0036     #### considered. E.g to sum only energy around dead cells with stati 12 & 14 in EB, but all dead cells
0037     #### in EB, do:
0038     #### limitDeadCellToChannelStatusEB=cms.vint32(12,14)
0039     #### limitDeadCellToChannelStatusEE=cms.vint32()
0040     #### for negative values all status>=abs(given value) are used (e.g. limitDeadCellToChannelStatusEE=cms.vint32(-13)--->limitDeadCellToChannelStatusEE=cms.vint32(13,14,15,16,17,...))
0041     limitDeadCellToChannelStatusEB=cms.vint32(12, 13, 14),
0042     limitDeadCellToChannelStatusEE=cms.vint32(12, 13, 14),
0043     #### enable calculation of energy deposits next to cracks/gaps
0044     enableGap=cms.untracked.bool(False),
0045         taggingMode   = cms.bool(False),
0046         debug = cms.bool(False),
0047 )
0048 
0049 
0050 
0051 
0052