HLTriggerOffline/Egamma Package description

Easy User Intro

Quick Start

scramv1 project CMSSW CMSSW_2_2_3
cd CMSSW_2_2_3/src/
cmsenv
cvs co HLTriggerOffline/Egamma
scramv1 b
cd HLTriggerOffline/Egamma/
  [edit test/test_cfg.py to point at files you are interested in]
cmsRun test/test_cfg.py

This will produce a file called DQM_V0001_HLT_R000000001.root, and this will contain histograms for every HLT path described in the config files in the directory

HLTriggerOffline/Egamma/python/

such as singleElectronDQM_cfi.py , singlePhotonDQM_cfi.py , etc...

Histograms are produced for objects after every filter in the HLT path.

About the HLT Paths

Photon Paths

Photon Deposit

Photon HLT paths work in the following way, first they

  1. Create collection of Level-1 EM Objects, then
  2. Create collection of SuperClusters near Level-1 Objects
Then SuperClusters are filtered from that in this order:
  1. Match to L1 Object (delta-phi and delta-eta must be < some value)
  2. Et > some value
  3. (Ecal Isolation < some value) OR (Ecal Iso < 0.05*Et) OR (Ecal Iso < 0.00*Et^2)
  4. (Hcal Isolation < some value) OR (Hcal Iso < 0.05*Et) OR (Hcal Iso < 0.00*Et^2)
  5. Number of Tracks (pt > 1.5 GeV) < some number

The SuperClusters that pass all those filters end up in the final collection of HLT Photons.

Electron Paths

No info yet.

About the Plots produced

Histograms fall into a few categories:
  • Histograms of Et and eta distributions of all the Superclusters after each filter (from data alone and MC matched)
  • Histograms of efficiency vs Et (and eta) of the filters
  • 2d histograms showing the isolation-variables vs et/eta for the objects entering the filter using these variables
  • A summary histogram containing the number of events passing each filter, the number of events in the detector acceptance and the number of events with generated electrons/photons in the acceptance.

Advanced Developer Details

The Python Config Files

The HLT Paths for electrons and photons are "described" in their respective configuration file in HLTriggerOffline/Egamma/python/.

For example, the file singlePhotonDQM_cfi.py, will run on the path HLT_IsoPhoton10_L1R.

This is done by looking at the collections produced after each filter in the HLT_IsoPhoton10_L1R path. There are 6 collections in this path - so there are six cms.PSet 's in the config file. The collections in this path are:

  1. L1 EM Objects
  2. L1 Match (delta-phi and delta-eta matching)
  3. Et > some value
  4. (Ecal Isolation < some value) OR (Ecal Iso < 0.05*Et) OR (Ecal Iso < 0.00*Et^2)
  5. (Hcal Isolation < some value) OR (Hcal Iso < 0.05*Et) OR (Hcal Iso < 0.00*Et^2)
  6. Number of Tracks (pt > 1.5 GeV) < some number

The names of the collections of photons that pass these filters are retrieved from the HLT Config Browser, and go into the config file as a vector of 6 cms.PSet 's. For example, singlePhotonDQM_cfi.py contains this vector of PSets:

filters = cms.VPSet(
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1sRelaxedSingleEgammaEt8","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("none")),
    ...
    ),
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1NonIsoSinglePhotonEt10L1MatchFilterRegional","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("none")),
   ...
    ),
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1NonIsoSinglePhotonEt10EtFilter","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("none")),
    ...
    ),
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1NonIsoSinglePhotonEt10EcalIsolFilter","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("hltL1IsolatedPhotonEcalIsol","","HLT"), cms.InputTag("hltL1NonIsolatedPhotonEcalIsol","","HLT")),
    ...
    ),
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1NonIsoSinglePhotonEt10HcalIsolFilter","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("hltL1IsolatedPhotonHcalIsol","","HLT"), cms.InputTag("hltL1NonIsolatedPhotonHcalIsol","","HLT")),
    ...
    ),
    cms.PSet( ...
        HLTCollectionLabels = cms.InputTag("hltL1NonIsoSinglePhotonEt10TrackIsolFilter","","HLT"),
        IsoCollections = cms.VInputTag(cms.InputTag("hltL1IsoPhotonTrackIsol","","HLT"), cms.InputTag("hltL1NonIsoPhotonTrackIsol","","HLT")),
    ...
    )
)

Getting Collection Names from HLT Config Browser

HLT Browser Here's how to get the colletion names to place in a config file for an HLT path. The first thing you need is a name of an HLT path.

  1. Go to HLT Config Browser
  2. In the left panel select /dev/ and then
  3. Select the version of CMSSW you are interested in. In the right panel you will then see things like path HLTriggerFirstPath = ...
  4. Search for your HLT path name, such as HLT_Photon15_L1R

