Instructions on use of the HBHE RecHit Timing Filter for cleaning events with out-of-time hits

Introduction

Each HCAL rechit has a 32-bit flag word as described in this twiki. The HBHE RecHit Timing Filter makes particular use of the 3-bit-wide "HBHETimingShapedCutsBits" field within that word. This filter is implemented in standard reconstruction code, and flags all HBHERecHits that are deemed as "out-of-time".

In addition, the HcalRecHitReflagger uses the same algorithm and can be used to "reflag" rechits that were previously flagged. The old flag values are cleared and the reflagger uses the modified definitions supplied by the user to calculate new flag values.

The Timing Filter works by defining an energy dependent or "shaped" timing window. The shape of the filter is typically wider at low energy, to compensate for reduced time resolution, and then narrows to some smaller width that is maintained out to infinite energy. The filter can be set to filter or pass all hits below the lowest defined energy point in the window. If a rechit's reconstructed time falls outside the window, the "HBHETimingShapedCutsBits" flag gets set. Although this bit-field is 3 bits wide, as of this writing the filter uses only the LSB of this field, bit 8. A set bit 8 means the hit is flagged as out-of-time, a cleared bit 8 means the hit is in time.

These flags can subsequently be used to "clean" the reconstructed missing transverse energy (MET); this is accomplished by means of the HCAL Severity Level Computer. One defines a 'severity level' associated with each defined flag in the 32-bit flag word. If the severity level is set to exceed the threshold defined for CaloTowers creation, then the hit is excluded from contribution to the CaloTower and hence to any jets or MET that are constructed from there. As of this writing, the standard reconstruction software does not define a severity level for this bit; however, a definition can be put in place for the reflagger.

The following diagram depicts one suggested arrangement of EDM modules in a python configuration file for the use of time filtering.

swsetup.png

Reflagger step-by-step instructions (38X,39X):

The following instructions are intended for those who wish to use the "latest and greatest" time filter definition. They work for both 38X and 39X releases; 3_8_X is used for illustration purposes. NB: This filter was optimized with prompt-reco data taken from runs 148952-149294, which also had the "latest and greatest" timing corrections applied to the rechits. You may expect the performance of this filter to degrade with data taken earlier than this, until the re-reconstruction of that data is accomplished with the same new corrections applied.

cmsrel CMSSW_3_8_X
cd CMSSW_3_8_X/src
addpkg RecoLocalCalo/HcalRecAlgos
cvs co -r V00-07-21 RecoLocalCalo/HcalRecAlgos/src/HBHETimingShapedFlag.cc
cvs co -r V00-07-21 RecoLocalCalo/HcalRecAlgos/interface/HBHETimingShapedFlag.h
cvs co -r V00-00-18 JetMETAnalysis/HcalReflagging

scram b -j4 

Then in a suitably defined cff.py file to be included into your cfg.py file (add "process." to the module names to include directly into your cfg.py file):

#--------------------------------------------------
# REFLAGGER
#
from JetMETAnalysis.HcalReflagging.hbherechitreflaggerJETMET_cfi import *

hbheReflagNewTimeEnv = hbherechitreflaggerJETMET.clone()
hbheReflagNewTimeEnv.timingshapedcutsParameters.hbheTimingFlagBit=cms.untracked.int32(8)

#--------------------------------------------------
# RERECO TOWERS
#
# The following lines cause any rechits flagged by 'HBHETimingShapedCutsBits'
# to be excluded from calotower creation.
#
# NB: The Severity Level Computer WILL complain about you attempting to set a severity
#        level for a bit that is not defined - but it is defined and will work. A fix is queued
#        for future release...
#
import JetMETAnalysis.HcalReflagging.RemoveAddSevLevel as RemoveAddSevLevel

from RecoLocalCalo.HcalRecAlgos.hcalRecAlgoESProd_cfi import *
hcalRecAlgos=RemoveAddSevLevel.AddFlag(hcalRecAlgos,"HBHETimingShapedCutsBits",10)

from RecoJets.Configuration.CaloTowersRec_cff import *
filtTowersNewTimeEnv     = towerMaker.clone(hbheInput=cms.InputTag("hbheReflagNewTimeEnv"))

#--------------------------------------------------
# RERECO MET

from RecoMET.METProducers.CaloMET_cfi import met
filtmetNewTimeEnv  = met.clone(src = cms.InputTag("filtTowersNewTimeEnv"))

#--------------------------------------------------
# SEQUENCES

seqNewTimeEnv = cms.Sequence(hbheReflagNewTimeEnv*
                             filtTowersNewTimeEnv*
                             filtmetNewTimeEnv*
                             myanalyzer)
Include this last sequence in your path.

Links to software

-- PhilDudero - 17-Nov-2010

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng swsetup.png r1 manage 47.1 K 2010-11-18 - 01:33 UnknownUser  
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2010-12-01 - unknown
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback