TWiki> CMSPublic Web>SWGuideFlavorHistory (revision 4)EditAttachPDF
This page and the corresponding tools are under heavy construction

Flavor History

Here we present tools to determine the ultimate history of a given jet.

There can be several sources for a jet in QCD:

  • Gluon splitting.
  • Quark excitation.
  • Electroweak (or strong) resonance decay.
  • Hard scattering.

We present tools to decide which category an event falls into.

Definitions of Categories

The categories we use are as follows:

  • Matrix Element: Status 3 parent with precisely 2 "grandparents" that is outside of the "initial" section (0-5) that has the same ID as the status 2 parton in question. NOTE: This is not the actual ultimate progenitor, but this is the signature of matrix element decays. The ultimate progenitor is the parent of the status 3 parton.

  • Flavor excitation: Almost the same as the matrix element classification, but has only one outgoing parton product instead of two.

  • Gluon splitting: Parent is a quark of a different flavor than the parton in question, or a gluon. Can come from either ISR or FSR.

  • True decay: Decays from a resonance like top, Higgs, etc.

Software

Prescription

A prescription to check out the Flavor History software in 2.1.0 is:

scramv1 p CMSSW CMSSW_2_1_12
cd CMSSW_2_1_12/src
cvs co -r V05-12-01 DataFormats/HepMCCandidate 
cvs co -r V09-26-00 PhysicsTools/HepMCCandAlgos

Flavor History Object

The Flavor History object is shown here. This object will store several objects:

  • Flavor Source: matrix element, flavor excitation, gluon splitting, or true decay.
  • Parton: The parton in question (status 2 quark, typically b or c).
  • Progenitor: The ultimate progenitor of that parton.
  • Sister: The sister of that parton.

In doing this, we can see that the cases in question will have the following characteristics:

  • Matrix element
    • Parton: b or c quark.
    • Progenitor: parton from the hard scatter.
    • Sister: the other daughter of the progenitor with the same flavor.
  • Flavor excitation
    • Parton: b or c quark.
    • Progenitor: parton from the hard scatter.
    • Sister: None.
  • Gluon splitting
    • Parton: b or c quark.
    • Progenitor: gluon from ISR or FSR.
    • Sister: the other daughter of the progenitor with the same flavor.
  • True decay
    • Parton: b or c quark.
    • Progenitor: Higgs, top, etc.
    • Sister: Depends on decay, but for instance a Higgs to b-bbar will have the other b as the sister.

Flavor History Event

This is a data type designed to make the content in Flavor History more accessible. It is linked here.

The interface to examine these objects is:

  // Get the number of b and c genjets that match to partons
  unsigned int         nb() const;
  unsigned int         nc() const

  // Accessor to maximum delta R between highest flavor constituents
  double               deltaR() const;
  unsigned int         highestFlavor() const;

These are browsable in FWLite, for instance. They are also the values used in the filtering process.

Flavor History Producer

The producer to create these objects is shown here. There is one file that will create both b and c parton histories linked here. This will create a FlavorHistoryEvent that the user can then select on.

Flavor History Filter

The filter to use these objects is shown here. This will take the FlavorHistoryEvent produced by the flavor history producer, and perform selection on them.

At the present, the filter will avoid overlaps based on the "delta R" method. In this method, the event is taken from the matrix element calculation if it contains two quarks widely separated (i.e. are associated with two different jets). The event is taken from the parton shower calculation if it contains two quarks that are very colinear (i.e. are associated with the same jet). The jet cone size is a parameter.

A configuration file is shown here to create filters that will select matrix element b's, matrix element c's, and flavor excitation c's. These can be included into an analysis to select the proper events.

For instance, to separate out events in a W+jets sample that were already counted in a W+bb sample, one would do

    process.wbb = cms.Path(
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        process.wbbMEFlavorHistoryFilter
       )

This will select the W+bb events. To avoid double counting, the "anti-selection" process in question would be

    process.wjets = cms.Path(
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        ~process.wbbMEFlavorHistoryFilter
       )

Here we veto those events that pass the W+bb event filter.

Example Prescription

The overall procedure for running would be:

  • Generate W+bb, W+cc, W+c, and W+all jets samples.
  • Run the four paths in the following section (wbb, wcc, wc, wjets).
  • Select the appropriate events for each sample (explained below).
  • This will give you one "physics sample" for each MC sample generated.
  • Add these samples together with the appropriate weight from the generation, plus whatever K-factors are derived (from theory) or measured (from data).

Configuration File

An example path configuration snippet would look something like this:


...

   # input MC stuff
   process.load( "SimGeneral.HepPDTESSource.pythiapdt_cfi")
   process.load( "PhysicsTools.HepMCCandAlgos.genParticles_cfi")
   process.load( "PhysicsTools.HepMCCandAlgos.genEventWeight_cfi")
   process.load( "PhysicsTools.HepMCCandAlgos.genEventScale_cfi")

   # input flavor history stuff
   process.load("PhysicsTools.HepMCCandAlgos.flavorHistoryProducer_cfi")
   process.load("PhysicsTools.HepMCCandAlgos.flavorHistoryFilter_cfi")

    # Select W+ bb events
    process.wbb = cms.Path(
        process.genParticles *
        process.genEventWeight *
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        process.wbbMEFlavorHistoryFilter)

    # Reject W+bb events, select W+cc events
    process.wcc = cms.Path(
        process.genParticles *
        process.genEventWeight *
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        ~process.wbbMEFlavorHistoryFilter*
        process.wccMEFlavorHistoryFilter )

    # Reject W+bb and W+cc events, select W+c events
    process.wc = cms.Path(
        process.genParticles *
        process.genEventWeight *  
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        ~process.wbbMEFlavorHistoryFilter*
        ~process.wccMEFlavorHistoryFilter*
        process.wcFEFlavorHistoryFilter )

    # reject W+bb, W+cc and W+c, the remainder is W+light flavor
    process.wjets = cms.Path(
        process.genParticles *
        process.genEventWeight *
        process.bFlavorHistoryProducer*
        process.cFlavorHistoryProducer*
        ~process.wbbMEFlavorHistoryFilter*
        ~process.wccMEFlavorHistoryFilter*
        ~process.wcFEFlavorHistoryFilter )


Path assignment

The correct physics output for the samples in question will correspond to the path of the same name.

  • W+bb sample should use the output of the wbb filter
  • W+cc sample should use the output of the wcc filter
  • W+c sample should use the output of the wc filter
  • W+jets sample should use the output of the wjets filter

These samples can then be added together with the appropriate weights from the generation process and will have non-overlapping phase space.

Creating skims

There are three collections that should be output with the current configuration, if you wish to rerun the filters on a skimmed file:

  • *_bFlavorHistoryProducer_*_*
  • *_cFlavorHistoryProducer_*_*
  • *_iterativeCone5GenJets_*_* (optional, can function without including this)

If these three objects are kept, it is not necessary to rerun the producers described above. The filters can run with only these objects.

Full recipes for Summer 08

Coming soon!

-- SalvatoreRRappoccio - 06 Aug 2008

Edit | Attach | Watch | Print version | History: r12 | r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2008-11-06 - unknown
 
    • 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-2021 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