You should now see something like,

 path HLT_Photon15_L1R = { HLTBeginSequence & hltL1sRelaxedSingleEgammaEt10 & hltPrePhoton15L1R & 
HLTSinglePhoton15L1NonIsolatedHLTNonIsoSequence & HLTEndSequence }

You see hltL1sRelaxedSingleEgammaEt10 in that path? That will be the initial collection of level-1 em objects that are above some Et threshold.

Next, you will want more details on what's inside the sequence HLTSinglePhoton15L1NonIsolatedHLTNonIsoSequence , so search for that.

You will see this has 20 or so steps. I've highlighted the collection names (they should contain the word "filter")

 sequence HLTSinglePhoton15L1NonIsolatedHLTNonIsoSequence = { 
     HLTDoRegionalEgammaEcalSequence & 
     HLTL1IsolatedEcalClustersSequence & 
     HLTL1NonIsolatedEcalClustersSequence & 
     hltL1IsoRecoEcalCandidate & 
     hltL1NonIsoRecoEcalCandidate & 
     hltL1NonIsoHLTNonIsoSinglePhotonEt15L1MatchFilterRegional & 
     hltL1NonIsoHLTNonIsoSinglePhotonEt15EtFilter & 
     hltL1IsolatedPhotonEcalIsol & 
     hltL1NonIsolatedPhotonEcalIsol & 
     hltL1NonIsoHLTNonIsoSinglePhotonEt15EcalIsolFilter & 
     HLTDoLocalHcalWithoutHOSequence &
     hltL1IsolatedPhotonHcalIsol & 
     hltL1NonIsolatedPhotonHcalIsol & 
     hltL1NonIsoHLTNonIsoSinglePhotonEt15HcalIsolFilter & 
     HLTDoLocalTrackerSequence & 
     HLTL1IsoEgammaRegionalRecoTrackerSequence & 
     HLTL1NonIsoEgammaRegionalRecoTrackerSequence & 
     hltL1IsoPhotonTrackIsol &
     hltL1NonIsoPhotonTrackIsol & 
     hltL1NonIsoHLTNonIsoSinglePhotonEt15TrackIsolFilter }

Variables and Plots

The Egamma module was developed mostly for release validation. The focus was on easy maintenance to keep the tool up to date with new releases. It relies heavily on the new HLT data format and is thus only available for CMSSW_1_80_pre6 and upward.

The module EmDQM analyses the trigger::TriggerEventWithRefs (i.e the triggersummaryRAW). Thus it will only run on a file that already contains HLT information.

It fills the following histograms into a file opened with TFileService:

  • Histograms containg the number of candidates passing a trigger cut as function of Et of the object (from data alone and MC matched)
  • Histograms containg the number of candidates passing a trigger cut as function of eta of the object (from data alone and MC matched)
  • 2d histograms showing the isolation-variables vs eta/et for the objects entering the filter using these variables
  • A summary histogram containing the number of events passing each filter, the number of events in the detector acceptance and the number of events with generated electrons/photons in the acceptance.

Sample configurations for all current triggers are included in the 'data' subdirecotry The paramters in the config are:

  • reqNum = 1 # number of objects required by the trigger
  • pdgGen = 11 # pdg-id of the trigger particles
  • EtaAcc = 2.5 # eta acceptance cut for the generated particles
  • genEtAcc = 2. # Et cutoff for generated particles
  • PtMax = 200 # x-axis for the Et histogram output
  • filters this is a VPSet, one pset for each filter in the trigger, containing the following
  • HLTCollectionLabels = filter-module name in the trigger
  • theHLTOutputTypes = type of the object produced by the filter (i.e. enum TriggerObjectType from DataFormats/HLTReco/interface/TriggerTypeDefs.h)
  • IsoCollections = isolation collections used by the filter (of the type Assciation<OneToValue< object , float > >), use "none" if the filter cuts on something else
  • PlotBounds = boundaries for the plot of the isolation variable

Revision Info

Reviewer/Editor and Date (copy from screen) Comments
Mike Anderson - 23 Jun 2008 Updated Whole Page

Responsible: JasonSlaunwhite

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng CmsPhotonDeposit.png r1 manage 17.1 K 2008-12-16 - 20:15 MikeAnderson  
PNGpng HLT_Browser.png r1 manage 193.2 K 2008-12-16 - 20:27 MikeAnderson  
Edit | Attach | Watch | Print version | History: r10 < r9 < r8 < r7 < r6 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r10 - 2011-05-30 - MonicaVazquezAcosta
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

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